Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00061 009073 11061253 na godz. na dobę w sumie
Oracle9i. Administrowanie bazami danych od podstaw - książka
Oracle9i. Administrowanie bazami danych od podstaw - książka
Autor: , , Liczba stron: 480
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-062-6 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> bazy danych >> oracle - programowanie
Porównaj ceny (książka, ebook, audiobook).

Książka 'Oracle9i. Administrowanie bazami danych od podstaw' krok po kroku wyjaśnia sposoby efektywnego administrowania bazą danych Oracle. Poznasz dzięki niej najważniejsze nowe funkcje baz danych Oracle9, zaznajomisz się z zadaniami czekającymi administratora baz danych, a także poznasz wiele cennych wskazówek, ułatwiających codzienną pracę z Oraclem.

Jeśli jeszcze nie miałeś styczności z zaawansowanymi systemami bazodanowymi, znalazłeś właśnie doskonałe źródło informacji, dzięki któremu zdobędziesz wiele poszukiwanych na rynku pracy umiejętności.

Książka jest idealnym źródłem wiedzy dla początkujących administratorów na temat:

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Oracle9i. Administrowanie bazami danych od podstaw Autorzy: Marlene Theriault, Rachel Carmichael, James Viscusi T³umaczenie: Micha³ ¯yliñski (rozdzia³y 0 – 8), Leszek Mosingiewicz (rozdzia³y 9 – 13, dodatki) ISBN: 83-7361-062-6 Format: B5, stron: oko³o 480 Ksi¹¿ka „Oracle9i. Administrowanie bazami danych od podstaw” krok po kroku wyjaġnia sposoby efektywnego administrowania baz¹ danych Oracle. Poznasz dziêki niej najwa¿niejsze nowe funkcje baz danych Oracle9, zaznajomisz siê z zadaniami czekaj¹cymi administratora baz danych, a tak¿e poznasz wiele cennych wskazówek, u³atwiaj¹cych codzienn¹ pracê z Oraclem. Jeġli jeszcze nie mia³eġ stycznoġci z zaawansowanymi systemami bazodanowymi, znalaz³eġ w³aġnie doskona³e ĥród³o informacji, dziêki któremu zdobêdziesz wiele poszukiwanych na rynku pracy umiejêtnoġci. Ksi¹¿ka jest idealnym ĥród³em wiedzy dla pocz¹tkuj¹cych administratorów na temat: • Instalacji i konfiguracji wydajnej bazy danych Oracle • Kontroli dzia³ania bazy danych za pomoc¹ perspektyw DBA_ i V$ • Wykorzystania ró¿nych poziomów ochrony danych • Monitorowania i dostrajania bazy danych • Stosowania narzêdzi i programów Oracle • Utrzymywania niezawodnoġci i sta³ego dostêpu do bazy danych • Sposobów zapewnienia maksymalnej wydajnoġci serwera bazodanowego • Wykonywania kopii zapasowych i odtwarzania bazy danych Autorzy: Marlene Theriault od 19 lat jest administratork¹ baz danych i pracuje z produktami firmy Oracle od ukazania siê wersji 2.0. Jest autork¹ wielu poczytnych ksi¹¿ek na ich temat. Wystêpowa³a jako prelegent i prowadzi³a warsztaty na organizowanych na ca³ym ġwiecie konferencjach u¿ytkowników Oracle. Rachel Carmichael od 10 lat jest administratork¹ baz danych. Pe³ni rolê przewodnicz¹cej grupy tematycznej administratorów baz danych (DBA Special Interest Group) oraz koordynuje spotkania u¿ytkowników oprogramowania Oracle w Nowym Yorku. James Viscusi od 12 lat pracuje z relacyjnymi bazami danych, a od 8 lat ma stycznoġæ z produktami Oracle. Obecnie jest pracownikiem firmy Oracle, gdzie zajmuje siê zagadnieniami wysokiej dostêpnoġci systemów. Spis treści Podziękowania......................................n................................................. 11 Wstęp ...................................................n................................................ 15 Część I Podstawy...................................................d...........................17 Rozdział 1. Rola administratora bazy danych...................................................n......... 19 Sposoby komunikacji z bazą danych...................................................u............................ 19 Kim jest administrator bazy danych Oracle i czym się zajmuje? ........................................ 20 Przykład banku ...................................................u...................................................u. 20 Przechowywanie informacji...................................................u................................... 22 Czym jest baza danych Oracle? ...................................................u............................. 22 Czy nadajesz się na administratora bazy danych? ...................................................u.... 23 Typy administratorów baz danych ...................................................u............................... 27 Zadania ...................................................u...................................................u............ 28 Rozwój zawodowy ...................................................u............................................... 31 Co musisz wiedzieć o aplikacji SQL*Plus ...................................................u.................... 33 Uruchamianie aplikacji SQL*Plus...................................................u.......................... 34 Polecenia wpływające na środowisko pracy SQL*Plus ............................................... 36 Polecenia wspomagające kolekcjonowanie danych...................................................u.. 40 Komendy przydatne podczas tworzenia raportów ...................................................u.... 43 Rozdział 2. Konstrukcja bazy danych ...................................................n.................... 49 Obiekty logiczne i fizyczne ...................................................u......................................... 49 Obiekty fizyczne ...................................................u.................................................. 51 Parę słów o systemach operacyjnych...................................................u...................... 51 Systemy operacyjne a baza danych ...................................................u........................ 53 Oprogramowanie firmy Oracle ...................................................u.............................. 54 Fizyczne składniki bazy danych Oracle ...................................................u........................ 54 Pliki z danymi ...................................................u...................................................u... 55 Plik z parametrami...................................................u................................................ 57 Pliki dziennika ...................................................u...................................................u.. 59 Pliki zapasowe ...................................................u...................................................u.. 60 Logiczna struktura bazy danych ...................................................u.................................. 61 Przestrzenie tabel ...................................................u................................................. 61 Tabele ...................................................u...................................................u.............. 62 Indeksy ...................................................u...................................................u............ 66 6 Oracle9i. Administrowanie bazami danych od podstaw Wyzwalacze...................................................u...................................................u...... 67 Perspektywy...................................................u...................................................u..... 68 Perspektywy zmaterializowane ...................................................u.............................. 69 Segmenty wycofań i przestrzeń tabel wycofań ...................................................u........ 70 Segmenty tymczasowe...................................................u.......................................... 73 Role ...................................................u...................................................u................. 74 Pakiety, procedury i funkcje ...................................................u.................................. 77 Sekwencje ...................................................u...................................................u........ 77 Przywileje...................................................u...................................................u......... 78 Rozdział 3. Przyglądanie się pracy bazy danych ...................................................n..... 81 Perspektywy słownika danych...................................................u..................................... 81 Perspektywy typu DBA_ ...................................................u............................................ 82 DBA_TABLESPACES...................................................u......................................... 83 DBA_DATA_FILES ...................................................u............................................ 87 DBA_SEGMENTS ...................................................u.............................................. 90 DBA_EXTENTS ...................................................u................................................. 92 DBA_ROLLBACK_SEGS..................................................u..................................... 94 DBA_UNDO_EXTENTS...................................................u..................................... 97 DBA_OBJECTS ...................................................u.................................................. 98 DBA_TEMP_FILES ...................................................u.......................................... 100 DBA_TABLES...................................................u.................................................. 101 DBA_TAB_COLUMNS...................................................u..................................... 104 DBA_INDEXES ...................................................u................................................ 108 DBA_IND_COLUMNS...................................................u...................................... 111 DBA_CONSTRAINTS..................................................u........................................ 113 DBA_CONS_COLUMNS..................................................u.................................... 117 Rozdział 4. Przyglądanie się pracy bazy danych za pomocą perspektyw typu V$ ...... 119 Ogólna informacja o perspektywach typu V$...................................................u.............. 120 Spojrzenie na perspektywy typu V$ ...................................................u..................... 121 Statyczne perspektywy V$ na poziomie instancji...................................................u......... 123 V$DATABASE ...................................................u................................................. 124 V$DATAFILE...................................................u...................................................u 127 V$DATAFILE_HEADER...................................................u................................... 129 V$DBFILE...................................................u...................................................u..... 131 V$FIXED_TABLE...................................................u............................................. 131 V$INSTANCE...................................................u...................................................u 133 V$PARAMETER...................................................u............................................... 135 V$SGA ...................................................u...................................................u.......... 136 V$TEMPFILE...................................................u...................................................u 137 Rozdział 5. Zabezpieczanie bazy danych ...................................................n............. 139 Perspektywy związane z bezpieczeństwem bazy danych................................................. 139 DBA_USERS ...................................................u...................................................u. 140 DBA_PROFILES...................................................u............................................... 143 DBA_ROLES ...................................................u...................................................u. 145 DBA_ROLE_PRIVS ...................................................u.......................................... 147 DBA_SYS_PRIVS...................................................u............................................. 149 DBA_TS_QUOTAS...................................................u........................................... 151 DBA_TAB_PRIVS ...................................................u............................................ 152 DBA_SYNONYMS ...................................................u........................................... 156 DBA_VIEWS ...................................................u...................................................u. 158 Spis treści 7 Rozdział 6. Strojenie bazy danych ...................................................n....................... 163 Perspektywy V$ instancji wykorzystywane do strojenia bazy danych .............................. 164 V$FILESTAT...................................................u...................................................u. 165 V$LATCH ...................................................u...................................................u..... 167 V$LIBRARYCACHE...................................................u......................................... 167 V$LOCK...................................................u...................................................u........ 171 V$LOCKED_OBJECT...................................................u....................................... 176 V$PROCESS...................................................u...................................................u.. 178 V$SESSION ...................................................u...................................................u... 180 V$ROLLSTAT ...................................................u.................................................. 183 V$ROLLNAME...................................................u................................................. 185 V$UNDOSTAT ...................................................u................................................. 186 V$ROWCACHE...................................................u................................................ 187 V$SGASTAT ...................................................u...................................................u. 189 V$STATNAME...................................................u................................................. 191 V$SYSSTAT...................................................u...................................................u.. 192 V$SYSTEM_EVENT...................................................u......................................... 193 V$WAITSTAT...................................................u.................................................. 195 Część II Zarządzanie bazą danych ...................................................d.197 Rozdział 7. Instalacja, konfiguracja i przygotowanie bazy danych do pracy .............. 199 Instalacja oprogramowania...................................................u........................................ 199 Aktualizacja a migracja...................................................u....................................... 200 Etapy instalacji oprogramowania ...................................................u............................... 203 Przygotowanie ...................................................u...................................................u 203 Kilka słów o demonstracyjnej bazie danych...................................................u.......... 204 Decyzje związane z instalacją ...................................................u.............................. 205 Tworzenie bazy danych...................................................u............................................ 208 Korzystanie z aplikacji Oracle Database Configuration Assistant............................... 208 Po instalacji ...................................................u...................................................u.... 216 Gdy baza danych jest już gotowa... ...................................................u...................... 217 Ilość i rozmieszczenie przestrzeni tabel ...................................................u...................... 219 Przestrzeń tabel SYSTEM...................................................u................................... 220 Przestrzeń tabel RBS lub UNDO ...................................................u......................... 221 Przestrzeń tabel TEMP lub TEMPORARY...................................................u........... 223 Przestrzeń tabel TOOLS ...................................................u..................................... 223 Przestrzeń tabel USERS...................................................u...................................... 223 Przestrzenie tabel DATA i INDEX...................................................u....................... 224 Określanie rozmiaru przestrzeni tabel ...................................................u................... 225 Przestrzenie tabel i parametr storage...................................................u..................... 226 Plik Init.ora i SPFILE.ora ...................................................u......................................... 229 Analiza zawartości pliku SPFILE ...................................................u........................ 229 Instancja a baza danych ...................................................u............................................ 232 Budowa obszaru SGA ...................................................u.............................................. 233 Definiowanie SGA ...................................................u............................................. 233 Kilka słów o tabelach demonstracyjnych ...................................................u.................... 236 Rozdział 8. Ogólne rozważania na temat bazy danych ............................................. 237 Zasilanie przestrzeni tabel i ich utrzymanie...................................................u................. 237 Tworzenie i usuwanie przestrzeni tabel...................................................u................. 238 Umieszczanie obiektów w przestrzeni tabel ...................................................u.......... 242 Zmiana rozmiaru przestrzeni tabel...................................................u........................ 246 8 Oracle9i. Administrowanie bazami danych od podstaw Korzystanie z mechanizmu autoextend ...................................................u................. 251 Trwałe i tymczasowe przestrzenie tabel ...................................................u................ 253 Przenaszalne przestrzenie tabel ...................................................u............................ 254 Dokumentowanie bazy danych...................................................u.................................. 256 Tworzenie obiektów w bazie danych...................................................u.......................... 258 Tworzenie tabel...................................................u.................................................. 258 Parametry związane z tworzeniem tabel relacyjnych................................................. 260 Przykład tabeli złożonej ...................................................u...................................... 261 Tworzenie indeksów...................................................u........................................... 262 Tworzenie użytkowników ...................................................u................................... 264 Rozdział 9. Codzienne czynności...................................................n......................... 267 Obserwacja pracy bazy danych...................................................u.................................. 267 Dzienniki ostrzeżeń ...................................................u............................................ 268 LISTENER.LOG ...................................................u............................................... 270 Status Redo Log...................................................u................................................. 272 Fragmentacja ...................................................u...................................................u.. 273 Segmenty wycofania...................................................u........................................... 277 Monitorowanie rozmiaru segmentu wycofania ...................................................u...... 278 Monitorowanie rozmiaru obszaru segmentu wycofania ............................................. 280 Monitorowanie obszarów ...................................................u.................................... 282 Pozostała przestrzeń ...................................................u........................................... 285 Pliki śladu...................................................u...................................................u....... 291 Status sesji użytkownika ...................................................u........................................... 294 Monitorowanie modyfikacji obiektów ...................................................u........................ 294 Część III Ochrona baz danych...................................................d.........297 Rozdział 10. Bezpieczeństwo bazy danych Oracle...................................................n.. 299 Wewnętrzne bezpieczeństwo bazy danych...................................................u.................. 300 Uprawnienia ...................................................u...................................................u... 301 Tworzenie ról...................................................u...................................................u.. 305 Tworzenie synonimów...................................................u........................................ 309 Tworzenie perspektyw...................................................u........................................ 311 Bezpieczeństwo aplikacji ...................................................u.......................................... 312 Zabezpieczenie aplikacji ...................................................u..................................... 312 Wykorzystywanie Wirtualnej Prywatnej Bazy Danych ............................................. 313 Tworzenie VPD ...................................................u................................................. 315 Szyfrowanie kolumn...................................................u........................................... 321 Szyfrowanie kolumn danych...................................................u................................ 321 Obserwowanie ...................................................u...................................................u...... 323 Obserwowanie logowania...................................................u.................................... 324 Obserwacja działań...................................................u............................................. 325 Obserwacja obiektów...................................................u.......................................... 326 Ochrona zapisu obserwacji ...................................................u.................................. 328 Zewnętrzne bezpieczeństwo bazy danych...................................................u................... 329 Bezpieczeństwo sieciowe ...................................................u.................................... 329 Oracle Net i Oracle Advenced Security Option...................................................u...... 329 Rozdział 11. Dostępność baz danych ...................................................n.................... 331 Koncepcja dostępności ...................................................u............................................. 331 Przed czym należy się zabezpieczyć? ...................................................u......................... 333 Problemy fizyczne...................................................u.............................................. 334 Problemy logiczne ...................................................u.............................................. 334 Spis treści 9 Typy odtwarzania...................................................u...................................................u.. 335 Odtwarzanie danych ...................................................u........................................... 335 Odtwarzanie instancji...................................................u.......................................... 335 Odtwarzanie nośnika...................................................u........................................... 336 Typy archiwizacji...................................................u...................................................u.. 336 Archiwizacja fizyczna...................................................u......................................... 336 Menadżer przywracania (RMAN) ...................................................u........................ 339 Logiczne kopie zapasowe (eksport)...................................................u...................... 343 Możliwości bazy danych...................................................u........................................... 346 Średni docelowy czas odzyskiwania (MTTR) ...................................................u....... 346 Zapytanie retrospektywne (FlashBack Query)...................................................u....... 347 LogMiner ...................................................u...................................................u....... 349 Replikacja...................................................u...................................................u....... 351 Rezerwowa baza danych Data Guard...................................................u......................... 353 Architektura i terminologia...................................................u.................................. 354 Opcje konfiguracyjne Data Guard...................................................u........................ 355 Korzyści ze stosowania Data Guard ...................................................u..................... 355 Real Application Clusters (RAC)...................................................u............................... 357 Real Application Clusters Guard...................................................u................................ 358 Inne programy wspierające dostępność...................................................u....................... 358 TAF (Transparent Application Failover)...................................................u............... 358 Zmiana struktury aktywnych obiektów ...................................................u................. 359 Odnawialna alokacja przestrzeni ...................................................u.......................... 359 Część IV Dostrajanie serwera ...................................................d.........361 Rozdział 12. Wydajność serwera...............................................n............................... 363 Zarządzanie wydajnością ...................................................u.......................................... 364 Reguła 80/20...................................................u...................................................u... 364 Czym jest czas odpowiedzi? ...................................................u................................ 365 W czym tkwi problem? ...................................................u....................................... 366 Czas odpowiedzi a przepustowość ...................................................u....................... 366 Transakcje krytyczne dla biznesu...................................................u............................... 368 Spojrzenie na transakcje...................................................u...................................... 368 Definiowanie gwarantowanego poziomu usług...................................................u...... 372 Podsumowanie kroków początkowych...................................................u................. 374 Diagnozowanie problemu...................................................u.......................................... 374 Szybko i zwięźle: działania na pierwsze pięć minut .................................................. 374 Zadawanie właściwych pytań ...................................................u.............................. 375 Ocena odpowiedzi pracowników firmy XYZ ...................................................u........ 378 Gdzie należy rozpocząć poszukiwanie? Dostrajanie serwera bazy danych .................. 379 Obliczanie całkowitego czasu odpowiedzi ...................................................u............ 380 Dostrajanie całkowitego czasu odpowiedzi ...................................................u................. 382 Dekompozycja czasu procesora ...................................................u........................... 382 Analiza czasu oczekiwania ...................................................u.................................. 385 Rozwiązanie problemu firmy XYZ ...................................................u...................... 397 Typowe przyczyny problemów wydajnościowych...................................................u....... 397 Błędy aplikacji i projektu bazy danych...................................................u................. 398 Nieefektywny rozkład plików danych i konfiguracji składowania .............................. 398 Nieodpowiednia wartość parametru db_block_size aplikacji...................................... 398 Niewłaściwe ustawienie obiektów bazy danych...................................................u..... 399 Nieodpowiednie rozmiary i liczba segmentów wycofywania ..................................... 400 Źle zaprojektowana aplikacja...................................................u............................... 400 10 Oracle9i. Administrowanie bazami danych od podstaw Rozdział 13. Narzędzia dostarczane przez Oracle ...................................................n... 405 Dostrajanie SQL przy użyciu Explain Plan, TKPROF i Autotrace.................................... 406 Optymalizator ...................................................u...................................................u. 406 Dostrajanie SQL...................................................u................................................. 409 Explain Plan ...................................................u...................................................u... 412 Narzędzie do śledzenia wykonywania instrukcji SQL (TKPROF).............................. 413 Autotrace...................................................u...................................................u........ 417 Wykorzystanie Oracle Enterprise Manager (OEM)...................................................u...... 418 Podstawowe możliwości OEM ...................................................u............................ 419 Opcje OEM do administrowania bazą danych ...................................................u....... 422 Inne dostępne pakiety ...................................................u......................................... 423 STATSPACK ...................................................u...................................................u....... 424 DBMS_STATS ...................................................u...................................................u.... 431 Wykorzystanie przechowywanych szkiców ...................................................u................ 433 Implementacja szkiców przechowywanych...................................................u........... 433 Dodatki............................................................................................ 435 Dodatek A Słownik ...................................................n............................................ 437 Dodatek B Zasoby...................................................n............................................. 451 Jak zostać administratorem bazy danych (DBA)...................................................u.......... 451 O szkoleniu...................................................u...................................................u..... 451 Administrator w poszukiwaniu pracy ...................................................u................... 453 Program Oracle Certified Professional...................................................u........................ 454 Test Oracle Certified Professional (OCA/OCP/OCM)............................................... 454 MetaLink...................................................u...................................................u.............. 459 Technet...................................................u...................................................u................ 460 Kilka interesujących stron w Internecie ...................................................u...................... 461 Skorowidz..........................................n.................................................. 463 Rozdział 9. Codzienne czynności Pomyślmy o czynnościach wykonywanych w codziennym życiu. Codziennie wstaje- my o tej samej godzinie, myjemy zęby, bierzemy prysznic, jemy śniadanie. W drodze do pracy zatrzymujemy się i kupujemy gazetę i filiżankę kawy. Jeździmy tym samym po- ciągiem lub autobusem. Jeśli chodzimy do szkoły, zajęcia odbywają się zgodnie z usta- lonym planem. Raz w tygodniu robimy większe zakupy i pranie. Raz w miesiącu mo- żemy pójść do fryzjera. Co roku odwiedzamy dentystę i kontrolujemy stan techniczny samochodu. Być może twoje życie nie jest aż tak uporządkowane, ale ludzie ulegają przyzwyczajeniom — jeżeli masz stałą pracę, to działasz zgodnie z pewnymi zasadami i procedurami. Uważamy, że podobnie jak w codziennym życiu, w pracy administratora bazy danych obowiązują pewne zasady działania. Poniższe procedury i procesy informują o poten- cjalnych problemach, tak aby możliwe było podjęcie działań, zanim sprawy przybiorą zły obrót. Wspaniale jest być profesjonalnym DBA. Nie tylko zwiększa się szansa po- siadania płynnie pracującej bazy danych, lecz maleje również liczba weekendów spę- dzanych w pracy. Jednocześnie zyskujemy pewność, że drobnostki nie urosną do rangi poważnych pro- blemów. W niniejszym rozdziale pokazujemy skrypty pomagające w implementacji nowych zwy- czajów. Wykonanie każdego z nich wymaga podłączenia do bazy danych z uprawnie- niami użytkownika uprzywilejowanego. Należy wykorzystać konta 5;5 lub 5;56 / z do- starczoną przez Oracle rolą DBA albo utworzyć użytkownika z rolą DBA lub jego przywilejami. Zalecamy utworzenie oddzielnego konta użytkownika do monitorowania bazy danych. Obserwacja pracy bazy danych Dlaczego mamy obserwować zachowanie bazy danych w regularnych odstępach czasu? Czy nie prościej jest odbierać powiadomienia o ewentualnych błędach? Codzienna kon- trola pozwala właściwie określić:  Jakie elementy bazy funkcjonują prawidłowo.  Wzrost zajmowanej przestrzeni. 268 Część II  Zarządzanie bazą danych  Częstotliwość przełączania dzienników.  Liczbę przyłączonych użytkowników. Jeżeli wiadomo, jak powinna funkcjonować baza danych, to natychmiast można zauwa- żyć każdą nieprawidłowość w jej pracy i skorygować ją, zanim jeszcze pojawi się pro- blem. Niewątpliwie lepiej jest poinformować kierownictwo o fakcie dodania jeszcze jednego pliku danych z powodu braku miejsca w głównych tabelach aplikacji, niż do- prowadzić do zatrzymania pracy całego działu, kiedy wolna przestrzeń, niezbędna do wzrostu tabel zostanie wyczerpana. Przejdźmy do omówienia elementów, które należy monitorować. Dzienniki ostrzeżeń W czasie tworzenia bazy danych Oracle tworzy również dziennik, znany jako dziennik ostrzeżeń (alert log), w którym zapisuje informacje dotyczące:  Każdego uruchomienia bazy danych.  Odzyskiwania przeprowadzonego w czasie startu bazy.  Wyłączeń bazy danych.  Momentów przełączenia dzienników (określanych jako przełączenia wątków).  Wykorzystania podczas startu bazy parametrów (z pliku parametrów inicjujących) o wartościach innych niż domyślne.  Wszystkich poleceń DDL zmieniających strukturę bazy, takich jak np. #.6 4 6#$. 52# 2#;41..A65 # RNKMAFCP[EJ.  Pojawiających się błędów alokacji przestrzeni (14# do 14#).  Występujących błędów wraz z położeniem i nazwą pliku błędu (określanego jako plik śladu z powodu rozszerzenia .trc). ORACLE tworzy te pliki w celu pełnej dokumentacji błędów i dostarczenia pomocy technicznej przy lokalizacji źródła błędów. Jak widać, dziennik błędów zawiera sporo cennych, może nawet nadmiarowych infor- macji. Jego rozmiar nigdy nie zmniejsza się automatycznie, a nazwa w różnych syste- mach budowana jest w następujący sposób:   CNGTV5+ NQI w systemach uniksowych, 5+ CNTVNQI w systemie Windows 2000. Inaczej mówiąc, informacje są stale dodawane do utworzonego razem z bazą danych dziennika za każdym razem, gdy wystąpi jedno z wymienionych wyżej zdarzeń. Jak można sobie wyobrazić, rozmiar tego piku, dla pracującej przez dłuższy czas bazy, mo- że być bardzo duży. Jeżeli zamierzamy sprawdzić wpisy z ostatniego tygodnia, a baza danych pracowała powiedzmy przez rok, zadanie to może się okazać kłopotliwe. Co zatem zrobić w takiej sytuacji? Rozdział 9.  Codzienne czynności 269 Otóż istnieje pewna prawidłowość: Oracle utworzy nowy plik dziennika z identyczną nazwą w wypadku, gdy w czasie próby zapisu nie odnajdzie pliku. Oznacza to, że można codziennie zmieniać nazwę pliku dziennika i przenosić go do archiwum. Takie działanie wiąże się z dwoma korzyściami: bieżący plik dziennika błędów ma relatywnie mały roz- miar (zatem nie trzeba się martwić o wyczerpanie przestrzeni dyskowej), a jednocześnie poprzednie dzienniki są dostępne do przeglądania, np. w poszukiwaniu pewnych trendów. Mamy przygotowane zadanie wsadowe, uruchamiane co noc, które zmienia nazwy plików dzienników wszystkich baz danych w ten sposób, że dodaje aktualną datę jako rozsze- rzenie pliku. Kolejne zadania jego procedur polegają na przesłaniu dzienników na nasze konta pocztowe, co umożliwia ich szybki przegląd w poszukiwaniu błędów takich jak problemy z przestrzenią (błąd 600) lub zbyt szybkie przełączanie dzienników. Błędy Oracle w zakresie 600 są określane jako błędy 14#. Pomimo że nie zawsze sygnali- zują one uszkodzenie bazy danych, mogą być przejawem poważnych błędów wewnętrz- nych i powinny zostać potraktowane poważnie. Jeżeli nie wiemy, z jakim typem błędu mamy do czynienia, możemy to sprawdzić, wykorzystując stronę Metalink. W przypadku administrowania wieloma bazami danych analiza wszystkich dzienników błędów może zajmować zbyt wiele czasu. Nie zawsze można sobie pozwolić na analizę problemów następnego dnia. Niektórzy administratorzy wypracowali procedury poszu- kujące błędów i wysyłające powiadomienia tylko w wypadku ich stwierdzenia. Jeżeli pracujemy w środowisku, w którym błędy i przestoje są niedopuszczalne, można stwo- rzyć lub kupić program monitorujący występowanie błędów i wysyłający powiadomienia. Operacja sprawdzenia dziennika bazy danych zajmuje jedynie kilka minut dziennie. Nie- który z nas wykorzystują skrypty przesyłające dzienniki do prywatnych kont pocztowych. Jeżeli codziennie przesyłasz do siebie dzienniki błędów, to przejrzenie ich umożliwi:  Szybkie zlokalizowanie dowolnych problemów.  Manualne sprawdzenie plików w celu upewnienia się, czy nie są one przełączane zbyt często.  Upewnienie się, czy proces zapisujący do plików dziennika powtórzeń przebiega bez zakłóceń (które mogłyby wskazywać na zbyt małe rozmiary lub zbyt małą ilość dzienników powtórzeń w systemie). Oracle Enterprise Manager (OEM) posiada usługę Event Monitoring Service, która rów- nież pomaga w monitorowaniu bazy danych. Więcej informacji o OEM, jego możliwo- ściach i funkcjach, zawarto w rozdziale 13. Jeżeli parametr inicjujący NQIAEJGEMRQKPVUAVQACNGTV ma wartość 647 , Oracle doda wię- cej informacji o przełączaniu dzienników zmian do pliku dziennika ostrzeżeń. Zwiększa- jąc jego rozmiar, umieści w nim jednocześnie więcej informacji o tym, co dzieje się w ba- zie danych. Poniżej pokazujemy fragment dziennika ostrzeżeń bazy danych Oracle9i, w której opcja NQIAEJGEMRQKPVUAVQACNGTV została ustawiona na 647 . 5CV,CP $GIKPKPINQIUYKVEJEJGEMRQKPVWRVQ4$#=Z?5 0ZH 6JTGCFCFXCPEGFVQNQIUGSWGPEG  WTTGPVNQIUGSOGO  14# . 14# #6# $$ 4 1.1) 5CV,CP #4 $GIKPKPIVQCTEJKXGNQIVJTGCFUGSWGPEG #4 $GIKPKPIVQCTEJKXGNQIVJTGCFUGSWGPEG 270 Część II  Zarządzanie bazą danych 5CV,CP $GIKPKPINQIUYKVEJEJGEMRQKPVWRVQ4$#=Z?5 0ZH 6JTGCFCFXCPEGFVQNQIUGSWGPEG  WTTGPVNQIUGSOGO  14# . 14# #6# $ 4 1.1) 5CV,CP #4 $GIKPKPIVQCTEJKXGNQIVJTGCFUGSWGPEG #4 $GIKPKPIVQCTEJKXGNQIVJTGCFUGSWGPEG 5CV,CP QORNGVGFEJGEMRQKPVWRVQ4$#=Z?5 0ZH QORNGVGFEJGEMRQKPVWRVQ4$#=Z?5 0ZH 5CV,CP $GIKPKPINQIUYKVEJEJGEMRQKPVWRVQ4$#=Z?5 0ZH 6JTGCFCFXCPEGFVQNQIUGSWGPEG  WTTGPVNQIUGSOGO  14# . 14# #6# $ 4 1.1) 5CV,CP #4 $GIKPKPIVQCTEJKXGNQIVJTGCFUGSWGPEG #4 $GIKPKPIVQCTEJKXGNQIVJTGCFUGSWGPEG 5CV,CP QORNGVGFEJGEMRQKPVWRVQ4$#=Z?5 0ZH 5CV,CP $GIKPKPIINQDCNEJGEMRQKPVWRVQ4$#=Z?5 0ZH QORNGVGFEJGEMRQKPVWRVQ4$#=Z?5 0ZH 5CV,CP 5CV,CP 14#WPCDNGVQGZVGPFVCDNG4# * ..4)6#$. D[KPVCDNGURCEG.4) #6# Wygląda na to, że baza danych $ w sobotę 18 stycznia 2002 o godzinie 20:27 miała problem z przestrzenią. Zakładając, że o tak późnej porze w systemie nie pracowali już użytkownicy, możemy przypuszczać, że to nietypowe zadanie wsadowe próbowało zała- dować tabelę .4)6#$. . Niestety, jej obszar tabel zawiera za mało ciągłej przestrzeni dla alokacji obszaru. Do dziennika ostrzeżeń został zapisany błąd, a proces próbujący zała- dować tabelę zakończył się niepomyślnie. Jeżeli istniałby proces, monitorujący w sposób ciągły dziennik ostrzeżeń, który powiadamia o błędach, moglibyśmy zareagować natych- miast, dodając niezbędną przestrzeń i prosząc użytkownika o wznowienie zadania lub przesłać wiadomość o rozwiązaniu problemu do wszystkich zainteresowanych (w tym oczywiście do szefa, który powinien zostać o takim fakcie poinformowany). W dalszej części tego rozdziału umieszczony jest skrypt pozwalający na sprawdzenie, czy któryś z obiektów bazy danych nie będzie w stanie pobrać wolnego obszaru z po- wodu braku wolnej przestrzeni. Umożliwia to dodanie przestrzeni jeszcze przed wystą- pieniem problemu w czasie wykonywania zaplanowanych zadań którejś z aplikacji. Je- żeli zaobserwujemy częste błędy wykonania pewnego zadania wsadowego, to możemy wykorzystać nowy tryb alokacji przestrzeni, zatrzymać zadanie do czasu wykonania od- powiedniej akcji, a następnie wznowić je od miejsca, w którym zostało zatrzymane. O tym sposobie powiemy więcej w rozdziale 11. LISTENER.LOG Proces nasłuchu Oracle Net Listener (we wszystkich wersjach Oracle8 nazywany Net8, a SQL*Net we wcześniejszych) tworzy w czasie uruchamiania dziennik, do którego w za- leżności od ustawionego poziomu logowania zapisuje duże lub minimalne ilości danych. W opcji minimalnej zapisywane są następujące informacje: Rozdział 9.  Codzienne czynności 271  Czas uruchomieniu procesu nasłuchu.  Lista portów, na których jest on prowadzony.  Komputer, na którym nasłuch jest uruchomiony.  Informacje o połączeniach zrealizowanych przez proces. Przykładowy wpis wygląda następująco: 605.504HQTDKV9KPFQYU8GTUKQP2TQFWEVKQPQP 56; QR[TKIJV E 1TCENG QTRQTCVKQP#NNTKIJVUTGUGTXGF 2NKMRCTCOGVTÎYU[UVGOQY[EJLGUVE 1TCENG 1TC PGVYQTM CFOKP NKUVGPGTQTC -QOWPKMCV[F\KGPPKMC\CRKUCPQFQE 1TCENG 1TC PGVYQTM NQI NKUVGPGTNQI +PHQTOCELCQħNCF\KG\CRKUCPCFQE 1TCENG 1TC PGVYQTM VTCEG NKUVGPGTVTE 1DGEP[RQ\KQOħNCFWLGUV 7TWEJQOKQPQ\RKF 0CUđWEJPC 5 4+26+10 # 4 55 24161 1.VER *156 4#)10(;A.#2612 2146 0CUđWEJPC 5 4+26+10 # 4 55 24161 1.KRE 2+2 0#/   RKRG :6241 KRE 6+/ 56#/2  100 6 #6#= 24161 1.+0(1?  8 06= 5+ ? 4 6740 1 Jeżeli zostanie włączone logowanie na wyższym poziomie, w dzienniku będzie zapisy- wane więcej informacji, lecz jednocześnie znajdą się tam dane mniej istotne. Zalecamy systematyczne, okresowe sprawdzanie dziennika NKUVGPGTNQI w poszukiwaniu błędów. Jeżeli odnotuje on problemy z Oracle Net, należy prowadzić dokładniejsze obserwacje. Proszę zauważyć, że wcześniejsze wersje oprogramowania tworzą inne wpisy w tym dzienniku. Jedynym sposobem na usunięcie dziennika NKUVGPGTNQI, kiedy osiągnie zbyt duży rozmiar, jest zatrzymanie procesu nasłuchu, usunięcie pliku dziennika i ponowne uruchomienie listenera. W przeciwieństwie do dziennika alertów, po zmianie jego nazwy ORACLE nadal zapisuje do niego informacje. Zatrzymanie nasłuchu nie pociąga za sobą utraty istniejących połączeń, lecz do chwili jego wznowienia niemożliwe jest tworzenie nowych. Z tego powodu uruchamiamy zazwyczaj dwa oddzielne procesy dla każdej in- stancji i umieszczamy oba porty we wszystkich plikach 6050#/ 514# naszych klientów. Kiedy Oracle Net podejmuje próbę podłączenia się do listenera od strony klienta, stara się wykorzystać najpierw pierwszy podany w 6050#/ 514# port. Jeżeli nie istnieje na nim aktywny proces nasłuchu, to sprawdzany jest następny port. Zatem wyłączenie na- słuchu, usunięcie plików dzienników i ponowne włączenie listenera nie powoduje za- kłóceń w dostępie użytkowników do bazy danych. Słabą stroną posiadania wielu listenerów jest konieczność zarządzania nimi oraz wzrost liczby aktywnych procesów serwera (jeden proces dla każdego nasłuchu).Kilka listene- rów pozwala rozłożyć obciążenie sieci na większą liczbę kart interfejsów sieciowych (Network Interface Cards NIC) i w ten sposób zbalansować połączenia do serwera bazy danych. Szczegółowe informacje dotyczące konfiguracji sieciowej zawierają Net Servi- ces Administrator Guide i Net Services Reference Guide dołączone do dokumentacji Oracle. 272 Część II  Zarządzanie bazą danych Status Redo Log W jakim celu należy sprawdzać status dzienników zmian? Być może z powodu zbyt czę- stego przełączania zamierzasz zmienić ich rozmiar. Jeżeli ich nazwy mają pozostać nie- zmienione, to konieczne jest ich usuniecie, a następnie odtworzenie z nowym rozmiarem. Przed usunięciem dziennika zmian administrator powinien wiedzieć, jaki jest aktualny status tego dziennika. Usunięcie bieżącego dziennika nie jest dobrą praktyką, jeżeli nie dotyczy testowania scenariuszy odzyskiwania! Informacje o aktywnych dziennikach zmian są utrzymywane w dwóch wirtualnych per- spektywach 8: 8.1)i 8.1)(+. . W celu pobrania pełnych informacji, perspektywy te mogą zostać złączone na kolumnie )TQWR. Dzienniki zmian mogą stanowić część grupy dzienników, pozwalającej na ich dublowanie (ang. mirroring) z wykorzystaniem pro- gramów narzędziowych Oracle i zapewnienie w ten sposób dodatkowego zabezpieczenia przed ich ewentualną utratą. Strata pojedynczego aktywnego dziennika wymaga odbu- dowania bazy danych, natomiast gdy dziennik należy do grupy, Oracle wpisuje infor- mację do dziennika alertów i kontynuuje pracę, wykorzystując pozostałe dzienniki. Ist- nieje zatem możliwość usunięcia i odtworzenia dziennika zmian bez potrzeby wyłączania bazy danych. Poniższy skrypt umożliwia wyświetlenie informacji o dziennikach zmian w bazie danych VGUV. Do jego uruchomienia wymagane są uprawnienia konta 5;56 /. EQN/GODGTHQTOCVC EQN.QIUVCVHQTOCVCJGCFKPI 7UGUVCVWU UGNGEV/GODGT C)TQWR DUVCVWU CUVCVWU.QIUVCV HTQO8.1)(+. C8.1)D YJGTGC)TQWRD)TQWR  / /$ 4)417256#6757UGUVCVWU  14# #6# 6 56 4 14 1# 6+8 14# #6# 6 56 4 14 1 744 06 14# #6# 6 56 4 14 1+0# 6+8 14# #6# 6 56 4 14 1+0# 6+8 Przeglądając wyniki wykonania tego dziennika, możemy powiedzieć kilka istotnych rze- czy o tej bazie danych:  Administrator bazy danych (DBA) nie zdecydował się na wykorzystanie zalet dublowania dzienników, ponieważ w każdej grupie jest tylko jeden dziennik.  Istnieją cztery dzienniki zmian i wszystkie są częścią bazy danych.  Kolumna 75 56#675 zawierająca status z perspektywy 8.1)(+. jest pusta, jeżeli dziennik jest wykorzystywany przez bazę danych.  Dzienniki są umieszczone na dwóch różnych dyskach, a DBA próbował poprawić wydajność przez zamianę ich położenia na tych dyskach. Do czasu, gdy ORACLE będzie czytać poprzedni dziennik w celu archiwizacji, istnieje możliwość wystąpienia konfliktów na poziomie głowic dyskowych, jeżeli oba Rozdział 9.  Codzienne czynności 273 dzienniki znajdują się na tym samym dysku. Umieszczenie ich na oddzielnych dyskach umożliwia niezakłócony odczyt jednego z nich w czasie zapisu do drugiego. Jeżeli tylko jest to możliwe, dzienniki zmian powinny być umieszczane na pustych dyskach lub w ostateczności na dyskach zawierających pliki rzadko wykorzystywane.  Bieżącym wykorzystywanym plikiem dziennika jest TGFQ (wartość w kolumnie statusu 744 06).  Ostatnio wykorzystywanym dziennikiem był TGFQ (Status # 6+8 ).  Jest prawdopodobne, że plik TGFQ jest albo archiwizowany, albo wymagany do odzyskania bazy danych w przypadku awarii. Status +0# 6+8 oznacza, że dziennik zmian nie jest wymagany do odzyskiwania. Inne możliwe wartości kolumny statusu perspektywy 8.1) można znaleźć w doku- mentacji Oracle. Fragmentacja W jakim celu sprawdzamy poziom fragmentacji w naszej przestrzeni tabel? Pomyślmy o przestrzeni tabel jak o puzzlach, które próbujemy ułożyć. Im więcej klocków uda nam się dopasować, tym bardziej komplikuje się kształt wolnego miejsca. Dopasowanie ko- lejnego elementu wymaga dokładnego określenia jego rozmiaru. Poszukiwanie wolnej przestrzeni w obszarze tabel dla kolejnego obszaru funkcjonuje w podobny sposób. Przy odrobinie szczęścia można utworzyć lub odziedziczyć bazę, któ- rej tabele w każdej przestrzeni tabel wykorzystują domyślne parametry przechowywania przestrzeni tabel. W ten sposób każdy obszar ma identyczny rozmiar i nie istnieją porcje wolnej przestrzeni, których wielkość uniemożliwia ich wykorzystanie. Niestety, nie zaw- sze to tak wygląda. W przestrzeni tabel może istnieć dużo wolnego miejsca, lecz żaden z jego fragmentów nie jest wystarczająco duży do pomieszczenia obszaru. Pomimo że obszary tworzące obiekt mogą być rozrzucone na dysku, bloki w obrębie obszaru muszą być umieszczone w sposób ciągły. Z tego powodu należy monitorować przestrzeń tabel i upewniać się, że istnieją porcje wolnych bloków na tyle duże, aby kolejne zadanie zo- stało wykonane. Poniższy skrypt PL/SQL wyświetla dostępne w obrębie przestrzeni tabel obszary włącz- nie z ich rozmiarami. Przed uruchomieniem skryptu należy utworzyć tabelę do prze- chowywania wyników przejściowych, wykorzystując skrypt utworzenia tabeli. Do uru- chomienia skryptu podającego fragmentację należy wykorzystać konto z przywilejami użytkownika 5;56 /. TGCVGVCDNG(4 52 (PCOG8#4 *#4   6URCEG8#4 *#4   (KTUV07/$ 4   $NQEMU07/$ 4   .CUV07/$ 4   274 Część II  Zarządzanie bazą danych Tabela (4 52 jest tworzona tylko raz, a po opróżnieniu poleceniem VTWPECVG, wykorzy- stywana wielokrotnie. Kreowanie tabeli przy każdym wykonaniu skryptu zwiększałoby niepotrzebnie stopień fragmentacji przestrzeni. UGVHGGFDCEMQHHVGTOQHHXGTKH[QHHRCIGUK\GPGYRCIGNKPGUK\G VTWPECVGVCDNG(4 52 FGENCTG (KNGKF07/$ 4   (KNG0COG8#4 *#4   6UPCOG8#4 *#4    WTUQT6CDNGURCEGUKU UGNGEV(KNGA0COG(KNGA+ 6CDNGURCEGA0COG HTQO $#A #6#A(+. 5 YJGTG6CDNGURCEGA0COGWRRGT   DGIKP QRGP6CDNGURCEGU NQQR HGVEJ6CDNGURCEGUKPVQ(KNGPCOG(KNGKF6U0COG GZKVYJGP6CDNGURCEGU016(170  FGENCTG (KTUV07/$ 4   $NQEMU07/$ 4   .CUV07/$ 4   6HKTUV07/$ 4   6DNQEMU07/$ 4   6NCUV07/$ 4    WTUQT(TGGKU UGNGEV$.1 -A+ C$NQEMUD$.1 -A+ $NQEMUE HTQO $#A(4 A52# YJGTG(KNGA+ (KNGKF QTFGTD[$NQEMA+  DGIKP QRGP(TGG HGVEJ(TGGKPVQ(KTUV$NQEMU.CUV KH(TGG016(170 VJGP IQVQENQUGAHTGG GPFKH NQQR HGVEJ(TGGKPVQ6HKTUV6DNQEMU6NCUV GZKVYJGP(TGG016(170  KH6HKTUV.CUV VJGP $NQEMU$NQEMU 6DNQEMU .CUV6NCUV GNUG KPUGTVKPVQ(4 52 XCNWGU (KNGPCOG6UPCOG(KTUV$NQEMU.CUV  EQOOKV (KTUV6HKTUV $NQEMU6DNQEMU .CUV6NCUV GPFKH GPFNQQR KPUGTVKPVQ(4 52 XCNWGU (KNGPCOG6UPCOG(KTUV$NQEMU.CUV  EQOOKV Rozdział 9.  Codzienne czynności 275  \COMPKúEKG(TGG   .15 A(4 ENQUG(TGG GPF GPFNQQR EQOOKV ENQUG6CDNGURCEGU GPF  UGVVGTOQHHGEJQQHH VVKVNGEGPVGT 4#2146(4#)/ 06# ,+24 564 0+6#$ . EQN6URCEGJGCFKPI 0# 9#^24 564 0+ HQTOCVCVTWPE EQN(PCOGJGCFKPI 2.+- HQTOCVCVTWPE EQN(KTUVJGCFKPI $.1-^21  HQTOCV EQN$NQEMUJGCFKPI 41 /+#4 $.- HQTOCV DTGCMQPTGRQTVQP6URCEGUMKRQP(PCOGUMKR EQORWVGUWOQH$NQEMUQP(PCOG EQORWVGUWOQH$NQEMUQPTGRQTV URQQNHTCIOGPVCELCTRV UGNGEV6URCEG(PCOG(KTUV$NQEMU HTQO(4 52 QTFGTD[6URCEG(PCOG(KTUV URQQNQHH Skrypt jest wykonywany dla pojedynczej przestrzeni tabel, której nazwa jest jego argu- mentem wejściowym. Przyjrzyjmy się wynikom jego wykonania. 4#2146(4#)/ 06# ,+24 564 0+6#$ . 0# 9#$.1- 24 564 0+2.+-21 41 /+#4 $.-  754JQOGQTCENGWUGTA                        276 Część II  Zarządzanie bazą danych                  UWO  UWO Przestrzeń tabel jest bardzo niejednorodna. Czterdzieści obszarów w 13 881 wolnych blokach, średnio mniej niż 350 bloków na obszar. Jeżeli jedyną rzeczą, którą zrobiliśmy, było zwiększenie liczby dostępnych dla tej przestrzeni tabel bloków w perspektywie $#A (4 A52# , to wydaje się, że posiada ona mnóstwo wolnej przestrzeni. Zbyt wielu nie- doświadczonych administratorów wpada w pułapkę polegającą na sprawdzeniu jedynie całkowitej dostępnej przestrzeni i wnioskowaniu na tej podstawie o wystarczającej ilości ciągłego miejsca do alokowania kolejnego obszaru. Analiza przestrzeni tabel z powyż- szego raportu ujawnia, że większość obszarów ma rozmiar mniejszy niż 500 bloków. Dopóki przestrzeń tabel jest wykorzystywana w trybie tylko do odczytu lub zawiera ta- bele sporadycznie aktualizowane, nie ma problemów z przydzielaniem nowego miejsca. Oracle nie wykonuje scalania ciągłych wolnych obszarów, chyba że nie istnieje inny spo- sób uzyskania wolnej przestrzeni. Jej fragmentacja wzrasta, w miarę jak Oracle przydziela ją z największego wolnego obszaru, przed powtórnym wykorzystaniem i połączeniem mniejszych wolnych obszarów, które pozostały po usuniętych obiektach. Rysunek 9.1 ilu- struje obszary dostępne w przestrzeni tabel przed zażądaniem alokacji kolejnego obszaru, a następnie po wykonaniu tego polecenia. Rysunek 9.1. Łączenie wolnych obszarów: (a) fragmentacja z dwoma ciągłymi obszarami przed żądaniem alokacji obszaru złożonego z 25 bloków (b) fragmentacja po scaleniu i alokowaniu obszaru Rozdział 9.  Codzienne czynności 277 Perspektywa słownika danych $#A(4 A52# zawiera informacje o każdym wolnym obszarze w plikach danych tworzących bazę. Oracle nie sprawdza tej perspektywy pod kątem ciągłości obszarów. Zatem dwa sąsiednie obszary (jak na rysunku 9.1a) przed- stawione są w dwóch różnych wierszach. Nie jest to szczególnie efektowne i użyteczne rozwiązanie, ponieważ nie przedstawia rzeczywistego obrazu wolnej przestrzeni w pli- kach danych! Skrypt HTCIOGPVUSN czyta perspektywę $#A(4 A52# , poszukuje ciągłych obszarów, sumuje ich liczbę bloków (lub podaje ich liczbę, jeżeli obszary nie są ciągłe), przecho- wuje wyniki w tabeli przejściowej i drukuje raport o poziomie fragmentacji plików da- nych w przestrzeni tabel. Przechowanie poprzednich raportów umożliwia analizę wyko- rzystania przestrzeni tabel i częstotliwości występowania jej fragmentacji. Jeżeli wykorzystujesz przestrzeń tabel zarządzaną lokalnie, to nie należy się martwic o łączenie wolnych obszarów. W wypadku zarządzania przez słownik, operacje tę można wykonać manualnie, wydając polecenie: #NVGTVCDNGURCEGVCDNGURCEGPCOG EQCNGUEG Segmenty wycofania Jak napisać wiersz? Zaczynamy od pomysłu i być może od pierwszego zdania. Zapisu- jemy kilkanaście linijek i decydujemy, że jest on po prostu okropny i rozpoczynamy pi- sanie od początku. W połowie pisania możemy stwierdzić, że większość tekstu jest wspa- niała, lecz kilka linijek wymaga jednak zmiany. Ostatecznie, kończąc pisanie, decydujemy, że usunięte fragmenty powinny się w nim znaleźć. Wymaga to pamiętania treści tych wer- sów (uważamy, że nadawały one utworowi wyjątkowy charakter i koniecznie muszą zo- stać odtworzone). Jeżeli każda linia była pisana ostrożnie, a to co chcieliśmy zachować, było kopiowane przed każdą zmianą całego wiersza, to zachowany został jego wygląd na każdym etapie pisania. Z łatwością możemy stwierdzić, jak wyglądała ta wspaniała linijka. Po zakończeniu kolejnej wersji wiersza i wykonaniu jej kopii „na czysto” (czyli po jej ostatecznym zatwierdzeniu), możemy udostępnić ją komuś do przeczytania, pod- czas gdy sami zajmiemy się analizą jej treści. Oracle wykorzystuje segmenty wycofania dokładnie tak, jak my swoją kopię, do przechowania obrazu danych przed wprowadze- niem zmian, określanego też jako obraz danych przed zmianą. Jaki cel ma przechowywanie obrazu danych przed zmianą? Oracle zapewnia, że „odczyt danych nie będzie blokował ich zapisu, a zapis nie będzie blokował odczytu”. Co to do- kładnie znaczy? Załóżmy, że otwieramy tabelę płac i wykonujemy raport o zarobkach. W tym samym czasie ktoś inny zmienia wartości kilku pozycji w tej tabeli. Bez segmentu wycofania, raport zawierałby niespójne dane, część z nich dotyczyłaby tabeli przed zmia- nami, a część po ich wprowadzeniu. Oracle zapewnia, że sytuacja taka jest niemożliwa, segment wycofania zawierający obraz danych przed zmianą zapewnia utrzymanie ich spójności nawet wtedy, gdy jednocześnie wprowadzane są modyfikacje. W wersji Oracle9i wprowadzono koncepcję automatycznego zarządzania kasowaniem zmian (ang. undo managment). Zasadniczo oznacza to, że jeżeli zostanie utworzona spe- cjalna przestrzeń określana jako przestrzeń wycofania (ang. Undo Tablespace) i ustawio- ny parametr inicjujący WPFQAOCPCIOGPV na #761, Oracle automatycznie przejmie nad nim kontrolę, przydzielając i zwalniając w miarę potrzeby segmenty wycofania. 278 Część II  Zarządzanie bazą danych Kiedy użytkownik rozpoczyna pracę, generując raport, czy też modyfikując wiersze ta- beli, do związanego z nim procesu jest przypisany segment wycofania. W rozdziale 2., mówiliśmy o sposobie alokowania segmentów wycofania i zwiększania ich rozmiarów. Co jednak stanie się w sytuacji, gdy w takim segmencie zabraknie miejsca? Jeżeli duża transakcja wymaga więcej miejsca niż aktualnie posiada segment wycofania, segment ten zwiększy swój rozmiar, zajmując część pozostałej wolnej przestrzeni tabel, czyli za- chowując się dokładnie tak samo jak tabela w czasie dodawania nowych wierszy. Jeżeli jednak wymagana dla niego ilość miejsca przekracza rozmiar wolnej przestrzeni tabel, to transakcja nie zostanie wykonana i możesz spodziewać się telefonu od zdenerwowa- nego użytkownika! Jak zatem zdobyć pewność, że w segmencie wycofania istnieje do- stateczna ilość miejsca dla wykonywanych transakcji? Należy kontrolować liczbę po- większeń rozmiarów segmentów wycofania, związaną z wykonywaniem transakcji. Jeżeli obszary wewnątrz segmentu wycofania są zbyt małe, transakcja będzie się „zawi- jać” od jednego do innego obszaru w obrębie segmentu. Każda taka operacja wymaga od Oracle wykonania wewnętrznych zadań związanych z p
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Oracle9i. Administrowanie bazami danych od podstaw
Autor:
, ,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: