Udostępnij za pośrednictwem


Przykład: Częściowe przywracanie bazy danych (pełny model odzyskiwania danych)

Dotyczy:SQL Server

Sekwencja przywracania fragmentacyjnego przywraca i odzyskuje bazę danych w etapach na poziomie grupy plików, począwszy od podstawowej i wszystkich grup plików do odczytu i zapisu pomocniczego.

W tym przykładzie baza danych adb zostanie przywrócona do nowego komputera po awarii. Baza danych korzysta z pełnego modelu odzyskiwania; dlatego przed rozpoczęciem przywracania należy wykonać kopię zapasową dziennika końcowego bazy danych. Przed awarią wszystkie grupy plików są w trybie online. Grupa plików B jest tylko do odczytu. Wszystkie pomocnicze grupy plików muszą zostać przywrócone, ale są przywracane w kolejności ważności: A (najwyższa), C, i na koniec B. W tym przykładzie istnieją cztery kopie zapasowe dzienników, w tym kopia zapasowa dziennika tail-log.

Archiwizacja Tail-Log

Przed przywróceniem bazy danych administrator bazy danych musi utworzyć kopię zapasową końca dziennika. Ponieważ baza danych jest uszkodzona, utworzenie kopii zapasowej dziennika końcowego wymaga użycia opcji NO_TRUNCATE.

BACKUP LOG adb TO tailLogBackup WITH NORECOVERY, NO_TRUNCATE  

Kopia zapasowa dziennika końcowego to ostatnia kopia zapasowa, która jest stosowana w następujących sekwencjach przywracania.

Przywracanie sekwencji

Uwaga / Notatka

Składnia sekwencji przywracania w trybie online jest taka sama jak w przypadku sekwencji przywracania w trybie offline.

  1. Częściowe przywracanie podstawowej i pomocniczej grupy Aplików .

    RESTORE DATABASE adb FILEGROUP='Primary' FROM backup1   
       WITH PARTIAL, NORECOVERY  
    RESTORE DATABASE adb FILEGROUP='A' FROM backup2   
       WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup3 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup4 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup5 WITH NORECOVERY  
    RESTORE LOG adb FROM tailLogBackup WITH RECOVERY  
    
  2. Przywracanie w trybie online grupy Cplików .

    W tym momencie podstawowa grupa plików i pomocnicza grupa A plików są w trybie online. Wszystkie pliki w grupach B plików i C oczekują na odzyskiwanie, a grupy plików są w trybie offline.

    Komunikaty z ostatniej RESTORE LOG instrukcji w kroku 1 wskazują, że wycofanie transakcji obejmujących grupę C plików zostało odroczone, ponieważ ta grupa plików nie jest dostępna. Zwykłe operacje mogą być kontynuowane, ale blokady są utrzymywane przez te transakcje i skracanie dziennika nie nastąpi, dopóki wycofywanie nie zostanie zakończone.

    W drugiej sekwencji przywracania administrator bazy danych przywraca grupę Cplików :

    RESTORE DATABASE adb FILEGROUP='C' FROM backup2a WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup3 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup4 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup5 WITH NORECOVERY  
    RESTORE LOG adb FROM tailLogBackup WITH RECOVERY  
    

    W tym momencie podstawowe i grupy plików A oraz C są w trybie online. Pliki w grupie B plików pozostają oczekujące na odzyskiwanie, a grupa plików jest w trybie offline. Transakcje odroczone zostały rozwiązane, a dziennik jest przycinany.

  3. Przywracanie w trybie online grupy Bplików .

W trzeciej sekwencji przywracania administrator bazy danych przywraca grupę Bplików . Kopia zapasowa grupy plików B została wykonana po tym, jak grupa plików stała się tylko do odczytu, dlatego nie wymaga przywracania podczas odzyskiwania.

RESTORE DATABASE adb FILEGROUP='B' FROM backup2b WITH RECOVERY  

Wszystkie grupy plików są teraz w trybie online.

Dodatkowe przykłady

Zobacz też

Kopia zapasowa (Transact-SQL)
Przywracanie online (SQL Server)
stosowanie kopii zapasowych dziennika transakcji (SQL Server)
PRZYWRÓĆ (Transact-SQL)
Przywracanie fragmentów (SQL Server)