Oracle Data Guard 10g - wysoce niezawodna konfiguracja serwera bazy danych Oracle Juliusz.Jezierski@cs.put.poznan.pl 1
Plan tutorialu Wstęp Przegląd architektury SZBD Oracle Wprowadzenie do Oracle Data Guard Konfigurowanie Oracle Data Guard za pomocą EM Grid Control Zamiany ról produkcyjnej i czuwającej baz danych (switchover) Przykładowa diagnostyka niedostępności czuwającej bazy danych Przykładowa diagnostyka niedostępności produkcyjnej bazy danych Przełączenie czuwającej bazy danych do roli produkcyjnej bazy danych - failover Podsumowanie 2
Wstęp Disaster Recovery Journal: wiele firm zlokalizowanych w budynkach World Trade Center po tragicznych wydarzeniach z 11 września 2001 było zdolnych do kontynuowania swojej pracy J. Hickman & W. Crandall, Business Horizons: 80 procent firm w okresie dwóch lat po katastrofalnej utracie sprzętu i danych jest zmuszonych do zakończenia swojej działalności 93 procent tych firm zamyka działalność w okresie pięciu lat Oracle Data Guard 10g: Wysoka dostępność danych, Zwiększona ochrona danych, Możliwość odtworzenia bazy danych po katastrofalnej awarii Możliwość zwiększenia wydajności aplikacji raportujących 3
Przegląd architektury SZBD Oracle 4
Bieżące pliki dziennika powtórzeń Procesy serwerów wszystkie swoje zmiany dokonywane w buforze danych rejestrują w buforze dziennika powtórzeń Proces LGWR przepisuje zawartość bufora dziennika powtórzeń do bieżących plików dziennika powtórzeń raport raport formularz formularz sqlplus sqlplus aplikacje SQL procesy serwerów SQL SQL SQL SQL SQL LGWR LGWR bufor danych bufor dziennika powtórzeń SGA - współdzielona pamięć operacyjna Bieżące pliki dziennika powtórzeń
Przełączanie bieżących plików dziennika powtórzeń Liczba i rozmiar bieżących plików dziennika powtórzeń, która jest ustawiana podczas tworzenia BD, można zmieniać w trakcie eksploatacji za pomocą polecenia ALTER DATABASE Zawartość bieżących plików dziennika powtórzeń jest nadpisywana przez LGWR podczas procesu przełączania LGWR LGWR 12 13 14 15 6
Archiwizacja bieżących plików dziennika powtórzeń Archiwizacją bieżących plików dziennika powtórzeń zajmuje się proces archiwizatora bufor dziennika powtórzeń LGWR LGWR ARC0 ARC0 bieżące pliki dziennika powtórzeń 14 15 Zarchiwizowane pliki dziennika powtórzeń 14 13 12
Wprowadzenie do Oracle Data Guard 8
Koncepcja ODG Produkcyjna baza danych Transport plików dziennika powtórzeń Czuwająca baza danych Baza danych Kopia bazy danych 9 Oracle Net
Zamiana ról Jawnie (nieautomatycznie) wykonywana przez DBA Switchover planowana zmiana ról Stosowana w celu pielęgnacji sprzętu i systemu operacyjnego Failover nieplanowana zmiana ról Stosowana w awaryjnych sytuacjach Minimalna lub zerowa (w zależności od wybranej konfiguracji) utrata danych 10
Typy czuwających baz danych Fizyczna czuwająca baza danych Binarna kopia produkcyjnej bazy danych Synchronizowana przez aplikowania binarnych zmian zarejestrowanych w dziennikach powtórzeń produkcyjnej bazy danych Logiczna czuwająca baza danych Logiczna kopia obiektów (tabel, indeksów, itp.) produkcyjnej bazy danych Synchronizowana przez uruchamianie poleceń SQL ekstrahowanych za pomocą technologii Log Miner z dzienników powtórzeń produkcyjnej bazy danych 11
Tryby działania ODG Maksymalna Ochrona - zapewnia bezstratne odtworzenie danych, zapisy z dziennika powtórzeń produkcyjnej bazy danych są transmitowane synchronicznie - transakcje produkcyjnej BD są zatwierdzane dopiero po pomyślnej transmisji do co najmniej jednej czuwającej BD, przy braku dostępności choć jednej czuwającej bazy danych, produkcyjna BD się zatrzymuje Maksymalna Dostępność - Zapisy dziennika powtórzeń produkcyjnej BD są transmitowane synchronicznie Jednak przy braku dostępności choć jednej czuwającej bazy danych, produkcyjna BD kontynuuje działanie Czuwające BD czasowo mogą być niespójne z produkcyjną BD Maksymalna Wydajność - Zapisy dziennika powtórzeń produkcyjnej BD są transmitowane asynchronicznie 12
Komponenty konfiguracji ODG LGWR - proces rejestrujący w bieżących plikach dziennika powtórzeń zmiany wprowadzone do BD ARC0 - proces archiwizujący zawartość bieżących plików dziennika powtórzeń w zarchiwizowanych plikach dziennika powtórzeń FAL - proces odtwarzający dziury w sekwencji plików dziennika powtórzeń przesłanych do czuwającej BD RFS - proces odbierający pliki dziennika powtórzeń MRP- aplikuje zmiany zapisane w plikach dziennika powtórzeń do fizycznej czuwającej BD LSP - aplikuje polecenia SQL zapisane w plikach dziennika powtórzeń do logicznej czuwającej BD 13
Konfiguracja ODG z fizyczną czuwająca BD i transportem przez ARC0 Transakcje produkcyjnej BD MRP Fizyczna czuwająca BD LGWR RFS FAL ARC0 14 Oracle net Bieżące pliki dziennika powtórzeń raporty backup Zarchiwizowane pliki dziennika powtórzeń Zarchiwizowane pliki dziennika powtórzeń
Konfiguracja ODG z fizyczną czuwająca BD i transportem przez LGWR Transakcje produkcyjnej BD MRP Fizyczna czuwająca BD LGWR RFS ARCO ARC0 15 Oracle net Bieżące pliki dziennika powtórzeń FAL Czuwające pliki dziennika powtórzeń raporty backup Zarchiwizowane pliki dziennika powtórzeń Zarchiwizowane pliki dziennika powtórzeń
Konfiguracja ODG z logiczną czuwająca BD Transakcje produkcyjnej BD LSP Logiczna czuwająca BD LGWR RFS Bieżące pliki dziennika powtórzeń raporty backup ARC0 Zarchiwizowane pliki dziennika powtórzeń Zarchiwizowane pliki dziennika powtórzeń 16 Oracle net FAL
ODG Broker Komponent ułatwiający tworzenie, sterowanie i monitorowanie produkcyjnej bazy danych i wszystkich jej czuwających baz danych ODG Broker monitoruje dostępność, aktywność i stan zdrowia wszystkich systemów w danej konfiguracji ODG Posiada WEB-owy interfejs zintegrowany z OEM Grid Control Posiada również interfejs z linii komend - dgmgrl 17
Architektura ODG Broker Intelligent Agent Data Guard Broker repozytorium OEM Grid Control Produkcyjna baza danych Przeglądarka WEB Intelligent Agent Data Guard Broker dgmgrl Czuwająca baza danych 18
Konfiguracja instancji z ODG Broker spfile<sid>.ora dg_broker_start=true dg_broker_config_file1 dg_broker_config_file2 spfile<sid>.ora dg_broker_start=true dg_broker_config_file1 dg_broker_config_file2 instancja produkcyjnej bazy danych DMON DMON instancja czuwającej bazy danych Dziennik ODG Brokerbackground_dump_dest drc<sid>.ora Dziennik ODG Brokerbackground_dump_dest drc<sid>.ora Produkcyjna baza danych Czuwająca baza danych 19
Konfigurowanie Oracle Data Guard za pomocą EM Grid Control 20
Wymagania ODG Produkcyjna baza danych musi działać w trybie archiwizacji plików dziennika - ARCHIVELOG Produkcyjna baza danych i czuwające bazy danych muszą działać pod kontrolą takiego samego SZBD i SO oraz na sprzęcie o takiej samej architekturze Każda baza danych musi posiadać swój plik kontrolny Zaleca się włączenie rejestracji wszystkich operacji na produkcyjnej bazie danych w plikach dziennika powtórzeń - FORCE LOGGING 21
Wywołanie GUI dla ODG 22
Dodanie czuwającej BD 23
Skonfigurowanie spfile SQL> connect / as sysdba Connected. SQL> create spfile from pfile; File created. SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Database mounted. Database opened. SQL> show parameter spfile NAME TYPE VALUE ---------------------- -------- ------------------------------ spfile string?/dbs/spfiledb100.ora 24
Dodanie fizycznej czuwającej BD 25
Przełączenie BD w tryb archiwizacji dziennika powtórzeń 26
Ustawienie parametrów instancji dla Ustawienie parametrów instancji dla archiwizacji plików dziennika powtórzeń archiwizacji plików dziennika powtórzeń 27
Dodanie fizycznej czuwającej BD- krok 1 28
Dodanie fizycznej czuwającej BD- krok 2 29
Dodanie fizycznej czuwającej BD- krok 3 30
Dodanie fizycznej czuwającej BD- krok 4 31
Dodanie fizycznej czuwającej BD Dodanie fizycznej czuwającej BDwskazanie lokalizacji plików czuwającej BD wskazanie lokalizacji plików czuwającej BD 32
Dodanie fizycznej czuwającej BD- krok 5 33
Dodanie fizycznej czuwającej BD- krok 6 34
Uruchomienie zadania tworzenia czuwającej BD 35
Tworzenie czuwającej BD 36
Status czuwającej bazy danych 37
Zmiana trybu ochrony produkcyjnej bazy danych 38
Ustawienie trybu ochrony produkcyjnej bazy danych na maksymalna dostępność 39
Kroki zmiany trybu ochrony produkcyjnej bazy danych 40
Zmiana trybu działania czuwającej BD 41
Zmiana własności czuwającej BD ARCH, SYNC, ASYNC OFF, ON 42
Startowanie instancji czuwającej bazy danych za pomocą SQL W dwóch trybach: W trybie sterowanego odtwarzania: SQL> startup mount ORACLE instance started.... Database mounted. SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT; Database altered. SQL> select OPEN_MODE from v$database; OPEN_MODE ---------- MOUNTED W trybie tylko do odczytu: SQL> startup mount ORACLE instance started.... Database mounted. SQL> ALTER DATABASE OPEN READ ONLY; Database altered. SQL> select OPEN_MODE from v$database; OPEN_MODE ---------- READ ONLY 43
Zamiany ról produkcyjnej i czuwającej baz danych (switchover ( switchover) 44
Kroki przygotowania do zamiany ról produkcyjnej i czuwającej baz danych Upewnienie się, że produkcyjna i czuwająca baza danych działają Sprawdzenie, że obie bazy danych są w dobrym stanie zdrowotnym (przez weryfikację plików ostrzeżeń instancji) Sprawdzenie własności podstawowej bazy danych aby mogła pełnić rolę czuwającej bazy danych (automatycznie wykonywane przez EM) Jeżeli trzeba, sprawdzić istnienie czuwających plików dziennika powtórzeń 45
Zmiana roli produkcyjnej bazy danych na czuwającą bazę danych za pomocą EM 46
Zmiana roli produkcyjnej bazy danych na czuwającą bazę danych za pomocą EM 47
Wynik zamiany ról 48
Przykładowa diagnostyka Przykładowa diagnostyka niedostępności czuwającej bazy danych niedostępności czuwającej bazy danych 49
Analiza pliku ostrzeżeń 50
Analiza statusu ODG 51
Analiza dziennika ODG Broker [oracle@miner bdump]$ more drcdb101dg.log DG 2005-06-13-18:45:06 RSM 0 received GETPROP request: rid=0x02012000, pid=58 DG 2005-06-13-18:45:06 Database Resource: Get Property PotentialDataLoss DG 2005-06-13-18:45:06 RSM0: Failed to connect to remote database DB101. Error is ORA-12514 DG 2005-06-13-18:45:06 Database Resource GetProperty succeeded adm101@miner bdump]$ oerr ora 12514 12514, 00000, "TNS:listener does not currently know of service requested in connect descriptor" // *Cause: The listener received a request to establish a connection to a // database or other service. The connect descriptor received by the listener // specified a service name for a service (usually a database service) // that either has not yet dynamically registered with the listener or has // not been statically configured for the listener. This may be a temporary // condition such as after the listener has started, but before the database // instance has registered with the listener. // *Action: // - Wait a moment and try to connect a second time. // - Check which services are currently known by the listener by executing: // lsnrctl services <listener name> // - Check that the SERVICE_NAME parameter in the connect descriptor of the // net service name used specifies a service known by the listener. // - If an easy connect naming connect identifier was used, check that // the service name specified is a service known by the listener. // - Check for an event in the listener.log file. 52
Przykładowa diagnostyka niedostępności produkcyjnej baz danych 53
Analiza statusu baz danych na danej maszynie 54
Analiza statusu produkcyjnej BD 55
Przełączenie czuwającej bazy danych do roli produkcyjnej bazy danych - failover 56
Failover Wykonywany jedynie w przypadku braku możliwości odtworzenia produkcyjnej bazy danych Możliwa utrata części danych Uszkodzona produkcyjna baza danych jest wyłączana z konfiguracji ODG Szczególnym przypadkiem failover jest aktywacja wybranej czuwającej bazy danych - niezalecana - powoduje trwałe wyłączenie pozostałych czuwających baz danych 57
Inicjacja failover 58
Wybór opcji failover 59
Postęp procesu failover 60
Weryfikacja statusu failover 61
Konfiguracja klienta SQLNET współpracującego z ODG (1/2) DB101.WORLD = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = primary.cs.put.poznan.pl)(port = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = standby.cs.put.poznan.pl)(port = 1521)) (FAILOVER=on) #domyślnie on (LOAD_BALANCE = off) #domyślnie off ) (CONNECT_DATA = Zawartość $ORACLE_HOME/network/admin/tnsnames.ora (SERVICE_NAME = DB101) ) ) 62
Pielęgnacja ODG 63
Przegląd wydajności ODG 64
Przegląd niezaaplikowanych plików dziennika powtórzeń 65
Weryfikacja konfiguracji ODG 66
Wynik weryfikacji ODG 67
Dziennik weryfikacji ODG Initializing. Connected to instance miner.cs.put.poznan.pl:db101dg Starting alert log monitor... Updating Data Guard link on database homepage... Data Protection Settings: Protection mode : Maximum Performance Log Transport Mode settings: DB101dg: ARCH DB101dg2: ASYNC Checking standby redo logs...done (Standby redo logs needed : 8) Checking Data Guard status DB101dg : Normal DB101dg2 : Normal Checking Inconsistent Properties Checking agent status DB101dg... OK DB101dg2... OK Switching log file 46.Done Checking applied log on DB101dg2...OK Processing completed. 68
Usuwanie konfiguracji ODG 69
Proces aplikowania zmian w logicznej czuwającej bazie danych pliki dziennika powtórzeń z produkcyjnej BD odczyt przygotowanie przygotowanie przygotowanie LCR grupowanie zmian w trans log mining aplikowanie zmian Grupy transakcji pliki danych aplikacja aplikacja aplikacja koordynator uszeregowane transakcje analiza 70
Ograniczenia logicznej czuwającej bazy danych Nie wspiera następujących typów danych: BFILE ROWID UROWID Zdefiniowanych przez użytkownika Referencji do obiektów Nie wspiera kompresji tabel Zmiana roli logicznej czuwającej bazy danych wyłącza z konfiguracji pozostałe czuwające bazy danych 71
Tworzenie logicznej czuwającej bazy danych 72
Wynik utworzenia logicznej czuwającej bazy danych 73
Specyficzne własności logicznej czuwającej bazy danych 74
Switchover do logicznej czuwającej bazy danych 75
Failover do logicznej czuwającej bazy danych 76
Wsparcie przeprowadzania uaktualniania oprogramowania SZBD (1/2) klienci klienci A B A B ver X ver X ver X ver X+1 Produkcyjna baza danych Konfiguracja ODG Logiczna czuwająca baza danych Produkcyjna baza danych Logiczna czuwająca baza danych Uaktualnienie węzła B 77
Wsparcie przeprowadzania uaktualniania oprogramowania SZBD (2/2) klienci klienci A B A B ver X ver X+1 ver X+1 ver X+1 Produkcyjna baza danych Logiczna czuwająca baza danych Nowa czuwająca baza danych Nowa produkcyjna baza danych Praca z dwoma wersjami Switchover i uaktualnienie węzła A 78
Co nowego w ODG 10g Release 2? Automatyczny Failover - Fast-Start Failover Poprawiona wydajności transmisji plików dziennika powtórzeń Ułatwiona konwersja fizycznej bazy danych do bazy danych odczyt/zapis i z powrotem Automatyczne usuwanie zaaplikowanych plików dziennika powtórzeń z logicznej czuwającej bazy danych Zwiększenie liczby obserwowanych parametrów pracy ODG 79
Automatyczny failover 1/2 DGMGRL> ENABLE FAST_START FAILOVER; DGMGRL> START OBSERVER; FastStartFailoverThreshold obserwator obserwator FastStartFailoverTarget Produkcyjna baza danych Normalna praca ODG Czuwająca baza danych Produkcyjna baza danych Nowa produkcyjna baza danych Automatyczne uruchomienie failover 80
Automatyczny failover 2/2 obserwator Nowa czuwająca baza danych Nowa produkcyjna baza danych Przywrócenie starej produkcyjnej bazy danych 81
Ułatwiona konwersja fizycznej bazy danych do bazy danych odczyt/zapis i z powrotem Po wykonaniu failover stara produkcyjna baza danych jest wyłączana z konfiguracji ODG W ODG 9i należało utworzyć nową czuwająca BD na podstawie kopii nowej produkcyjnej BD W ODG 10g Release 1 można wykonać flashback do punktu, w którym nastąpił failover (kolumna STANDBY_BECAME_PRIMARY_SCN perspektywy v$database) i wystartować bazę danych jako nową czuwającą bazę danych, pozwalając ODG na automatyczną synchronizację W ODG 10g Release 2 mechanizm flashback jest wykorzystywany automatycznie przez proces Obserwatora lub inicjowany przez: DGMGRL> REINSTATE DATABASE stara_produkcyjna_bd; 82
Ułatwiona konwersja fizycznej bazy danych do bazy danych odczyt/zapis i z powrotem Testowe otwarcie czuwającej bazy danych w trybie odczyt/zapis i ponowne przełączenie w tryb czuwającej BD z wykorzystaniem mechanizmu flashback SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; SQL> CREATE RESTORE POINT t1 GUARANTEE FLASHBACK DATABASE; SQL> ALTER DATABASE ACTIVATE STANDBY DATABASE; SQL> FLASHBACK DATABASE TO RESTORE POINT t1; SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY; 83
Automatyczne usuwanie zaaplikowanych plików dziennika powtórzeń z logicznej czuwającej bazy danych Wielkość miejsca zajętego przez zarchiwizowane pliki dziennika powtórzeń fizycznej czuwającej bazy danych jest kontrolowana przez zadeklarowany parametr dla Flash Recovery Area (parametr instancji DB_FLASHBACK_RETENTION_TARGET) W ODG 10g Release 2 logiczna czuwająca BD automatycznie usuwa zaaplikowane pliki dziennika powtórzeń wygenerowane przez produkcyjną BD. Steruje tym parametr LOG_AUTO_DELETE (domyślnie TRUE) 84
Zwiększenie liczby obserwowanych parametrów pracy ODG Estmated Failover Time - przybliżony czas (w sekundach) potrzebny do wykonania failover do danej czuwającej BD Apply Lag - opóźnienie aplikacji dzienników powtórzeń Redo Apply Rate - szybkość aplikacji plików dzienników powtórzeń Redo Generation Rate - szybkość generowania plików dzienników powtórzeń Transport Lag - opóźnienie transmisji dzienników powtórzeń Data Guard Status - status wszystkich BD w konfiguracji ODG Fast-Start Failover Occurred - wykonanie automatycznego failover nowej produkcyjnej BD Fast-Start Failover Time - wykonanie automatycznego failover nowej czuwającej BD 85
Podsumowanie ODG jest złożonym środowiskiem służącym zwiększeniu niezawodności serwerów baz danych Oracle Zarządzanie ODG jest maksymalnie uproszczone przez zastosowanie EM Grid Control Czuwające bazy danych mogą być wykorzystane przez aplikacje raportujące (read-only) 86
Literatura Oracle Data Guard Concepts and Administration 10g Oracle Data Guard Broker 10g Oracle Database Administrator's Guide 10g Oracle Database Concepts 10g Oracle Data Guard - Technical White Paper http://www.oracle.com/technology/deploy/availability/pdf/ TWP_DataGuard_10gR2.pdf 87