Direkt zu Hauptinhalt

Datenbank Fehlerbehebung

Dieser Artikel behandelt häufig auftretende datenbankbezogene Probleme in dab Nexus und deren Lösungen.

Inkonsistenzen im Aufgabenstatus

Symptome

  • Aufgaben verbleiben im Status Running, obwohl sie abgeschlossen oder fehlgeschlagen sind
  • Der Aufgabenstatus entspricht nicht dem tatsächlichen Zustand der Extraktion
  • Durchläufe zeigen falsche Abschlusszustände
  • Geplante Aufgaben schlagen sporadisch fehl, ohne ersichtliche Fehlermeldung

Ursache

Diese Symptome treten typischerweise auf, wenn Application Database und Extraction/Results-Datenbanken denselben SQL Server-Instanz nutzen. Bei großen Datenextraktionen kommt es zu einer hohen Belastung des SQL Server. Dadurch können folgende Probleme entstehen:

  1. Verbindungszeitüberschreitungen zur Application Database
  2. Fehlgeschlagene Schreibvorgänge beim Aktualisieren des Aufgabenstatus
  3. Inkonsistente Statusinformationen in der Application Database

Die Application Database speichert sämtliche Aufgabenstatus und muss jederzeit zuverlässig erreichbar sein. Wenn sie sich Ressourcen mit rechenintensiven Extraktionen teilt, leidet die Verbindungsstabilität.

Diagnose

Überprüfen Sie Ihre SQL Server-Protokolle auf:

  • Fehler bezüglich Verbindungszeitüberschreitungen
  • Deadlock-Warnungen
  • Hinweise auf Ressourcenkonflikte

Prüfen Sie Ihre aktuelle Architektur:

  • Sind Application Database und Extraction-Datenbanken auf derselben SQL Server-Instanz?
  • Tritt das Problem während oder direkt nach großen Extraktionen auf?

Lösung

Migrieren Sie die Application Database auf eine dedizierte SQL Server-Instanz. Siehe das folgende Migrationshandbuch.


Migration der Application Database auf eine separate Instanz

Wenn Sie Inkonsistenzen im Aufgabenstatus oder Verbindungsprobleme aufgrund einer geteilten SQL Server-Instanz erleben, führen Sie die folgenden Schritte durch, um die Application Database auf eine eigene Instanz zu migrieren.

Wählen Sie Ihr Migrationsszenario

Es stehen zwei Szenarien zur Auswahl. Entscheiden Sie je nach Zielsetzung:

SzenarioWann verwendenSchritte
A – Nur Application DatabaseSie möchten Aufgabenstatusprobleme durch die Migration ausschließlich der Application Database lösen. Extraction/Results-Datenbanken verbleiben auf der aktuellen Instanz.Schritte 1–5
B – Application + Data DatabasesSie möchten sowohl Application Database als auch Extraction/Results-Datenbanken auf neue Instanzen verschieben.Schritte 1–8

Szenario A ist der typische Weg zur Fehlerbehebung bei Problemen mit geteilten Instanzen. Bestehende SQL-Verbindungen in dab Nexus funktionieren weiterhin, da die Extraction/Results-Instanz unverändert bleibt.

Voraussetzungen

  • Neue SQL Server-Instanz bereitgestellt (siehe Systemanforderungen)
  • Administrativer Zugriff auf beide SQL Server-Instanzen
  • dab Nexus-Service Account-Zugangsdaten
  • Ausreichendes Zeitfenster für die Migration

Szenario A: Migration nur der Application Database

1. Backup erstellen

  • Erstellen Sie eine vollständige Sicherung der Application Database
  • Alle Konfigurationsdaten (Third-Party Services, SAP-Verbindungen, Benutzereinstellungen) sind in der Application Database hinterlegt
Wichtig

Überspringen Sie den Backup-Schritt keinesfalls. Die Application Database enthält Ihre gesamte dab Nexus-Konfiguration.

2. dab Nexus-Dienst stoppen

  • Öffnen Sie Windows Services (services.msc)
  • Stoppen Sie den dab Nexus-Dienst
  • Stellen Sie sicher, dass der Dienst komplett beendet wurde, bevor Sie fortfahren

3. Application Database auf die neue Instanz wiederherstellen

  • Stellen Sie das Application Database-Backup auf der neuen dedizierten SQL Server-Instanz wieder her
  • Der Datenbankname sollte gleich bleiben – andernfalls notieren Sie den neuen Namen für die Konfigurationsänderung
  • Prüfen Sie, ob die Wiederherstellung erfolgreich abgeschlossen wurde

4. Configuration.json anpassen

  • Gehen Sie zum dab Nexus-Installationsverzeichnis
  • Bearbeiten Sie Configuration.json
  • Aktualisieren Sie die ApplicationDatabase-Verbindungszeichenfolge:
    • Servername: Auf die neue Instanz ändern
    • Datenbankname: Ändern, falls bei der Wiederherstellung umbenannt
  • Siehe Configuration.json Referenz für Beispiele der Verbindungszeichenfolge

Beispiel für die Aktualisierung der Verbindungszeichenfolge:

"ConnectionStrings": {
"ApplicationDatabase": "Server=NEW-SQL-INSTANCE;Database=NexusHome;Trusted_Connection=True;MultipleActiveResultSets=true"
}

5. dab Nexus-Dienst neu starten

  • Starten Sie den dab Nexus-Dienst
  • Prüfen Sie im Windows-Eventviewer auf eventuelle Startfehler
  • Überprüfen Sie den erfolgreichen Start durch Zugriff auf die dab Nexus-Weboberfläche

Szenario A ist abgeschlossen. Bestehende SQL-Verbindungen und geplante Aufgaben zeigen weiterhin auf die unveränderte Extraction/Results-Instanz. Fahren Sie fort mit der Verifikation nach der Migration.

Szenario B: Zusätzlich Data Databases migrieren

Folgen Sie diesen Schritten nur, wenn Sie auch die Extraction/Results-Datenbanken auf eine neue Instanz verschieben. Führen Sie zuerst Szenario A vollständig aus und machen Sie dann hier weiter.

6. Backup und Wiederherstellung der Data Databases

  • Legen Sie eine vollständige Sicherung jeder Data Database (Extraction/Results) an, während der dab Nexus-Dienst gestoppt ist, um Konsistenz zu gewährleisten
  • Stellen Sie jede Datenbank auf der neuen Ziel-SQL Server-Instanz wieder her
  • Prüfen Sie, ob die Wiederherstellung erfolgreich abgeschlossen wurde

7. Neue SQL-Verbindungen in dab Nexus erstellen

  • Melden Sie sich bei dab Nexus an
  • Navigieren Sie zu Einstellungen > SQL Servers
  • Legen Sie neue SQL-Verbindungen an, die auf Ihre neuen Extraction/Results-Instanzen zeigen
  • Testen Sie jede Verbindung vor dem weiteren Vorgehen

8. Geplante Aufgaben aktualisieren

Überprüfen Sie alle Aufgaben, die SQL-Verbindungen verwenden:

  • Deaktivieren Sie Aufgaben mit der alten SQL-Verbindung (sie würden andernfalls fehlschlagen)
  • Klonen Sie jede betroffene Aufgabe
  • Aktualisieren Sie die SQL-Verbindung in der geklonten Aufgabe auf die neue Verbindung
  • Aktivieren Sie die neue Aufgabe
  • Überprüfen Sie die erfolgreiche Ausführung der Aufgabe
  • Löschen Sie die alte Aufgabe nach erfolgreicher Überprüfung

Hinweis: Löschen Sie alte Aufgaben erst, wenn Sie die Funktion der geklonten Aufgaben bestätigt haben.

Verifikation nach der Migration

  • Führen Sie eine Testextraktion durch, um die Konnektivität zur Extraction-Datenbank zu überprüfen
  • Monitor Aufgabenstatus, um deren korrekte Aktualisierung sicherzustellen
  • Prüfen Sie die SQL Server-Protokolle auf beiden Instanzen bezüglich Verbindungsproblemen
  • Vergewissern Sie sich, dass geplante Aufgaben wie erwartet ausgeführt werden

Fehler bei Verbindungszeitüberschreitungen

Symptome

  • "Connection timeout"-Fehler in dab Nexus-Protokollen
  • Aufgaben schlagen mit Datenbankverbindungsfehlern fehl
  • Sporadische Verbindungsprobleme

Mögliche Ursachen

  1. Netzwerkprobleme zwischen dab Nexus und SQL Server
  2. SQL Server überlastet (Problem der gemeinsamen Instanz)
  3. Firewall blockiert Verbindungen
  4. SQL Server nicht für entfernte Verbindungen konfiguriert

Lösungen

  • Überprüfen Sie die Netzwerkverbindung mit Test-NetConnection oder telnet zum SQL Server-Port (Standard: 1433)
  • Prüfen Sie im SQL Server Configuration Manager, ob die Protokolle aktiviert sind
  • Kontrollieren Sie die Firewallregeln für den SQL Server-Port
  • Ziehen Sie die Migration auf separate Instanzen in Betracht, falls Überlast die Ursache ist

Berechtigungsfehler

Symptome

  • Fehlermeldungen wie "Access denied" oder "permission denied"
  • Datenbanken oder Tabellen können nicht erstellt werden
  • Lese-/Schreiboperationen schlagen fehl

Lösung

Stellen Sie sicher, dass das dab Nexus-Service-Konto über die erforderlichen Berechtigungen verfügt:

  • Application Database: db_owner-Rolle (oder db_datareader, db_datawriter, db_ddladmin)
  • Extraction/Results-Datenbanken: dbcreator-Rolle auf Server-Ebene (für automatische Erstellung) oder db_owner auf vordefinierten Datenbanken

Siehe Setup MS SQL-Server für detaillierte Berechtigungsanforderungen.