[ Pobierz całość w formacie PDF ]
.n][WITH[BLOCKSIZE = {blocksize | @blocksize_variable}][[,] DESCRIPTION = {text | @text_variable}][[,] EXPIREDATE = {date | @date_var}| RETAINDAYS = {days | @days_var}][[,] PASSWORD = {pwd | @pwd_var}[[,] FORMAT | NOFORMAT][[,] {INIT | NOINIT}][[,] MEDIADESCRIPTION = {text | @text_variable}][[,] MEDIANAME = {media_name | @media_name_variable}][[,] MEDIAPASSWORD = {mediapwd | @mediapwd}][[,] [NAME = {backup_set_name | @backup_set_name_var}][[,] NO_TRUNCATE][[,] {NOSKIP | SKIP}][[,] {NOUNLOAD | UNLOAD}][[,] {NOREWIND | REWIND}][[,] [RESTART][[,] STATS [= percentage]]W tej składni większość opcje zostało omówionych, z wyjątkiem następujących:lParametry TRUNCATE_ONLY i NO_LOG są identyczne.Usuwają one wykonane (zakończone) transakcje z dziennika ale nie robią kopii wpisów.Przykładowo, po wykonaniu kopii bezpieczeństwa bazy, w której były wykonywane nie rejestrowane operacje, dziennik transakcji jest przydatny.Można uruchomić polecenie BACKUP LOG WITH TRUNCATE_ONLY, a następnie utworzyć pełną kopię bezpieczeństwa bazy danych.Okrojenie dziennika transakcji jest rejestrowaną operacją samą w sobie.Warto również zauważyć, że opcja ta wykonuje faktycznie archiwizację, ale nazwa nośnika archiwizacyjnego jest nie potrzebna.Oczywiście, jeżeli chce się wykonywać tę operację należy przełączyć bazę danych w tryb odzyskiwania SIMPLE.llNO_TRUNCATE wykonuje kopię bezpieczeństwa dziennika transakcji (tak jak polecenie BACKUP LOG bez żadnych specjalnych opcji).Jednak, opcja ta wykonuje działanie, którego nie wykonuje zwykłe tworzenie kopii: może utworzyć kopię dziennika transakcji nawet jeśli baza danych jest włączona (dostępna).Można przyjąć, że w bazie danych jest plik danych na jednym fizycznym dysku i dziennik transakcji na osobnym dysku.Jeżeli plik danych został z jakiegoś powodu uszkodzony, można uruchomić polecenie BACKUP LOG z opcją NO_TRUNCATE aby zachować wszystkie transakcje, które wystąpiły od czasu tworzenia ostatniej kopii dziennika transakcji.Tym sposobem, można odtworzyć bazę danych do punktu w czasie, w którym nastąpiło uszkodzenie dysku.lMożna utworzyć kopię dziennika transakcji bazy danych jedynie w przypadku, gdy wcześniej została wykonana pełna kopia bazy danych.Nie można wykonać kopii dziennika transakcji jeżeli ustawione są opcje Truncate Log On Checkpoint lub Select Into/Bulkcopy Database.Kopie dziennika transakcji są sekwencjami kopii bezpieczeństwa.W przypadku tych kopii, podobnie jak w przypadku kopii różnicowych, nie pojawia się żadne duplikowanie danych pomiędzy poszczególnymi kolejnymi kopiami dziennika transakcji.Kiedy zachodzi konieczność odtwarzania dzienników transakcji, potrzeba do tego wszystkich kopii utworzonych od czasu wykonania ostatniej pełnej kopii bazy danych.Kolejny rozdział prezentuje szczegóły odtwarzania bazy danych przy pomocy dzienników transakcji.Jak często należy wykonywać kopie dziennika transakcji? Typowy scenariusz może wyglądać tak (dla bazy danych używanej głównie w godzinach pracy):6:00 a.m.Wykonanie codziennej pełnej kopii bazy danych z opcją FORMAT6:05 a.m.Utworzenie kopii dziennika transakcji z opcją FORMAT10:00 a.m.Ponownie utworzenie kopii dziennika transakcji (NOINIT)12:00 p.m.Wykonanie różnicowej kopii bazy danych (NOINIT)2:00 p.m.Kolejne utworzenie kopii dziennika transakcji (NOINIT)6:00 p.m.Kolejne utworzenie kopii dziennika transakcji (NOINIT)8:00 p.m.Wykonanie różnicowej kopii bazy danych (NOINIT)10:00 p.m.Kolejne utworzenie kopii dziennika transakcji (ostatni raz)Ten skrypt będzie wyglądał podobnie jak przedstawiony w wydruku 7.1 dla bazy danych pubs.Oczywiście, założeniem jest, że baza jest w trybie Full recovery.Domyślnie baza danych pubs jest w trybie odtwarzania SIMPLE.Jeżeli jest ustawiony ten tryb, nie można wykonać kopii bezpieczeństwa dziennika transakcji.Aby wykonać kod przedstawiony w wydruku 7.1 należy przestawić bazę danych w tryb FULL przy pomocy polecenia: Alter Database pubs SET RECOVERY FULLWydruk 7.1 Ustawianie planu archiwizacji--SCRIPT BEGINS AT 6:00 AMuse pubsgodbcc checkdb ('pubs') With NO_INFOMSGS, TABLERESULTSgoBACKUP DATABASE pubs to pubs_backup WITH FORMAT,Retaindays = 30, MediaNAme= 'Pubs Backup Tape',Blocksize = 8192Go--6:05 AMBACKUP LOG pubs to pubs_log_backup WITH INITGo--10:00 AMBACKUP LOG pubs to pubs_log_backupGo-- 12:00 PMBACKUP DATABASE pubs to pubs_backup WITH DIFFERENTIAL,NOINIT, NOSKIP, Retaindays = 30, MediaName = 'Pubs Backup Tape',Blocksize = 8912Go-- 2:00 PMBACKUP LOG pubs to pubs_log_backupGo-- 6:00 PMBACKUP LOG pubs to pubs_log_backupGo-- 8:00 PMBACKUP DATABASE pubs to pubs_backup WITH DIFFERENTIAL,NOINIT, NOSKIP, Retaindays = 30, MediaName = ' Pubs Backup Tape',Blocksize= 8192Go-- 10:00 PMBACKUP LOG pubs to pubs_log_backupGoSkrypt ten pozwala na odtworzenie bazy danych bez utraty transakcji (dopóki nie zostanie utracone urządzenie archiwizacyjne).Przykład ten zakłada wykorzystanie dwóch napędów taśmowych: jednego dla pełnych/różnicowych kopii bezpieczeństwa bazy danych a drugiego dla kopii dziennika transakcji.Tworzenie kopii bezpieczeństwa korzystając z SQL Server Enterprise ManageraSQL Server Enterprise Manager jest w pełni funkcjonalnym narzędziem w zakresie tworzenia kopii bezpieczeństwa.Na początku, należy utworzyć dwa kolejne nośniki archiwizujące: jedno dla bazy danych pubs (zwane pubs_backup) i drugie dla bazy danych Northwind (zwane northwind_backup).Należy ustawić obydwie bazy danych w tryb FULL recovery
[ Pobierz całość w formacie PDF ]