Upload
gili
View
65
Download
2
Embed Size (px)
DESCRIPTION
Administracja serwerem bazy danych Oracle 11g Zarządzanie kopiami bezpieczeństwa i odtwarzaniem Wykład nr 5. Michał Szkopiński. Agenda. Zadania administratora i rodzaje awarii Mechanizmy ochrony instancji bazy przed awarią Przygotowanie bazy do wykonywania kopii bezpieczeństwa i odtwarzania - PowerPoint PPT Presentation
Citation preview
<Insert Picture Here>
Administracja serwerem bazy danych Oracle 11gZarządzanie kopiami bezpieczeństwa i odtwarzaniem
Wykład nr 5
Michał Szkopiński
Copyright © 2007, Oracle. All rights reserved.14 - 2
Agenda
• Zadania administratora i rodzaje awarii• Mechanizmy ochrony instancji bazy przed awarią• Przygotowanie bazy do wykonywania kopii
bezpieczeństwa i odtwarzania• Wykonywanie kopii bezpieczeństwa• Odtwarzanie po awarii dysków
Copyright © 2007, Oracle. All rights reserved.14 - 3
Zadania administratora DBA
• Do głównych zadań DBA należy:– Przygotowanie bazy do wykonywania kopii
bezpieczeństwa– Odtwarzanie w razie awarii– Zapewnienie maksymalnego czasu między awariami
(MTBF)– Zapewnienie minimalnego czasu odtwarzania (MTTR)– Minimalizacja utraty danych
Copyright © 2007, Oracle. All rights reserved.14 - 4
Rodzaje błędów i awarii
• Poprawne operacje DML i DDL zakończone niepowodzeniem
• Awaria procesu użytkownika• Awaria sieci• Błąd człowieka• Awaria instancji• Awaria nośników danych
Copyright © 2007, Oracle. All rights reserved.14 - 5
Poprawne polecenie DDL i DML zakończone błędem
• Niepoprawne dane w poleceniach DML (I,U)• Próba wykonania operacji bez odpowiednich
uprawnień• Brak miejsca (osiągnięty limit dla bazy lub
użytkownika)• Błąd logiczny w aplikacji
Copyright © 2007, Oracle. All rights reserved.14 - 6
Awaria procesu użytkownika
• Nieoczekiwane rozłączenie sesji użytkownika• W wyniku awarii proces użytkownika• W wyniku nagłego rozłączenia przez użytkownika• W wyniku „zabicia” sesji przez administratora• W wyniku problemów z siecią
Copyright © 2007, Oracle. All rights reserved.14 - 7
Awaria sieci
• Awaria karty sieciowej serwera/klienta• Awaria łącza• Awaria procesu LISTENER-a
Copyright © 2007, Oracle. All rights reserved.14 - 8
Błąd człowieka
• Błędnie wykonane polecenia DML i DDL• Błednie zdefiniowana klauzla WHERE• Usunięcie tabeli poleceniem DROP
• Odzyskiwanie przez użycie technologii Flashback:• Podgląd danych jakie były w przeszłości• Przywrócenie danych sprzed błędu• Odtworzenie tabel z kosza• Porównanie różnych wersji tych samych rekordów
w różnych punktach w czasie
Copyright © 2007, Oracle. All rights reserved.14 - 9
Awaria instancji
• Brak prądu• Awaria sprzętu (CPU, RAM)• Awaria jednego z procesów serwera• SHUTDOWN ABORT
Copyright © 2007, Oracle. All rights reserved.14 - 10
Awaria nośników danych
• Awaria dysku• Awaria kontrolera dysku• Utrata jednego z plików bazy danych• Błąd odczytu/zapisu do pliku bazy danych• Tylko tutaj przydadzą się kopie
bezpieczeństwa czyli tzw. backup
Copyright © 2007, Oracle. All rights reserved.14 - 11
Mechanizmy ochrony instancji bazy przed awarią
Copyright © 2007, Oracle. All rights reserved.14 - 12
Mechanizmy ochrony instancjiProces Checkpoint (CKPT)
CKPT jest odpowiedzialny za:• Sygnalizowanie DBWn o zdarzeniu
checkpoint• Aktualizacji nagłówków plików danych
z informacją o checkpoint-ach• Aktualizacji pliku kontrolnego z
informacją o checkpoint-ach
SGA
Databasebuffer cache
Checkpoint
CKPT
Data files
Control files
Database Writer
DBWn
Copyright © 2007, Oracle. All rights reserved.14 - 13
Mechanizmy ochrony instancji : Pliki Redo Log i proces LogWriter
Pliki Redo log:• Przechowują zmiany
przeprowadzane w transakcjach
• Są zorganizowane w grupy nadpisywane cyklicznie
LogWriter zapisuje kiedy:• Commit• Bufor Redo zapisany w 1/3• Co 3 sekundy• Przed każdym zapisem
DBWn
Redo loggroup 1
Redo loggroup 3
Redo loggroup 2
SGA
Redo log buffer
LogWriter
LGWR
Copyright © 2007, Oracle. All rights reserved.14 - 14
Mechanizmy ochrony instancji : Proces Archiver (ARCn)
Archiver (ARCn): • Jest opcjonalnym procesem
działającym w instancji• Automatycznie archiwizuje
pliki redo logów, ale tylko kiedy baza działa w trybie ARCHIVELOG
• Zachowuje wszystkie zmiany dokonywane w bazie Redo log
files
SGA
Redo log buffer
LogWriter
LGWR
Archiver
ARCn
Copies of Redo log
files
Copyright © 2007, Oracle. All rights reserved.14 - 15
Odtwarzanie po awarii instancjiJest to automatyczny proces wykonywany przez SMON:• Inicjowany przy próbie otwarcia bazy danych w
momencie kiedy pliki bazy nie są ze sobą zsynchronizowane
• Używa informacji w plikach Redo do synchronizacji plików danych
• Zawiera dwie operacje:– „Dokręcanie w przód” (Rolling forward):
— Pliki danych są doprowadzane do momentu tuż przed awarią– „Odkręcanie w tył” (Rolling back):
— Zmiany dokonane, ale nie zatwierdzone są wycofywane przy użyciu segmentów Undo .
Copyright © 2007, Oracle. All rights reserved.14 - 16
Fazy odtwarzania instancji po awarii
1. Brak synchronizacji plików danych2. Dokręcanie w przód (redo)3. Zatwierdzone i niezatwierdzone
dane w plikach danych4. Otwarcie bazy danych5. Odkręcanie w tył (undo)6. Tylko zatwierdzone dane w plikach
danych
Undo
Instance
Backgroundprocesses
SGA
Database
Data filesRedo log
groupControl
files
SCN: 99
SCN:129
SCN:140
SCN:143SCN:
102-143
SCN:143SCN:
74-101
Copyright © 2007, Oracle. All rights reserved.14 - 17
Checkpoint i Redo Logi
• Otwarzanie po awarii instancji następuje z redo logów• Od pozycji oznaczonej ostatnim Checkpoint-em do
końca redo loga• Te bloki, które nie zostały zapisane do plików danych
muszą być aplikowane z redo logów
Koniec Redo logaOstatni Checkpoint
Transakcje
Odtwarzanie instancji
Copyright © 2007, Oracle. All rights reserved.14 - 18
Ustalanie czasu odtwarzania po awarii instancji• Parametr FAST_START_MTTR_TARGET• Ustala oczekiwany czas odtwarzania po awari instancji • Domyślna wartość: 0 (mechanizm wyłączony).• Maksymalna wartość: 3,600 sekund (1h).• MTTR wpływa na częstotliwość CHECKPOINT-ów i
sugeruje rozmiar redo logówSELECT TARGET_MTTR, ESTIMATED_MTTR, CKPT_BLOCK_WRITES, OPTIMAL_LOGFILE_SIZE FROM V$INSTANCE_RECOVERY;
TARGET_MTTR ESTIMATED_MTTR CKPT_BLOCK_WRITES OPTIMAL_LOGFILE_SIZE----------- -------------- ------------------------------------- 37 22 209187
256 [MB]
Copyright © 2007, Oracle. All rights reserved.14 - 19
Przygotowanie do wykonywania kopii bezpieczeństwa
Copyright © 2007, Oracle. All rights reserved.14 - 20
Zapewnienie maksymalnej dostępności i możliwości odtwarzania• Wykonywać regularne kopie bezpieczeństwa• Zwielokrotnić plik kontrolny
– min 3 kopie na różnych dyskach podłączone do różnych kontrolerów
– Parametr CONTROL_FILES• Zwielokrotnić pliki redo logów
– Co najmniej 2 kopie w tej samej grupie redo logów– V$LOG, V$LOGFILE– ALTER DATABASE ADD LOGFILE MEMBER...
• Włączyć tryb ARCHIVELOG– Archiwizacja redo logów do archive logów– ALTER DATABASE ARCHIVELOG;
Copyright © 2007, Oracle. All rights reserved.14 - 21
Przygotowanie do wykonywania kopii bezpieczeństwa i odtwarzania (1)Flash recovery area:• Katalog na dysku gdzie składowane będą
wszystkie kopie bezpieczeństwa • Lokalizacja określona przez parametr: DB_RECOVERY_FILE_DEST
• Rozmiar przestrzeni określony parameterem: DB_RECOVERY_FILE_DEST_SIZE
• Przestrzeń zarządzana automatycznie w zależności od polityki retencji
Copyright © 2007, Oracle. All rights reserved.14 - 22
Przygotowanie do wykonywania kopii bezpieczeństwa i odtwarzania (2)
Archive Logs• Określenie konwencji nazewniczej dla Archove Logów
– LOG_ARCHIVE_FORMAT np: %t_%s_%r.dbf• Określenie lokalizacji archive logów
– Domyślna wartość to: USE_DB_RECOVERY_FILE_DEST• Przełączyć bazę danych w tryb ARCHIVELOG
Online redo log files Archive log files
Copyright © 2007, Oracle. All rights reserved.14 - 23
Przygotowanie do wykonywania kopii bezpieczeństwa i odtwarzania (3)Tryb ARCHIVELOG1. Uruchomić SQLPLUS jako SYS2. Wystartować bazę w trybie MOUNT
• STARTUP MOUNT;3. Przełączyć bazę w tryb ARCHIVELOG
• ALTER DATABASE ARCHIVELOG;4. Otworzyć bazę danych
• ALTER DATABASE OPEN;5. Tylko w tym trybie mamy dostę do wszystkich opcji
wykonywania kopii bezpieczeństwa i odtwarzania!
Copyright © 2007, Oracle. All rights reserved.14 - 24
Kopie bezpieczeństwa - Backup
Kopie bezpieczeństwa - narzędzia
• Kopie bezpieczeństwa wykonuje się za pomocą:• Recovery Manager (RMAN)• Oracle Secure Backup (dodatek do RMAN-a)• Ręcznie
Image copies
Backup pieces
Backup data
Data files
Flash recovery area
Target database
Redundant archive log
files
Archive log files
Copyright © 2007, Oracle. All rights reserved.15 - 26
RMAN i Oracle Secure Backup
• RMAN i Oracle Secure Backup zapewniają pełne wsparcie wykonywania kopii bezpieczeństwa w:– Centralizowanym środowisku macierzy dyskowych i
bibliotek taśmowych– Środowisku sieciowym– Kompresji i szyfrowania
• Zapewnia pojedyncze narzędzie do zarządzania kopiami bezpieczeństwa i odtwarzaniem
• Wykonuje kopie bezpieczeństwa– Plików danych– Logów archiwalnych– Pliku kontrolnego i pliku parametrów
Copyright © 2007, Oracle. All rights reserved.15 - 27
Ręczne wykonywanie kopii bezpieczeństwa• Proces w pełni sterowany i kontrolowany przez
DBA:• Wymaga ręcznego śledzenia zapotrzebowania na
backup• Wymaga napisania odpowiednich skryptów• Wymaga przestawienia przestrzeni tabel w
odpowiedni status • Bazuje na operacjach kopiowania plików w
systemie operacyjnym
Copyright © 2007, Oracle. All rights reserved.15 - 28
Rodzaje kopii bezpieczeństwa (1)
Ze względu na zawartość: • Całej bazy danych (Whole)
– Wszystkie pliki przestrzeni tabel (data files)– Logi archiwalne (archive logs)– Plik kontrolny (control file)– plik parametrów (spfile)
• Częściowy – wybrane pliki (Partial)– Pojedyncze pliki w przestrzeniach tabel– Tylko wybrane przestrzenie tabel
Copyright © 2007, Oracle. All rights reserved.15 - 29
Ze względu na tryb• Pełny (Full)
– wszystkie bloki danych w wybranych plikach• Przyrostowy (Incremental):
– Poziom 0 – czyli pełny backup wszystkich bloków danych– Poziom 1 – czyli przyrostowy:
— Kumulacyjny (Cumulative) Zmiany dokonane od ostatniego backupu pełnego na poziomie 0
— Różnicowy (Differential) Zmiany dokonane od backupu przyrostowego z poziomu 1)
Rodzaje kopii bezpieczeństwa (2)
Copyright © 2007, Oracle. All rights reserved.15 - 30
Ze względu na stan bazy danych• Offline
• „Zimny backup”• Wykonywany kiedy baza jest zamknięta• Wszystkie pliki danych zostały zsynchronizowane
podczas zamykania• SHUTDOW NORMAL, TRANSACTIONL, IMMEDIATE
• Online• „Gorący backup”• Wykonywany podczas normalnej pracy bazy danych• Ręcznie: ALTER TABLESPACE BEGIN BACKUP• RMAN
Rodzaje kopii bezpieczeństwa (3)
Copyright © 2007, Oracle. All rights reserved.15 - 31
Składowanie kopii bezpieczeństwa
Kopie bezpieczeństwa mogą być składowane jako:• Dokładne kopie plików bazy danych – Image Copies• „Zestawy backup-owe” - Backup Sets
Data file #2
Data file #3
Data file #4
Data file #5
Data file #1
Data file #6Image copies
(Zduplikowane pliki w systemie operacyjnym)
Backup set(Pliki binarne,
skompresowane w specyficznym formacie)
Data file #1 Data file #2Data file #3 Data file #4Data file #5 Data file #6
Copyright © 2007, Oracle. All rights reserved.15 - 32
Scenariusze backupowania (1)Przyrostowe, różnicowe
Copyright © 2007, Oracle. All rights reserved.15 - 33
Scenariusze backupowania (2)Przyrostowe, kumulacyjne
Copyright © 2007, Oracle. All rights reserved.15 - 34
Scenariusze backupowania (3)Przyrostowe, kumulacyjno – różnicowe
Copyright © 2007, Oracle. All rights reserved.15 - 35
Konfigurowanie RMAN-a$ rman target /
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;
RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO BACKUPSET;RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;RMAN> SHOW ALL;
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = ‘\u01\...’;SQL> ALTER DATABSE ENABLE BLOCK CHANGE TRACKING;
Copyright © 2007, Oracle. All rights reserved.15 - 36
Polecenia RMAN-a (1) $ rman target /
RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE PLUS ARCH...RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE; RMAN> BACKUP TABLESPACE USERS, TOOLS;RMAN> BACKUP DATAFILE 1,2,3,4;
Copyright © 2007, Oracle. All rights reserved.15 - 37
Polecenia RMAN-a (2)
$ rman target /
RMAN> LIST BACKUP [SUMMARY];RMAN> LIST COPY;RMAN> LIST BACKUPSET n
RMAN> REPORT OBSOLETE;RMAN> DELETE OBSOLETE;
RMAN> CROSSCHECK BACKUP;RMAN> DELETE EXPIRED BACKUP;
RMAN> DELETE BACKUPPIECE n;RMAN> DELETE BACKUP TAG=‘...’;RMAN> DELETE BACKUP;
Copyright © 2007, Oracle. All rights reserved.15 - 38
Automatyzacja wykonywania kopii bezp.
Copyright © 2007, Oracle. All rights reserved.15 - 39
Monitorowanie przestrzeni Flash Recovery Area
Copyright © 2007, Oracle. All rights reserved.15 - 40
Odtwarzanie po awarii dysków
Copyright © 2007, Oracle. All rights reserved.16 - 41
Otwieranie bazy danych - przypomnienie
Żeby otworzyć bazę danych:• Wszystkie pliki kontrolne muszą być dostępne i
zsynchronizowane• Pliki przestrzeni tabel muszą być dostępne i
zsynchronizowane• Przynajmniej jedna kopia redo logów w grupie
musi być dostępna do zapisu
SHUTDOWN
NOMOUNT
MOUNT
OPENSTARTUP
Copyright © 2007, Oracle. All rights reserved.16 - 42
Utrzymanie działające i otwartej bazy danychInstancja przestanie normanie pracować jeśli: • Zostanie utracony choć jeden plik kontrolny• Pliki przestrzeni tabel SYSTEM i UNDO przestaną
być dostępne• Cała grupa redo logów przestanie być dostępna
• W przypadku utraty pliku zwykłej przestrzeni tabel baza będzie normalnie pracować z wyjątkiem operacji na tej przestrzeni!
Copyright © 2007, Oracle. All rights reserved.16 - 43
Utrata jednego pliku kontrolnego
W przypadku utraty jednego z 2 lub 3 kopii pliku kontrolnego należy:1. Wymusić zamknięcie bazy danych (jeśli jest otwarta).
a) SHUTDOWN ABORT2. Przywrócić utracony plik z pozostałych kopii w:
a) To samo miejsce jeśli możliweb) W nowe miejsce i zaaktualizować plik parametrów
PFILE3. Otworzyć instancję
Pliki kontrolne
Copyright © 2007, Oracle. All rights reserved.16 - 44
W przypadku utraty wszystkich plików kontrolnych• Należy przywrócić plik kontrolny z kopii
bezpieczeństwa– RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;
• Wykonać odtwarzanie całej bazy danych z kopii bezpieczeństwa
• Otworzyć bazę z opcją RESETLOGS• Baza zostaje odtworzona nie do momentu sprzed
awarii ale do ostatniego backupu i dostępnych archive logów
Utrata wszystkich plików kontrolnych
Pliki kontrolne
Copyright © 2007, Oracle. All rights reserved.16 - 45
Utrata wszystkich plików kontrolnych
Pliki kontrolne
RecoveryManager(RMAN) Flash Recovery
Area
Database
Controlfile
RMAN> STARTUP NOMOUNT;RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;RMAN> ALTER DATABASE MOUNT;RMAN> RECOVER DATABASE;RMAN> ALTER DATABASE OPEN RESETLOGS;
Copyright © 2007, Oracle. All rights reserved.16 - 46
Utrata redo logów (1)
W zależności od scenariusza:1. Utrata jednej tylko kopii pliku w grupie redo
– Pracuje normalnie– Informuje o utracie jednego pliku w Alert logu– Odtwarzamy utracony plik przez utworzenie nowego
— Alter database clear logfile group 1;
Redo logGrupa 2
Redo logGrupa 1
Redo logGrupa 3
Copyright © 2007, Oracle. All rights reserved.16 - 47
Utrata wszystkich plików w grupie redo1. Grupa redo nie jest CURRENT i została zarchiwizowana
• ALTER DATABASE CLEAR LOGFILE GROUP <group#>;2. Grupa redo nie jest CURRENT i nie została zarchiwizowana
• RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
• ALTER DATABASE OPEN RESETLOGS;3. Grupa redo jest CURRENT, ale baza została czysto zamknięta
• ALTER DATABASE OPEN RESETLOGS;4. Grupa redo jest CURRENT, ale baza nie została czysto zamknięta
• RESTORE DATABASE;• RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL
CANCEL;• ALTER DATABASE OPEN RESETLOGS;
Utrata redo logów (2)Redo logGrupa 2
Redo logGrupa 1
Redo logGrupa 3
Copyright © 2007, Oracle. All rights reserved.16 - 48
Utrata pliku zwykłej przestrzeni tabel w trybie ARCHIVELOGJeśli utracono pliki zwykłej przestrzeni tabel, a więc nie SYSTEM i UNDO to:1. Należy odtworzyć utracony plik z kopii bezpieczeństwa
RUN { SET NEWNAME FOR DATAFILE 3 to ‘NEW LOC’; RESTORE DATAFILE 3; SWITCH DATAFILE 3; RECOVER DATAFILE 3;
}
Users
Copyright © 2007, Oracle. All rights reserved.16 - 49
Utrata pliku zwykłej przestrzeni tabel w trybie NOARCHIVELOG
Jeśli utracono pliki zwykłej przestrzeni tabel, a więc nie SYSTEM i UNDO to:1. Należy odtworzyć całą bazę danych z ostatniej kopii
bezpieczeństwa2. Stan bazy będzie z momentu wykonywania kopii
bezpieczeństwa3. Użytkownicy muszą ponownie wprowadzić swoje dane!
User User UserUser User
Copyright © 2007, Oracle. All rights reserved.16 - 50
Utrata pliku przestrzeni tabel SYSTEM w trybie ARCHIVELOGJeśli utracono plik przestrzeni tabel SYSTEM lub UNDO:1. Instancja zamknie się automatycznie lub przestanie
reagować. Należy wtedy wymusić zamknięcie – SHUTDOWN ABORT.
2. Zamontować bazę– STARUP MOUNT
3. Przywrócić utracony plikRUN {
SET NEWNAME FOR DATAFILE 1 to ‘NEW LOC’; RESTORE DATAFILE 1; SWITCH DATAFILE 1; RECOVER DATAFILE 1; }
4. Otworzyć baze danych– ALTER DATABASE OPEN; Users
Dziękuję za uwagę i zapraszam na ćwiczenia