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:
- Verbindungszeitüberschreitungen zur Application Database
- Fehlgeschlagene Schreibvorgänge beim Aktualisieren des Aufgabenstatus
- 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:
| Szenario | Wann verwenden | Schritte |
|---|---|---|
| A – Nur Application Database | Sie 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 Databases | Sie 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
Ü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
- Netzwerkprobleme zwischen dab Nexus und SQL Server
- SQL Server überlastet (Problem der gemeinsamen Instanz)
- Firewall blockiert Verbindungen
- SQL Server nicht für entfernte Verbindungen konfiguriert
Lösungen
- Überprüfen Sie die Netzwerkverbindung mit
Test-NetConnectionodertelnetzum 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 (oderdb_datareader,db_datawriter,db_ddladmin) - Extraction/Results-Datenbanken:
dbcreator-Rolle auf Server-Ebene (für automatische Erstellung) oderdb_ownerauf vordefinierten Datenbanken
Siehe Setup MS SQL-Server für detaillierte Berechtigungsanforderungen.