Odtwarzanie bazy danych

advertisement
Ćwiczenie 4
Odtwarzanie bazy danych.
Wprowadzenie teoretyczne. ................................................................................................................. 2
Odtwarzanie bazy danych ................................................................................................................ 2
Odzyskiwanie automatyczne............................................................................................................ 2
Konfiguracja odzyskiwania automatycznego .............................................................................. 3
Odzyskiwanie ręczne ....................................................................................................................... 3
Odtwarzanie z plików (ponowne łączenie bazy danych w całość) .............................................. 4
Znalezienie poprawnego zestawu kopii bezpieczeństwa ................................................................. 4
Sprawdzenie użyteczności zestawu kopii bezpieczeństwa .............................................................. 6
Wykonywanie pełnego odtwarzania bazy danych ........................................................................... 6
Odtwarzanie z kopii różnicowej ...................................................................................................... 8
Odtwarzanie z dziennika transakcji ................................................................................................. 8
Odtwarzanie plików lub grup plików............................................................................................... 9
Przebieg ćwiczenia:............................................................................................................................ 10
Treść sprawozdania: ........................................................................................................................... 15
Przykładowe pytania kontrolne .......................................................................................................... 15
Wprowadzenie teoretyczne.
Odtwarzanie bazy danych
Kopie bezpieczeństwa nie mają wartości same w sobie. Jednak, są bardzo pożyteczne w przypadku
problemów z serwerem. Jeżeli dysk przestaje działać prawidłowo lub plik bazy danych zostanie uszkodzony,
zachodzi potrzeba odtworzenia baz danych, których pliki uległy uszkodzeniu.
Inną przyczyną odtwarzania bazy danych z kopii bezpieczeństwa jest odtworzenie jej do logicznie spójnego
punktu w czasie. Przypuśćmy, że szef usuwa całą sprzedaż z danego dnia o piątej po południu. Można
odzyskać dane z wcześniejszej pełnej kopii bezpieczeństwa bazy danych a następnie zastosować wszystkie
kopie dziennika transakcji (lub kopię różnicową i kopie dziennika transakcji) aż do momentu zaraz przed
tym, jak szef uruchomił polecenie usunięcia danych. Tym sposobem, można odzyskać dane minimalnym
nakładem pracy.
Odzyskiwanie automatyczne
Odzyskiwanie automatyczne jest procesem, przez który SQL Server przechodzi za każdym razem, gdy
uruchamiana jest usługa SQL Server. Nie można wyłączyć tego procesu i nie potrzeba wykonywać żadnych
specjalnych czynności, aby proces nastąpił — dlatego zwany jest procesem automatycznym.
Przy każdym ponownym uruchomieniu SQL Servera, stosowany jest zbiór kroków, które wykonują
ponownie (roll forward) wszelkie zatwierdzone transakcje z dziennika transakcji, wykonane od czasu
ostatniego punktu kontrolnego (checkpoint). Rolling forward transakcji oznacza, że wszelkie zatwierdzone
transakcje bazy danych są ponownie wykonywane w tej bazie danych. SQL Server wycofuje z dziennika
transakcji wszystkie transakcje, które nie zostały wcześniej zatwierdzone. Wycofanie (roll back) oznacza, że
wszelkie częściowo wykonane — ale nie zatwierdzone transakcje — są usuwane z bazy danych. Po
zakończeniu procesu automatycznego odzyskiwania, każda baza danych jest pozostawiana w formie
logicznie spójnej i ustawiany jest punkt kontrolny.
Proces odzyskiwania automatycznego gwarantuje, że bez względu na to, jak i dlaczego SQL Server został
zatrzymany, zostanie on uruchomiony w stanie logicznie spójnym. Nawet jeśli serwer uległ nagłej awarii,
można bez problemów odtworzyć dane. Strony dziennika dla wszystkich zatwierdzonych transakcji są
zapisywane na dysk natychmiast (zapis synchroniczny). Dlatego, wszelkie trwałe zmiany w bazie danych są
z powodzeniem kopiowane na dysk i używane podczas procesu odtwarzania.
Można prześledzić cały proces odtwarzania przeglądając dziennik błędów (Error Log) SQL Servera:
1.
Należy uruchomić SQL Server Enterprise Manager, jeżeli nie jest otwarty, połączyć się do odpowiedniego
serwera, rozwinąć folder Management i rozwinąć opcję SQL Server Logs. Ukaże się lista zawierająca bieżący
dziennik błędów i na ogół także ostatnie sześć dzienników błędów.
2.
Należy podświetlić dziennik błędów, który ma być przeglądany. Dziennik pojawi się w prawym panelu SQL
Server Enterprise Managera
Można również przeglądać te pliki bezpośrednio przy pomocy edytora takiego jak Notatnik. Pliki te można znaleźć w
katalogu \mssql\log, posiadają nazwy errorlog.*, gdzie * jest numerem kopii bezpieczeństwa. Nazwą bieżącego
dziennika błędów jest errorlog. (z kropką, ale bez rozszerzenia). Poprzednie dzienniki błędów noszą nazwy
odpowiednio errorlog.1, errorlog.2 itd.
3.
Należy rozpocząć od znalezienia wpisu Starting Up Database Master.
Dziennik błędów informuje, że baza danych master została otworzona (pliki są otwarte przez SQL Server)
a następnie odzyskana do odpowiedniego logicznego punktu spójności.
Następnie otwierana i odtwarzana jest baza danych model; potem kolejno odtwarzane są — baza danych
MSDB i bazy stworzone przez użytkownika (włączając w to bazę pubs i Northwind). Następnie czyszczona i
uruchamiana jest baza tempdb (kopiowana z bazy model). Wiadomo, że odzyskiwanie zakończyło się
pomyślnie jeżeli w dzienniku błędów pojawi się wpis Recovery Complete ).
Konfiguracja odzyskiwania automatycznego
Istotną rzeczą jaką należy wykonać, aby skonfigurować automatyczne odzyskiwanie jest konfiguracja opcji
Recovery Internal. Opcja ta określa maksymalną ilość czasu, jaką SQL Server poświęci na automatyczne
odzyskiwanie każdej z baz danych. Wartością domyślną jest 0, oznacza to, że SQL Server będzie
automatycznie decydował jak często wstawiać punkt kontrolny.
Parametr konfiguracyjny Recovery Internal wpływa na to, jak często pojawiają się punkty kontrolne.
Punkt kontrolny (checkpoint) jest procesem, który wykonuje kopiowanie na dyski stron danych i wpisów
dziennika, które były modyfikowane w pamięci. Jeżeli punkt kontrolny jest ukończony, transakcje
zatwierdzone przed punktem kontrolnym nie będą już później automatycznie odtwarzane.
Parametr Recovery Interval można skonfigurować przy pomocy procedury systemowej
sp_configure. Przykładowo, aby zmienić czas odtwarzania do trzech minut należy uruchomić
następujący kod Transact-SQL:
Exec sp_configure 'Recovery Interval',3
Go
Reconfigure with Override
Go
Nie należy zmieniać domyślnego ustawienia Recovery Interval konfiguracji automatycznej. Zmiana
tego parametru może grozić spadkiem wydajności z powodu zbyt wielu punktów kontrolnych.
Recovery Interval nie pomaga w przypadku długo trwających transakcji. Załóżmy, że istnieje proces systemowy,
który rozpoczyna transakcję a następnie rozpoczyna uruchamianie serii uaktualnień, trwających godzinami, a w
pewnym momencie serwer ulega awarii. Jeżeli nie ma wystarczającej ilości pamięci aby przechować w niej wszystkie
zmiany i niektóre ze zmian zostają zapisane na dysk, zachodzi potrzeba wycofania tych zmian z bazy danych. Jeżeli
wcześniej Recovery Interval został ustawiony na trzy minuty (jak w powyższym kodzie źródłowym),
odzyskiwanie bazy danych będzie zapewne trwało dłużej niż trzy minuty. Aby uniknąć tego problemu, należy tworzyć
niewielkie transakcje, tak aby było możliwe szybkie odzyskanie poprawnego stanu w przypadku wystąpienia
problemów.
Odzyskiwanie ręczne
Odzyskiwanie ręczne — temat kolejnej części tego rozdziału — jest procesem odzyskiwania bazy danych.
Proces ten może zawierać odzyskiwanie z pełnej kopii bazy danych, możliwe jest również odzyskiwanie z
kopii różnicowej oraz odtwarzanie kopii jednego lub więcej dzienników transakcji z nośników
archiwizujących. Szczegóły procesu odtwarzania różnią się w zależności od przyczyn odzyskiwania.
Można odtworzyć bazę danych a następnie zastosować dzienniki transakcji dla pełnego odtworzenia
utraconej bazy danych lub odtwarzać do punktu w czasie aby cofnąć zmiany wprowadzone w bazie danych.
Można odtworzyć bazę nawet do określonej (zwanej marked transaction) transakcji. Można również użyć
różnicowych kopii bazy danych (jeżeli zostały wykonane) co pozwoli na odtworzenie mniejszej ilości
dzienników transakcji. SQL Server 2000 posiada nawet opcje do odtwarzania zbioru grup plików (aby
przeprowadzić częściowe odtwarzania).
Odtwarzanie bazy danych z kopii bezpieczeństwa ma następujące ograniczenia:

Baza danych nie może być używana. Baza danych jest używana jeżeli ktokolwiek zastosował polecenie USE i
wskazał tę bazę danych lub jest uruchomione dowolne zapytanie dotyczące tej bazy.

Należy posiadać odpowiednie uprawnienia. Bazę danych mogą odtwarzać jedynie użytkownicy należący do roli
serwera sysadmin lub dbcreator lub użytkownik dbo. Prawo do wykonywania tego procesu nie może być
przekazywane dalej (grant). Prawo do odtwarzania bazy danych jest bardzo istotnym i odpowiedzialnym
uprawnieniem.

Dzienniki transakcji muszą być odtwarzane w kolejności, w jakiej były tworzone. Każdy dziennik transakcji ma
skojarzony ze sobą kolejny numer. Należy odtwarzać kopie dziennika transakcji w prawidłowej kolejności. Nie
przestrzeganie tego może zakończyć się nieudanym odtworzeniem bazy. Przed przystąpieniem do odtwarzania
kopii dziennika transakcji zostanie przedstawionych wiele rozważań dotyczących warunków odtwarzania.
Odtwarzanie z plików (ponowne łączenie bazy danych w
całość)
Przed omówieniem procesów odtwarzania należy rozważyć jedną z możliwych opcji odtwarzania. Można
ponownie połączyć bazę danych w całość jeżeli posiada się kopie wszystkich skojarzonych z nią plików
danych. SQL Server 2000 może rozdzielić a następnie połączyć ponownie bazy danych przy pomocy
procedur składowych Transact-SQL oraz opcji CREATE DATABASE z opcją FOR_ATTACH.
Na początek zostanie omówiona opcja CREATE DATABASE. Poniższy przykładowy kod źródłowy
pokazuje tworzenie bazy danych, posiadającej dwa pliki, test_data.mdf oraz test_log.ldf:
create database test
on (filename = 'd:\program files\Microsoft SQL Server\mssql\data\test_data.mdf')
log on (filename = 'd:\program files\Microsoft SQL Server\mssql\data\test_log.ldf')
Kod ten powinien zwrócić komunikat:
Succesfully attached database 'test'.
Warto zauważyć, że jedyne, co należy podać, to nazwa pliku. Kiedy SQL Server znajdzie pliki, może
zbudować wszystkie inne informacje jakich potrzebuje, przy pomocy tabel systemowych SQL Servera
przechowywanych w bazie danych.
Można również skorzystać z procedury systemowej sp_attach_db. Można wypróbować procedurę
poprzez stworzenie na początek bazy danych test (jak w przykładzie) a następnie uruchomienie procedury
systemowej sp_detach_db:
Exec sp_detach_db 'test'
Go
Kod ten powinien zwrócić komunikat:
Succesfully detached database 'test'.
DBCC execution completed. If DBCC printed error messages,
contact your system administrator.
Procedura ta „oddziela” bazę danych test od serwera. Można następnie wysłać pliki dowolnej osobie, a
odbiorca może uruchomić następujący kod źródłowy (lub można to zrobić własnoręcznie):
EXEC sp_attach_db @dbname = 'test',
@filename1 = 'd:\program files\Microsoft SQL Server\mssql\data\test.mdf',
@filename2 = 'd:\program files\Microsoft SQL Server\mssql\data\test_log.ldf'
Warto zauważyć, że systemowa procedura składowa sp_attach_db zasadniczo wykonuje polecenie
CREATE DATABASE FOR ATTACH. Nie ma żadnej różnicy w funkcjonalności tych dwóch opcji
(create database i sp_attach_db).
Znalezienie poprawnego zestawu kopii bezpieczeństwa
Pierwszym krokiem jest znalezienie poprawnego zestawu kopii bezpieczeństwa. Można postępować w tym
przypadku na dwa sposoby: trudny i łatwy. Powinno się zacząć (jak zwykle) od sposobu trudnego, ponieważ
można nauczyć się w ten sposób jakie operacje są wykonywane. Można skorzystać z poniższych trzech
poleceń Transact - SQL aby zorientować się (w różnym stopniu szczegółowości) co znajduje się na
poszczególnych urządzeniach archiwizacyjnych:

RESTORE LABELONLY dostarcza informacji w postaci pojedynczego wiersza na temat całego zbioru kopii
bezpieczeństwa.

RESTORE HEADONLY dostarcza podsumowania informacji na temat każdego elementu w zestawie kopii
bezpieczeństwa.

RESTORE FILELISTONLY dostarcza listę baz danych i dzienników zarchiwizowanych na określonym urządzeniu
archiwizacyjnym.
RESTORE LABELONLY Jeżeli zostanie uruchomione polecenie RESTORE LABELONLY, nagłówek
napędu urządzenia archiwizacyjnego (na ogół polecenie to używane jest w odniesieniu do taśm) jest czytany
i podsumowywany w postaci pojedynczego wiersza. Wiersz zawiera nazwę nośnika, określonego podczas
tworzenia kopii bezpieczeństwa, opis podany podczas tworzenie kopii bazy danych i datę ostatniej kopii
bezpieczeństwa na tym urządzeniu archiwizacyjnym. Zwracane są również inne informacje, ale dopóki nie
tworzy się zaawansowanej strategii archiwizacji, nie ma potrzeby zgłębiania szczegółów tych informacji.
RESTORE LABELONLY FROM backup_device
[WITH {NOUNLOAD | UNLOAD } ] [[,] MEDIAPASSWORD = {mediapwd | @mediapwd_var}]
Składnia:

backup_device jest nazwą nośnika archiwizującego lub nazwą zmiennej dla tego nośnika archiwizującego. Można określić
tutaj w razie potrzeby nazwę pliku, taśmy lub Named Pipe, które mają być używane do odtwarzania bazy (można określić ten
parametr jako zmienną). W poprzednim rozdziale w opisie składni polecenia BACKUP można znaleźć szczegółowy opis, co
może występować w miejscu backup_device.

NOUNLOAD | UNLOAD określa czy taśma zostanie wyjęta gdy zakończy się proces RESTORE LABELONLY.

MEDIAPASSWORD jest używany, gdy tworzy się kopię bezpieczeństwa (jeżeli jest w ogóle używany). Jeżeli hasło nie jest
znane, a nośnik z kopią bezpieczeństwa jest zabezpieczony hasłem, nie można uruchomić tego polecenia. Posiadanie hasła na
indywidualne kopie bezpieczeństwa nie chroni przed wykonaniem polecenia RESTORE LABELONLY; jedynie hasła na cały
nośnik chronią przed udanym wykonaniem polecenia dopóki nie zostanie podane prawidłowe hasło.
RESTORE HEADERONLY Polecenie RESTORE HEADERONLY pobiera informację o każdej z kopii
bezpieczeństwa znajdują się na nośniku archiwizacyjnym. Polecenie zwraca jeden wiersz dla każdej kopii
jaka istnieje dla danej bazy ponieważ, inaczej niż polecenie RESTORE LABELONLY, polecenie RESTORE
HEADERONLY czyta pojedynczo informacje z każdej zarchiwizowanej. Proces ten może zabierać dużo czasu
jeżeli na taśmie znajduje się kilka kopii bezpieczeństwa. Dla plików kopii bezpieczeństwa na dysku proces
ten działa na ogół bardzo szybko.
RESTORE HEADERONLY FROM backup_device
[WITH {NOUNLOAD | UNLOAD } ] [[,] FILE = file_num]
[[,] PASSWORD = { pwd | @pwd_var}]
[[,] MEDIAPASSWORD = {mediapwd | @mediapwd_var}]
Składnia ta używa tych samych opcji co RESTORE LABELONLY, z wyjątkiem przedstawionych poniżej:

FILE określa, który zestaw kopii bezpieczeństwa z taśmy ma być testowany. Przykładowo, jeżeli taśma zawiera dwa zestawy
kopii bezpieczeństwa, można określić ten parametr jako 1 (pierwszy zbiór) lub jako 2 (drugi zbiór).

PASSWORD jest hasłem, podawanym podczas tworzenia kopii bezpieczeństwa.
Wyniki tego polecenia zawierają nazwy kopii bezpieczeństwa (oraz opis) oraz datę ważności danego
zestawu. Zawierają również informacje o tym, kto tworzył kopię bezpieczeństwa, z jakiego serwera ona
pochodzi, jakie dane zostały zarchiwizowane, jak duża jest kopia bezpieczeństwa oraz kiedy rozpoczęło się i
zakończyło tworzenie tej kopii. Wyniki uwzględniają również stronę kodową i kolejność sortowania
(używaną w SQL Server 7.0), sposób kodowania (collation —odpowiednik w SQL Server 2000 kolejności
sortowania/strony kodowej/Unicode LocalID), tryb zgodności bazy danych i wersję SQL Servera użytą do
wykonania kopii bezpieczeństwa. Można uzyskać również wewnętrzną informację o sekwencyjnych
numerach dzienników (zakres tej książki nie obejmuje tego tematu).
RESTORE FILELISTONLY Polecenie RESTORE FILELISTONLY zwraca listę plików bazy danych i
dziennika, które zostały zarchiwizowane na określonym nośniku archiwizacyjnym. Jednocześnie można
uzyskać informację tylko na temat jednej kopii, dlatego w przypadku, gdy nośnik archiwizacyjny zawiera
wiele kopii bezpieczeństwa, należy określić, o którą kopię chodzi.
Informacja ta jest szczególnie przydatna w sytuacji odzyskiwania po awarii. Jeżeli baza danych ma być
odtworzona a nie jest znane poprzednie położenie plików, można je odnaleźć przy pomocy polecenia
RESTORE FILEONLY:
RESTORE FILEONLY FROM backup_device
[WITH {NOUNLOAD | UNLOAD } ] [[,] FILE = file_num]
[[,] PASSWORD = { pwd | @pwd_var}]
[[,] MEDIAPASSWORD = {mediapwd | @mediapwd_var}]
Składnia jest taka sama jak składnia polecenia RESTORE HEADERONLY.
Jeżeli nie jest znany numer pliku, jaki ma być odnaleziony, należy uruchomić polecenie RESTORE
HEADERONLY aby uzyskać listę numerów plików oraz informację, do której kopii bezpieczeństwa należy
każdy z plików. Jeżeli nie zostanie określony parametr FILE, polecenie dotyczy pierwszej kopii
bezpieczeństwa.
Sprawdzenie użyteczności zestawu kopii bezpieczeństwa
Można przyjąć, że zostały uruchomione odpowiednie procedury sprawdzające DBCC, zanim została
stworzona kopia bazy danych. Można również przyjąć, że przy tworzeniu kopii skorzystano z zalet dostępnej
opcji Verify. Czy to jednak oznacza, że kopia bezpieczeństwa jest gotowa do odtwarzania?
Odpowiedź "tak", nie do końca odzwierciedla prawdę. Firma Microsoft również ma tą świadomość o czym
świadczy polecenie RESTORE VERIFYONLY. Polecenie to sprawdza czy wszystkie taśmy lub pliki
dyskowe są dostępne do odtwarzania, i że wszystkie niezbędne informacje mogą być odczytane. Nie jest
uruchamiane sprawdzanie DBCC kopii bezpieczeństwa; jest jedynie sprawdzane, czy taśma lub plik dyskowy
mogą być odczytane.
RESTORE VERIFYONLY FROM backup_device [,...n]
[WITH [FILE = filen_um] [[,] {NOUNLOAD | UNLOAD } ]
[[,]LOADHISTORY ] [[,] { NOREWIND | REWIND } ]
[[,] PASSWORD = { pwd | @pwd_var}]
[[,] MEDIAPASSWORD = {mediapwd | @mediapwd_var}]
Składnia tego polecenie jest podobna do omówionych wcześniej, z wyjątkiem poniższych parametrów:

LOADHISTORY określa czy informacja na temat sprawdzanej kopii bezpieczeństwa zostanie dodana do tabel z
historią kopii w bazie danych MSDB. Tabele te zostaną krótko omówione później.

NOREWIND | REWIND określa czy taśma powinna być przewinięta po wykonaniu polecenia RESTORE
VERIFYONLY.
Wykonywanie pełnego odtwarzania bazy danych
Pełne odtwarzanie bazy danych korzysta z pełnej kopii bezpieczeństwa (można traktować ją jako „normalną”
kopię bezpieczeństwa) i umieszcza tę kopię na serwerze. Używa dziennika transakcji, który został
zarchiwizowany wraz z kopią bazy danych, aby odtworzyć bazę, wykonać wszystkie zatwierdzone
transakcje i wycofać wszelkie nie zatwierdzone transakcje do czasu zakończenia kopii bazy danych.
Podobnie jak w przypadku poleceń kopii bezpieczeństwa, polecenie Transact-SQL RESTORE ma więcej
funkcji niż polecenie SQL Server Enterprise Managera, a okna SQL Server Enterprise Managera są
znacznie łatwiejsze do zrozumienia, gdy widoczne są polecenia uruchamiane na SQL Serverze.
Gdy baza danych jest odzyskiwana dostępnych jest kilka opcji. Można :

przesunąć pliki z miejsca, w którym znajdowały się podczas tworzenia kopii bezpieczeństwa

ustawić opcję bazy danych RESTRICTED_USER podczas odtwarzania, w przypadku gdy nie zostało jeszcze
ukończone odtwarzanie lub dostęp do bazy danych ma zostać ograniczony.

wybrać opcję aby odtwarzać lub nie — do określonego, spójnego punktu w czasie (w zależności czy będą
stosowane kopie dziennika transakcji) lub do określonej, zaznaczonej transakcji.

tworzyć plik wstrzymany( standby). Można tworzyć tego rodzaju plik w przypadku, gdy ma być kontynuowane
stosowanie kopii dziennika transakcji ale ma być przetestowany stan bazy danych w trybie „tylko-do-odczytu”
pomiędzy odtwarzaniami z tych kopii. Sytuacja ta zostanie krótko omówiona.

ponownie uruchomić odtwarzanie, które zostało przerwane w danym punkcie (przykładowo — w przypadku
awarii zasilania, która nastąpiła podczas operacji odtwarzania).
Wykonywanie pełnego odtwarzania bazy danych przy pomocy polecenia języka TransactSQL RESTORE
Można korzystać z polecenia RESTORE aby odtworzyć bazę danych z pełnej kopii bezpieczeństwa. Składnia
tego polecenia jest następująca:
RESTORE DATABASE databasename FROM backup_device [,...n]
[WITH [RESTRICTED_USER] [[,] FILE = file_num]
[[,] PASSWORD = { pwd | @pwd_var } ]
[[,] MEDIANAME = { media_name | @media_name_var } ]
[[,] MEDIAPASSWORD = { mediapwd | @mediapwd_var } ]
[[,] MOVE 'logical_file_name' TO 'new_file_name'] [,...n]
[[,] KEEP_REPLICATION]
[[,] {NORECOVERY | RECOVERY | STANDBY = undo_file_name}]
[[,] {NOUNLOAD | UNLOAD}] [[,] REPLACE] [[,] RESTART]
[[,] {NOREWIND | REWIND} ]
[[,] STATS [= percentage]]]
Znaczenie składni:

databasename jest nazwą bazy danych, która ma być odtwarzana.

backup_device jest nazwą nośnika archiwizacyjnego lub nazwą zmiennej dla nośnika archiwizacyjnego. Można
również określić nazwę pliku, taśmy lub Named Pipe jaka ma zostać użyta do odtwarzania — także w postaci
zmiennej.

RESTRICTED_USER

FILE określa, która kopia ma być odtworzona.

PASSWORD jest hasłem, które zostało określone podczas tworzenia zestawu archiwizacyjnego.

MEDIANAME określa, czy zachowana nazwa nośnika kopii bezpieczeństwa ma być porównywana z daną nazwą
określa, że jedynie członkowie roli serwera sysadmin lub dbcreator lub roli
bazy danych db_owner mogą mieć dostęp do bazy danych po wykonaniu odtwarzania.
nośnika. Jeżeli nazwy do siebie nie pasują, odtwarzanie nie powiedzie się.

MEDIAPASSWORD jest hasłem, jakie zostało podane podczas tworzenia kopii bezpieczeństwa (jeżeli zostało
określone jakiekolwiek hasło). Jeżeli hasło nie jest znane, a nośnik kopii bezpieczeństwa jest zabezpieczony
hasłem, nie można uruchomić tego polecenia.

MOVE określa, że dla każdej logicznej nazwy pliku, do której wystąpi odniesienie, operacja odtwarzania powinna
znaleźć logiczny plik w zestawie archiwizacyjnym i odtworzyć go do alternatywnej ścieżki i nazwy pliku, jaka
została wskazana.

KEEP_REPLICATION informuje, że konfiguracja replikacji bazy danych ma być zachowana podczas odtwarzania.
Opcja ta jest dostępna do obsługi mechanizmu log shipping, zaawansowanej techniki, nie opisywanej w tej
książce.

RECOVERY oznacza, że odtwarzanie powinno wycofać wszystkie nie zakończone transakcje i przywrócić bazę
danych do spójnego stanu. Po wykonaniu polecenia RECOVERY nie można odtworzyć żadnej kopii dziennika
transakcji lub kopii różnicowych bazy danych. Opcja ta występuje domyślnie jeśli nie została określona żadna inna
opcja odzyskiwania (NORECOVERY lub STANDBY).

NORECOVERY informuje, że odtwarzanie nie powinno wycofywać żadnych nie zachowanych transakcji oraz, że
odtwarzanie nie doprowadzi bazy do spójnego punktu. Opcji tej należy używać podczas odtwarzania bazy danych,
gdy mają być zastosowane kopie dziennika transakcji lub kopie różnicowe do bazy danych po zastosowaniu
pełnego odtwarzania bazy.

STANDBY określa ścieżkę i nazwę pliku wycofania (undo file), który przetrzymuje wystarczającą ilość informacji
do ponownego uruchomienia transakcji wycofanych podczas procesu odtwarzania. Należy skorzystać z polecenia
STANDBY gdy zamierza się testować bazę danych (w trybie do-odczytu) pomiędzy odtwarzaniami różnicowymi lub
odtwarzaniami dzienników transakcji. Jeżeli plik, który został określony nie istnieje, SQL Server stworzy
wymagany plik.

NOUNLOAD | UNLOAD określa czy taśma ma być wyjęta po zakończeniu polecenia RESTORE DATABASE.

REPLACE oznacza, że odtwarzanie powinno zastąpić każdą bazę danych o tej samej nazwie istniejącą na danym
serwerze. Normalne odtwarzanie bez tej opcji oznacza, że w przypadku gdy nazwa bazy danych różni się od
nazwy zarchiwizowanej bazy danych lub gdy zbiór plików z kopii bezpieczeństwa nie pasuje do istniejącej bazy
danych, odtwarzanie nie powiedzie się. Jest to opcja związana z bezpieczeństwem.

RESTART ponownie uruchamia odtwarzanie kopii bezpieczeństwa od miejsca, w którym zostało ostatnio
przerwane. Jak wspomniano wcześniej, opcja ta jest stosowana gdy następuje odtwarzanie z kopii na wielu
taśmach, podczas wykorzystywania drugiej lub późniejszej taśmy.

NOREWIND | REWIND określa, czy taśma powinna zostać przewinięta po ukończeniu polecenia RESTORE.
Odtwarzanie z kopii różnicowej
Odtwarzania z kopii różnicowej działa podobnie jak odtwarzanie z pełnej kopii bezpieczeństwa. Nie ma
różnic w składni polecenia. Należy określić prawidłowy numer pliku z urządzenia archiwizacyjnego.
Można odtworzyć kopię różnicową tylko po odtworzeniu z pełnej kopii bezpieczeństwa. Należy również
określić opcję STANDBY lub NORECOVERY podczas odtwarzania z pełnej kopii aby mieć możliwość
zastosowania kopii różnicowej.
Kopie różnicowe mogą się kumulować, więc jeśli zostały wykonane trzy kopie różnicowe od czasu
wykonania ostatniej pełnej kopii, trzeba odtworzyć jedynie ostatnią z tych trzech kopii różnicowych.
Odtwarzanie z dziennika transakcji
Odtwarzanie z dziennika transakcji nie jest skomplikowane, dopóki ma się na uwadze pewne reguły. Można
odtwarzać dzienniki transakcji jedynie w kolejności, w której zostały zarchiwizowane. Inaczej, niż w
przypadku kopii różnicowych, kopie dziennika transakcji nie kumulują się, więc potrzeba żeby wszystkie
były nienaruszone, aby było możliwe całkowite odtworzenie bazy danych.
W przypadku odtwarzań dziennika transakcji, inaczej niż w przypadku odtwarzania kopii bazy danych lub
kopii różnicowych, które pozwalają na odtwarzania jedynie do punktu w czasie gdy kopia była tworzona;
można odtwarzać do wybranego punktu w czasie, jak również odtwarzać do nazwanego znacznika w
dzienniku transakcji.
Używanie Transact-SQL do odtwarzania dzienników transakcji
Można wykonać polecenie RESTORE LOG aby odtworzyć kopię dziennika transakcji:
RESTORE LOG databasename FROM backup_device [,...n]
[WITH [RESTRICTED_USER] [[,] FILE = file_num]
[[,] PASSWORD = { pwd | @pwd_var } ]
[[,] MEDIANAME = { media_name | @media_name_var } ]
[[,] MEDIAPASSWORD = { mediapwd | @mediapwd_var } ]
[[,] MOVE 'logical_file_name' TO 'new_file_name'] [,...n]
[[,] KEEP_REPLICATION]
[[,] {NORECOVERY | RECOVERY | STANDBY = undo_file_name}]
[[,] {NOUNLOAD | UNLOAD}] [[,] {NOREWIND | REWIND} ]
[[,] RESTART] [[,] STATS [= percentage]]
[[,] STOPAT = datetime]
| [,] STOPATMARK = 'markname' [AFTER datetime]
| [,] STOPBEFOREMARK = 'markname' [AFTER datetime]]]
Składnia ta używa tych samych opcji co składnia dotycząca pełnego odtwarzania bazy danych, z
wyjątkiem następujących:

STOPAT określa datę i czas, które zostały wybrane jako punkt spójności podczas odtwarzania dziennika transakcji.
Dowolne transakcje, które były aktywne (nie zatwierdzone) w tym czasie, zostają wycofane.

STOPATMARK wyznacza znacznik (określający zaznaczoną nazwę wpisu) przy którym następuje zatrzymanie.

STOPBEFOREMARK pozwala na zatrzymanie zaraz przed określonym znacznikiem.
Po odtworzeniu z pełnej kopii bazy danych (i określeniu opcji STANDBY lub NORECOVERY) można
zastosować dziennik transakcji (przyjmując, że istnieje nośnik archiwizacyjny pubs_log_backup i
zawiera jedną lub więcej kopii dziennika transakcji):
RESTORE LOG pubs from pubs_log_backup
To wszystko co trzeba wykonać. Dziennik został odtworzony. Całkowite odtworzenie pełnej kopii i kopii
dziennika transakcji wygląda w następujący sposób:
RESTORE DATABASE pubs FROM pubs_backup WITH NORECOVERY
RESTORE LOG from pubs_log_backup WITH RECOVERY
jest opcją domyślną, więc nie ma potrzeby stosować jej w odtwarzaniu dziennika
transakcji, ale została umieszczona tutaj dla zachowania przejrzystości.
RECOVERY
Odtwarzanie plików lub grup plików
W razie potrzeby można odtworzyć również indywidualne pliki lub grupy plików. Dla zachowania spójności
tematu niniejszy rozdział zawiera składnię odpowiedniego polecenia dotyczącego odtwarzania plików oraz
przykład. Pomimo tego, że tworzenie kopii plików i grup plików to bardzo użyteczne cechy SQL Servera,
wymagają one złożonego planowania, aby zapewnić udane korzystanie z tych mechanizmów i są poza
zakresem tej książki.
RESTORE DATABASE databasename file_or_filegroup [,...n]
[FROM backup_device [,...n]]
[WITH [RESTRICTED_USER] [[,] FILE = file_num]
[[,] PASSWORD = { pwd | @pwd_var } ]
[[,] MEDIANAME = { media_name | @media_name_var } ]
[[,] MEDIAPASSWORD = { mediapwd | @mediapwd_var } ]
[[,] NORECOVERY ] [[,] {NOUNLOAD | UNLOAD}] [[,] {NOREWIND | REWIND} ]
[[,] REPLACE] [[,] RESTART] [[,] STATS [= percentage]]]
Składnia:
file_or_filegroup : : =
{FILE = {logical_file_name | @logical_file_name_var} |
FILEGROUP = {logical_filegroup_name | @logical_filegroup_name_var}}
Jedyną różnicą pomiędzy tą składnią a składnią polecenia dotyczącego odtwarzania pełnej kopii bazy danych
jest to, że w tym poleceniu można określić nazwę pliku lub nazwę grupy plików.
Jeżeli na nośniku archiwizacyjnym został zarchiwizowany plik test_data bazy danych o nazwie o
nazwie test_file_backup, można odtworzyć ten plik przy pomocy następujących poleceń:
RESTORE DATABASE test FILE = 'test_data'
FROM test_file_backup WITH NORECOVERY
RESTORE LOG test
FROM test_log_backup WITH RECOVERY
Nie można odtworzyć pliku lub grupy plików bez zastosowania, następnie odtworzenia dziennika transakcji aby
doprowadzić bazę danych do spójnego stanu. Przykład ten jest jedynie podpowiedzią w całej złożonej strategii
tworzenia kopii bezpieczeństwa plików lub grup plików.
Przebieg ćwiczenia:
Uwaga: wszystkie kody wykonywane w programie Query Analizer zapisywać do
plików, gdyż ułatwi to sporządzanie sprawozdania.
1. Przeniesienie testowej bazy danych „Samochody” do SQL serwera.
W celu realizacji ćwiczenia Należy pobrać testową bazę „samochod.BAK” ze strony
internetowej. W tym punkcie w SQL serwerze będzie odtwarzana ta baza. Plik
„samochod.BAK” jest kopią bezpieczeństwa (Backup Device) która została wcześniej
stworzona na innym komputerze.
- Stwórz na dysku c:\ katalog C:\BACKUP. Zapisz ze strony internetowej do tego
katalogu plik „samochod.BAK”, zawierający kopie bazy danych.
- Uruchom program QUERY ANALYZER. Sprawdź poprawność pliku „samochod.BAK”
przez instrukcje RESTORE VERIFYONLY. Komunikat „The backup set is valid”
świadczy o poprawności pliku.
- Sprawdź treść Backup Device przez instrukcje RESTORE HEADERONLY. Kopia
bezpieczeństwa musi zawierać jedną kopie o nazwie „samochody backup”.
- Uruchom program Enterprise Manager. Kliknji katalog „Data Base”. Wybrać
„DataBase->Wszystkie zadania-> Restore Data Base. Uruchom okno „Restore Data
Base”. W zakładce „General” ustal następujące wartości pól:
Pole
Restore as database
Restore
Wartość
Samochody
From device
Device
C:\BACKUP\
samochod.BAK
Restore Backup set
Database complete
True
True
Opis pola
Nazwa BD serwerze SQL po odtwarzaniu
Odtwarzanie odbędzie się przez plik Backup
Device
Ścieżkę dostępu do Backup Device. Ścieżkę
dostępu trzeba ustalić się przez przycisk
„Select Device”.
W zakładce „Option” musi być ustalona wartość „Leave database operational. No
additional transaction logs can be restored” co oznacza, że odtwarzanie odbędzie się bez
wykorzystania dziennika transakcji. Kliknij OK. Po otrzymaniu komunikatu „Restore of
database „samochody” completed successfully”, kliknij OK.
- W programie Enterprise Manager sprawdź obecność bazy danych, obecność tabel
użytkownika: „Klienci”, „Miejsca”, „Samochody”, „Pracownicy”, „Wypozyczenia”.
- Stwórz w QUERY ANALYZER polecenia SQL w celu sprawdzenia obecności
danych w każdej z tych tabel.
2. Tworzenie diagramu związków w programie Enterprise Manager.
W programie Enterprise Manager stwórz diagram związków pomiędzy tabelami bazy
danych samochody: „Klienci”, „Miejsca”, „Samochody”, „Pracownicy”, „Wypozyczenia”.
Diagram ten jest schematem fizycznego modelu danych i będzie potrzebny przy
konstruowaniu poleceń SQL w następnych punktach ćwiczenia.
Odtwórz ikonę bazy danych „Samochody”. Kliknji prawym przyciskiem myszy ikonę
„Diagrams”, wybierz opcję „New Database diagram”, uruchom wizard „Create database
diagram”, gdzie trzeba wybrać potrzebne do diagramu tabele bazy danych: „Klienci”,
„Miejsca”, „Samochody”, „Pracownicy”, „Wypozyczenia”.
3. Modyfikacja bazy danych.
W tym punkcie baza danych zostanie zmodyfikowana przez dodawanie
nowych rekordów do tabel.
Wpisz w QUERY ANALYZER po jednym nowym rekordzie do każdej z tabel: „Klienci”,
„Miejsca”, „Samochody”.
Sprawdź przez polecenie SQL czy te rekordy zostały wpisane.
W celu wpisania nowych rekordów może być wykorzystana instrukcja SQL :
INSERT INTO ... VALUES (...);
4. Tworzenie urządzenia archiwizacyjnego “Backup Device”.
Wykorzystując wiedzę z poprzedniego ćwiczenia stwórz nowy „Backup Device” w
katalogu C:\BACKUP o nazwie „samochody_backup_1” dla bazy danych „Samochody”.
W tym celu można wykorzystać systemową procedurę sp_addumpdevice lub program
Enterprice Manager.
5. Tworzenie kopii bazy danych.
Wykorzystując wiedzę z poprzedniego ćwiczenia stwórz nową kopię bazy danych
„Samochody” na „Backup Device” o nazwie „samochody_backup_1”.
Nowa kopia musi stworzona z następującymi opcjami:
Wartość
Opcja
NAME
DESCRIPTION
Backup
Overwrite
‘Samochody-Full’
‘Druga kopia Full-backup po dodawaniu
nowych danych’
DataBase-complete
Overwrite existing media
Zanotuj datę oraz czas stworzenia kopii. Sprawdź w Enterprise Manager obecność kopii
na nośniku archiwizacyjnym „samochody_backup_1”.
6. Modelowanie nieprawidłowych czynności użytkownika.
W tym punkcie do bazy danych będą wprowadzone „uszkodzone” dane. Taka sytuacja
może zaistnieć w realnych warunkach przy nieprawidłowych czynnościach użytkownika.
Administrator bazy danych musi później naprawić uszkodzoną bazę danych.
- Zmodyfikuj tabele do których zostały wpisane nowe dane w p.3., instrukcją Update z
grupową modyfikacją danych. Np.:
UPDATE klienci SET nazwisko = 'Kowalski'
- Sprawdź zawartość „zmodyfikowanych” tabel. Dane zostały „uszkodzone”, ponieważ
pola jednej kolumny w różnych rekordach tabeli mają tą samą wartość (dla tabeli
„Klienci” to jest nazwisko 'Kowalski').
7. Odtwarzanie bazy danych.
W tym punkcie baza danych „Samochody” będzie odtwarzana z kopii 'Samochody-Full',
która została utworzona w p.5.
- Uruchom Enterprise Manager. Rozwiń „SQL Server Group”->Database”, klinj prawym
przyciskiem myszy „Samochody”, klinji „Properties”. Wybierz zakładkę „Option”.
Ogranicz dostęp do bazy innym użytkownikom, wybierając „Restrict Access” , „Members
of db_owner, dbcreator, or sysadmin” . Kliknji OK. Sprawdź w lewym panelu Enterprise
Manager obecność ograniczonego trybu dostępu do bazy”Samochody” „DBO Use Only”.
- Kliknji prawą myszą na lewej konsoli ikonę bazy „Samochody”. Wybierz tryb
„Wszystkie zadania”, wybierz opcję ”Restore DataBase”. W oknie „General” ustal
następujące parametry:
Pole
Restore Database
First backup to restore
Restore (list)
Wartość
Samochody
<Date Time> 'Samochody-Full'
Wybierz potrzebny Backup Device z listy
nośników archiwalnych
- Wybierz zakładkę „Option”. Ustaw tryb „Leave database operational. No additional
transaction logs can be restored”. Ten tryb ustawi odtwarzanie bazy danych bez
wykorzystania dzienników transakcji. Kliknji OK.
- Uruchom QUERY ANALYZER. Sprawdzić tabele, które byli „uszkodzone” w p. 6.
W kolejnych punktach ćwiczenia będą realizowane różne modyfikacje bazy danych, będą
tworzone kopie różnicowe oraz kopie „logów” tych modyfikacji. Będzie modelowana
sytuacja awaryjna oraz będzie pokazane w jaki sposób należy wykorzystać kopie
bezpieczeństwa do odtwarzania bazy danych.
8. Stworzenie nowego nośnika archiwizacyjnego (Backup Device) , który
będzie przeznaczony do jednoczesnego przechowywania pełnej kopii (Full)
oraz kopii różnicowych (Differential copies).
W tym punkcie będzie stworzony nowy nośnik archiwalny (Backup Device) oraz kopia
Full bazy danych „samochody”.
- Uruchom QUERY ANALYZER. Stwórz przez procedurę systemową
„sp_addumpdevice” nowy nośnik archiwalny z nazwą logiczną „Samochody_backup_2”
oraz plikiem C:\Backup\Samochody_backup_2.bak
- Wykorzystując wiedzę z poprzedniego ćwiczenia stwórz nową kopię bazy danych
„Samochody” na Backup Device „samochody_backup_2” z następnymi opcjami:
Opcja
NAME
DESCRIPTION
Backup
Overwrite
Wartość
'Samochody-Full'
„Kopia Full-backup DB Samochody”
DataBase-complete
Overwrite existing media
9. Pierwsza modyfikacja bazy danych. Stworzenie kopii dziennika transakcji.
W tym punkcie będą zmodyfikowane tabele bazy danych w sposób analogiczny do p.3.
Do przechowywania zmian w porównaniu z „Kopią Full-backup...” będzie utworzony
nowy nośnik archiwizacyjny „Samochody Changes” i do tego nośnika zostanie zapisany
dziennik transakcji(log). Na nowym nośniku archiwizacyjnym będą kopie różnicowe
(differential backup) oraz kopi logów(dzienników transakcji).
- Wpisz wykorzystując QUERY ANALYZER nowe rekordy do tabel: „Klienci”,
„Miejsca”, „Samochody”. Sprawdź wykorzystując polecenia SQL czy te rekordy zostały
wpisane.
Do wpisania nowych rekordów może być wykorzystana instrukcja SQL :
INSERT INTO ... VALUES (...);
- Wykorzystując wiedzę z poprzedniego ćwiczenia utwórz nowy „Backup Device” o
nazwie „samochody_change” do przechowywania zmian w bazie danych „Samochody”.
Plik „samochody_change.bak” musi być w katalogu C:\BACKUP.
- Wykorzystując wiedzę z poprzedniego ćwiczenia utwórz nową kopię dziennika
transakcji bazy danych „Samochody” na urządzeniu „Backup Device”
„samochody_change” z następującymi opcjami:
Opcja
NAME
DESCRIPTION
Backup
Overwrite
Wartość
‘Samochody Changes '
' 1-a modyfikacja - Log and Differential backups
BD samochody'
Transaction Log
Append to media
Sprawdź obecność kopii. Zwracaj uwagę na typ i czas stworzenia kopii.
10.Druga modyfikacja bazy danych. Stworzenie kopii różnicowej (differential
backup).
W tym punkcie będą zmodyfikowane tabele bazy danych w sposób analogiczny pp.3,9.
Do przechowywania zmian w porównaniu z „Trzecią kopią Full-backup...” w nośniku
archiwizującym będzie stworzona kopia różnicowa (differential backup).
- Wpisz w QUERY ANALYZER nowe rekordy do tabel: „Klienci”, „Miejsca”,
„Samochody”. Sprawdź przez polecenie SQL czy te rekordy zostali wpisane.
Dla wpisania nowych rekordów może być wykorzystana instrukcja SQL :
INSERT INTO ... VALUES (...);
- Wykorzystując wiedzę z poprzedniego ćwiczenia stwórz w QUERY ANALYZER za
pomocą instrukcji BACKUP DATABASE kopię różnicową bazy danych „Samochody” na
„Backup Device” „samochody_change” z opcjami „with DIFFERENTIAL, NOINIT”.
Sprawdź obecność kopii. Zwracaj uwagę na typ i czas stworzenia kopii.
11.Trzecia modyfikacja danych. Stworzenie kopii dziennika transakcji (logu).
W tym punkcie będą znowu zmodyfikowane tabele bazy danych. Do przechowywania
zmian w porównaniu z „Kopią Full-backup...” będzie stworzona druga kopia dziennika
transakcji(logu).
- Wpisz w QUERY ANALYZER nowe rekordy do tabel: „Klienci”, „Miejsca”,
„Samochody”. Sprawdź przez polecenie SQL czy te rekordy zostały wpisane.
Do wpisania nowych rekordów może być wykorzystana instrukcja SQL :
INSERT INTO ... VALUES (...);
- Wykorzystując wiedzę z poprzedniego ćwiczenia w QUERY ANALYZER przy pomocy
instrukcji BACKUP LOG stwórz kopię dziennika transakcji (logu) bazy danych
„Samochody” na „Backup Device” „samochody_change” z opcją „with NOINIT”.
Sprawdź obecność kopii. Zwracaj uwagę na typ, czas stworzenia kopii oraz rozmiary
wszystkich kopii na urządzniu archiwizacyjnym (Backup Device).
12.Modelowanie sytuacji awaryjnej.
W tym punkcie będzie modelowana sytuacja gdy serwer SQL nie może uruchomić bazę
danych.
- Zamknij programy „Enterprise Manager” oraz „Query Analyzer”. Uruchom program „SQL
Server service” oraz zatrzymaj SQL Server.
- Odszukaj w „Windows Explorer” plik bazy danych „Samochody” w katalogu C:\Program
Files\Microsoft SQL Server\MSSQL\Data. Zmień nazwę pliku Samochody.mdf na
Samochody.bad.
- Zrestartuj SQL Server w programie “SQL Server service”.
- Uruchom „Enterprise Manager”. Rozwiń katalog „Databases”. Zwróć uwagę na komunikat
obok ikony „samochody”.
- Rozwiń katalog „Management -> SQL Server Logs”. Odczytaj ostatni „log” SQL serwera.
Odszukaj w tym „logu” rekord „Starting up database 'samochody'”. Przeanalizuj komunikaty
o błędach, które są w tym logu.
Przed realizacją następnych punktów przeanalizuj zawartość nośników archiwizacyjnych
(Backup Device) „Samochody_backup_2” oraz „Samochody_change”. Zwróć uwagę jakie
modyfikacje danych są zawarte w tych kopiach.
13.Odtwarzanie bazy danych z wykorzystaniem kopii różnicowych.
W tym punkcie będzie odtwarzana baza danych z istniejących kopii: kopii Full-Beckup oraz
kopii różnicowej.
- Uruchom „Enterprise Manager”. Rozwiń katalog Databases. Kliknij prawym przyciskiem
myszy na bazę „Samochody”. Wybierz „Wszystkie zadania ->Restore Database”. W polu
„Restore as database” wybierz „Samochody”. W polu „First backup to restore” wybierz
ostatnią kopię Full bazy danych „Samochody”. Na liście „Restore” wybierz tylko dwie kopie:
„Full” oraz kopię różnicową. Na zakładce „Option” ustaw tryb „Leave database read-only and
able to restore additional transaction logs.” Kliknji OK.
Przeanalizuj komunikat obok ikony „samochody”.
- Uruchom Query Analyzer. Utwórz polecenie SQL do odczytania zawartości tabel. Sprawdź
czy zostały odtworzone dane w tych tabelach.
14.Odtwarzanie bazy danych z wykorzystaniem kopii logów.
W tym punkcie będzie odtwarzana baza danych z istniejących kopii: kopii Full-Beckup oraz
kopii dziennika transakcji (logu).
- Uruchom „Enterprise Manager”. Rozwiń katalog Databases. Kliknij prawym przyciskiem
myszy na bazę „Samochody”. Wybierz „Wszystkie zadania ->Restore Database”. W polu
„Restore as database” wybierz „Samochody”. W polu „First backup to restore” wybierz
ostatnią kopię Full bazy danych „Samochody”. Na liście „Restore” wybierz tylko jedną
kopię: ostatnią kopie dziennika transakcji (logu). W zakładce „Option” ustaw tryb „Leave
database operational. No additional transaction logs can be restored.” Kliknji OK.
- Uruchom Query Analyzer. Utwórz polecenie SQL do odczytania zawartości tabel. Sprawdź
czy zostały odtworzone dane w tych tabelach.
Treść sprawozdania:
1. Odnośnie do każdego punktu ćwiczenia umieścić kod Transact-SQl oraz
wyniki .
2. Do kilku wybranych punktów zademonstrować własne przykłady
Przykładowe pytania kontrolne
1. Jaka jest różnica pomiędzy kopiami dziennika transakcji bazy danych oraz kopiami
różnicowymi?
2. Została przypadkowo usunięta tabela bazy danych. W jaki sposób można ją
odtwarzać?
3. Dlaczego przy odtwarzaniu bazy danych musi być ustalona opcja Restrict Access?
4. Omów zawartość różnych plików przechowywanych w urządzeniach archiwalnych
w tym ćwiczeniu.
Download