Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Toto téma vysvětluje, jak obnovit bod selhání. Téma je relevantní pouze pro databáze, které používají úplné nebo hromadně protokolované modely obnovení.
Obnovit do bodu selhání
Zazálohujte konec protokolu spuštěním následujícího základního příkazu BACKUP:
BACKUP LOG <database_name> TO <backup_device> WITH NORECOVERY, NO_TRUNCATE;
Obnovení úplné zálohy databáze spuštěním následujícího základního příkazu RESTORE DATABASE:
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;
Volitelně můžete obnovit rozdílovou zálohu databáze spuštěním následujícího základního příkazu RESTORE DATABASE:
RESTORE DATABASE <database_name> FROM <backup_device> WITH NORECOVERY;
Použijte každý transakční protokol, včetně zálohy tail-log, kterou jste vytvořili v kroku 1, zadáním příkazu RESTORE LOG s volbou NORECOVERY:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;
Obnovte databázi spuštěním následujícího příkazu RESTORE DATABASE:
RESTORE DATABASE <database_name> WITH RECOVERY;
Příklad
Před spuštěním příkladu je nutné provést následující přípravy:
Výchozím modelem obnovení
AdventureWorks2022
databáze je jednoduchý model obnovení. Vzhledem k tomu, že tento model obnovení nepodporuje obnovení do bodu selhání, nastavteAdventureWorks2022
na použití úplného modelu obnovení spuštěním následujícího příkazu ALTER DATABASE:USE master; GO ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;
Vytvořte úplnou zálohu databáze pomocí následujícího příkazu BACKUP:
BACKUP DATABASE AdventureWorks2022 TO DISK = 'C:\AdventureWorks2022_Data.bck';
Vytvoření rutinního zálohování protokolu:
BACKUP LOG AdventureWorks2022 TO DISK = 'C:\AdventureWorks2022_Log.bck';
Následující příklad obnoví zálohy vytvořené dříve po vytvoření zálohy protokolu tail-log AdventureWorks2022
databáze. (Tento krok předpokládá, že disk protokolu je přístupný.)
Nejprve příklad vytvoří zálohu koncového protokolu databáze, která zachytí aktivní protokol a zanechá databázi ve stavu Obnovení. Nejprve tento příklad obnoví zálohu databáze, poté aplikuje dříve vytvořenou rutinní zálohu protokolu a nakonec aplikuje konečnou zálohu protokolu. Nakonec příklad obnoví databázi v samostatném kroku.
Poznámka
Výchozím chováním je obnovení databáze v rámci příkazu, který obnoví konečnou zálohu.
/* Example of restoring a to the point of failure */
-- Step 1: Create a tail-log backup by using WITH NORECOVERY.
BACKUP LOG AdventureWorks2022
TO DISK = 'C:\AdventureWorks2022_Log.bck'
WITH NORECOVERY;
GO
-- Step 2: Restore the full database backup.
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'C:\AdventureWorks2022_Data.bck'
WITH NORECOVERY;
GO
-- Step 3: Restore the first transaction log backup.
RESTORE LOG AdventureWorks2022
FROM DISK = 'C:\AdventureWorks2022_Log.bck'
WITH NORECOVERY;
GO
-- Step 4: Restore the tail-log backup.
RESTORE LOG AdventureWorks2022
FROM DISK = 'C:\AdventureWorks2022_Log.bck'
WITH NORECOVERY;
GO
-- Step 5: Recover the database.
RESTORE DATABASE AdventureWorks2022
WITH RECOVERY;
GO