Kopie zapasowe w SQL Server. Michał Bleja

Podobne dokumenty
SQL Server. Odtwarzanie baz danych.

Administracja i programowanie pod Microsoft SQL Server 2000

Administracja i programowanie pod Microsoft SQL Server 2000

Problemy techniczne SQL Server

Problemy techniczne SQL Server

Wprowadzenie do języka T-SQL. Michał Bleja

Wykonywanie kopii bezpieczeństwa w bazie Oracle 11g

Klastrowanie bazy IBM DB2. Adam Duszeńko

Użytkownicy, uprawnienia, role w SQL Server (W oparciu o SQL Server 2008R2 Books Online)

Przygotowanie bazy do wykonywania kopii bezpieczeństwa

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

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

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

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

Podstawy teoretyczne baz danych. Recovery Transakcyjne odtwarzanie bazy danych po awarii

PROCEDURA BACKUP & RECOVER Dokument opisuje procedurę backup u i odtwarzania dla bazy Oracle 11gR2

1 Instalowanie i uaktualnianie serwera SQL Server

Cel odtwarzania. Transakcyjne odtwarzanie bazy danych. Modele awarii. Efektywność odtwarzania MTTF

BACKUP BAZ DANYCH MS SQL

Administracja i programowanie pod Microsoft SQL Server 2000

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

Zapewnienie wysokiej dostępności baz danych. Marcin Szeliga MVP SQL Server MCT

Administracja bazami danych

Podstawy systemów UNIX Podstawy RMAN

Windows Serwer 2008 R2. Moduł 8. Mechanizmy kopii zapasowych

Od czego zacząć przy budowaniu środowisk wysokiej dostępności?

Archiwizacja i odtwarzanie bazy danych

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

Paweł Rajba

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

Odtwarzanie po awarii plików bazy danych

Zarządzanie strukturą bazy danych Oracle11g

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Administracja i programowanie pod Microsoft SQL Server 2000

2 Konfiguracja i utrzymanie bazy danych Przed rozpoczęciem Lekcja 1: Konfigurowanie plików i grup plików Pliki i grupy plików...

Zarządzanie transakcjami

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

Prawa dostępu do serwera. Nadawanie i odbieranie uprawnień DCL. Użytkownicy a role

Internetowe bazy danych

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Microsoft SQL Server 2012 Krok po kroku

Administracja i programowanie pod Microsoft SQL Server 2000

Server Oracle - System Zarządzania Bazą Danych - składa się z instancji Oracle i bazy danych Oracle Instancja Oracle - pewne procesy drugoplanowe i

System obsługi ubezpieczeń FORT

Administracja i programowanie pod Microsoft SQL Server 2000

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

Problemy techniczne SQL Server. Zarządzanie bazami danych na serwerze SQL

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

Block Change Tracking

Cwiczenie 7. Retrospekcja

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

Aktualizacja do Microsoft SQL Server Adam Rynarzewski MCT

Opisane poniżej czynności może wykonać administrator komputera lub administrator serwera SQL (tj. użytkownik sa).

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

Wstęp. Opis ten dotyczy wydziałów orzeczniczych.

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

Typy tabel serwera MySQL

PlateSpin Protect Dariusz Leonarski Starszy konsultant Novell Sp. z o.o.

BEST S.A. Tworzenie strategii przywracania baz danych na przykładzie SQL Server Cezary Ołtuszyk

Konwersja bazy Sybase ASA Runtime do Microsoft SQL Server

Laboratorium A: Zarządzanie mechanizmami odzyskiwania systemu

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

SQL Server Configuration Manager centrum dowodzenia

Zagadnienia ianywhere Solutions, Inc. All rights reserved.

Paweł Cieśla. Dokumentacja projektu

Systemy Operacyjne. Zarządzanie/Administracja Systemem/Procesami. autor: mgr inż. Andrzej Woźniak

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Problemy techniczne SQL Server. Zarządzanie bazami danych na serwerze SQL

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

Naprawa uszkodzonej bazy Interbase/Firebird

Sieciowa instalacja Sekafi 3 SQL

Jak przenieść bazę danych na zdalny serwer?

Tytuł kursu: Oracle 11g XE Administracja (kompleksowe)

:11 BD_1_W9

Zasady współpracy programu Doradca Handlowy z Symfonią

Wykład 8. SQL praca z tabelami 5

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

Projektowanie systemów baz danych

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

Oracle PL/SQL. Paweł Rajba.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Bazy danych 6a. Transakcje. P. F. Góra

SZKOLENIE: Administrator baz danych. Cel szkolenia

SYSTEM INFORMATYCZNY KS-SEW

Tuning SQL Server dla serwerów WWW

SQL*Loader. Export/Import

Administracja bazy danych Oracle 10g

1. Pobierz plik z diagramem związków encji schematu Uczelnia (MS Visio) oraz plik ze skryptem tworzącym tabele i wypełniający je danymi, z zasobu:

SYSTEM INFORMATYCZNY KS-SEW

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

INSTRUKCJA NAPRAWA BAZY DANYCH FIREBIRD ISO 9001:2008 Dokument: Wydanie: 1 Waga: 90

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

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

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

Microsoft SQL Server 2012 : krok po kroku / Patrick LeBlanc. Warszawa, Spis treści

Fizyczna struktura bazy danych w SQL Serwerze

Zmiana treści Specyfikacji Istotnych Warunków Zamówienia.

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

Transkrypt:

Kopie zapasowe w SQL Server Michał Bleja

Typy kopii zapasowych (w oparciu o SQL Server Books Online) Pełna kopia zapasowa bazy danych (full database backup) zawiera wszystkie strony bazy danych oraz odpowiednią część logu transakcyjnego Różnicowa kopia zapasowa bazy danych (differential database backup) obejmuje wyłącznie ekstenty zmodyfikowane od czasu ostatniej pełnej kopii zapasowej Częściowa kopia zapasowa (partial backup) obejmuje pliki z grupy PRIMARY, dowolne grupy plików READ/WRITE, grupy plików READ ONLY jeśli zostaną wyspecyfikowane Różnicowa częściowa kopia zapasowa (partial differential backup)

Typy kopii zapasowych Kopia zapasowa grupy plików/plików/pliku Różnciowa kopia zapasowa grupy plików/plików/pliku Kopia logu transakcyjnego (log backup) możliwa tylko w modelu odzyskiwania FULL lub BULK-LOGGED (obejmuje aktywną część logu oraz część logu nie występującą w poprzedniej kopii logu) Kopia typu copy-only (pełna lub logu) kopia zapasowa, która nie wpływa na bazę danych i kolejne kopie zapasowe (tym samym na procedurę odtwarzania) Przeczytać informacje zamieszczone pod https://docs.microsoft.com/enus/sql/relational-databases/backup-restore/backup-overview-sql-server

Przykładowa sekwencja kopii zapasowych Pełna kopia bazy danych raz w tygodniu (np. w niedzielę) Kopia różnicowa bazy od poniedziałku do soboty o godz. 24:00 Kopia dziennika transakcji co 30 minut

Przechowywanie kopii zapasowych backup set jedna kopia zapasowa dowolnego typu media set składuje backup set - obejmuje do 64 urządzeń kopii zapasowych (backup device). Może zawierać wiele backup sets. backup device taśmy lub pliki dyskowe Tabele w bazie msdb zawierające informacje o kopiach zapasowych: msdb.dbo.backupset msdb.dbo.backupmediafamily msdb.dbo.backupmediaset msdb.dbo.backupfile msdb.dbo.backupfilegroup

Pełna kopia zapasowa bazy danych BACKUP DATABASE demodb TO DISK = 'd:\data\demodb_full.bak' --Opcja INIT nadpisuje istniejące kopie (backup set) w danym media set nowo tworzoną kopią --NOINIT jest domyślne nowa kopia zostanie dodana do danego media set BACKUP DATABASE demodb TO DISK = 'd:\data\demodb_full.bak' WITH NO INIT BACKUP DATABASE demodb TO DISK = 'd:\data\demodb_full.bak' WITH INIT

Walidacja kopii zapasowej Polecenie backup może obliczyć sumę kontrolną wykonanej kopii zapasowej i umieścić ją w kopii Opcja CHECKSUM polecenia backup implikuje weryfikacje każdej strony (jeśli page_verify jest ustawione) oraz generuje sumę kontrolną dla całej kopii NO_CHECKSUM jest domyślną opcją Polecenie backup z opcją CHECKSUM domyślnie zakończy się porażką gdy zostaną napotkane błędne strony Opcja CONTINUE_AFTER_ERROR wymusza kontynuowanie wykonania kopii BACKUP DATABASE demodb TO DISK = 'd:\data\demodb_full.bak' WITH INIT, CHECKSUM

Walidacja kopii zapasowej Polecenie RESTORE VERIFYONLY pozwala sprawdzić czy kopia jest kompletna oraz czy można ją odczytać (struktura danych nie jest weryfikowana) Opcja CHECKSUM polecenia RESTORE VERIFYONLY weryfikuje sumę kontrolną stron w kopii oraz sumę kontrolną całej kopii RESTORE VERIFYONLY FROM DISK = 'd:\data\demodb_full.bak' WITH CHECKSUM

Informacje o kopii zapasowej RESTORE LABELONLY zwraca informacje o urządzeniach kopii (media set) RESOTRE HEADERONLY zwraca nagłówki kopii z danego urządzenia kopii RESTORE FILELISTONLY zwraca listę plików danych i logu zawartych w danej kopii RESTORE LABELONLY FROM DISK='d:\data\demoDB_Full.bak' RESTORE HEADERONLY FROM DISK='d:\data\demoDB_Full.bak' RESTORE FILELISTONLY FROM DISK='d:\data\demoDB_Full.bak'

Kopia z opcją FORMAT Pełna kopia z opcją INIT BACKUP DATABASE demodb TO DISK = 'd:\data\demodb_full.bak' WITH INIT Pełna kopia do medium obejmującego dwa pliki BACKUP DATABASE demodb TO DISK = 'd:\data\demodb_full.bak', DISK = 'd:\data\demodb2_full.bak' WITH INIT --ERROR The media loaded on "d:\data\demodb_full.bak" is formatted to support 1 media families, but 2 media families are expected according to the backup device specification. --Należy wykonać kopię z opcją FORMAT, która zmodyfikuje strukturę obecnego medium, tak aby bazowało na 2 plikach BACKUP DATABASE demodb TO DISK = 'd:\data\demodb_full.bak', DISK = 'd:\data\demodb2_full.bak' WITH INIT, FORMAT, MEDIANAME = 'demomedia'

Kopia z klauzulą MIRROR TO Klazula MIRROR TO pozwala wykonać kopię kopii Można wyspecyfikować 3 klazule MIRROR TO (uzyskać zatem 4 kopie bazy w wyniku jednego polecenia) Wykonanie pełnej kopii oraz jej kopii w jednym poleceniu BACKUP DATABASE demodb TO DISK = 'd:\data\demodb_full.bak', DISK = 'd:\data\demodb2_full.bak' MIRROR TO DISK = 'd:\data2\demodbm_full.bak', DISK = 'd:\data2\demodbm2_full.bak' WITH FORMAT --opcja FORMAT jest wymagana, aby stworzyć lustrzany zestaw kopii (mirrored backup set)

Kopie skompresowane Opcja COMPRESS pozwala utworzyć kopię skompresowaną Opcja pojawiła się w SQL Server 2008 Enterprise W SQL Server 2008 R2 dostępna od wersji Standard BACKUP DATABASE demodb TO DISK = 'd:\data\demodb_full.bak', DISK = 'd:\data\demodb2_full.bak' MIRROR TO DISK = 'd:\data2\demodbm_full.bak', DISK = 'd:\data2\demodbm2_full.bak' WITH FORMAT, COMPRESSION

Kopie różnicowe Opcja DIFFERENTIAL pozwala wykonać kopie różnicową Przed wykonaniem kopii różnicowej należy wykonać pełną kopię bazy danych BACKUP DATABASE demodb TO DISK = 'd:\data\demodb_full.bak', DISK = 'd:\data\demodb2_full.bak' WITH DIFFERENTIAL, FORMAT, MEDIANAME = 'demodbdiff'

Kopie częściowe, grupy plików, pliku BACKUP DATABASE demodb READ_WRITE_FILEGROUPS TO DISK = 'd:\data\demodb_partial.bak' WITH MEDIANAME = 'demodbpartial' BACKUP DATABASE demodb FILEGROUP = 'PRIMARY' TO DISK = 'd:\data\demodb_partial.bak' WITH MEDIANAME = 'demodbpartial' BACKUP DATABASE demodb FILE = 'demodb' TO DISK = 'd:\data\demodb_partial.bak' WITH MEDIANAME = 'demodbpartial'

Kopie logu Polecnie BACKUP LOG pozwala wykonać kopie logu Baza musi być w trybie odzyskiwania FULL lub BULK- LOGGED Wykonanie kopii logu usuwa z logu jego część nieaktywną BACKUP LOG demodb TO DISK = 'd:\data\demodb_log.bak' WITH MEDIANAME = 'demodblog'

Kopie ogonka logu (tail-log backup) KOPIA OGONKA LOGU TO PIERWSZA CZYNNOŚĆ JAKĄ NALEŻY WYKONAĆ W CZASIE AWARII BAZY DANYCH Po wykonaniu kopii ogonka logu rozpoczynamy procedurę odtwarzania Kopia ogonka logu to zwykła kopia logu, która obejmuje rekordy logu dotychczas niezarchiwizowane Opcja CONTINUE_AFTER_ERROR jest wymagana w przypadku gdy pliki danych są zniszczone BACKUP LOG demodb TO DISK = 'd:\data\demodb_log.bak' WITH CONTINUE_AFTER_ERROR

Odtwarzanie bazy w SQL Server

Odtwarzanie bazy Polecnie RESTORE pozwala odtworzyć : Całą bazę danych Grupy plików/pliki Poszczególne strony Log transakcyjny

Odtwarzanie bazy Proces odtwarzania obejmuje: 1) Utworzenie plików i skopiowanie danych do plików 2) Zastosowanie transakcji występujących w logu (faza redo) do określonego momentu odzyskiwania 3) Wycofanie transakcji, które nie były zatwierdzone do określonego momentu odzyskiwania (faza undo) Faza redo i undo nazywane są odzyskiwaniem bazy danych.

Odtwarzanie bazy do momentu awarii Rozważmy poniższą sekwencję kopii zapasowych (baza demodb posiada tabelę tab1(id int identity primary key, tekst varchar(30), która ma dwa wiersze): Pełna kopia zapasowa bazy (po jej wykonaniu wstawiamy dwa wiersze) Różnicowa kopia zapasowa (po jej wykonaniu wstawiamy jeden wiersz) Kopia logu transakcyjnego (po jej wykonaniu wstawiamy trzy rekordy) Zatrzymujemy serwer i kasujemy pliki danych bazy demodb (zakładamy, że log przetrwał awarię) Uruchamiamy serwer i rozpoczynamy odtwarzanie bazy

Odtwarzanie bazy do momentu awarii Wykonanie kopii ogonka logu BACKUP LOG demodb TO DISK = 'd:\data\demodb_tlb.bak' WITH CONTINUE_AFTER_ERROR, NORECOVERY Odtworzenie bazy z pełnej kopii zapasowej, opcja NORECOVEY pozwala kontynuować procedurę odtwarzania RESTORE DATABASE demodb FROM DISK = 'd:\data\demodb_full.bak' WITH NORECOVERY Odtworzenie kopii różnicowej RESTORE DATABASE demodb FROM DISK = 'd:\data\demodb_diff.bak' WITH NORECOVERY

Odtworzenie kopii logu Odtwarzanie bazy do momentu awarii RESTORE LOG demodb FROM DISK = 'd:\data\demodb_log1.bak' WITH NORECOVERY Odtworzenie kopii ogonka logu (opcja RECOVERY jest domyślna i przenosi bazę w stan online ze stanu recovering) RESTORE LOG demodb FROM DISK = 'd:\data\demodb_tlb.bak' WITH RECOVERY

Odtwarzanie bazy do punktu w czasie Opcja STOPAT wyrażenie_data_czas polecenia RESTORE LOG pozwala odtworzyć bazę danych do konkretnego punktu w czasie RESTORE DATABASE demodb FROM DISK = 'd:\data\demodb_full.bak' WITH NORECOVERY RESTORE DATABASE demodb FROM DISK = 'd:\data\demodb_diff.bak' WITH NORECOVERY RESTORE LOG demodb FROM DISK = 'd:\data\demodb_log1.bak' WITH STOPAT = '2013-10-21 10:00:00.000', RECOVERY... RESTORE LOG demodb FROM DISK = 'd:\data\demodb_logn.bak' WITH STOPAT = '2013-10-21 10:00:00.000', RECOVERY

Odtwarzanie bazy do oznaczonej transakcji Opcja STOPATMARK nazwa_transakcji polecenia RESTORE LOG pozwala odtworzyć bazę danych do konkretnej transakcji (łącznie z tą trnakację, BEFOREMARK bez tej transakcji) BEGIN TRANSACTION nazwa_transakcji WITH MARK 'opis' --pewne operacje COMMIT TRANSACTION nazwa_transakcji RESTORE DATABASE demodb FROM DISK = 'd:\data\demodb_full.bak' WITH NORECOVERY RESTORE DATABASE demodb FROM DISK = 'd:\data\demodb_diff.bak' WITH NORECOVERY RESTORE LOG demodb FROM DISK = 'd:\data\demodb_log1.bak' WITH STOPATMARK = 'nazwa_transakcji', RECOVERY... RESTORE LOG demodb FROM DISK = 'd:\data\demodb_logn.bak' WITH STOPATMARK = 'nazwa_transakcji', RECOVERY

Odtwarzanie bazy master Należy dysponować pewną wersją plików bazy master (plik danych i logu) Można wygenerować bazę master za pomocą SQL Server Setup (program nadpisze pozostałe bazy systemowe) Uruchomić instancję SQL Server w trybie pojedynczego użytkownika (ustawić parametr -m w opcjach startowych) Uruchomić w sqlcmd poniższe polecenie RESTORE DATABASE master FROM 'd:\data\master_full.bak' WITH REPLACE Usunąć parametr -m Uruchomić instancje SQL Server

Odtwarzanie innych baz systemowych Tempdb tworzona na nowo przy starcie instancji (nie można wykonać polecenia backup i restore dla tej bazy) Resource odtworzenie z poziomu plików lub SQL Server Setup (nie można również wykonać polecenia backup i restore dla tej bazy) Msdb proces odtwarzania analogiczny do procesu odtwarzania dowolnej bazy użytkowników Model w celu odtworzenia należy uruchomić instancję z parametrem -T3608 (wystartuje tylko baza master) a następnie wykonać polecenie restore