Pulihkan Database ke Titik Kegagalan - Pemulihan Penuh

Berlaku untuk:SQL Server

Topik ini menjelaskan cara memulihkan ke titik kegagalan. Topik ini hanya relevan untuk database yang menggunakan model pemulihan penuh atau dicatat secara massal.

Untuk memulihkan ke titik kegagalan

  1. Cadangkan ekor log dengan menjalankan pernyataan BACKUP dasar berikut:

    BACKUP LOG <database_name> TO <backup_device>   
       WITH NORECOVERY, NO_TRUNCATE;  
    
  2. Pulihkan cadangan database lengkap dengan menjalankan pernyataan RESTORE DATABASE dasar berikut:

    RESTORE DATABASE <database_name> FROM <backup_device>   
       WITH NORECOVERY;  
    
  3. Secara opsional, pulihkan cadangan database diferensial dengan menjalankan pernyataan RESTORE DATABASE dasar berikut:

    RESTORE DATABASE <database_name> FROM <backup_device>   
       WITH NORECOVERY;  
    
  4. Terapkan setiap log transaksi, termasuk cadangan log ekor yang Anda buat di langkah 1, dengan menentukan WITH NORECOVERY dalam pernyataan RESTORE LOG:

    RESTORE LOG <database_name> FROM <backup_device>   
       WITH NORECOVERY;  
    
  5. Pulihkan database dengan menjalankan pernyataan RESTORE DATABASE berikut:

    RESTORE DATABASE <database_name>   
       WITH RECOVERY;  
    

Contoh

Sebelum dapat menjalankan contoh, Anda harus menyelesaikan persiapan berikut:

  1. Model AdventureWorks2022 pemulihan default database adalah model pemulihan sederhana. Karena model pemulihan ini tidak mendukung pemulihan ke titik kegagalan, atur AdventureWorks2022 untuk menggunakan model pemulihan penuh dengan menjalankan pernyataan ALTER DATABASE berikut:

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;  
    
  2. Buat database lengkap kembali database dengan menggunakan pernyataan BACKUP berikut:

    BACKUP DATABASE AdventureWorks2022 TO DISK = 'C:\AdventureWorks2022_Data.bck';  
    
  3. Buat cadangan log rutin:

    BACKUP LOG AdventureWorks2022 TO DISK = 'C:\AdventureWorks2022_Log.bck';  
    

Contoh berikut memulihkan cadangan yang dibuat sebelumnya, setelah membuat cadangan AdventureWorks2022 log ekor database. (Langkah ini mengasumsikan bahwa disk log dapat diakses.)

Pertama, contoh membuat cadangan log ekor database yang mengambil log aktif dan meninggalkan database dalam status Pemulihan. Kemudian, contoh memulihkan cadangan database, menerapkan cadangan log rutin yang dibuat sebelumnya, dan menerapkan cadangan tail-log. Terakhir, contoh memulihkan database dalam langkah terpisah.

Catatan

Perilaku default adalah memulihkan database sebagai bagian dari pernyataan yang memulihkan cadangan akhir.

/* 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  

Lihat Juga

BACKUP (Transact-SQL)
RESTORE (Transact-SQL)