Wie kann ich das Problem beheben, dass keine differenzielle Sicherung durchgeführt werden kann? Eine aktuelle Datenbanksicherung ist nicht vorhanden.

9

Wir haben kürzlich auf das FULLWiederherstellungsmodell umgestellt, wobei jedes Wochenende vollständige Sicherungen durchgeführt und jeden Tag Differentiale erstellt werden.

Das Problem ist, dass die differenziellen Sicherungen nicht immer zu funktionieren scheinen. Die im Auftragsverlauf aufgezeichnete Fehlermeldung lautet

Als Benutzer ausgeführt: Benutzername. ... 9.00.3042.00 für 32-Bit-Copyright (C) Microsoft Corp 1984-2005. Alle Rechte vorbehalten.
Gestartet: 11:20:12 Fortschritt: 2013-01-25 11: 20: 13.90 Quelle: {450389BA-54C2-4892-9CD0-0126CA9B0ED8} Abfrage "DECLARE @Guid UNIQUEIDENTIFIER EXECUTE msdb..sp" ausführen: 100% complete End Progress Error: 2013-01-25 11: 20: 14.40 Code: 0xC002F210
Quelle : Backup Database (Differential) SQL
ausführen Task Beschreibung: Ausführen der Abfrage "BACKUP DATABASE [MyDatabase] TO DISK = N'E: \ Database Backups \ MyDatabase_backup_201301251120.diff 'MIT DIFFERENTIAL, NOFORMAT, NOINIT, NAME = N'MyDatabase_backup_20130125112014', SKIP, REWIND, NOUNLOAD, STATS = 10 "ist mit dem folgenden Fehler fehlgeschlagen:"Eine differenzielle Sicherung für die Datenbank" MyDatabase "kann nicht durchgeführt werden, da keine aktuelle Datenbanksicherung vorhanden ist. Führen Sie eine vollständige Datenbanksicherung durch, indem Sie BACKUP DATABASE erneut ausgeben und die Option WITH DIFFERENTIAL weglassen. BA ... Die Paketausführung fa ... Der Schritt gescheitert.

Der vollständige Sicherungsjob wird jedes Mal erfolgreich abgeschlossen, und ich kann ihn msdb.dbo.backupsetmithilfe der hier gefundenen Abfrage anzeigen , sodass ich weiß, dass er vorhanden ist. Und es sieht aus wie nach einem Neustart, der differentielle Backup tut erfolgreich abgeschlossen wird bis zur nächsten vollständigen Sicherung.

Hier ist ein Blick auf meine berufliche Laufbahn:

1/16 - Vollständige Sicherung - Erfolg
1/17 - Differenzielle Sicherung - Erfolg
1/18 - Differential Backup - Erfolg
1/19 - Differential Backup - Erfolgreich
1/20 - Vollständige Sicherung - Erfolg
1/21 - Differenzielle Sicherung - Fehler
1/21 - Differenzielle Sicherung - Fehler
1/22 - Vollständige Sicherung - Erfolg
1/22 - Differenzielle Sicherung - Fehler
1/22 - Neustart
1/23 - Differential Backup - Erfolgreich
1/23 - Neustart
1/24 - Differenzielle Sicherung - Erfolg
1/25 - Vollständige Sicherung - Erfolgreich
1/25 - Differenzielle Sicherung - Fehler

Die Neustarts waren aufgrund eines nicht verwandten Fehler wo @@SERVERNAMEwar null, so hielt off ich diese Frage veröffentlichen , bis ich herausgefunden , ob die Festsetzung @@SERVERNAMEdas Problem behoben, aber es kam nicht und jetzt habe ich keine Ahnung , wo ich anfangen soll .

Was kann dazu führen, dass SQL Server eine vollständige Sicherung für eine Datenbank nicht erkennt, und wie kann ich das Problem beheben?

Ich bin mir auch nicht sicher, ob dies damit zusammenhängt, aber die differenziellen Sicherungen scheinen ziemlich groß zu sein, und ich frage mich, ob sie das Differential von der vollständigen Datenbanksicherung ausführen, die am Anfang (am 16. Januar) statt von den meisten erstellt wurde letzte vollständige Sicherung. Die vollständigen Backups umfassen ca. 260 GB, und die Unterschiede zwischen 1 / 23-1 / 24 betragen jeweils 30 GB.

Die Jobs wurden mit dem SQL Server-Wartungsplan-Assistenten eingerichtet, und ich verwende SQL Server 2005

Die Schaltfläche [View T-SQL] für den Wartungsplan gibt diesen Code zurück:

Vollständige Sicherung:

BACKUP DATABASE [MyDatabase] 
TO DISK = N'E:\Database Backups\MyDatabase_backup_2013_01_25_140607_2543780.bak' 
WITH NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD, STATS = 10, 
    NAME = N'MyDatabase_backup_2013_01_25_140607_2523778'

Differential:

BACKUP DATABASE [MyDatabase] 
TO DISK = N'E:\Database Backups\MyDatabase_backup_2013_01_25_140537_4073936.diff' 
WITH DIFFERENTIAL, NOFORMAT, NOINIT, SKIP, REWIND, NOUNLOAD,  STATS = 10, 
    NAME = N'MyDatabase_backup_2013_01_25_140537_4053934'

Dies hängt sehr eng mit einer anderen Frage zusammen, die ich habe. Im Chat wurde jedoch vorgeschlagen, eine neue Frage zu posten, anstatt die andere zu bearbeiten, da die Fragen unterschiedlich sind und die Antworten auf die andere Frage vorhanden sind.

Rachel
quelle
Mein erster Gedanke ist, dass es einen SAN- oder VM-Snapshot gab, der dies verursacht. Dies erklärt jedoch nicht, warum am 1 / 22-1 / 23 der erste Diff nach dem Full fehlgeschlagen ist und der nächste ohne andere Full erfolgreich war. Stört es Sie, das noch einmal zu überprüfen, weil ich erwarten würde, dass ein neues voll genommen werden muss, damit die Dinge wieder funktionieren?
Cfradenburg
@cfradenburg Ich habe die Jobhistorie noch einmal überprüft, und das ist richtig. Der vollständige Sicherungsjob war am 22. Januar um 12:30 Uhr erfolgreich. Ich habe den Differentialjob am nächsten Morgen um 8:26 Uhr manuell ausgeführt und er ist fehlgeschlagen. Wir haben den Server in dieser Nacht neu gestartet, und das Differential am nächsten Morgen um 12:30 Uhr war erfolgreich. Ich denke, unser Netzwerkadministrator hat in letzter Zeit einige Dinge mit VM gemacht. Wie würde sich das auswirken?
Rachel
1
Können Sie versuchen, das Skript hier auszuführen, um
festzustellen,
1
Nach dieser Antwort auf SF scheint VSS Probleme zu verursachen. Alle auftretenden SAN / VM-Sicherungen können Probleme verursachen.
Swasheck
1
Eine weitere SF-Frage zur Überprüfung: serverfault.com/questions/147459/…

Antworten:

6

Wenn hinter den Kulissen ein Snapshot erstellt wird, der SQL-Differential-Backups unterbricht und dazu führt, dass vor einem neuen Differential ein vollständiges Backup erstellt werden muss. Sie können entweder den Snapshot stoppen oder sicherstellen, dass Sie anschließend eine vollständige Sicherung erstellen, bevor Sie versuchen, ein Differential zu erstellen. Wenn Sie die Wartungslösung von Ola Hallengren verwenden, kann ein Diff automatisch in ein volles geändert werden, wenn es auf dieses Szenario stößt.

cfradenburg
quelle