Datenbankproblemlösung
Dieser Artikel behandelt häufige datenbankbezogene Probleme in dab Nexus und ihre Lösungen.
Inkonsistenzen beim Aufgabenstatus
Symptome
- Aufgaben verbleiben im Status Running, obwohl sie abgeschlossen oder fehlgeschlagen sind
- Der Aufgabenstatus stimmt nicht mit dem tatsächlichen Zustand der Extraktion überein
- Ausführungen zeigen fehlerhafte Abschlusszustände
- Geplante Aufgaben schlagen sporadisch fehl, ohne eindeutige Fehlermeldung
Ursache
Diese Symptome treten in der Regel auf, wenn Application Database und Extraction/Results-Datenbanken dieselbe SQL Server-Instanz teilen. Bei umfangreichen Datenextraktionen ist die SQL Server stark ausgelastet. Dadurch kann:
- Es zu Verbindungszeitüberschreitungen zur Application Database kommen
- Fehlende Schreiboperationen für Aufgabenstatusaktualisierungen auftreten
- Inkonsistente Statusinformationen in der Application Database gespeichert werden
Die Application Database speichert alle Aufgabenstatus und muss jederzeit reaktionsfähig bleiben. Wenn sie mit ressourcenintensiven Extraktionen um Ressourcen konkurriert, leidet die Verbindungsstabilität.
Diagnose
Prüfen Sie Ihre SQL Server-Logs auf:
- Verbindungszeitüberschreitungen
- Deadlock-Warnungen
- Meldungen zu Ressourcen-Konkurrenz
Überprüfen Sie Ihre aktuelle Konfiguration:
- Befinden sich Application Database und Extraction-Datenbanken auf derselben SQL Server-Instanz?
- Tritt das Problem während oder nach großen Extraktionen auf?
Lösung
Migrieren Sie die Application Database auf eine eigene, dedizierte SQL Server-Instanz. Siehe den folgenden Migrationsleitfaden.
Migration der Application Database auf eine separate Instanz
Wenn Sie Inkonsistenzen beim Aufgabenstatus oder Verbindungsprobleme durch eine gemeinsame SQL Server-Instanz feststellen, folgen Sie diesen Schritten, um die Application Database auf eine dedizierte Instanz zu migrieren.
Voraussetzungen
- Neue SQL Server-Instanz bereitgestellt (siehe Systemanforderungen)
- Administrativer Zugriff auf beide SQL Server-Instanzen
- Zugangsdaten für das dab Nexus-Servicekonto
- Ausreichendes Zeitfenster für Downtime während der Migration
Migrationsschritte
1. Backups erstellen
- Erstellen Sie ein vollständiges Backup der Application Database
- Zusätzlich alle Data Databases (Extraction/Results) sichern
- Alle Konfigurationsdaten (Third-Party Services, SAP-Verbindungen, Benutzereinstellungen) werden in der Application Database gespeichert
Überspringen Sie den Backup-Schritt nicht. 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 vollständig gestoppt ist, bevor Sie fortfahren
3. Application Database auf die neue Instanz wiederherstellen
- Stellen Sie das Backup der Application Database auf der neuen dedizierten SQL Server-Instanz wieder her
- Der Datenbankname soll gleich bleiben oder notieren Sie den neuen Namen für die Konfiguration
- Überprüfen Sie, ob die Wiederherstellung erfolgreich abgeschlossen wurde
4. Configuration.json anpassen
- Navigieren Sie zum Installationsverzeichnis von dab Nexus
- Bearbeiten Sie
Configuration.json - Aktualisieren Sie die
ApplicationDatabase-Verbindungszeichenfolge:- Servername: Auf die neue Instanz aktualisieren
- Datenbankname: Bei Umbenennung während der Wiederherstellung anpassen
- Beispiele für Verbindungszeichenfolgen finden Sie unter Configuration.json Referenz
Beispiel zur 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 den Windows Event Viewer auf etwaige Startfehler
- Verifizieren Sie den erfolgreichen Start durch Zugriff auf die dab Nexus-Weboberfläche
6. Neue SQL-Verbindungen in dab Nexus erstellen
- Melden Sie sich bei dab Nexus an
- Navigieren Sie zu Einstellungen > SQL-Server
- Erstellen Sie neue SQL-Verbindungen zu Ihrer Extraction/Results-Instanz
- Testen Sie jede Verbindung, bevor Sie fortfahren
7. Geplante Aufgaben aktualisieren
Überprüfen Sie alle Aufgaben, die SQL-Verbindungen nutzen:
- 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, ob die Aufgabe erfolgreich läuft
- Löschen Sie die alte Aufgabe nach der Überprüfung
Löschen Sie alte Aufgaben erst, nachdem Sie die Funktionsfähigkeit der geklonten Aufgaben bestätigt haben.
Überprüfung nach der Migration
- Führen Sie eine Testextraktion durch, um die Konnektivität zur Extraction-Datenbank zu prüfen
- Monitor Task-Status zur Bestätigung, dass diese korrekt aktualisiert werden
- Prüfen Sie die SQL Server-Logs auf beiden Instanzen auf Verbindungsprobleme
- Stellen Sie sicher, dass geplante Aufgaben wie erwartet ausgeführt werden
Fehler bei Verbindungszeitüberschreitungen
Symptome
- „Connection timeout“-Fehler in dab Nexus-Logs
- Aufgaben schlagen mit Datenbankverbindungsfehlern fehl
- Sporadische Verbindungsprobleme
Mögliche Ursachen
- Netzwerkprobleme zwischen dab Nexus und SQL Server
- SQL Server überlastet (gemeinsames Instanzproblem)
- Firewall blockiert Verbindungen
- SQL Server nicht für Remote-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 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
- „Access denied“- oder „permission denied“-Fehler
- Datenbanken oder Tabellen können nicht erstellt werden
- Schreib- und Leseoperationen schlagen fehl
Lösung
Stellen Sie sicher, dass das dab Nexus-Servicekonto über die erforderlichen Berechtigungen verfügt:
- Application Database:
db_owner-Rolle (oderdb_datareader,db_datawriter,db_ddladmin) - Extraction/Results-Datenbanken:
dbcreator-Rolle auf Serverebene (für automatisches Erstellen) oderdb_ownerauf bereits angelegten Datenbanken
Detaillierte Berechtigungsanforderungen finden Sie unter MS SQL-Server einrichten.