none
SQL-Server 2008 Problem bei der Datensicherung RRS feed

  • Frage

  • Hallo NG,

    seit 6 Jahren arbeitet unser SQL-Server 2008 ohne Probleme.

    Auf dem SQL-Server sind 3 Wartungspläne vorhanden:

    wöchentlich (komplett Sicherung)  Sonntags

    täglich (Differenzsicherung) Montags - Freitags

    Transaction alle 15 Minuten.

    Seit 2 Wochen bekomme ich bei der täglichen Sicherung eine Fehlermeldung, das der Server die Komplettsicherung nicht finden kann. Im Protokoll wurde die Komplettsicherung ohne Probleme ausgeführt und im Backupverzeichnis ist Sie auch vorhanden.

    Fehlermeldung:

    Taskbeginn: 2014-12-03T17:19:51.
    Taskende: 2014-12-03T17:19:51.
    Fehler:(-1073548784) Fehler beim Ausführen der Abfrage 'BACKUP DATABASE [TIPBrazil] TO  DISK = N'C:\\Progra...': 'Für die 'TIPBrazil'-Datenbank kann keine differenzielle Sicherung ausgeführt werden, da keine aktuelle Datenbanksicherung vorhanden ist. Führen Sie eine vollständige Datenbanksicherung aus, indem Sie BACKUP DATABASE erneut ausführen, jedoch ohne Angabe von WITH DIFFERENTIAL.
    BACKUP DATABASE wird fehlerbedingt beendet.'. Mögliche Ursachen sind folgende: Probleme bei der Abfrage, nicht richtig festgelegte ResultSet-Eigenschaft, nicht richtig festgelegte Parameter oder nicht richtig hergestellte Verbindung.

    Befehl:EXECUTE master.dbo.xp_create_subdir N''C:\Program Files\Microsoft SQL Server\MSSQL10.TIPSQLSERVER\MSSQL\Backup\TIPBrazil''
    GO
    EXECUTE master.dbo.xp_create_subdir N''C:\Program Files\Microsoft SQL Server\MSSQL10.TIPSQLSERVER\MSSQL\Backup\Test''
    GO
    EXECUTE master.dbo.xp_create_subdir N''C:\Program Files\Microsoft SQL Server\MSSQL10.TIPSQLSERVER\MSSQL\Backup\MantheyHomepage''
    GO
    EXECUTE master.dbo.xp_create_subdir N''C:\Program Files\Microsoft SQL Server\MSSQL10.TIPSQLSERVER\MSSQL\Backup\TipGermany3''
    GO
    EXECUTE master.dbo.xp_create_subdir N''C:\Program Files\Microsoft SQL Server\MSSQL10.TIPSQLSERVER\MSSQL\Backup\TipBrazil3''

    GO
    BACKUP DATABASE [TIPBrazil] TO  DISK = N''C:\Program Files\Microsoft SQL Server\MSSQL10.TIPSQLSERVER\MSSQL\Backup\TIPBrazil\TIPBrazil_backup_2014_12_03_171951_3529949.bak'' WITH  DIFFERENTIAL , NOFORMAT, NOINIT,  NAME = N''TIPBrazil_backup_2014_12_03_171951_3520184'', SKIP, REWIND, NOUNLOAD,  STATS = 10
    GO
    declare @backupSetId as int
    select @backupSetId = position from msdb..backupset where database_name=N''TIPBrazil'' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N''TIPBrazil'' )
    if @backupSetId is null begin raiserror(N''Fehler beim Überprüfen. Sicherungsinformationen für die TIPBrazil-Datenbank wurden nicht gefunden.'', 16, 1) end
    RESTORE VERIFYONLY FROM  DISK = N''C:\Program Files\Microsoft SQL Server\MSSQL10.TIPSQLSERVER\MSSQL\Backup\TIPBrazil\TIPBrazil_backup_2014_12_03_171951_3529949.bak'' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND

    Was kann ich tun, damit der SQL-Server wieder richtig arbeitet?

    Danke im voraus für jeden Hinweis und Tipp.

    Grüße Ingo

    Freitag, 5. Dezember 2014 10:30

Antworten

Alle Antworten

  • Hallo Ingo,

    erstelle eine vollständige Datenbank-Sicherung.

    Eine differentielle Sicherung - die oben versucht wird - funktioniert nur in Verbindung mit einer vollständigen Datenbanksicherung. Du solltest Deine Sicherungspläne überprüfen, damit sicher gestellt ist, dass eine vollständige Sicherung (z. B. einmal die Woche) erstellt wird.

    Gruß Elmar

    Freitag, 5. Dezember 2014 12:16
  • Schau dir mal msdb.dbo.backupset genauer an. Ist hier die Vollsicherung vorhanden? (Type=D)
    Freitag, 5. Dezember 2014 12:21
  • Hallo Elmar,

    danke für die Antwort. Ich habe bereits oben geschrieben das Sonntags eine komplette Datensicherung erfolgt.

    Hier das Protokoll:

    Datum,Quelle,Schweregrad,Planname,Unterplanname,Taskname,Dauer
    11/30/2014 22:09:08,,Erfolg,Wöchentlich,Subplan_1,,00:04:08
    11/30/2014 22:09:07,,Erfolg,,,Task 'Wartungscleanup' (SQL),00:00:01
    11/30/2014 22:09:05,,Erfolg,,,Verlaufscleanup (SQL),00:00:02
    11/30/2014 22:08:29,,Erfolg,,,Index neu organisieren (SQL),00:00:36
    11/30/2014 22:07:22,,Erfolg,,,Index neu erstellen (SQL),00:01:00
    11/30/2014 22:06:21,,Erfolg,,,Statistiken aktualisieren (SQL),00:00:37
    11/30/2014 22:06:15,,Erfolg,,,Datenbank verkleinern (SQL),00:00:01
    11/30/2014 22:05:10,,Erfolg,,,Datenbank sichern (vollständig) (SQL),00:01:05
    11/30/2014 22:05:00,,Erfolg,,,Datenbankintegrität überprüfen (SQL),00:00:09

    Grüße Ingo

    Freitag, 5. Dezember 2014 20:49
  • In select gab folgendes:

    backup_set_id backup_set_uuid media_set_id first_family_number first_media_number last_family_number last_media_number catalog_family_number catalog_media_number position expiration_date software_vendor_id name description user_name software_major_version software_minor_version software_build_version time_zone mtf_minor_version first_lsn last_lsn checkpoint_lsn database_backup_lsn database_creation_date backup_start_date backup_finish_date type sort_order code_page compatibility_level database_version backup_size database_name server_name machine_name flags unicode_locale unicode_compare_style collation_name is_password_protected recovery_model has_bulk_logged_data is_snapshot is_readonly is_single_user has_backup_checksums is_damaged begins_log_chain has_incomplete_metadata is_force_offline is_copy_only first_recovery_fork_guid last_recovery_fork_guid fork_point_lsn database_guid family_guid differential_base_lsn differential_base_guid compressed_backup_size
    589450 28A92645-9F21-4DDA-9631-E7E660DED5DC 589405 1 1 1 1 NULL NULL 1 NULL 4608 NULL NULL NT-AUTORITÄT\SYSTEM 10 0 5500 4 0 7864000000034400048 7864000000036400001 7864000000034400048 7832000000014800037 2013-12-03 19:21:51.000 2014-11-25 03:30:18.000 2014-11-25 03:30:22.000 D 0 0 100 655 50145280 TipBrazil3 SQL SQL 514 1033 196609 Latin1_General_CI_AS 0 FULL 0 1 0 0 0 0 0 0 0 0 3799C010-BFE9-40E4-B9C5-6C0B081BABFC 3799C010-BFE9-40E4-B9C5-6C0B081BABFC NULL 948D5687-5FD3-4C9B-A8C8-F327055091D7 3799C010-BFE9-40E4-B9C5-6C0B081BABFC NULL NULL 50145280

    Da stimmt doch irgend was nicht. Das Protokoll sagt ok.

    Im Verzeichnis  Backup/DBName befindet sich die Datei.
    TipBrazil3_backup_2014_11_30_220510_0051420.bak

    und stimmt mit dem Protokoll überein:

    11/30/2014 22:05:10,,Erfolg,,,Datenbank sichern (vollständig) (SQL),00:01:05

    Grüße Ingo

    Freitag, 5. Dezember 2014 21:04
  • Was ich noch vergessen habe.

    Durch das Problem habe ich einen weiteren Wartungsplan gemacht. Der jetzt täglich eine Komplettsicherung macht.

    Dieser Plan wird auch ausgeführt und trotzdem kommt diese Fehlermeldung bei der Differenzsicherung. Auf dem Server laufen 5 Datenbanken außer denen welche zum SQL - Server gehören.

    Gruß Ingo

    Freitag, 5. Dezember 2014 21:08
  • Ja, "TipBrazil3" ist da. Er meckert aber wegen "TipBrazil"!!

    Schau nochmal genau die Wartungspläne an. Ist da was rausgeflogen?

    Ich kenne deine Abfrage von oben nicht, aber der Datensatz ist eine Vollsicherung von TipBrazil3 an einem Dienstag vor 10 Tagen. Wenn das die letzte ist, stimmt auch da was nicht.
    Mach mal die Abfrage für die Datenbank, die nicht diff. gesichert werden kann.
    • Bearbeitet DevOn99 Freitag, 5. Dezember 2014 21:40
    Freitag, 5. Dezember 2014 21:28
  • Hallo,

    das Protokoll betrifft alle Datenbank außer die Systemdatenbanken.

    Hier das Ergebniss der SQL Abfrage:

    backup_set_id backup_set_uuid media_set_id first_family_number first_media_number last_family_number last_media_number catalog_family_number catalog_media_number position expiration_date software_vendor_id name description user_name software_major_version software_minor_version software_build_version time_zone mtf_minor_version first_lsn last_lsn checkpoint_lsn database_backup_lsn database_creation_date backup_start_date backup_finish_date type sort_order code_page compatibility_level database_version backup_size database_name server_name machine_name flags unicode_locale unicode_compare_style collation_name is_password_protected recovery_model has_bulk_logged_data is_snapshot is_readonly is_single_user has_backup_checksums is_damaged begins_log_chain has_incomplete_metadata is_force_offline is_copy_only first_recovery_fork_guid last_recovery_fork_guid fork_point_lsn database_guid family_guid differential_base_lsn differential_base_guid compressed_backup_size
    579974 497CDBB6-B26E-4B91-A400-9B97BCAA47EB 579929 1 1 1 1 1 1 1 NULL 4608 TIPBrazil-Vollständig Datenbank Sichern NULL ingo 10 0 5500 4 0 18498000000041000037 18498000000042700001 18498000000041000037 18461000000035700037 2010-04-26 18:25:21.000 2014-11-05 15:49:32.000 2014-11-05 15:49:48.000 D 0 0 100 655 180470784 TIPBrazil SQL SQL 512 1033 196609 Latin1_General_CI_AS 0 FULL 0 0 0 0 0 0 0 0 0 0 B4398BE9-2F6C-4DD5-B695-7F4F85D2C144 B4398BE9-2F6C-4DD5-B695-7F4F85D2C144 NULL DD2C5EE7-07AA-4B63-8D75-A8C39399F6C8 BA633923-F4D7-4B13-B71F-704DDA0FBF92 NULL NULL 180470784

    und hier der Dateiname:

    TIPBrazil_backup_2014_11_30_220509_9904930.bak

    Danke für den Hinweis.

    Grüße Ingo

    P.S. Er meckert über jede Datenbank!!


    • Bearbeitet IngoManthey Freitag, 5. Dezember 2014 21:49
    Freitag, 5. Dezember 2014 21:48
  • Diesmal ist das Ergebnis der Abfrage ein Datensatz vom 05.11.

    Ist das die letzte?

    Freitag, 5. Dezember 2014 22:03
  • Hallo,

    backup_set_id backup_set_uuid media_set_id first_family_number first_media_number last_family_number last_media_number catalog_family_number catalog_media_number position expiration_date software_vendor_id name description user_name software_major_version software_minor_version software_build_version time_zone mtf_minor_version first_lsn last_lsn checkpoint_lsn database_backup_lsn database_creation_date backup_start_date backup_finish_date type sort_order code_page compatibility_level database_version backup_size database_name server_name machine_name flags unicode_locale unicode_compare_style collation_name is_password_protected recovery_model has_bulk_logged_data is_snapshot is_readonly is_single_user has_backup_checksums is_damaged begins_log_chain has_incomplete_metadata is_force_offline is_copy_only first_recovery_fork_guid last_recovery_fork_guid fork_point_lsn database_guid family_guid differential_base_lsn differential_base_guid compressed_backup_size
    592284 3176249C-48BA-46BC-AB1D-3A565B36141A 592239 1 1 1 1 1 1 1 NULL 4608 TIPBrazil_backup_2014_11_30_220509_9895164 NULL ingo 10 0 5500 4 0 18650000000004800037 18650000000006400001 18650000000004800037 18650000000001600005 2010-04-26 18:25:21.000 2014-11-30 22:05:10.000 2014-11-30 22:05:35.000 D 0 0 100 655 180469760 TIPBrazil SQL SQL 512 1033 196609 Latin1_General_CI_AS 0 FULL 0 0 0 0 0 0 0 0 0 0 B4398BE9-2F6C-4DD5-B695-7F4F85D2C144 B4398BE9-2F6C-4DD5-B695-7F4F85D2C144 NULL DD2C5EE7-07AA-4B63-8D75-A8C39399F6C8 BA633923-F4D7-4B13-B71F-704DDA0FBF92 NULL NULL 180469760

    Hier ist der Eintrag der Sicherung vom letzten Sonntag.

    Grüße Ingo

    Freitag, 5. Dezember 2014 22:13

  • Ok. Zur Sicherheit kannst du ja nochmal gucken, welche denn die letzte Vollsicherung ist, die vorhanden sein sollte (Dateiname):

    select * from msdb..backupset where database_name=N''TIPBrazil'' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N''TIPBrazil'' )

    Außerdem würde ich mal eine Wiederherstellung aus der Datei versuchen (nicht wirklich durchführen). Dann sieht man, welche Backups da wirklich drin sind.

    Nebenbei: Bei 2005 gab es mal ein ähnliches Problem, aber halt 2005:

    http://support.microsoft.com/kb/921106/

    Freitag, 5. Dezember 2014 22:37
  • Ach ja. Gibt es evtl. eine Backup Software, die ja reinspielt. Dann wäre das Verhalten typisch. Wenn Backups gemacht werden, von denen SQL nichts weiß können keine diff. Sicherungen mehr gemacht werden.

    Mit Abfragen auf master.sys.master_files müsste man das ggf. sehen (differential_base_time).

    • Bearbeitet DevOn99 Freitag, 5. Dezember 2014 23:47
    Freitag, 5. Dezember 2014 22:45
  • Hallo Ingo,

    mach mal in SSMS einen Rechte-Maus Klick auf die Datenbank "TIPBrazil" => Tasks => Restore => Database, dort wird Dir sofort die letzte vollständige Sicherungskette (Backup Chain) angezigt, sofern es eine gibt. Was bekommst Du dort zu sehen. 


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Sonntag, 7. Dezember 2014 13:52
  • Hallo,

    als erster Eintrag steht Vollständig aber die Spate des Dateinamen hat keinen Inhalt.

    Grüße Ingo

    Montag, 8. Dezember 2014 10:37
  • Wie wird der Server denn sonst gesichert? Falls eine Sicherungssoftware ein Backup der DB zieht und SQL das mitbekommt, könnte dies das letzte Voll-Backup auf das SQL dann aber keinen Zugriff hat.
    Montag, 8. Dezember 2014 21:57
  • Falls eine Sicherungssoftware ein Backup der DB zieht und SQL das mitbekommt, ..

    Der SQL Server bekommt immer alle Sicherungsvorgänge mit, es ist nicht möglich Sicherungen am SQL Server vorbei durchzuführen. Externe Backup Programme verwenden die VDI Schnittstelle des SQL Server, also auch die Sicherungen werden protokolliert.

    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Dienstag, 9. Dezember 2014 08:26
  • Ja, SQL Server bekommt das mit, wenn er läuft.

    Backups können, anstatt mit VDI auch mit VSS gemacht werden.

    Wie dem auch sei, es kann dabei zu den von Ingo beschriebenen Problemen kommen:

    https://support.microsoft.com/kb/903643/en-us

    http://serverfault.com/questions/147459/cannot-perform-a-differential-backup-for-database-mydb-because-a-current-dat 

    • Als Antwort markiert IngoManthey Dienstag, 9. Dezember 2014 21:15
    • Tag als Antwort aufgehoben IngoManthey Dienstag, 9. Dezember 2014 21:17
    • Als Antwort markiert IngoManthey Dienstag, 9. Dezember 2014 21:17
    Dienstag, 9. Dezember 2014 19:18
  • Hallo,

    danke.

    Das werde ich mal den dortigen Administrator darauf hinweisen. Ich denke der sichert den Hyper V als Image oder so. Ich habe dort keine weiteren Zugriffe auf das System.

    Grüße Ingo

    Dienstag, 9. Dezember 2014 21:17