poniedziałek, 7 października 2013

Odzyskiwanie bazy po awarii - MSSQL 2008 cz.8

Równie ważnym jak tworzenie kopii zapasowych jest ich późniejsze odzyskiwanie w przypadku awarii.

1) Nowy wpis:

Na początku dodajmy do naszej bazy nowy wpis:

USE AdventureWorks2008
GO

INSERT INTO HumanResources.Department (Name, GroupName)
VALUES('Test4', 'Test4')
GO


2) Stopujemy instancję bazy:



3) Kasujemy plik danych:



4) Sprawdzenie działania:

Po ponownym uruchomieniu instancji baza będzie niedostępna dla użytkowników.

5) Odzyskiwanie bazy (pełna+różnicowa):

Przed przystąpieniem do właściwego trybu odzyskiwania bazy, robimy backup dziennika transakcji, który został po usunięciu przez nas pliku danych.

BACKUP LOG AdventureWorks2008
TO DISK = 'c:\Backup\AdventureWorks2008_3.trn'
WITH COMPRESSION, INIT, CHECKSUM, NO_TRUNCATE
GO


Teraz przejdziemy do właściwego procesu odzysku naszej uszkodzonej bazy:

RESTORE DATABASE AdventureWorks2008
FROM ='c:\Backup\AdventureWorks2008_1.bak'
WITH STANDBY = 'c:\Backup\AdventureWorks2008.stn'
GO

W tym momencie powinniśmy mieć dostęp do naszej bazy, jednak dodane nowe wpisy nie będą widoczne Test1-Test4.

W następnym kroku odzyskamy różnicową kopię danych, po tej czynności powinny pojawić się nowe wpisy: Test1-Test3.

RESTORE DATABASE AdventureWorks2008
FROM ='c:\Backup\AdventureWorks2008_1.dif'
WITH STANDBY = 'c:\Backup\AdventureWorks2008.stn'
GO

Na koniec

RESTORE DATABASE AdventureWorks2008
WITH RECOVERY
GO

6) Odzyskiwanie dzienników transakcji:

RESTORE DATABASE AdventureWorks2008
FROM ='c:\Backup\AdventureWorks2008_1.bak'
WITH STANDBY = 'c:\Backup\AdventureWorks2008.stn'
   REPLACE
GO

Przywracanie 1 kopii dziennika transakcji (pojawi się Test1):

RESTORE DATABASE AdventureWorks2008
FROM ='c:\Backup\AdventureWorks2008_1.trn'
WITH STANDBY = 'c:\Backup\AdventureWorks2008.stn'
GO

Pojawi się Test2:

RESTORE DATABASE AdventureWorks2008
FROM ='c:\Backup\AdventureWorks2008_2.trn'
WITH STANDBY = 'c:\Backup\AdventureWorks2008.stn'
GO

Pojawi się Test3 oraz Test4

RESTORE DATABASE AdventureWorks2008
FROM ='c:\Backup\AdventureWorks2008_3.trn'
WITH STANDBY = 'c:\Backup\AdventureWorks2008.stn'
GO

Po wykonaniu poniższego kodu baza będzie dostępna dla użytkowników:

RESTORE DATABASE AdventureWorks2008
WITH RECOVERY
GO



Brak komentarzy:

Prześlij komentarz