lukin 10 Geschrieben 6. September 2010 Melden Teilen Geschrieben 6. September 2010 Hallo! Normalerweise führe ich die Point in Time Wiederherstellung einer SQL Datenbank wie folgt durch: - Tail-Log Backup durchführen (Sicherung des aktuellen Transaktionsprotokolls) - Letztes Datenbankbackup mit WITH NORECOVERY wiederherstellen - Erforderliche Transaktionslogs bis zum gewünschten Zeitpunkt wiederherstellen Im MSDN ist unter How to: Restore to a Point in Time (SQL Server Management Studio) allerdings auch die Rede von einem Point in Time Restore nur über die Datenbankwiederherstellung. Ich habe das mal wie folgt getestet: - Vollständiges Backup der Datenbank um 10:30 - Daten um 10:45 geändert - Daten um 10:50 geändert - Backup des Transaktionslog um 10:55 - Datenbank wiederhergestellt und dabei einen Zeitpunkt von 10:47 ausgewählt Merkwürdigerweise wird in diesem Fall aber nicht der Stand von 10:47 (mit den von 10:45 geänderten Daten) wiederhergestellt, sondern nur der letzte von 10:50. Datenbank überschreiben ist aktiviert. Führe ich die Wiederherstellung dagegen manuell so wie oben beschrieben aus (also erst DB mit WITH NO RECOVERY, dann Transaktionslogs), funktioniert es richtig und ich bekomme die Daten von 10:45 wieder. Müsste mit dem von Microsoft im MSDN beschriebenen Weg nicht auch ein Point in Time Restore möglich sein? Oder mache ich hier einen Denkfehler? Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 6. September 2010 Melden Teilen Geschrieben 6. September 2010 Hallo Im MSDN ist unter How to: Restore to a Point in Time (SQL Server Management Studio) allerdings auch die Rede von einem Point in Time Restore nur über die Datenbankwiederherstellung. Mag sein das mich meine Augen trügen, aber wo genau finde ich die Aussage in dem von dir verlinkten Artikel? Gruß Zitieren Link zu diesem Kommentar
lukin 10 Geschrieben 6. September 2010 Autor Melden Teilen Geschrieben 6. September 2010 Es heißt dort "To restore to a point in time". Vom Wiederherstellen der DB mit WITH NORECOVERY und dem anschließenden Restore von Logs sehe ich da nichts (natürlich ist das in einem anderen Bereich auch beschrieben, aber eben nicht in diesem Artikel). Vielleicht ist der Artikel nur missverständlich geschrieben. Abers es muss ja auch einen Grund geben, warum man im Assistenten zur Wiederherstellung einer Datenbank auch einen genauen Zeitpunkt angeben kann. Deshalb und aufgrund des Artikels gehe ich davon aus, dass die Wiederherstellung inkl. Rollforward anhand der Logs bis zum gewünschten Zeitpunkt automatisch passiert. Und so ist es ja auch: Allerdings findet die Wiederherstellung des Logfiles immer bis zum letztmöglichen Zeitpunkt statt. To restore to a point in time -------------------------------------------------------------------------------- 1.After you connect to the appropriate instance of the Microsoft SQL Server Database Engine, in Object Explorer, click the server name to expand the server tree. 2.Expand Databases. Depending on the database, either select a user database or expand System Databases, and then select a system database. 3.Right-click the database, point to Tasks, and then click Restore. 4.Depending on whether you are restoring data backups or just transaction logs (for a database that is already in the restoring state), click either Database or Transaction Log. 5.On the General page, the name of the restoring database appears in the To database list box. To create a new database, enter its name in the list box. 6.The location of the point-in-time option depends on whether you are restoring data backups or just transaction log backups: ◦Restore Database: The To a point in time option is in the Destination for restore section. ◦Restore Transaction Log: The Point in time option is in the Restore to section. 7.The default point in time is Most recent possible. To select a specific date and time, click the (...) browse button. 8.In the Point in Time Restore dialog box, click A specific date and time. 1.In the Date list box, enter or select a date. 2.In the Time list box, enter or select a time. 9.To specify the source and location of the backup sets to restore, click one of the following options: ◦From database Enter a database name in the list box. ◦From device Click the (...) browse button. In the Specify Backup dialog box, select one of the listed device types in the Backup media list box. To select one or more devices for the Backup location list box, click Add. After you add the devices you want to the Backup location list box, click OK to return to the General page. 10.After you have specified a specific point in time, only the backups that are required to restore to that point in time are selected in the Restore column of the Select the backup sets to restore grid. These selected backups make up the recommended restore plan for your point-in-time restore. You should use only the selected backups for your point-in-time restore operation. For information about the columns in the Select the backup sets to restore grid, see Restore Database (General Page). 11.To view or select the advanced options, click Options in the Select a pagepane. 12.In the Restore options panel, you can choose any of the following options, if appropriate for your situation: [...] 13.Optionally, you can restore the database to a new location by specifying a new restore destination for each file in the Restore the database files as grid. For more information about this grid, see Restore Database (Options Page). 14.The Recovery state panel determines the state of the database after the restore operation. The default behavior is: ◦Leave the database ready for use by rolling back the uncommitted transactions. Additional transaction logs cannot be restored. (RESTORE WITH RECOVERY) Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 7. September 2010 Melden Teilen Geschrieben 7. September 2010 (bearbeitet) Abers es muss ja auch einen Grund geben, warum man im Assistenten zur Wiederherstellung einer Datenbank auch einen genauen Zeitpunkt angeben kann. Deshalb und aufgrund des Artikels gehe ich davon aus, dass die Wiederherstellung inkl. Rollforward anhand der Logs bis zum gewünschten Zeitpunkt automatisch passiert. Und so ist es ja auch: Allerdings findet die Wiederherstellung des Logfiles immer bis zum letztmöglichen Zeitpunkt statt. Wofür gibts du denn den Wiederherstellungszeitpunkt an? Für die Datenbank oder für das Logfile? Das Thema hat übrigens auch (falsch und alt: Frank Kalis) Christoph Muthmann mal sehr eingehend beleuchtet in einem meiner Meinung nach sehr guten Artikel: Sichern und Wiederherstellen von Datenbanken Gruß bearbeitet 7. September 2010 von phoenixcp Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 7. September 2010 Melden Teilen Geschrieben 7. September 2010 Moin, Frank Kalis Off-Topic:der schreibt dort zwar auch, aber der Artikel ist von Christoph Muthmann. Gruß, Nils Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 7. September 2010 Melden Teilen Geschrieben 7. September 2010 Moin, Off-Topic:der schreibt dort zwar auch, aber der Artikel ist von Christoph Muthmann. Gruß, Nils Oh mein Gott. Mein Fehler, natürlich, du hast völlig recht Nils. Wie konnte das denn passieren? Ich revidiere mich ehrfürchtig und benenne Christoph Muthmann als den Autoren des Artikels. Zitieren Link zu diesem Kommentar
lukin 10 Geschrieben 7. September 2010 Autor Melden Teilen Geschrieben 7. September 2010 (bearbeitet) Wofür gibts du denn den Wiederherstellungszeitpunkt an? Für die Datenbank oder für das Logfile? Für die Datenbank. Es geht doch die ganze Zeit um die Point in Time Wiederherstellung beim Restore einer Datenbank. Noch mal: - Ich habe z.B. ein Datenbankbackup von 10:30 Uhr und ein Transaktionslog Backup von 11:00 Uhr - Ich rufe den Assistent zur Datenbankwiederherstellung auf - Ich gebe einen exakten Zeitpunkt an, zu dem die Datenbank wiederhergestellt werden soll, z.B. 10:45 Uhr. - Die Datenbanksicherung und das Transaktionslog werden automatisch ausgewählt - Ich starte die Wiederherstellung (mit WITH RECOVERY) Während der Wiederherstellung sehe ich, dass die Datenbank kurz in den Status "Wird wiederhergestellt" wird. Es sieht also für mich wie folgt aus: - Datenbank wird zuerst automatisch mit WITH NORECOVERY wiederhergestellt - Transaktionslog wird wiederhergestellt - Datenbank wird wieder online gebracht Das ist also quasi der normale Vorgang (erst DB Backup wiederherstellen mit WITH NORECOVERY, dann die Logs wiederherstellen) in automatisch. Und so verstehe ich den Artikel auch. Das Problem ist nur folgendes: - Egal welchen Zeitpunkt ich angebe, es wird immer bis zum letzten Stand wiederhergestellt. In diesem Fall also bis 11:00 Uhr und nicht 10:45 Uhr. bearbeitet 7. September 2010 von lukin Zitieren Link zu diesem Kommentar
tosc 10 Geschrieben 7. September 2010 Melden Teilen Geschrieben 7. September 2010 Hallo Lukin, entscheidend ist die STOPAT Klausel (wenn Du deine Sicherung über die GUI wiederherstelltst klick doch mal auf den Script-Button!) Mit TSQL geht es besser! Vorgehensweise: Wiederherstellen bis zu einem bestimmten Zeitpunkt (Transact-SQL) Zitieren Link zu diesem Kommentar
lukin 10 Geschrieben 8. September 2010 Autor Melden Teilen Geschrieben 8. September 2010 Hi, ich habe die Frage auch noch in einem englischsprachigen Forum gestellt und dort kann jemand mein Problem reproduzieren: Question about Point in Time Restore through Management Studio Vielleicht kann es hier ebenfalls mal jemand testen? Danke Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 8. September 2010 Melden Teilen Geschrieben 8. September 2010 Hi, ich habe die Frage auch noch in einem englischsprachigen Forum gestellt und dort kann jemand mein Problem reproduzieren: Question about Point in Time Restore through Management Studio Vielleicht kann es hier ebenfalls mal jemand testen? Danke Dazu wäre es ganz spannend wenn du uns noch ein paar Rahmenparameter wie SQL Server Version, Patchset, etc. mitteilen könntest. ;) Zitieren Link zu diesem Kommentar
lukin 10 Geschrieben 9. September 2010 Autor Melden Teilen Geschrieben 9. September 2010 Ahh, das hatte ich in der Tat vergessen. Es ist ein SQL Server 2008 ohne SP1 und kumulative Update-Pakete. In den Release Notes von SP1 und dem Post SP1 Update habe ich bzgl. der Situation nichts gefunden. Updaten kann ich momentan nicht, da sich das System in Produktion befindet. Vielleicht könnte es also mal jemand testen - dauert ja maximal 5 Minuten. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.