administracja bazami danych
Transkrypt
administracja bazami danych
ADMINISTRACJA BAZAMI DANYCH Rozdziaáy 20-26 Rok akademicki – 2007/2008 Notatki do przedmiotu „Administracja bazami danych” SPIS TREĝCI SPIS TREĝCI............................................................................................................................................................................................................. 216 20. WYBRANE ZMIENNE PLIKU PARAMETRÓW ........................................................................................................................................... 219 § 20.1. Przykáadowy plik init<sid>.ora ................................................................................................................................................................ 219 § 20.2. Opis podstawowych parametrów pliku init.ora........................................................................................................................................ 220 21. WSPÓàBIEĩNOĝû W SYSTEMIE ORACLE ................................................................................................................................................. 222 § 21.1. Transakcyjny tryb pracy w systemie ORACLE ....................................................................................................................................... 222 § 21.2. Tryby w jakich moĪe pracowaü transakcja............................................................................................................................................... 223 21.2.1. Tryb READ COMMITTED ............................................................................................................................................................ 223 21.2.2. Tryb READ ONLY.......................................................................................................................................................................... 224 21.2.3. Tryb SERIALIZABLE .................................................................................................................................................................... 224 § 21.3. Mechanizm blokowania danych ............................................................................................................................................................... 225 21.3.2. Jawne zaáoĪenie blokady na tabeli................................................................................................................................................... 227 Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” SPIS TREĝCI - 217 - 21.3.3. WáaĞciwoĞci blokad ......................................................................................................................................................................... 227 § 21.4. Informacja o zaáoĪonych blokadach ......................................................................................................................................................... 228 § 21.5. Zakleszczenia (deadlocks) ........................................................................................................................................................................ 230 § 21.6. Rola administratora................................................................................................................................................................................... 232 22. ARCHIWIZACJA BAZY DANYCH ................................................................................................................................................................. 233 § 22.1. Podstawowe reguáy sporządzania kopii bezpieczeĔstwa ......................................................................................................................... 233 § 22.2. Rodzaje archiwizacji................................................................................................................................................................................. 233 § 22.3. Archiwizacja fizyczna caáej bazy danych w trybie OFFLINE................................................................................................................. 234 § 22.4. Archiwizacja fizyczna caáej bazy danych w trybie ONLINE .................................................................................................................. 235 § 22.5. Archiwizacja logiczna............................................................................................................................................................................... 235 § 22.6. Archiwizacja logiczna. Program Exp ....................................................................................................................................................... 238 22.6.1. Eksport konta uĪytkownika ............................................................................................................................................................. 238 22.6.2. Eksport kont kilku uĪytkowników................................................................................................................................................... 239 22.6.3. Eksport wybranych tabel ................................................................................................................................................................. 239 22.6.4. Eksport caáej bazy - kompletny ....................................................................................................................................................... 239 22.6.5. Eksport caáej bazy – przyrostowy.................................................................................................................................................... 240 § 22.7. Odtwarzanie bazy danych w trybie NOARCHIVELOG ......................................................................................................................... 242 22.7.1. Wczytanie peánej kopii archiwalnej ................................................................................................................................................ 242 22.7.2. Odtwarzanie bazy danych na podstawie pliku eksportu – program Imp ........................................................................................ 242 § 22.8. Importowanie danych jednego uĪytkownika do drugiego ....................................................................................................................... 242 § 22.9. Odtwarzanie bazy danych na podstawie peánego eksportu...................................................................................................................... 244 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ .............................................................................................................................. 247 § 23.1. WstĊp ........................................................................................................................................................................................................ 247 § 23.2. Dodawanie plików dziennika powtórzeĔ w czasie pracy bazy:............................................................................................................... 251 § 23.3. Archiwizowanie plików dziennika powtórzeĔ ......................................................................................................................................... 251 23.3.1. Archiwizacja automatyczna............................................................................................................................................................. 252 23.3.2. Wyáączenie automatycznej archiwizacji ......................................................................................................................................... 252 23.3.3. Archiwizowanie dziennika powtórzeĔ przez administratora .......................................................................................................... 253 § 23.4. Mechanizm wykrywania awarii bazy danych .......................................................................................................................................... 254 23.4.1. System Change Number (SCN)....................................................................................................................................................... 254 23.4.2. Punkt kontrolny (checkpoint) .......................................................................................................................................................... 254 23.4.3. Pliki kontrolne.................................................................................................................................................................................. 255 23.4.4. Wykrywanie awarii.......................................................................................................................................................................... 256 23.4.5. Mechanizm odtwarzania bazy danych............................................................................................................................................. 260 24. ODTWARZANIE BAZY DANYCH PO AWARII ........................................................................................................................................... 261 Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” SPIS TREĝCI - 218 - § 24.1. Rodzaje odtwarzania................................................................................................................................................................................. 261 § 24.2. Odtwarzanie bazy danych w trybie NOARCHIVELOG ......................................................................................................................... 261 § 24.3. Odtwarzanie peáne w trybie ARCHIVELOG........................................................................................................................................... 262 24.3.1. Odtwarzanie peáne caáej bazy danych ............................................................................................................................................. 262 24.3.2. Odtwarzanie peáne pojedynczej przestrzeni tabel ........................................................................................................................... 262 24.3.3. Odtwarzanie peáne pojedyĔczego pliku danych.............................................................................................................................. 263 24.3.4. Odtwarzanie bazy danych w przypadku utraty systemowej przestrzeni tabel................................................................................ 263 24.3.5. Odtwarzanie bazy danych do okreĞlonego momentu w czasie....................................................................................................... 263 24.3.6. Odtwarzanie bazy danych do przerwania........................................................................................................................................ 264 25. RMAN – RECOVERY MANAGER .................................................................................................................................................................. 265 § 25.1. Tworzenie kopii zapasowej przestrzeni tabel........................................................................................................................................... 267 § 25.2. Tworzenie kopii zapasowej plików danych ............................................................................................................................................. 267 § 25.3. Tworzenie kopii zapasowej plików kontrolnych...................................................................................................................................... 268 § 25.4. Tworzenie kopi zapasowej archiwalnych plików dziennika powtórzeĔ.................................................................................................. 268 § 25.5. RESTORE (Odtwarzanie) i RECOVER (rekonstrukcja)......................................................................................................................... 269 26. MECHANIZM EXPORTU I IMPORTU DATA PUMP ................................................................................................................................... 272 § 26.1. Export........................................................................................................................................................................................................ 272 § 26.2. Import........................................................................................................................................................................................................ 274 Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 20. WYBRANE ZMIENNE PLIKU PARAMETRÓW 20. WYBRANE ZMIENNE PLIKU PARAMETRÓW § 20.1. Przykáadowy plik init<sid>.ora db_cache_size=427819008 java_pool_size=4194304 arge_pool_size=8388608 shared_pool_size=155189248 streams_pool_size=0 audit_file_dest='C:\oraclexe\app\oracle\admin\test\adump' audit_trail='TRUE' background_dump_dest='C:\oraclexe\app\oracle\admin\test\bdump' compatible='10.2.0.1.0' control_files='C:\oraclexe\oradata\test\control.dbf' core_dump_dest='C:\oraclexe\app\oracle\admin\test\cdump' db_name='test' instance_name=’test’ DB_RECOVERY_FILE_DEST_SIZE=10G DB_RECOVERY_FILE_DEST='C:\oraclexe\app\oracle\flash_recovery_area' dispatchers='(PROTOCOL=TCP) (SERVICE=testXDB)' job_queue_processes=4 open_cursors=300 os_authent_prefix='' pga_aggregate_target=190M remote_login_passwordfile='EXCLUSIVE' sessions=20 sga_target=570M shared_servers=4 sql_trace=TRUE undo_management='AUTO' undo_tablespace='UNDO' user_dump_dest='C:\oraclexe\app\oracle\admin\test\udump' Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” - 219 - 20. WYBRANE ZMIENNE PLIKU PARAMETRÓW - 220 - § 20.2. Opis podstawowych parametrów pliku init.ora NaleĪy zdawaü sobie sprawĊ z tego, Īe pewne parametry moĪna okreĞliü tylko jeden raz – w momencie kiedy baza danych jest tworzona. Im wiĊcej rzeczy da siĊ przewidzieü na samym początku, tym mniej problemów czysto technicznych i organizacyjnych trzeba bĊdzie rozwiązywaü w czasie uĪytkowania bazy danych. NAZWA PARAMETRU DB_NAME INSTANCE_NAME DB_FILES CONTROL_FILES COMPATIBLE OPEN_CUROSRS DB_FILE_MULTIBLOCK_ RED_COUNT DB_BLOCK_BUFFERS SHARED_POOL_SIZE LARGE_POOL_SIZE JAVA_POOL LOG_CHECKPOINT_ TIMEOUT PROCESSES LOG_BUFFER AUDIT_TRAIL OPIS Nazwa bazy danych. Nazwa instancji. Maksymalna liczba plików jaką moĪe otworzyü baza danych. Specyfikuje nazwy i poáoĪenie plików kontrolnych. Numer wersji serwera z jaką powinna byü kompatybilna ta instancja. Maksymalna liczba kursorów, które moĪe jednoczeĞnie otworzyü sesja Maksymalna liczba bloków danych odczytywana z dysku podczas jednej operacji odczytu Liczba buforów w SGA przydzielona dla bufora danych. Rozmiar wspóádzielonej puli w bajtach. Rozmiar w bajtach obszaru w SGA przechowującego duĪe obiekty niezwiązane z poleceniami SQL. Rozmiar w bajtach struktury w SGA przeznaczonej do przechowywania kodu Java. Maksymalny odstĊp czasowy pomiĊdzy punktami kontrolnymi ( wyraĪony w sekundach). Maksymalna liczba procesów systemu operacyjnego podáączonych do instancji. Liczba buforów w SGA przydzielona dla bufora dziennika powtórzeĔ. Wáącza lub wyáącza audyt bazy danych.Dopuszczalne wartoĞci: NONE(FALSE) -audyt wyáączony DB(TRUE) - audyt wáączony, wyniki bĊdą zapisywane w bazie danych Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 20. WYBRANE ZMIENNE PLIKU PARAMETRÓW NAZWA PARAMETRU TIMED_STATISTICS MAX_DUMP_FILE_SIZE GLAOBAL_NAMES - 221 - OPIS Wáącza lub wyáącza pomiar czasu (wykorzystywany w statystykach systemowych). Maksymalny rozmiar plików Ğladu wyraĪony w blokach systemu operacyjnego. Sprawdza czy link bazy danych ma taką samą nazwĊ jak baza danych. TRUE – sprawdzanie wáączone, FALSE – sprawdzanie wyáączone. ORACLE_TRACE_ENABLE Zezwala na zbieranie statystyk systemowych narzĊdziu Oracle Trace (uwaga ten parametr nie wáącza Ğledzenia) (AUDIT_TRAIL). USER_DUMP_DEST Lokalizacja plików Ğladu tworzonych przez procesy uĪytkownika. BACKGROUND_DUMP_DEST Lokalizacja plików Ğladu procesów drugoplanowych oraz lokalizacja plików alertów. DB_BLOCK_SIZE Rozmiar bloku bazy danych – wyraĪony w bajtach REMOTE_LOGIN Uruchamia autoryzacjĊ poprzez plik haseá. _PASSWORDFILE NONE – brak autoryzacji poprzez plik haseá EXCLUSIVE – wáączona autoryzacja poprzez plik haseá SORT_AREA_SIZE Wskazuje ile pamiĊci w PGA (w bajtach) ma zostaü zarezerwowane na wykonywanie sortowaĔ. SESSIONS Maksymalna liczba jednorazowych sesji systemowych i uĪytkowników. TRANSACTION Maksymalna liczba jednoczesnych transakcji. SQL_TRACE Podawany w pliku parametrów powoduje wáączenie zapisu do plików Ğladu informacji na temat realizowanych poleceĔ SQL. Informacje o báĊdach zapisywane są niezaleĪnie od wartoĞci tego parametru. TRUE/FALSE TIMED_STATISTICS Podawany w pliku parametrów powoduje wáączenie generowania statystyki dotyczącej iloĞci czasu potrzebnego do wykonania poleceĔ.TRUE/FALSE LOG_ARCHIVE_START Automatyczne archiwizowanie. LOG_ARCHIVE_FORMAT Format nazwy plików archiwum. LOG_ARCHIVE_DEST Miejsce archiwizowania plików rejestru. UNDO_MANAGEMENT Metoda zarządzania wycofywaniem transakcji. RESOURCE_LIMIT Wáączenie kontroli limitów zdefiniowanych przez profile. OPTIMIZAL_MODE Parametr ten moĪe przyjąü nastĊpujące wartoĞci: RULE, CHOOSE, FIRST_ROWS, ALL_ROWS. … … Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 21. WSPÓàBIEĩNOĝû W SYSTEMIE ORACLE - 222 - 21. WSPÓàBIEĩNOĝû W SYSTEMIE ORACLE Wszystkie operacje wykonywane w Oracle odbywają siĊ w trybie transakcyjnym. Transakcja moĪe byü realizowana w jednym z trzech trybów. x Tryb READ COMMITTED, x Tryb READ ONLY, x Tryb SERIALIZABLE. Z transakcjami wiąĪe siĊ ĞciĞle zjawisko blokowania danych. Blokowanie danych ma na celu zapewnienie synchronizacji zapisów. § 21.1. Transakcyjny tryb pracy w systemie ORACLE Z pracą bazy danych wiąĪe siĊ pojĊcie transakcji (transaction). WáasnoĞci transakcji w Systemie Oracle: x AtomowoĞü - wszystkie operacje wykonywane w ramach transakcji muszą zakoĔczyü siĊ pomyĞlnie, niepowodzenie jednej z nich powoduje wycofanie caáej transakcji. x SpójnoĞü - w wyniku realizacji transakcji otrzymujemy spójny stan bazy danych, w którym Īadne z ograniczeĔ integralnoĞciowych nie jest naruszone. x Izolacja - zmiany wprowadzone przez transakcjĊ są widoczne dla innych uĪytkowników dopiero w momencie jej zatwierdzenia. x TrwaáoĞü - po zatwierdzeniu transakcji zmiany są zapisywane na trwaáe do bazy. Zatwierdzenie lub wycofanie aktualnej transakcji jest początkiem nastĊpnej. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 21. WSPÓàBIEĩNOĝû W SYSTEMIE ORACLE - 223 - Polecenia z grupy DDL (np. Create, Alter, Drop Table) oraz polecenia z grupy DCL (Grant, Revoke) koĔczą siĊ niejawnym zatwierdzeniem transakcji. § 21.2. Tryby w jakich moĪe pracowaü transakcja Transakcje mogą byü prowadzone w jednym z trzech trybów: Read Committed, Read Only lub Serializable. Do ustawiania trybu pracy transakcji sáuĪy polecenie: SQL> SET TRANSACTION { READ ONLY| ISOLATION LEVEL {SERIALIZABLE | READ COMMITTED} NAME nazwa; 21.2.1. Tryb READ COMMITTED x x Wszystkie transakcje w Systemie Oracle wykonywane są domyĞlnie w tym trybie. Transakcja T1 widzi dane zmodyfikowane przez transakcjĊ T2 dopiero po jej zatwierdzeniu poleceniem COMMIT. Polecenie umoĪliwiające przestawienie pojedynczej transakcji w tryb Read Commited: SET TRANSACTION ISOLATION LEVEL Read Committed; Uwaga. Polecenie naleĪy wykonaü jako pierwsze w ramach transakcji. Polecenie umoĪliwiające ustawienie trybu Read Commited dla wszystkich transakcji realizowanych w ramach danej sesji: SQL> ALTER SESSION SET ISOLATION_LEVEL=Read Committed; Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 21. WSPÓàBIEĩNOĝû W SYSTEMIE ORACLE - 224 - Uwaga. Polecenie naleĪy wykonaü jako pierwsze w ramach sesji. 21.2.2. Tryb READ ONLY x Transakcja T1 operuje na wersji danych z momentu jej rozpoczĊcia. x Transakcja w tym trybie nie moĪe modyfikowaü danych. x Nie widzi zmian wprowadzonych w miĊdzy czasie przez inne, zatwierdzone transakcje. Tryb Read Only stosowany jest w przypadku obliczeĔ analitycznych. Polecenie umoĪliwiające przestawienie pojedynczej transakcji w tryb Read Only: SQL> SET TRANSACTION Read Only; Uwaga. Polecenie naleĪy wykonaü jako pierwsze w ramach transakcji. 21.2.3. Tryb SERIALIZABLE x Transakcja w trybie Serializable, podobnie jak transakcja w trybie Read Only, operuje na wersji danych z momentu jej rozpoczĊcia. x RóĪnica polega na tym, Īe moĪna modyfikowaü dane, które nie zostaáy zmienione przez inne transakcje w trakcie jej trwania. Polecenie umoĪliwiające przestawienie pojedynczej transakcji w tryb Serializable: SQL> SET TRANSACTION ISOLATION LEVEL Serializable; Uwaga. Polecenie naleĪy wykonaü jako pierwsze w ramach transakcji. Polecenie umoĪliwiające ustawienie trybu Serializable dla wszystkich transakcji realizowanych w ramach danej sesji: Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 21. WSPÓàBIEĩNOĝû W SYSTEMIE ORACLE - 225 - ALTER SESSION SET ISOLATION_LEVEL= Serializable; Uwaga. Polecenie naleĪy wykonaü jako pierwsze w ramach sesji. Tryb Serializable moĪe byü wáączony na staáe poprzez ustawienie w pliku parametrów Init<SID>.ora parametru SERIALIZABLE=TRUE. DomyĞlnie jego wartoĞü wynosi FALSE co oznacza, Īe wszystkie transakcje są realizowane w trybie Read Committed; § 21.3. Mechanizm blokowania danych W systemie Oracle stosowana jest metoda blokowania. Blokady zakáadane są na czas trwania transakcji. Dwie blokady są ze sobą zgodne jeĪeli mogą byü zaáoĪone na tĊ samą daną przez wiele transakcji. Blokowanie moĪe dotyczyü: x tabeli (table lock), x rekordu (row lock). Blokowanie caáej tabeli zmniejsza stopieĔ wspóábieĪnoĞci transakcji, uáatwiając zarządzanie blokadami i szybsze wykrywanie związanych z nimi konfliktów. Blokowanie caáej tabeli powoduje, Īe blokada dotyczy wszystkich jej rekordów a co za tym idzie system nie musi blokowaü kaĪdego z nich oddzielnie. Sposób zakáadania blokad zaleĪy od ustawienia parametrów: SERIALIZABLE = False ROW_LOCKING = Always Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 21. WSPÓàBIEĩNOĝû W SYSTEMIE ORACLE - 226 - Są to ustawienia domyĞlne, przy których blokady są zakáadane tylko w przypadku wykonywania poleceĔ modyfikujących dane (DELETE, UPDATE, INSERT). Operacja SELECT nie wymaga nakáadania blokady na tabeli i rekordzie. Blokowanie rekordów odbywa siĊ zawsze w trybie EXCLUSIVE (X). Dwie blokady X nie są ze sobą zgodne. Blokowanie tabeli odbywa siĊ w trybie RS, RX, S, SRX oraz X gdzie: x RS ROW SHARE x RX ROW EXCLUSIVE x S SHARE x SRX SHARE ROW EXCLUSIVE x X EXCLUSIVE ZgodnoĞü blokad tabeli: Brak Brak TAK RS TAK RX TAK S TAK SRX TAK X TAK RS TAK TAK TAK TAK TAK Nie RX TAK TAK TAK Nie Nie Nie S TAK TAK Nie TAK Nie Nie SRX TAK TAK Nie Nie Nie Nie X TAK Nie Nie Nie Nie Nie Rysunek 21.3.1. Tabela zgodnoĞci blokad Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 21. WSPÓàBIEĩNOĝû W SYSTEMIE ORACLE - 227 - 21.3.2. Jawne zaáoĪenie blokady na tabeli Blokady mogą byü naáoĪone na rekordy lub tabele w nastĊpujący sposób: x niejawny - w momencie wykonywania operacji modyfikujących dane, x jawny – naáoĪenie blokady nastĊpuje po wydaniu polecenia LOCK TABLE. Do jawnego zaáoĪenia blokady na tabeli sáuĪy nastĊpujące polecenie: SQL> LOCK TABLE nazwa_tabeli IN tryb MODE; gdzie: tryb – oznacza rodzaj blokady, podany peáną nazwą. 21.3.3. WáaĞciwoĞci blokad WàAĝCIWOĝCI BLOKADY RS (ROW SHARE) Zakáadana jest w intencji póĨniejszego zmodyfikowania rekordów, uniemoĪliwia zmianĊ zawartoĞci rekordów przez inne transakcje. Jej zaáoĪenie nastĊpuje automatycznie przy realizacji polecenia: SQL> SELECT lista_atrybutów FROM nazwa_tabeli WHERE warunek_selekcji FOR UPDATE [NOWAIT]; UĪycie NOWAIT powoduje, Īe polecenie zostanie automatycznie przerwane, jeĪeli nie moĪna zaáoĪyü blokady RS ze wzglĊdu na istnienie innej blokady z nią niezgodnej. WàAĝCIWOĝCI BLOKADY RX (ROW EXCLUSIVE) Zakáadana jest automatycznie w przypadku realizacji poleceĔ DELETE, INSERT, UPDATE. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 21. WSPÓàBIEĩNOĝû W SYSTEMIE ORACLE - 228 - Modyfikowane rekordy są zawsze blokowane w trybie EXCLUSIVE (X). Pojawienie siĊ blokady tego typu oznacza, Īe niektóre lub wszystkie rekordy tabeli zostaáy zmodyfikowane. WàAĝCIWOĝCI BLOKADY S (SHARE) Zakáadana jest gdy transakcja T1 chce uniemoĪliwiü zmianĊ danych w tabeli przez inne równolegle dziaáające transakcje i jednoczeĞnie sama nie bĊdzie ich modyfikowaáa. Transakcje nie zmieniające zawartoĞci tabeli (SELECT …) mogą wspóápracowaü z transakcją T1. WàAĝCIWOĝCI BLOKADY SRX (SHARE ROW EXCLUSIVE) Zakáadana jest wtedy gdy transakcja T1 bĊdzie modyfikowaü zawartoĞü tabeli i jednoczeĞnie chce uniemoĪliwiü zmianĊ danych w tej tabeli przez inne równolegle dziaáające transakcje. Inne transakcje wymagające aby w trakcie ich pracy zawartoĞü tabeli pozostaáa niezmieniona lub chcące ją zmodyfikowaü nie mogą wspóápracowaü z transakcją T1. WàAĝCIWOĝCI BLOKADY X (EXCLUSIVE) UniemoĪliwia modyfikowanie danych dopuszczając tylko ich przeglądanie (SELECT …). ZaáoĪenie innej blokady nie jest moĪliwe. § 21.4. Informacja o zaáoĪonych blokadach MoĪna ją uzyskaü z widoku systemowego V$LOCK w poáączeniu z danymi pomocniczymi pochodzącymi z widoków V$SESSION oraz SYS.OBJ$. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 21. WSPÓàBIEĩNOĝû W SYSTEMIE ORACLE - 229 - Przykáad 21.4.1. Przykáad skáadni SELECT wyĞwietlającej informacje o zaáoĪonych blokadach: SELECT s.sid, s.serial#, s.username, l.type, o.name, DECODE(L.LMODE,0,’BRAK’,2,’RS’,3,’RX’,4,’S’,5,’SRX’,6,’X’,L.LMODE) AS TYP_BLOKADY, DECODE(l.request,0,’brak’,2,’rs’,3,’rx’,4,’s’,5,’srx’,6,’x’, L.REQUEST)AS TYP_BLOKADY_OCZEKUJACEJ, s.status, s.osuser, s.machine, s.program FROM v$session s, v$lock l, sys.obj$ o WHERE s.sid=l.sid AND l.id1=o.obj#(+); W wyniku realizacji powyĪszej skáadni w kolumnie typ_blokady uzyskamy typ zaáoĪonej blokady a w kolumnie typ_blokady_oczekujacej typ blokady oczekującej na zaáoĪenie. W kolumnie TYPE wartoĞü TM oznacza blokadĊ tabeli natomiast TX blokadĊ rekordu. Pozostaáe kolumny to: USERNAME NAME SID STATUS OSUSER MACHINE PROGRAM - nazwa uĪytkownika bazy danych - nazwa obiektu którego dotyczą blokady - numer sesji - status sesji uĪytkownika - nazwa uĪytkownika w systemie operacyjnym - nazwa komputera z którego uĪytkownik doáączyá siĊ do bazy danych - nazwa programu za pomocą którego uĪytkownik doáączyá siĊ do bazy Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 21. WSPÓàBIEĩNOĝû W SYSTEMIE ORACLE - 230 - Przykáad 21.4.2. Przykáad o zaáoĪonych blokadach. Pierwsza sesja: Druga sesja: CONNECT hr/hr CONNECT hr/hr SET TRANSACTION NAME 't1'; SET TRANSACTION NAME 't2'; SELECT * FROM regions FOR UPDATE; SELECT * FROM regions FOR UPDATE; Sesja administratora: SQL> CONNECT system/test SQL> select z przykáadu 21.4.1 USERNAME HR HR HR HR TYPE TX TM TM TX NAME REGIONS REGIONS - TYP_BL BRAK RX RX X T_BL_OCZ X BRAK BRAK BRAK SID 37 37 29 29 STATUS ACTIVE ACTIVE INACTIVE INACTIVE OSUSER LAPTOP\xxxx LAPTOP\xxxx LAPTOP\xxxx LAPTOP\xxxx MACHINE DOM\LAPTOP DOM\LAPTOP DOM\LAPTOP DOM\LAPTOP PROGRAM sqlplus.exe sqlplus.exe sqlplus.exe sqlplus.exe § 21.5. Zakleszczenia (deadlocks) Zaletą metody blokowania danych jest zapewnienie synchronizacji zapisu w przypadku wielu transakcji próbujących modyfikowaü te same dane. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 21. WSPÓàBIEĩNOĝû W SYSTEMIE ORACLE - 231 - Metoda ta posiada jednak dwie wady: x zmniejsza stopieĔ wspóábieĪnoĞci (transakcja, która próbuje zaáoĪyü blokady niezgodne z blokadami juĪ zaáoĪonymi przez inną transakcjĊ, musi czekaü na zdjĊcie blokad); x wprowadza moĪliwoĞü wystąpienia zakleszczenia (deadlock), kiedy dwie transakcje blokują sobie wzajemnie zasoby. Wówczas Īadna z transakcji nie moĪe kontynuowaü pracy. System Oracle wykrywa zakleszczenie i rozwiązuje je wykorzystując pewien algorytm wyboru tej transakcji, która zostanie przerwana, tj. jej ostatnie polecenie zostanie przerwane, wycofane. Przykáad 21.5.1. Przykáad wystąpienia zakleszczenia. Pierwsza sesja: CONNECT hr/hr Druga sesja: CONNECT hr/hr SET TRANSACTION NAME 'T1'; SELECT * FROM REGIONS FOR UPDATE; SET TRANSACTION NAME 'T2'; SELECT * FROM REGIONS FOR UPDATE; SELECT * FROM LOCATIONS FOR UPDATE; SELECT * FROM LOCATIONS FOR UPDATE; SELECT * FROM REGIONS FOR UPDATE; Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 21. WSPÓàBIEĩNOĝû W SYSTEMIE ORACLE - 232 - WáaĞciciel transakcji, dla której nastąpiáo zakleszczenie otrzymuje wówczas komunikat: ORA-…….: deadlock detected while waiting for resource Algorytm wyboru transakcji do przerwania nie zostaá wyspecyfikowany w dokumentacji Oracle. § 21.6. Rola administratora x Monitorowanie transakcji wszystkich uĪytkowników. x ZamkniĊcie wybranych sesji, których transakcje powodują zakleszczenie lub nadmierne obciąĪenie systemu. x SQL> ALTER SYSTEM KILL SESSION (SID, SERIAL#); Sugerowanie zmian w transakcjach powodujących spadek wydajnoĞci systemu. x Ustawianie parametru Serializable: o Tryb Serializable moĪe byü wáączony na staáe poprzez ustawienie w pliku parametrów Init<SID>.Ora parametru SERIALIZABLE=TRUE. o DomyĞlnie jego wartoĞü wynosi FALSE co oznacza, Īe wszystkie transakcje są realizowane w trybie Read Committed. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 22. ARCHIWIZACJA BAZY DANYCH - 233 - 22. ARCHIWIZACJA BAZY DANYCH § 22.1. Podstawowe reguáy sporządzania kopii bezpieczeĔstwa Zalecenia: x Wykonywanie kopii plików bazy danych najpierw na dysk, a dopiero potem na inny noĞnik. x Utrzymywanie wielu kopii pliku kontrolnego, z których kaĪda powinna byü umieszczona na odrĊbnym dysku. x Archiwizowanie plików dziennika powtórzeĔ najpierw na dysk, a potem na inny noĞnik. x Zarchiwizowane pliki dziennika powtórzeĔ powinno siĊ przechowywaü na innym dysku niĪ aktywne (online) pliki dziennika. x Po kaĪdorazowej zmianie struktury bazy danych, tj. dodaniu, zmianie bądĨ usuniĊciu pliku danych lub dziennika powtórzeĔ naleĪy sporządziü kopie archiwalną pliku kontrolnego. § 22.2. Rodzaje archiwizacji x Archiwizacja fizyczna (physical backup) - polega na sporządzaniu kopii plików bazy danych za pomocą polecenie systemu operacyjnego. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 22. ARCHIWIZACJA BAZY DANYCH x - 234 - Archiwizacja logiczna (logical backup) - polega na skorzystaniu z programu Exp do sporządzenia kopii struktur logicznych bazy danych. Program ten zapisuje informacje o obiektach bazy danych i same dane w pliku binarnym. Plik ten moĪe byü przetwarzany przez program Imp. Tryby pracy bazy: x x ARCHIVELOG NOARCHIVELOG /* z archiwizacją plików dziennika powtórzeĔ */ /* bez archiwizacji plików dziennika powtórzeĔ */ § 22.3. Archiwizacja fizyczna caáej bazy danych w trybie OFFLINE W celu wykonania archiwizacji fizycznej naleĪy: 1. OkreĞliü nazwy i poáoĪenie wszystkich plików bazy dany. W tym celu naleĪy wydaü zapytania: SQL> SELECT status, enabled, name FROM v$datafile; SQL> SELECT * FROM V$LOGFILE; SQL> SELECT * FROM V$CONTROLFILE; 2. Zatrzymaü instancjĊ. SQL> SHUTDOWN 3. Korzystając z poleceĔ systemu operacyjnego sporządziü kopie wszystkich plików okreĞlonych w kroku 1. Sporządziü kopie pliku init<SID>.ora, spfile<SID>.ora i pliku haseá pwd<SID>.ora. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 22. ARCHIWIZACJA BAZY DANYCH - 235 - 4. Uruchomiü instancjĊ. SQL> STARTUP § 22.4. Archiwizacja fizyczna caáej bazy danych w trybie ONLINE Archiwizacja ta jest moĪliwa tylko, gdy baza pracuje w trybie archiwizacji plików dziennika powtórzeĔ (ARCHIVELOG). Przed sporządzeniem fizycznej kopii plików skáadającą siĊ na wybraną przestrzeĔ tabel naleĪy wydaü polecenie SQL> ALTER TABLESPACE nazwa_przestrzeni BEGIN BACKUP; NaleĪy je wydaü w programie SQL*Plus w czasie, gdy baza pracuje w trybie MOUNT lub OPEN. Po zrobieniu kopii fizycznych plików wchodzących w skáad tej przestrzeni tabel naleĪy wydaü polecenie SQL> ALTER TABLESPACE nazwa_przestrzeni END BACKUP; NaleĪy równieĪ zrobiü kopie pliku kontrolnego i wszystkich zarchiwizowanych plików dziennika powtórzeĔ. § 22.5. Archiwizacja logiczna Do wykonania archiwizacji logicznej sáuĪy program Exp. Do pracy wymaga on dodatkowych obiektów systemowych. Obiekty te tworzone są za pomocą skryptu catexp.sql, muszą byü wáasnoĞcią uĪytkownika SYS. W systemie Oracle mogą byü eksportowane: Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 22. ARCHIWIZACJA BAZY DANYCH - 236 - x Pojedyncze tabele. x Wszystkie obiekty okreĞlonych uĪytkowników. x Caáa baza danych. W przypadku eksportowania pojedynczej tabeli oprócz definicji eksportowane są równieĪ: dane, prawa dostĊpu, indeksy, ograniczenia integralnoĞciowe i wyzwalacze. Eksport schematu uĪytkownika polega na sporządzeniu kopii wszystkich obiektów uĪytkownika. Eksport caáej bazy danych jest równowaĪny: x wyeksportowaniu wszystkich uĪytkowników (z wyjątkiem SYS), x synonimów, x praw dostĊpu, x uprawnieĔ systemowych, x definicji przestrzeni tabel, x definicji segmentów wycofania, x opcji auditingu, x profili uĪytkowników i wszystkich wyzwalaczy. Tego rodzaju operacje moĪe wykonaü uĪytkownik, który posiada role EXP_FULL_DATABASE. MoĪe to byü wykonane w trzech trybach: Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 22. ARCHIWIZACJA BAZY DANYCH x inkrementalnym, x kumulacyjnym, x peánym. - 237 - Rodzaje eksportu: x Eksport kompletny jest równowaĪny eksportowi caáej bazy danych. Dodatkowo wykonanie tego eksportu powoduje usuniĊcie informacji systemowych związanych z kaĪdą tabelą bazy danych, a dotyczących kolejnych eksportów inkrementalnych i kumulacyjnych. x Eksport kumulacyjny umoĪliwia sporządzenie peánych kopii tych tabel, których zawartoĞü bądĨ definicja zostaáy zmienione od czasu wykonania ostatniego eksportu kumulacyjnego lub peánego. Oznacza to, Īe kopie danych sporządzone za pomocą wczeĞniejszych eksportów inkrementalnych są juĪ niepotrzebne. x Eksport inkrementalny umoĪliwia sporządzenie peánych kopii tych tabel, których zawartoĞü bądĨ definicja zostaáy zmienione od czasu wykonania ostatniego eksportu inkrementalnego, kumulacyjnego lub peánego. Procedura sporządzania kopii zawartoĞci caáej bazy danych inkrementalnych, kumulacyjnych i peánych moĪe byü np. nastĊpująca: Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” z wykorzystaniem eksportów 22. ARCHIWIZACJA BAZY DANYCH - 238 - x Wykonanie początkowego eksportu kompletnego bazy danych. x Wykonanie eksportów inkrementalnych pod koniec kaĪdego dnia. x Wykonanie eksportów kumulacyjnych okresowo, np. co tydzieĔ. x Wykonanie kompletnego eksportu okresowo np. co miesiąc. § 22.6. Archiwizacja logiczna. Program Exp 22.6.1. Eksport konta uĪytkownika Konto uĪytkownika moĪe eksportowaü wáaĞciciel lub DBA. c:\exp system@test OWNER=(HR) FILE=c:\hr1.dmp LOG=c:\hr1.log lub c:\exp hr@xe FILE=c:\hr1.dmp LOG=c:\hr1.log MoĪna uĪywaü pliku parametrów. c:\exp PARFILE=c:\exp_hr1.par gdzie plik exp_hr1.par jest postaci: USERID=system@xe FILE=c:\hr1.dmp LOG=c:\hr1.log OWNER=(HR) Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 22. ARCHIWIZACJA BAZY DANYCH - 239 - 22.6.2. Eksport kont kilku uĪytkowników c:\exp PARFILE=c:\exp_hr2.par gdzie plik exp_hr2.par jest postaci: USERID=system@xe FILE=c:\hr2.dmp LOG=c:\hr2.log OWNER=(hr,u1) ROWS=N 22.6.3. Eksport wybranych tabel c:\exp PARFILE=c:\exp_hr3.par gdzie plik exp_hr3.par jest postaci: USERID=system@xe FILE=c:\hr3.dmp LOG=c:\hr3.log TABLES=(hr.jobs,hr.regions) GRANTS=N /* Bez przywilejów */ 22.6.4. Eksport caáej bazy - kompletny Do eksportu i importu i IMP_FULL_DATABASE. caáej bazy trzeba c:\exp PARFILE=c:\exp_xe.par Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” posiadaü role EXP_FULL_DATABASE 22. ARCHIWIZACJA BAZY DANYCH - 240 - gdzie plik exp_xe.par jest postaci: USERID=system@xe FILE=c:\xe.dmp LOG=c:\xe.log FULL=Y INCTYPE=COMPLETE /* Eksport kompletny */ 22.6.5. Eksport caáej bazy – przyrostowy c:\exp PARFILE=c:\exp_xe_1.par gdzie plik exp_xe_1.par jest postaci: USERID=system@xe FILE=c:\exp_xe_1.dmp LOG=c:\exp_xe_1.log FULL=Y INCTYPE=INCREMENTAL NajczĊĞciej uĪywane parametry programu Exp: USERID BUFFER FILE FULL /* Eksport przyrostowy */ - OkreĞla nazwĊ i hasáo uĪytkownika, który dokonuje exportu. - OkreĞla rozmiar bufora pamiĊci operacyjnej wykorzystywanego do przetwarzania eksportowanych danych. Rozmiar tego bufora ( w bajtach) powinien mieü przynajmniej taką wartoĞü, jak najdáuĪszy eksportowany rekord. - Wskazuje nazwĊ pliku, do którego bĊdą eksportowane dane. - WartoĞü Y powoduje eksport caáej bazy danych, natomiast N (domyĞlna) umoĪliwia eksportowanie obiektów wybranych uĪytkowników lub tylko okreĞlonych tabel. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 22. ARCHIWIZACJA BAZY DANYCH - 241 - - OkreĞla nazwy uĪytkowników, których obiekty bĊdą eksportowane. Przykáadowo, parametr OWNER=(u1,u2) umoĪliwi wyeksportowanie wszystkich obiektów uĪytkowników u1,u2. Prawo do eksportowania innych uĪytkowników posiada administrator bazy danych. TABLES - OkreĞla zbiór tabel, które bĊdą wyeksportowane. TABLES=(u1.pracownicy, u2.studenci). ROWS - WartoĞü Y (domyĞlna) powoduje wyeksportowanie definicji wraz z jej zawartoĞcią, N – tylko definicja. INDEXES - WartoĞü Y (domyĞlna) powoduje wyeksportowanie indeksów związanych z eksportowanymi tabelami. N – indeksy nie są eksportowane. CONSTRAINTS - WartoĞü Y (domyĞlna) powoduje wyeksportowanie ograniczeĔ integralnoĞciowych. W przypadku N nie bĊdą one eksportowane. GRANTS - WartoĞü Y (domyĞlna) powoduje wyeksportowanie przywilejów związanych z eksportowanymi tabelami. COMPRESS - WartoĞü Y (domyĞlna) powoduje, Īe w czasie importowania tabeli jej rekordy zostaną umieszczone w jednym rozszerzeniu. Rozmiar tego rozszerzenia zostanie tak dobrany, aby byá on jak najmniejszy i jednoczeĞnie wystarczający do umieszczenia w nim caáej zawartoĞci tabeli. WartoĞü N powoduje, Īe w czasie importowania tabeli jej rekordy zostaną umieszczone w jednym rozszerzeniu równym sumie rozmiarów rozszerzeĔ dotychczas zajmowanych przez tabelĊ. CONSISTENT - WartoĞü Y zapewnia, Īe w caáym pliku eksportu znajdą siĊ dane spójne. Parametr ten ma znaczenie, jeĞli w trakcie dokonywania eksportu inni uĪytkownicy modyfikują dane. WartoĞü CONSISTENT=Y powoduje, Īe przed rozpoczĊciem eksportowania system wykonuje polecenie set transaction read only. WartoĞü N nie zapewnia spójnoĞci wszystkich eksportowanych danych. Parametru CONSISTENT nie moĪna stosowaü dla eksportów inkrementalnych. INCTYPE - OkreĞla tryb eksportu: COMPLETE, CUMULATIVE, INCREMENTAL. Eksport w tych trybach moĪna wykonywaü tylko dla FULL=Y. LOG - Wskazuje plik, do którego zostaną zapisane informacje o przebiegu eksportu. REKORD - WartoĞü Y (domyĞlna) oznacza, Īe informacje o eksportach inkrementalnych i kumulacyjnych bĊdą zapisywane w tabelach: SYS.INCVID, SYS.INCFIL, SYS.INCEXP. PARFILE - Wskazuje plik z parametrami eksportu. HELP - UmoĪliwia wyĞwietlenie opisu parametrów. OWNER Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 22. ARCHIWIZACJA BAZY DANYCH - 242 - § 22.7. Odtwarzanie bazy danych w trybie NOARCHIVELOG 22.7.1. Wczytanie peánej kopii archiwalnej Procedura jest nastĊpująca: x ZamkniĊcie bazy danych poleceniem shutdown lub shutdown abort. x Wgranie wszystkich plików bazy danych z ostatniej kopii na ich wáaĞciwe miejsca. x Otwarcie bazy danych poleceniem startup. 22.7.2. Odtwarzanie bazy danych na podstawie pliku eksportu – program Imp Program Imp umoĪliwia importowanie: x Pojedynczych tabel. x Wszystkich obiektów okreĞlonych uĪytkowników. x Caáej bazy danych. Mechanizm importowanie ma równieĪ zastosowanie w przypadku przenoszenia danych z jednej bazy do drugiej. § 22.8. Importowanie danych jednego uĪytkownika do drugiego Stworzyü uĪytkownika u1 z rolami CONNECT i RESORCE. c:\imp PARFILE=c:\imp_xe.par Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 22. ARCHIWIZACJA BAZY DANYCH - 243 - gdzie plik imp_xe.par jest postaci: USERID=system@xe BUFFER=4096 FILE=c:\hr1.dmp LOG=c:\imp_xe.log FROMUSER=(HR) TOUSER=(U1) ROWS=Y GRANTS=N COMMIT=Y lub USERID=system@xe BUFFER=4096 FILE=c:\hr1.dmp LOG=c:\imp_xe.log FROMUSER=(HR) TOUSER=(U1) TABLES=(jobs,regions) ROWS=N GRANTS=N INDEXES=N /* Z danymi */ /* Bez przywilejów */ /* Zatwierdzanie po peánym buforze */ /* Wybrane tabele */ /* Bez danych */ /* Bez przywilejów */ /* Bez indeksów */ Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 22. ARCHIWIZACJA BAZY DANYCH - 244 - § 22.9. Odtwarzanie bazy danych na podstawie peánego eksportu Musi byü stworzona instancja test i baza danych. c:\imp PARFILE=c:\imp_xe.par gdzie plik imp_test.par jest postaci: USERID=system@xe BUFFER=4096 FILE=c:\xe.dmp LOG=c:\imp_xe.log FULL=Y Parametry programu Imp: USERID - OkreĞla nazwĊ i hasáo uĪytkownika, który importuje dane. BUFFER - OkreĞla rozmiar bufora (w bajtach) pamiĊci operacyjnej wykorzystywanej do przetwarzania danych. FILE - Wskazuje plik eksportu. SHOW - WartoĞü Y oznacza, Īe dane nie zostaną zaimportowane do bazy, a zawartoĞü zostanie tylko wyĞwietlona na ekranie. Natomiast N spowoduje wczytanie danych. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 22. ARCHIWIZACJA BAZY DANYCH IGNORE - 245 - - OkreĞla sposób reagowania na báĊdy powstające podczas importu danych wynikające z istnienia obiektu w bazie danych. JeĪeli parametr przyjmie wartoĞü Y, a importowane są definicje obiektów juĪ istniejących, to program nie tworzy ponownie tych obiektów, lecz je pomija nie wyĞwietlając informacji o báĊdach. W tabelach tych mogą siĊ pojawiü zduplikowane rekordy, jeĞli nie miaáy one zaáoĪonych ograniczeĔ integralnoĞciowych: unique i primary key. W przypadku wartoĞci N próba wczytania obiektu juĪ istniejącego zakoĔczy siĊ niepowodzeniem i wyĞwietleniem informacji o báĊdzie. FULL - WartoĞü Y powoduje import caáej bazy danych, natomiast N (wartoĞü domyĞlna) umoĪliwia importowanie obiektów wybranych uĪytkowników lub okreĞlonych tabel. Importu caáej bazy moĪe dokonaü uĪytkownik z uprawnieniami IMP_FULL_DATABASE. FROMUSER - OkreĞla zbiór uĪytkowników, których obiekty zostaną wczytane. TOUSER - OkreĞla zbiór uĪytkowników, do których schematów dane zostaną wczytane. OpcjĊ tĊ moĪe wykorzystaü uĪytkownik posiadający rolĊ IMP_FULL_DATABASE TABLES - OkreĞla zbiór tabel, które zostaną zaimportowane. ROWS - WartoĞü Y (domyĞlna) powoduje wczytanie definicji tabel wraz z danymi. INDEXES - WartoĞü Y powoduje wczytanie indeksów związanych z importowanymi tabelami. GRANTS - WartoĞü Y powoduje wczytanie informacji o przywilejach związanych z importowanymi tabelami. COMMIT - WartoĞü Y powoduje, Īe po wczytaniu do bazy danych bloku informacji o wielkoĞci okreĞlonej BUFFER system zatwierdzi transakcjĊ. Natomiast N powoduje, Īe dane zatwierdzane są po wczytaniu caáej tabeli. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 22. ARCHIWIZACJA BAZY DANYCH - 246 - DESTROY - WartoĞü Y powoduje nadpisanie istniejących przestrzeni tabel definicjami zawartymi w importowanym pliku. INCTYPE - OkreĞla typ importowania danych i moĪe przyjmowaü wartoĞci: SYSTEM lub RESTORE. LOG - Wskazuje plik, do którego zostaną zapisane informacje o przebiegu importu. PARFILE - Wskazuje plik zawierający parametry importu. HELP - UmoĪliwia wyĞwietlenie parametrów importu. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ - 247 - 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ § 23.1. WstĊp Przykáad polecenia tworzącego bazĊ xxxx (w trybie NOMOUNT): CREATE DATABASE xxxx CONTROLFILE REUSE LOGFILE GROUP 1 ('c:/oraclexe/oradata/xxxx/redo11.log', 'c:/oraclexe/oradata/xxxx/redo12.log') GROUP 2 ('c:/oraclexe/oradata/xxxx/redo21.log', 'c:/oraclexe/oradata/xxxx/redo22.log') GROUP 3 ('c:/oraclexe/oradata/xxxx/redo31.log', 'c:/oraclexe/oradata/xxxx/redo32.log') MAXLOGFILES 32 MAXDATAFILES 15 ARCHIVELOG CHARACTER SET EE8MSWIN1250 NATIONAL CHARACTER SET AL16UTF16 DATAFILE 'c:/oraclexe/oradata/xxxx/system01.dbf' SIZE 30M, SIZE 30M, SIZE 30M SIZE 200M AUTOEXTEND ON DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE 'c:/oraclexe/oradata/xxxx/temp01.dbf' SIZE 200M REUSE UNDO TABLESPACE undo DATAFILE 'c:/oraclexe/oradata/xxxx/undo01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 512K MAXSIZE UNLIMITED SYSAUX DATAFILE 'c:\oraclexe\oradata\test\sysaux.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 512K MAXSIZE UNLIMITED; Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ - 248 - Po utworzeniu bazy danych powstaną nastĊpujące pliki: Pliki dziennika powtórzeĔ: Pliki kontrolne: Redo11.log Controlfile01.ctl Redo12.log Controlfile02.ctl Redo21.log Controlfile03.ctl Redo22.log Redo31.log Redo32.log Pliki danych: System01.dbf Undo01.dbf Temp01.dbf Sysaux.dbf … NaleĪy jeszcze uruchomiü pliki catalog.sql i catproc.sql w trypie OPEN. W momencie startu instancji tworzony jest w pamiĊci RAM obszar SGA (System Global Area). Bufor dziennika powtórzeĔ Bufor danych Obszar wspóádzielony ( Shared pool ) Rysunek 23.1.1. Obszar SGA. Zapisywaniem wszystkich zmian na bazie danych do plików dziennika powtórzeĔ zajmuje siĊ proces LGWR (Log Writer). Zapis jest cykliczny i moĪna go zilustrowaü nastĊpująco: Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ - 249 - 1. Baza danych w trybie bez archiwizacji (NOARCHIVELOG) Zatwierdzone zmiany w bazie zapisywane są cyklicznie do plików REDO. Redo11.log Redo21.log Redo31.log Redo21.log Redo22.log Redo32.log Rysunek 23.1.2. Pliki Redo w trybie NOARCHIVELOG. W przypadku zapeánienia wszystkich plików nastĊpuje nadpisywanie i w ten sposób moĪna ewentualnie powróciü do danych do okreĞlonego momentu. 2. Baza danych w trybie z archiwizacją ( ARCHIVELOG) Zatwierdzone zmiany w bazie zapisywane są cyklicznie do plików REDO. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ - 250 - Redo11.log Redo21.log Redo31.log Redo21.log Redo22.log Redo32.log ….ARC ….ARC ….ARC ….ARC ….ARC ….ARC Rysunek 23.1.3. Pliki Redo w trybie ARCHIVELOG. W przypadku zapeánienia wszystkich plików nastĊpuje kopiowanie plików i dopiero nastĊpuje nadpisywanie i w ten sposób moĪna ewentualnie powróciü do danych do dowolnego momentu. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ - 251 - § 23.2. Dodawanie plików dziennika powtórzeĔ w czasie pracy bazy: Dodawanie grupy: SQL> ALTER DATABASE ADD LOGFILE GROUP numer_grupy (’nazwa_pliku’, ’nazwa_pliku’…..) SIZE rozmiar; Np. SQL> ALTER DATABASE ADD LOGFILE GROUP 4 ('c:/oraclexe/oradata/xxxx/redo41.log', 'c:/oraclexe/oradata/xxxx/redo42.log') SIZE 30M; MoĪna dodawaü pliki do grupy poleceniem: SQL> ALTER DATABASE ADD LOGFILE (’nazwa_pliku’,’nazwa_pliku’….) TO GROUP numer_grupy; Np. SQL> ALTER DATABASE ADD LOGFILE ('c:/oraclexe/oradata/xxxx/redo43.log') TO GROUP 4; § 23.3. Archiwizowanie plików dziennika powtórzeĔ Informacje o trybie pracy instancji moĪna uzyskaü poleceniem Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ - 252 - SQL> ARCHIVE LOG LIST Tryb dziennika bazy danych Tryb archiwizacji Wyáączona Automatyczna archiwizacja Miejsca archiwizowania c:\oraclexe\archiwum ... lub w tabeli systemowej V$DATABASE. 23.3.1. Archiwizacja automatyczna W pliku initxxxx.ora musi znajdowaü siĊ wpis: LOG_ARCHIVE_START=TRUE ???? (przestarzaáy) lub w czasie, kiedy instancja jest otwarta: SQL> CONNECT system@xxxx AS SYSDBA SQL> ALTER SYSTEM ARCHIVE LOG START; lub SQL> ALTER SYSTEM ARCHIVE LOG START TO ’c:\oraclexe\archiwum’; Archiwizowane pliki REDO bĊdą zapisywane do katalogu c:\oraclexe\archiwum. 23.3.2. Wyáączenie automatycznej archiwizacji SQL> CONNECT system@xxxx AS SYSDBA SQL> SHUTDOWN Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ SQL> STARTUP MOUNT SQL> ALTER DATABASE NOARCHIVELOG; SQL> SHUTDOWN Zmiana w pliku initxxxx.ora na LOG_ARCHIVE_START=FALSE SQL> STARTUP Na otwartej instancji archiwizacjĊ moĪna wyáączyü poleceniem: SQL> ALTER SYSTEM ARCHIVE LOG STOP; 23.3.3. Archiwizowanie dziennika powtórzeĔ przez administratora Instancja musi dziaáaü w trybie ARCHIVELOG, co moĪna uzyskaü nastĊpującymi poleceniami: SQL> CONNECT system@xxxx AS SYSDBA SQL> SHUTDOWN SQL> STARTUP MOUNT EXCLUSIVE SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE OPEN; Postaü polecenia: SQL> ALTER SYSTEM ARCHIVE LOG {ALL | LOGFILE ’nazwa_pliku’ | CURRENT | GROUP numer} [TO katalog]; Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” - 253 - 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ - 254 - § 23.4. Mechanizm wykrywania awarii bazy danych 23.4.1. System Change Number (SCN) KaĪda zatwierdzona transakcja otrzymuje unikatowy numer System Change Number (SCN). Informacje o tych numerach moĪna znaleĨü w tabeli systemowej V$LOG_HISTORY. 23.4.2. Punkt kontrolny (checkpoint) Punkt kontrolny jest systemowym zdarzeniem bazy danych, dziĊki któremu dane z bufora danych w SGA („brudne” bloki) są zapisywane na dyski (do pliku danych trafiają zmiany zatwierdzone i niezatwierdzone). Zapisu dokonuje proces serwera DBWR (Database Writer). WystĊpują dwa rodzaje punktu kontrolnego: x Bazy danych (database checkpoint) – wykonywany dla wszystkich plików danych. x Pliku danych (datafile checkpoint) – wykonywany dla okreĞlonych plików danych. Punkt kontrolny bazy danych (database checkpoint) wystĊpuje, gdy: x NastĊpuje przeáączenie grupy plików dziennika powtórzeĔ x Wykonane zostanie polecenie: SQL> ALTER SYSTEM CHECKPOINT; Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ - 255 - x Wykonane zostanie polecenie: SQL> SHUTDOWN NORMAL lub SQL> SHUTDOWN IMMEDIATE x Inne. Punkt kontrolny pliku danych (datafile checkpoint) wystĊpuje, gdy: x Rozpoczyna siĊ sporządzanie kopi bezpieczeĔstwa wybranych przestrzeni tabel SQL> ALTER TABLESPACE nazwa_przestrzeni BEGIN BACKUP; x Po SQL> ALTER TABLESPACE nazwa_przestrzeni OFFLINE; x Inne. 23.4.3. Pliki kontrolne W pliku kontrolnym i w nagáówku kaĪdego pliku danych są przechowywane m.in. informacje: x Numer SCN w czasie wystąpienia punktu kontrolnego (checkpoint at scn, stop scn). x Data i czas SCN. x Licznik punktu kontrolnego (checkpoint counter). Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ - 256 - Plik kontrolny (control file ) jest plikiem binarnym, który zawiera m.in.: x NazwĊ bazy danych. x DatĊ utworzenia bazy. x Informacje o wszystkich grupach dziennika powtórzeĔ. x BieĪącą grupĊ dziennika powtórzeĔ (aktualnie uĪywaną). x NazwĊ, lokalizacjĊ i rozmiar kaĪdego pliku dziennika powtórzeĔ. x Informacje o plikach danych (wáączony, wyáączony, …). x Informacje dotyczące punktów kontrolnych. x … 23.4.4. Wykrywanie awarii NAGàÓWEK PLIKU DANYCH Nagáówek pliku danych przechowuje m.in.: x x x BieĪący numer SCN punktu kontrolnego (Checkpointed at scn). Licznik punktów kontrolnych (Chkpt cnt). Numer sekwencyjny bieĪącego pliku dziennika powtórzeĔ w momencie wystąpienia punktu kontrolnego. Nagáówek pliku danych jest uaktualniany, gdy system wykonuje punkt kontrolny dla danego pliku. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ - 257 - NAGàÓWEK PLIKU KONTROLNEGO Nagáówek pliku kontrolnego przechowuje dla kaĪdego pliku danych m.in.: x Informacje o koĔcowym SCN (stop scn). W czasie pracy instancji wartoĞü ta jest równa 0xFFFF.FFFFFFFF. x BieĪący numer SCN punktu kontrolnego (scn). x Licznik punktów kontrolnych (Checkpoint cnt). WYKORZYSTANIE INFORMACJI Z NAGàÓWKÓW PLIKÓW DANYCH I KONTROLNYCH W CZASIE ODTWARZANIA BAZY DANYCH. a) W wypadku, gdy instancja zostanie zamkniĊta w trybie NORMAL lub IMMEDIATE to punkt kontrolny zostanie wykonany. Wtedy Stop scn = Checkpointed at scn dla wszystkich plików danych. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ - 258 Users01.dbf Controlfile01.ora Checkpoint cnt=4 Chkpt cnt=4 Stop scn=0xffff.ffffffff Checkpointed at scn=0x0000.00001ba2 Operacja SHUTDOWN lub SHUTDOWN IMMEDIATE Checkpoint cnt=5 Chkpt cnt=5 Stop scn=0x0000.00001ba3 Checkpointed at scn=0x0000.00001ba3 Rysunek 23.4.1. Punkty kontrolne Oznacza to, Īe baza danych nie wymaga odtwarzania. Po otwarciu Stop scn przyjmuje znowu wartoĞü 0xffff.ffffffff dla wszystkich plików danych. b) W wypadku, gdy baza danych zostanie zamkniĊta w trybie ABORT punkt kontrolny nie zostanie wykonany. Oznacza to, Īe Stop scn <> Checkpointed at scn dla wszystkich plików danych. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ - 259 Users01.dbf Controlfile01.ora Checkpoint cnt=4 Chkpt cnt=4 Stop scn=0xffff.ffffffff Checkpointed at scn=0x0000.00001ba2 Operacja SHUTDOWN ABORT Checkpoint cnt=4 Chkpt cnt=4 Stop scn=0xffff.ffffffff Checkpointed at scn=0x0000.00001ba2 Rysunek 23.4.2. Punkty kontrolne Oznacza to, Īe x JeĪeli plik danych nie zostanie wczytany z kopi bezpieczeĔstwa to naleĪy dokonaü operacji odtwarzania zmian z plików dziennika powtórzeĔ. x JeĪeli plik danych zostanie wczytany z kopi bezpieczeĔstwa to nie bĊdzie siĊ zgadzaáa wartoĞü licznika punktów kontrolnych (chkpt cnt) w pliku danych z odpowiadającą wartoĞcią w pliku kontrolnym. NiezgodnoĞü ta bĊdzie wykryta przy starcie bazy. Wówczas zgáoszona zostanie przez system koniecznoĞü odtworzenia bazy danych ( z zarchiwizowanych plików dziennika powtórzeĔ). Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 23. ZABEZPIECZENIE BAZY DANYCH PRZED AWARIĄ - 260 - 23.4.5. Mechanizm odtwarzania bazy danych Odtwarzanie bazy danych po awarii instancji przebiega w dwóch fazach: x Z dziennika powtórzeĔ poprawiane sa dane w plikach danych. x Wycofanie niezatwierdzonych transakcji (korzystanie z segmentów wycofywania lub pliku automatycznego wycofywania). Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 24. ODTWARZANIE BAZY DANYCH PO AWARII - 261 - 24. ODTWARZANIE BAZY DANYCH PO AWARII § 24.1. Rodzaje odtwarzania W trybie NOARCHIVELOG – umoĪliwia odtwarzanie z kopii archiwalnej do momentu sporządzenia kopii. W trybie ARCHIVELOG: x Odtwarzanie peáne (full recovery) – do stanu przed awarią. x Odtwarzanie niepeáne (partial recovery) – do okreĞlonego stanu przed awarią. § 24.2. Odtwarzanie bazy danych w trybie NOARCHIVELOG Wczytanie peánej kopii archiwalnej: SQL> SHUTDOWN lub SHUTDOWN ABORT Wgranie wszystkich plików bazy danych z ostatniej kopii bezpieczeĔstwa na ich wáaĞciwe miejsce: SQL> STARTUP Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 24. ODTWARZANIE BAZY DANYCH PO AWARII - 262 - § 24.3. Odtwarzanie peáne w trybie ARCHIVELOG Trzy sposoby realizacji odtwarzania peánego: x x Odtwarzanie caáej bazy danych Odtwarzanie pojedynczej przestrzeni tabel x Odtwarzanie pojedynczych plików danych x Przy wyáączonych plikach danych. 24.3.1. Odtwarzanie peáne caáej bazy danych – w trybie MOUNT – w trybie OPEN przy wyáączonej tej przestrzeni tabel. – w trybie OPEN lub zamkniĊtej bazie danych. NaleĪy wydaü polecenie: SQL> RECOVER [AUTOMATIC] [FROM ’scieĪka_log’] DATABASE; gdzie: x AUTOMATIC - automatycznie uwzglĊdnia zmiany zawarte w plikach dziennika powtórzeĔ. x ĞcieĪka_log - miejsce zarchiwizowanych plików dziennika powtórzeĔ (wartoĞü parametru LOG_ARCHIVE_DEST w pliku init<SID>.ora). 24.3.2. Odtwarzanie peáne pojedynczej przestrzeni tabel NaleĪy wydaü polecenie: SQL> RECOVER [AUTOMATIC] [FROM ’scieĪka_log’] TABLESPACE przestrzeĔ,…,przestrzeĔ; Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 24. ODTWARZANIE BAZY DANYCH PO AWARII - 263 - 24.3.3. Odtwarzanie peáne pojedyĔczego pliku danych NaleĪy wydaü polecenie: SQL> RECOVER [AUTOMATIC] [FROM ’scieĪka_log’] DATAFILE plik,…,plik; 24.3.4. Odtwarzanie bazy danych w przypadku utraty systemowej przestrzeni tabel KolejnoĞü postĊpowania: SQL> CONNECT sys AS SYSDBA SQL> SHUTDOWN Wgraü wszystkie pliki uszkodzonej przestrzeni z kopii archiwalnej SQL> STARTUP MOUNT SQL> RECOVER DATABASE; SQL> ALTER DATABASE OPEN [RESETLOGS]; 24.3.5. Odtwarzanie bazy danych do okreĞlonego momentu w czasie Postaü polecenia: SQL> RECOVER [AUTOMATIC] [FROM ’scieĪka_log’] DATABASE UNTIL TIME ‘YYYY-MM-DD:HH24:MI:SS’ [USING BACKUP CONTROLFILE]; KolejnoĞü postĊpowania: SQL> CONNECT sys AS SYSDBA SQL> SHUTDOWN Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 24. ODTWARZANIE BAZY DANYCH PO AWARII - 264 - Wgranie plików danych z kopi archiwalnej. SQL> STARTUP MOUNT SQL> RECOVER DATABASE UNTIL TIME ‘2003-01-01:00:00:00’; SQL> ALTER DATABASE OPEN RESETLOGS; /*otwarcie bazy z zerowaniem numerów sekwencyjnych*/ 24.3.6. Odtwarzanie bazy danych do przerwania Postaü polecenia: SQL> RECOVER [AUTOMATIC] [FROM ’scieĪka_log’] DATABASE UNTIL CANCEL [USING BACKUP CONTROLFILE]; KolejnoĞü postĊpowania: SQL> CONNECT sys AS SYSDBA SQL> SHUTDOWN Wgranie plików danych z kopi archiwalnej. SQL> STARTUP MOUNT SQL> RECOVER DATABASE UNTIL CANCEL; SQL> ALTER DATABASE OPEN RESETLOGS; /*otwarcie bazy z zerowaniem numerów sekwencyjnych*/ Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 25. RMAN – RECOVERY MANAGER - 265 - 25. RMAN – RECOVERY MANAGER W trybie offline kopie robi siĊ nastĊpująco: C:\rman Recovery Manager: Release 10.2.0.1.0 - Production on So Maj 12 02:52:09 2007 Copyright (c) 1982, 2005, Oracle. All rights reserved. RMAN> RMAN> connect target connected to target database: XE (DBID=2503361492) RMAN> SHUTDOWN IMMEDIATE using target database control file instead of recovery catalog database closed database dismounted Oracle instance shut down RMAN> STARTUP MOUNT connected to target database (not started) Oracle instance started database mounted Total System Global Area Fixed Size Variable Size Database Buffers Redo Buffers 285212672 1287016 117443736 163577856 2904064 bytes bytes bytes bytes bytes Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 25. RMAN – RECOVERY MANAGER - 266 - RMAN> BACKUP DATABASE FORMAT 'c:\rmanbac\rman_%d_%t_%U.bus'; Starting backup at 07/05/12 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=35 devtype=DISK channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset input datafile fno=00001 name=C:\ORACLEXE\ORADATA\XE\SYSTEM.DBF input datafile fno=00003 name=C:\ORACLEXE\ORADATA\XE\SYSAUX.DBF input datafile fno=00002 name=C:\ORACLEXE\ORADATA\XE\UNDO.DBF input datafile fno=00004 name=C:\ORACLEXE\ORADATA\XE\USERS.DBF channel ORA_DISK_1: starting piece 1 at 07/05/12 channel ORA_DISK_1: finished piece 1 at 07/05/12 piece handle=C:\RMANBAC\RMAN_XE_622350054_01IHGJN6_1_1.BUS tag=TAG20070512T030053 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:01:05 channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset including current control file in backupset channel ORA_DISK_1: starting piece 1 at 07/05/12 channel ORA_DISK_1: finished piece 1 at 07/05/12 piece handle=C:\RMANBAC\RMAN_XE_622350120_02IHGJP8_1_1.BUS tag=TAG20070512T030053 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02 Finished backup at 07/05/12 Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 25. RMAN – RECOVERY MANAGER - 267 - W trybie online kopie robi siĊ takim samym poleceniem z tym tylko, Īe baza musi byü w trybie ARCHIVELOG. Kopie wykonuje siĊ poleceniem: RMAN> BACKUP DATABASE FORMAT 'c:\rmanbac\rman_%d_%t_%U.bus'; lub do katalogu domyĞlnego z domyĞlną nazwą plików poleceniem: RMAN> BACKUP DATABASE; § 25.1. Tworzenie kopii zapasowej przestrzeni tabel MoĪliwoĞü podawania jedynie podzbioru przestrzeni tabel podczas procesu archiwizacji danych zwieksza zakres moĪliwych strategii tworzenia kopii zapasowych. Kopie wykonuje siĊ poleceniem: RMAN> BACKUP TABLESPACE system, users FORMAT 'c:\rmanbac\rman_%d_%t_%U.bus'; lub do katalogu domyĞlnego z domyĞlną nazwą plików poleceniem: RMAN> BACKUP TABLESPACE system, users; § 25.2. Tworzenie kopii zapasowej plików danych Pliki danych moĪna archiwizowaü przez podanie ich numerów lub nazw. Skáadnia polecenia jest nastĊpujaca: RMAN> BACKUP DATAFILE 1,2; RMAN> BACKUP DATAFILE ‘c:\oraclexe\oradata\users.dbf’; Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 25. RMAN – RECOVERY MANAGER - 268 - Przy czym numery plików moĪna uzyskaü z perspektywy V$DATAFILE poleceniem: SQL> SELECT file#, name FROM v$datafile; § 25.3. Tworzenie kopii zapasowej plików kontrolnych Przydatną wáasciwoĞcią systemu Oracle jest moĪliwoĞü automatycznej archiwizacji plików kontrolnych po kaĪdorazowym wydaniu polecenia backup. MoĪna to osiagnaü za pomoca polecenia configure w nastepujacy sposób: RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; Samodzielnie archiwizacjĊ pliku kontrolnego w systemie Oracle przeprowadza siĊ za pomocą polecenia: RMAN> BACKUP CURRENT CONTROLFILE; § 25.4. Tworzenie kopi zapasowej archiwalnych plików dziennika powtórzeĔ W przypadku wersji Oracle skáadnia polecenia tworzącego kopie zapasową archiwalnych plików dziennika powtórzeĔ (archived redo log files) jest nastĊpująca: RMAN> BACKUP ARCHIVELOG ALL; Inna technika, moĪliwa do zastosowania w systemie Oracle, jest zastosowanie w poleceniu backup wyraĪenia plus archivelog, dzieki czemu archiwalne pliki dziennika powtórzeĔ wchodzą w skáad kopii zapasowej. Wydanie poniĪszej instrukcji powoduje utworzenie co najmniej dwóch elementów kopii zapasowej - dla plików danych i dla archiwalnych plików dziennika powtórzen: RMAN> BACKUP DATABASE FORMAT 'c:\rmanbac\rman_%d_%t_%U.bus' plus archivelog; Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 25. RMAN – RECOVERY MANAGER - 269 - § 25.5. RESTORE (Odtwarzanie) i RECOVER (rekonstrukcja) Uruchomienie programu RMAN i ustanowienie poáączenia z docelową bazą danych. RMAN> CONNECT target Wywoáanie odpowiedniego polecenia RESTORE programu RMAN w celu przywrócenia wymaganych plików. Odtwarzane są pliki wymagane oraz odpowiednie archiwalne pliki dziennika powtórzeĔ. Po odtworzeniu potrzebnych plików naleĪy zrekonstruowaü (recover) bazĊ danych oraz ją otworzyü. Rekonstrukcji bazy danych moĪna dokonaü z poziomu programu RMAN lub z narzĊdzia SQL*Plus. Przykáad 25.5.1. W poniĪszym przykáadzie pokazano sposób odtwarzania i rekonstrukcji przestrzeni tabel USERS: RMAN> RESTORE TABLESPACE users; RMAN> RECOVER TABLESPACE users; Oprócz przestrzeni tabel moĪna odtworzyü i zrekonstruowaü konkretny plik danych: RMAN> RESTORE DATAFILE 'c:\oraclexe\backupxe\users.dbf'; RMAN> RECOVER DATAFILE 'c:\oraclexe\backupxe\users.dbf'; Po wydaniu polecenia RECOVER z poziomu programu RMAN w pierwszej kolejnoĞci nastĊpuje sprawdzenie dostĊpnoĞci potrzebnych archiwalnych plików dziennika powtórzeĔ. JeĞli te pliki są niedostĊpne, program RMAN przywraca je za pomocą wczeĞniej utworzonej kopii zapasowej archiwalnych plików dziennika powtórzeĔ. Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 25. RMAN – RECOVERY MANAGER - 270 - W celu samodzielnego odtworzenia archiwalnych plików dziennika powtórzeĔ wydaje siĊ polecenie RMAN> RESTORE ARCHIVELOG ALL; Przykáad 25.5.2. W poniĪszym przykáadzie pokazano sposób odtwarzania i rekonstrukcji przestrzeni tabel USERS z wybranej kopii. Na wstĊpie naleĪy uzyskaü informacje o dostĊpnych backupach poleceniem: RMAN> LIST BACKUP; using target database control file instead of recovery catalog List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------1 Full 460.55M DISK 00:00:55 07/06/02 BP Key: 1 Status: AVAILABLE Compressed: NO Tag: TAG20070602T005019 Piece Name: C:\ORACLEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\BACKUPSET\2007 _06_02\O1_MF_NNNDF_TAG20070602T005019_3618OD7T_.BKP List of Datafiles in backup set 1 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- -------- ---1 Full 256764 07/06/02 C:\ORACLEXE\ORADATA\XE\SYSTEM.DBF 2 Full 256764 07/06/02 C:\ORACLEXE\ORADATA\XE\UNDO.DBF 3 Full 256764 07/06/02 C:\ORACLEXE\ORADATA\XE\SYSAUX.DBF 4 Full 256764 07/06/02 C:\ORACLEXE\ORADATA\XE\USERS.DBF BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------2 Full 6.80M DISK 00:00:02 07/06/02 Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 25. RMAN – RECOVERY MANAGER - 271 - BP Key: 2 Status: AVAILABLE Compressed: NO Tag: TAG20070602T005115 Piece Name: C:\ORACLEXE\APP\ORACLE\FLASH_RECOVERY_AREA\XE\AUTOBACKUP\200 7_06_02\O1_MF_S_624156235_3618Q4HV_.BKP Control File Included: Ckp SCN: 256764 Ckp time: 07/06/02 SPFILE Included: Modification time: 07/06/02 a nastĊpnie wykonaü polecenia: RMAN> RESTORE TABLESPACE users FROM tag= TAG20070602T005019; RMAN> RECOVER TABLESPACE users; Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 26. MECHANIZM EXPORTU I IMPORTU DATA PUMP - 272 - 26. MECHANIZM EXPORTU I IMPORTU DATA PUMP § 26.1. Export SQL> CREATE DIRECTORY dtpump AS ‘c:\dtpump’; SQL> GRANT READ ON DIRECTORY dtpump TO hr, system; SQL> GRANT WRITE ON DIRECTORY dtpump TO hr, system; W przypadku peánego exportu wymagane jest posiadanie uprawnienia systemowego EXP_FULL_DATABASE Utwórzmy plik z parametrami dp1.par: DIRECTORY=dtpump DUMPFILE=dp1.dmp CONTENT= all /* data_only, metadata_only */ FULL=y C:\expdp hr/hr PARFILE=c:\oraclexe\dp1.par Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” 26. MECHANIZM EXPORTU I IMPORTU DATA PUMP Utwórzmy plik z parametrami dp2.par: DIRECTORY=dpump DUMPFILE=dp2.dmp CONTENT=DATA_ONLY EXCLUDE=TABLE:"IN ('COUNTRIES', 'REGIONS')" QUERY=employees:"WHERE department_id !=50 ORDER BY employee_id" C:\expdp system/test PARFILE=c:\oraclexe\dp2.par Utwórzmy plik z parametrami dp3.par: DIRECTORY=dpump INCLUDE=FUNCTION INCLUDE=PROCEOURE INCLUDE=TABLE LIKE “REG*" DUMPFILE=dp3.dmp Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” - 273 - 26. MECHANIZM EXPORTU I IMPORTU DATA PUMP - 274 - Dysponując takim plikiem parametrów, moĪna uruchomiü eksport nastĊpująco: C:>expdp hr/hr parfi1e=c:\dp3.par UĪyta opcja INCLUDE zaznacza, jakie obiekty mają byü dodane do pliku eksportu. Analogiczna opcja EXCLUDE wyáącza z eksportu zadane obiekty. § 26.2. Import W przypadku peánego importu wymagane jest posiadanie uprawnienia systemowego IMP_FULL_DATABASE Utwórzmy plik z parametrami dp1imp.par: DIRECTORY=dtpump DUMPFILE=dp1.dmp CONTENT= all REMAP_SCHEMA=hr:u1 C:\expdp system/test PARFILE=c:\oraclexe\dp1imp.par Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych” SPIS ILUSTRACJI - 275 - Spis ilustracji Rysunek 21.3.1. Tabela zgodnoĞci blokad .....................................................................................................................226 Rysunek 23.1.1. Obszar SGA. ........................................................................................................................................248 Rysunek 23.1.2. Pliki Redo w trybie NOARCHIVELOG. ..............................................................................................249 Rysunek 23.1.3. Pliki Redo w trybie ARCHIVELOG. ....................................................................................................250 Rysunek 23.4.1. Punkty kontrolne..................................................................................................................................258 Rysunek 23.4.2. Punkty kontrolne..................................................................................................................................259 Rok akademicki – 2007/2008 - Notatki do przedmiotu „Administracja bazami danych”