SQL Server. Odtwarzanie baz danych.



Podobne dokumenty
Kopie zapasowe w SQL Server. Michał Bleja

Administracja i programowanie pod Microsoft SQL Server 2000

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

Administracja i programowanie pod Microsoft SQL Server 2000

Problemy techniczne SQL Server

Problemy techniczne SQL Server

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Administracja i programowanie pod Microsoft SQL Server 2000

Ile rekordów będzie zawierała tabela przy założeniu, że na początku była pusta?

Nowe technologie baz danych

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Wykład 8. SQL praca z tabelami 5

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).

Język SQL, zajęcia nr 1

Cwiczenie 7. Retrospekcja

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Bazy danych i usługi sieciowe

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

Bazy Danych i Usługi Sieciowe

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Archiwizacja i odtwarzanie bazy danych

startup pfile= '$HOME/admin/pfile/initDBx.ora'; create spfile from pfile= '$HOME/admin/pfile/initDBx.ora';

Dokumentacja instalacyjna i konfiguracyjna Aplikacja ADR. Wersja dokumentu 1.0. Strona 1/9

Przyczyny awarii. Struktury wykorzystywane do odtwarzania bd. Archiwizowanie plików dziennika. Archiwizowanie danych. danych

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe

Wykład 05 Bazy danych

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Bazy danych. dr inż. Arkadiusz Mirakowski

1 Zaznacz poprawne stwierdzenia dotyczące grup plików 6 Zaznacz poprawne stwierdzenia dotyczące transakcji w MS (filegroup) SQL

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Klastrowanie bazy IBM DB2. Adam Duszeńko

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Bazy danych 10. SQL Widoki

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

LAB 6 BEGIN TRANSACTION, COMMIT, ROLLBACK, SET TRANSACTION ISOLATION LEVEL,

Tworzenie kopii zapasowej baz danych programu Lotus Connections 3.0 (oraz 3.0.1)

BAZY DANYCH. CREATE TABLE dbo.wydzialy (ID INT, Akronim VARCHAR(4) NOT NULL, Wydzial VARCHAR(30) NOT NULL, CONSTRAINT Kluczyk PRIMARY KEY(ID) )

Zarządzanie strukturą bazy danych Oracle11g

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Przygotowanie bazy do wykonywania kopii bezpieczeństwa

DATABASE SNAPSHOT GEEK DIVE. Cezary Ołtuszyk Blog: coltuszyk.wordpress.com

Wyzwalacze (triggery) Przykład

Bazy danych 7. SQL podstawy

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Internetowe bazy danych

Paweł Cieśla. Dokumentacja projektu

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Podstawy systemów UNIX Podstawy RMAN

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP).

Projektowanie systemów baz danych

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Zagadnienia ianywhere Solutions, Inc. All rights reserved.

BACKUP BAZ DANYCH MS SQL

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Bazy danych. Dr inż. Paweł Kasprowski

BAZY DANYCH Cz III. Transakcje, Triggery

BAZY DANYCH Import i eksport danych Tworzenie kopii bezpieczeństwa oraz odzyskiwanie danych

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Tuning SQL Server dla serwerów WWW

Programowanie obiektów

BAZY DANYCH. Transakcje. opracowanie: Michał Lech

Odtwarzanie po awarii plików bazy danych

Bazy danych i usługi sieciowe

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Bazy danych. Polecenia SQL

DECLARE VARIABLE zmienna1 typ danych; BEGIN

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Bazy danych 5. Samozłaczenie SQL podstawy

Wykład 5. SQL praca z tabelami 2

System Oracle podstawowe czynności administracyjne

Zastępstwa Optivum. Jak przenieść dane na nowy komputer?

Wykonywanie kopii bezpieczeństwa w bazie Oracle 11g

Copyright 2013 COIG SA Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

ACESS- zadania z wykorzystaniem poleceń SQL

Ref. 7 - Język SQL - polecenia DDL i DML

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Administracja i programowanie pod Microsoft SQL Server 2000

CREATE USER

DODATEK: Import i eksport danych Eksport przy użyciu SELECT a

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Paweł Rajba

Aspekty aktywne baz danych

Procedura zmiany Page Size z 1024 na 2048 dla bazy telkombud.gdb poprzez wykonanie backup/restore dla bazy.

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)

Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie.

Właściwości transakcji

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Transkrypt:

SQL Server. Odtwarzanie baz danych. Utwórz bazę danych CW. Utwórz w niej tabelę T1(p1 INT PRIMARY KEY, p2 INT) i wpisz wiersz (1,100). Sprawdź ścieżkę dostępu do plików bazy (np. we właściwościach bazy danych). CREATE DATABASE CW CREATE TABLE T1(p1 INT PRIMARY KEY, p2 INT) INSERT INTO T1 VALUES (1,100) Zadanie 1 Odtwarzanie systemu bazy danych po awarii dysku z danymi (zakładamy, że dysk z dziennikiem transakcji nie uległ uszkodzeniu). 1) Utwórz pełną kopię zapasową bazy CW do pliku tymczasowego CW_pelna.bak. BACKUP DATABASE CW TO DISK='C:\...\CW_pelna.bak' (np. na pulpit) 2) Dopisz wiersz (2,200) do tabeli T1. 3) Wykonaj różnicową kopię zapasową bazy CW do pliku tymczasowego CW_roznicowa1.bak. BACKUP DATABASE CW TO DISK='C:\...\CW_roznicowa1.bak' WITH DIFFERENTIAL 4) Dopisz wiersz (3,300) do tabeli T1. 5) Wykonaj drugą różnicową kopię zapasową bazy CW do pliku tymczasowego CW_roznicowa2.bak BACKUP DATABASE CW TO DISK='C:\...\CW_roznicowa2.bak' WITH DIFFERENTIAL 6) Dopisz wiersz (4,400) do tabeli T1. 7) Wykonaj kopię dziennika transakcji do pliku CW_log1.bak. BACKUP LOG CW TO DISK='C:\...\CW_log1.bak' 9) Dopisz wiersz (5,500) do tabeli T1. 10) Wykonaj kopię dziennika transakcji do pliku CW_log2.bak. BACKUP LOG CW TO DISK='C:\...\CW_log2.bak' 11) Dopisz wiersz (6,600) i (7,700) do tabeli T1. Zmieo bazę danych na MASTER. 12) Zatrzymaj serwer. Wykonaj symulację awarii: usuo plik CW.MDF.

13) Odtwórz bazę danych po awarii. Strategia odtwarzania: 1) Uruchom serwer. 2) Wykonaj kopię zapasową dziennika transakcji bazy CW, do pliku CW_log3.bak (koniecznie z opcją WITH NO_TRUNCATE!!! tylko z taką opcją można robid kopię w przypadku, gdy baza danych jest uszkodzona). BACKUP LOG CW TO DISK='C:\...\CW_log3.bak' WITH NO_TRUNCATE 3) Odtwórz bazę z kopii pełnej, można z opcją WITH NORECOVERY lub z WITH STANDBY='C:\Temp\x.xxx' (miejsce na dysku oraz nazwa pliku może byd dowolna, plik ten zostanie automatycznie skasowany). Ta ostatnia opcja umożliwia połączenie z bazą i odczytanie zawartości właśnie odtworzonego fragmentu bazy danych, np. RESTORE DATABASE CW FROM DISK='C:\...\CW_pelna.bak' Zamiast powyższego zdania SQL można byłoby wykonad takie (tylko baza nie byłaby dostępna nawet w trybie tylko do odczytu): RESTORE DATABASE CW FROM DISK='C:\...\CW_pelna.bak' WITH NORECOVERY Przy założeniu, że została użyta opcja STANDBY, do bazy można zaglądnąd: Uwaga! Przed dalszym odtwarzaniem należy "wrócid" do bazy MASTER (). 4) Odtwórz bazę z ostatniej kopii różnicowej (z opcją WITH NORECOVERY lub z WITH STANDBY='C:\Temp\x.xxx'). Możesz sprawdzid co zostało odtworzone. Zwród uwagę na to, że pierwsza kopia różnicowa nie jest potrzebna (druga zawiera wszystkie zmiany wykonane w bazie danych po utworzeniu ostatniej pełnej kopii zapasowej). RESTORE DATABASE CW FROM DISK='C:\...\CW_roznicowa2.bak' 5) Odtwórz bazę z pliku CW_log1.bak (z opcją WITH NORECOVERY lub z WITH STANDBY='C:\Temp\x.xxx'). Możesz sprawdzid co zostało odtworzone. Przy odtwarzaniu bazy

z kopii dziennika transakcji należy użyd wszystkich kopii dziennika (inaczej jak w przypadku kopii różnicowych). RESTORE DATABASE CW FROM DISK='C:\...\CW_log1.bak' 6) Odtwórz bazę z pliku CW_log2.bak (z opcją WITH NORECOVERY lub z WITH STANDBY='C:\Temp\x.xxx'). Możesz sprawdzid co zostało odtworzone. RESTORE DATABASE CW FROM DISK='C:\...\CW_log1.bak' 7) Odtwórz bazę danych z pliku CW_log3.bak z opcją WITH RECOVERY. RESTORE DATABASE CW FROM DISK='C:\...\CW_log3.bak' WITH RECOVERY Zadanie 2 Odtwarzanie systemu bazy danych do pewnego momentu. Odtwarzanie częściowe (wybranych grup plików). 1) Dodaj grupę plików o nazwie Grupa2 i umieśd w niej plik CW_gr2.ndf o nazwie logicznej CW_2. W grupie plików Grupa2 utwórz tabelę T2 (x1 int, x2 int). Dodaj grupę plików Grupa3 i umieśd w niej plik CW_gr3.ndf o nazwie logicznej cw_3, następnie w tej grupie utwórz tabelę T3(y1 int, y2 int). ADD FILEGROUP GRUPA2 ADD FILE (NAME = 'CW_2', FILENAME = 'C:\...\CW_GR2.NDF') TO FILEGROUP GRUPA2 ADD FILEGROUP GRUPA3 ADD FILE (NAME = 'CW_3', FILENAME = 'C:\...\CW_GR3.NDF') TO FILEGROUP GRUPA3

CREATE TABLE T2(x1 INT PRIMARY KEY, x2 INT) ON GRUPA2 CREATE TABLE T3(y1 INT PRIMARY KEY, y2 INT) ON GRUPA3 Wpisz do T2 i T3 jednakowe wiersze (1,100). INSERT INTO T2 VALUES(1,100) INSERT INTO T3 VALUES(1,100) 8) Zrób pełną kopię zapasową bazy CW. Dodaj do T2 i T3 wiersze (2,200) i (3,300). BACKUP DATABASE CW TO DISK='C:\...\CW_KOPIA.BAK' INSERT INTO T2 VALUES(2,200) INSERT INTO T3 VALUES(2,200) 9) Zapisz datę z godziną: SELECT GetDate() (możesz np. użyd tabeli pomocniczej). CREATE TABLE #POMOCNICZA(NR INT IDENTITY(1,1) PRIMARY KEY, CZAS DATETIME) INSERT INTO #POMOCNICZA(CZAS) VALUES(GETDATE()) SELECT * FROM #POMOCNICZA 10) Skasuj tabelę T2. Wstaw do T3 wiersze (4,400) i (5,500). DROP TABLE T2 INSERT INTO T3 VALUES(3,300) INSERT INTO T3 VALUES(4,400) 11) Odtwórz tabelę T2. Strategia odtwarzania tabeli T2 nie może byd oparta na odtworzeniu bazy danych z pełnej kopii i potem z kopii dziennika z zatrzymaniem na godzinie sprzed skasowania tabeli T2, ponieważ zostałyby utracone wszystkie inne transakcje z bazy danych wykonane po tej godzinie (w naszym przypadku jest to wstawienie wierszy (3,300) i (4,400) to T3). Właściwa strategia polega na odtworzeniu bazy danych do innej bazy i potem skopiowaniu tabeli T2. W przypadku dużych baz danych podzielonych na grupy plików można nawet nie odtwarzad całej bazy (mogłoby to zając nawet kilka godzin), tylko wybrane grupy plików. Uwaga grupa o nazwie PRIMARY (z plikiem *.MDF) musi byd zawsze odtworzona. Taka strategia będzie użyta w tym dwiczeniu. Należy zrobid kopię zapasową bieżącego dziennika transakcji z opcją COPY_ONLY (żeby bieżący dziennik nie został obcięty). BACKUP LOG CW TO DISK='D:\TEMP\CW_LOG.BAK' WITH COPY_ONLY Należy odtworzyd bazę danych CW z pełnej kopii do bazy z inną nazwą, np. CWA (zastosowane opcje to MOVE oraz NORECOVERY). Następnie należy odtworzyd bazę (a właściwie grupę plików PRIMARY i GRUPA2) z dziennika transakcji z opcją STOPAT = (tu podad zapisaną wcześniej godzinę). RESTORE DATABASE CWA FILEGROUP = 'GRUPA2'

FROM DISK='D:\TEMP\CW_KOPIA.BAK' WITH PARTIAL, NORECOVERY, MOVE 'CW' TO 'C:\...\CWA.MDF', -- grupa PRIMARY musi być zawsze odtworzona MOVE 'CW_2' TO 'C:\...\CWA_2.NDF', MOVE 'CW_LOG' TO 'C:\...\CWA_LOG.LDF' dziennik transakcji DECLARE @CZAS DATETIME SET @CZAS=(SELECT CZAS FROM #POMOCNICZA WHERE NR=1) RESTORE LOG CWA FROM DISK='C:\...\CW_LOG.BAK' WITH STOPAT = @CZAS, RECOVERY SELECT * INTO t2 FROM CWA.dbo.T2 Zadanie 3 Odtwarzanie systemu bazy danych do wybranej transakcji nazwanej. Bazę danych można odtworzyd do pewnej transakcji (włącznie lub wyłącznie), wykorzystując nazwane transakcje i opcja odtwarzania STOPATMARK lub STOPBEFOREMARK. Ilustrują to poniższe przykłady z Books Online: USE AdventureWorks BEGIN TRANSACTION ListPriceUpdate WITH MARK 'UPDATE Product list prices';-- opis podany w apostrofach jest opcjonalny UPDATE Production.Product SET ListPrice = ListPrice * 1.10 WHERE ProductNumber LIKE 'BK-%'; COMMIT TRANSACTION ListPriceUpdate; -- Time passes. Regular database -- and log backups are taken. -- An error occurs in the database. USE master -- Poniżej zastosowano odtwarzanie z tzw. trwałego pliku kopii zapasowych. -- Taki plik jest określany mianem device lub urządzenie i należy go -- najpierw utworzyć procedurą sp_addumpdevice. Jest to plik, który -- może być traktowany jak urządzenie, do którego można wstawić wiele kopii -- zapasowych bazy danych i dziennika transakcji. Kopie te są ponumerowane. -- Polecenie RESTORE HEADERONLY wypisuje zawartość -- takiego pliku urządzenia. RESTORE DATABASE AdventureWorks FROM AdventureWorksBackups podano tu nazwę urządzenia (pliku trwałego) WITH FILE = 3, NORECOVERY; -- 3 oznacza trzecią kopię w pliku kopii RESTORE LOG AdventureWorks FROM AdventureWorksBackups WITH FILE = 4, RECOVERY,

STOPATMARK = 'ListPriceUpdate'; Proszę przedwiczyd powyższy schemat odtwarzania na bazie danych CW.