520 likes | 732 Views
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
E N D
Administracja serwerem bazy danych Oracle 11gZarzą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 • Wykonywanie kopii bezpieczeństwa • Odtwarzanie po awarii dysków
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
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
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
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ą
Awaria sieci • Awaria karty sieciowej serwera/klienta • Awaria łącza • Awaria procesu LISTENER-a
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
Awaria instancji • Brak prądu • Awaria sprzętu (CPU, RAM) • Awaria jednego z procesów serwera • SHUTDOWN ABORT
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
Control files CKPT Data files Checkpoint Mechanizmy ochrony instancjiProcesCheckpoint (CKPT) • CKPT jest odpowiedzialny za: • SygnalizowanieDBWno zdarzeniu checkpoint • Aktualizacji nagłówków plików danych z informacją o checkpoint-ach • Aktualizacji pliku kontrolnego z informacją o checkpoint-ach SGA Database buffer cache DBWn Database Writer
SGA Redo log buffer LGWR LogWriter Redo log group 1 Redo log group 3 Redo log group 2 Mechanizmy ochrony instancji : PlikiRedo Log i procesLogWriter • Pliki Redo log: • Przechowują zmiany przeprowadzane w transakcjach • Są zorganizowane w grupy nadpisywane cyklicznie • LogWriterzapisuje kiedy: • Commit • Bufor Redo zapisany w 1/3 • Co 3 sekundy • Przed każdym zapisemDBWn
Redo log buffer Copies of Redo log files Redo log files Mechanizmy ochrony instancji : Proces Archiver(ARCn) • Archiver (ARCn): • Jest opcjonalnym procesem działającym w instancji • Automatycznie archiwizujepliki redo logów, ale tylko kiedy baza działa w trybie ARCHIVELOG • Zachowuje wszystkie zmiany dokonywane w bazie SGA LGWR LogWriter ARCn Archiver
Odtwarzanie po awarii instancji • Jest 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 .
SGA Background processes Undo Fazy odtwarzania instancji po awarii Instance • Brak synchronizacji plików danych • Dokręcanie w przód(redo) • Zatwierdzone i niezatwierdzone dane w plikach danych • Otwarcie bazy danych • Odkręcanie w tył (undo) • Tylko zatwierdzone dane w plikach danych Database SCN: 74-101 SCN:140 SCN:143 SCN: 102-143 SCN:129 SCN:143 SCN: 99 Control files Redo log group Data files
Ostatni Checkpoint KoniecRedo loga Odtwarzanie instancji Transakcje 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
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ów • SELECT TARGET_MTTR, ESTIMATED_MTTR,CKPT_BLOCK_WRITES, optimal_logfile_sizeFROM V$INSTANCE_RECOVERY; • TARGET_MTTR ESTIMATED_MTTR CKPT_BLOCK_WRITESoptimal_logfile_size • ----------- --------------------------------------------------- • 37 22 209187 256 [MB]
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;
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
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 trybARCHIVELOG Archive log files Online redo log files
Przygotowanie do wykonywania kopii bezpieczeństwa i odtwarzania (3) • Tryb ARCHIVELOG • Uruchomić SQLPLUS jako SYS • Wystartować bazę w trybie MOUNT • STARTUP MOUNT; • Przełączyć bazę w tryb ARCHIVELOG • ALTER DATABASE ARCHIVELOG; • Otworzyć bazę danych • ALTER DATABASE OPEN; • Tylko w tym trybie mamy dostę do wszystkich opcji wykonywania kopii bezpieczeństwa i odtwarzania!
Image copies Backup pieces Backup data Kopie bezpieczeństwa - narzędzia • Kopie bezpieczeństwa wykonuje się za pomocą: • Recovery Manager (RMAN) • Oracle Secure Backup (dodatek do RMAN-a) • Ręcznie Target database Data files Archive log files Redundant archive log files Flash recovery area
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
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
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
Rodzaje kopii bezpieczeństwa (2) 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 (3) • 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
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 #1 Data file #2 Data file #3 Backup set (Pliki binarne, skompresowane w specyficznym formacie) Data file #4 Data file #5 Data file #6 Image copies (Zduplikowane pliki w systemie operacyjnym)
Scenariusze backupowania (3)Przyrostowe, kumulacyjno – różnicowe
Konfigurowanie RMAN-a $ rman target / RMAN> CONFIGUREDEFAULTDEVICETYPETODISK; RMAN> CONFIGUREDEVICETYPEDISKBACKUPTYPETOBACKUPSET; RMAN> CONFIGUREDEVICETYPEDISKBACKUPTYPETO COPY; RMAN> CONFIGURECONTROLFILEAUTOBACKUPON; 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;
Polecenia RMAN-a (1) $ rman target / RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT; RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASEPLUS 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;
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;
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 OPEN STARTUP MOUNT NOMOUNT SHUTDOWN
Utrzymanie działające i otwartej bazy danych • Instancja 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!
Utrata jednego pliku kontrolnego • W przypadku utraty jednego z 2 lub 3 kopii pliku kontrolnego należy: • Wymusić zamknięcie bazy danych (jeśli jest otwarta). • SHUTDOWN ABORT • Przywrócić utracony plik z pozostałych kopii w: • To samo miejsce jeśli możliwe • W nowe miejsce i zaaktualizować plik parametrów PFILE • Otworzyć instancję Pliki kontrolne
Utrata wszystkich plików kontrolnych • 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 Pliki kontrolne
Utrata wszystkich plików kontrolnych RecoveryManager(RMAN) Flash Recovery Area Controlfile Database RMAN> STARTUP NOMOUNT; RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP; RMAN> ALTER DATABASE MOUNT; RMAN> RECOVER DATABASE; RMAN> ALTER DATABASE OPEN RESETLOGS; Pliki kontrolne
Utrata redo logów (1) • W zależności od scenariusza: • 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 log Grupa 2 Redo log Grupa1 Redo log Grupa3
Utrata redo logów (2) • Utrata wszystkich plików w grupie redo • Grupa redo nie jest CURRENT i została zarchiwizowana • ALTER DATABASE CLEAR LOGFILE GROUP <group#>; • Grupa redo nie jest CURRENT i nie została zarchiwizowana • RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL; • ALTER DATABASE OPEN RESETLOGS; • Grupa redo jest CURRENT, ale baza została czysto zamknięta • ALTER DATABASE OPEN RESETLOGS; • 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; Redo log Grupa 2 Redo log Grupa1 Redo log Grupa3
Utrata pliku zwykłej przestrzeni tabel w trybieARCHIVELOG • Jeśli utracono pliki zwykłej przestrzeni tabel, a więc nie SYSTEM i UNDO to: • 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
Utrata pliku zwykłej przestrzeni tabel w trybieNOARCHIVELOG • Jeśli utracono pliki zwykłej przestrzeni tabel, a więc nie SYSTEM i UNDO to: • Należy odtworzyć całą bazę danych z ostatniej kopii bezpieczeństwa • Stan bazy będzie z momentu wykonywania kopii bezpieczeństwa • Użytkownicy muszą ponownie wprowadzić swoje dane! User User User User User
Utrata pliku przestrzeni tabel SYSTEM w trybie ARCHIVELOG • Jeśli utracono plik przestrzeni tabel SYSTEM lub UNDO: • Instancja zamknie się automatycznie lub przestanie reagować. Należy wtedy wymusić zamknięcie • SHUTDOWN ABORT. • Zamontować bazę • STARUP MOUNT • Przywrócić utracony plik RUN { SET NEWNAME FOR DATAFILE 1 to ‘NEW LOC’; RESTORE DATAFILE 1; SWITCH DATAFILE 1; RECOVER DATAFILE 1; } • Otworzyć baze danych • ALTER DATABASE OPEN; Users