Problembeschreibung
Sie versuchen, eine Sicherung verkleinern oder alter Database-Befehl in SQL Server und treten die folgenden Nachrichten:
Msg 3023, Ebene 16, Status 1 Zeile 2
Backup und Datei Bearbeitungsoperationen (z. B. ALTER DATABASE ADD FILE) in einer Datenbank müssen serialisiert werden. Wiederholen Sie die Anweisung nach der aktuellen Sicherung oder Datei Bearbeitung abgeschlossen ist.
Msg 3013, Ebene 16, Status 1, Zeile 1
BACKUP DATABASE wird nicht normal beendet.
Außerdem enthält das SQL Server-Fehlerprotokoll Nachrichten wie folgt:
2014-05-12 01:00:28.05 Backup-Fehler: 3041, Schweregrad: 16, Status: 1.
2014-05-12 01:00:28.05 Fehler Backup BACKUP zum Ausführen des Befehls BACKUP-Datenbank MyDatabase WITH DIFFERENTIAL. Die Sicherung Anwendungsprotokoll für ausführliche Fehlermeldungen.
Sie können auch feststellen, dass diese Befehle Auftreten einer "Wait_type = LCK_M_U" und "Wait_resource = Datenbank: < Id > [BULKOP_BACKUP_DB] " Wenn der Status dieser Befehle aus den verschiedenen dynamische Verwaltungsansichten (DMVs), z. B. dm_exec_requests oder sys.dm_os_waiting_tasksangezeigt.
Ursache
Es gibt einige Regeln auf denen Vorgänge zulässig oder nicht zulässig, wenn eine vollständige Datenbank für eine Datenbank ausgeführt wird. Beispiele sind wie folgt:
-
Nur eine Sicherung kann gleichzeitig ausgeführt werden (Wenn eine vollständige Sicherung wird differenzielle oder inkrementelle Sicherungen können nicht gleichzeitig auftreten).
-
Nur eine Sicherung kann gleichzeitig auftreten (eine Sicherung ist zulässig, wenn eine vollständige Sicherung stattfindet).
-
Sie können nicht hinzufügen oder Löschen von Dateien zu einer Datenbank während eine Sicherung stattfindet.
-
Dateien kann nicht verkleinert werden, während der Datenbank-Backups durchgeführt werden.
-
Gibt beschränkter Recovery Model während Backups auftreten.
Wenn dieser Konflikt Vorgänge ausgeführt werden, treten Befehle Sperre wartet, die im Abschnitt "Symptome" gefolgt von 3023 und 3041 Nachrichten erhalten Sie aufgeführt sind.
Problemlösung
Überprüfen Sie die Zeitpläne der verschiedenen Datenbankwartung und Zeitpläne so angepasst, dass diese Vorgänge oder Befehle nicht miteinander in Konflikt stehen.
Weitere Informationen
SQL Server zeichnet die Startzeit und die Endzeit der Sicherung in der Msdb-Datenbank. Überprüfen Sie den Sicherungsverlauf um festzustellen, ob es eine vollständige Sicherung der Datenbank während eine inkrementelle Sicherung versucht wurde und daher den Fehler verursacht hat. Die folgende Abfrage können Ihnen dabei helfen:
select database_name, type, backup_start_date, backup_finish_date
from msdb.dbo.backupset
order by database_name, type, backup_start_date, backup_finish_date
go
Sie können auch "Benutzer-Fehlermeldung" Ereignis in SQL Profiler Trace oder das Ereignis "Error_reported" im Extended Events verfolgen Berichte 3023 Nachrichten zurück an die Anwendung, die die Sicherung oder andere Wartungsbefehl initiiert.