Oracle 10g – nowe cechy

Transkrypt

Oracle 10g – nowe cechy
X Konferencja PLOUG
Kościelisko
Październik 2004
Oracle 10g – nowe cechy
Mariusz Masewicz
Politechnika Poznańska
e–mail: [email protected]
Abstrakt.
Podstawowe cele przyświecające twórcą bazy danych Oracle 10g to zmniejszenie kosztów administrowania ich produktem przy jednoczesnym zwiększeniu jego wydajności i bezawaryjności. Celem niniejszego referatu jest zaprezentowanie tych mechanizmów, które
zostały dodane lub udoskonalone w bazie Oracle 10g. Z ciekawszych nowości dostępnych w Oracle 10g należy wymienić:
• automatyczne zarządzanie składowaniem danych
• automatyczne zarządzanie istotnymi parametrami pracy bazy danych
• automatyczne monitorowanie i diagnostyka pracy serwera bazy danych
• uproszczenie sposobu korzystania z parametrów inicjalizacyjnych serwera
• zarządzanie komunikatami administracyjnymi wysyłanymi przez serwera
• nowe mechanizmy ładowania danych: Data Pump
• nowe mechanizmy optymalizacji zapytań SQL
• automatyczne zbieranie statystyk dla optymalizatora
• rozszerzony mechanizm zbierania statystyk czasowych
• rozszerzenia mechanizmów Flashback
• język SQL - nowe typy danych, rozszerzenia kolekcji, rozszerzenia kluzuli CONNECT BY, wyrażenia regularne w języku SQL,
• język PL/SQL – nowy kompilator, operacje na kolekcjach, możliwość składowania w bazie danych kodu wynikowego natywnej
kompilacji, wyrażenia regularne, definiowane przez użytkownika znaki ograniczające łańcuchy tekstów, szereg nowych pakietów:
UTL_COMPRESS, UTL_MAIL i inne...
Nowości te zostaną tu krótko scharakteryzowane, a dokładniejsze zapoznanie się z tymi mechanizmami pozwoli administratorom,
programistom, a także użytkownikom bazy danych na coraz to lepsze wykorzystywanie posiadanych zasobów.
32
Mariusz Masewicz
Oracle 10g – nowe cechy
33
Wstęp
Oracle 10g jest najnowszym systemem zarządzania bazą danych z rodziny produktów Oracle
Corporation. W artykule tym zostaną omówione najważniejsze zmiany tego systemu w stosunku do
jego poprzednich wersji. Analizując nowości, które pojawiły się w tej wersji serwera bazy danych
można odnieść wrażenie, że jego autorom przyświecały hasła:
• łatwiejsza administracja
• łatwiejsze użytkowanie
• jeszcze większe bezpieczeństwo danych
Ze względu na to, iż znaczenie literki „g” w nazwie tego produktu, oraz związana z nią idea przetwarzania rozproszonego w architekturze „gridu” zostały omówione w innych artykułach – nie będą
one wspominane w tym opracowaniu.
1. Łatwiejsza administracja
Podobnie, jak to miało miejsce w wersji 9 serwera bazy danych Oracle, tak i w najnowszej wersji
tego produktu położono szczególny nacisk na rozwój narzędzi wspomagających zarządzanie bazą
danych. Zdecydowana większość zaproponowanych rozwiązań ma za zadanie obniżyć koszty administracji przy jednoczesnym zapewnianiu maksymalnej dostępności danych. Bardzo wiele czynności,
które do tej pory były wykonywane ręcznie przez administratora, zostało zautomatyzowanych. Przykładem takich rozwiązań jest zupełnie nowy mechanizm automatycznego zarządzania składowaniem
danych, który pozwala administratorowi „zapomnieć” o takich „szczegółach” jak: system plików,
dyski, rozmiar plików, właściwe rozmieszczanie plików na dyskach, ...
Innym mechanizmem „przejmującym” na siebie część zadań administratora jest system automatycznego monitorowania i diagnostyki pracy serwera bazy danych. System ten w połączeniu z systemem automatycznego zarządzania istotnymi parametrami pracy bazy danych potrafi obserwować
i analizować pracę użytkowników i obciążenie generowane przez uruchamiane przez nich aplikacje.
Na podstawie wyników tych obserwacji, składowanych w specjalnym repozytorium, serwer jest
w stanie podpowiadać rozwiązania mogące podnieść wydajność, a także samodzielnie dostosowywać wartości parametrów konfiguracyjnych do aktualnych wymagań.
1.1. Automatyczne zarządzanie składowaniem danych
Automatyczne zarządzanie składowaniem danych (Automated Storage Management; ASM) to
mechanizm, który jest kolejnym sposobem na zarządzanie przechowywaniem danych na dyskach
(po składowaniu ich w formie plików w systemie plików zarządzanym przez system operacyjny
serwera i bezpośrednim zarządzaniu urządzeniami dyskowymi – raw devices). ASM jest mechanizmem łączącym w sobie wydajność bezpośredniego zarządzania partycjami z dużymi możliwościami zarządzania konfiguracją bazy danych przy wykorzystaniu przestrzeni tabel składających się
z plików systemu operacyjnego oraz bezpieczeństwem oferowanym przez wyrafinowane oprogramowanie zapewniające mirroring i striping danych na różnych urządzeniach dyskowych. Włączenie
mechanizmu ASM sprawia, że od tego momentu administrator przestaje myśleć o zarządzani pojedynczymi plikami danych czy urządzeniami dyskowymi. Zamiast tego definiuje się tak zwane grupy
dysków. System ten w połączeniu z wprowadzoną w wersji 9 serwera bazy danych Oracle architekturą OMF sprawia, że administrator nie musi już specyfikować ani nazw plików, ani ich lokalizacji –
wszystkim tym zajmuje się ASM.
Stosowanie mechanizmu ASM nie wymaga od administratora żadnych działań przygotowawczych na poziomie systemu operacyjnego. Wystarczy, że wskaże on które dyski mają tworzyć grupę
dysków, czyli strukturę, która w zależności od ustawień zapewnia striping a czasami też mirroring
składowanych danych. Podstawową zaletą tego rozwiązania jest to, że tutaj system Oracle sam zarządza dostępem do urządzeń dyskowych, w związku z czym nie ma miejsca na niekorzystnie
34
Mariusz Masewicz
z punktu widzenia bazy danych buforowanie plików dodatkowo przez system operacyjny. Dodatkowo wbudowanie w bazę danych funkcjonalności oferowanej przez systemy zarządzające urządzeniami dyskowymi sprawia, że ona sama staje się wydajnym oprogramowaniem tego typu. Z jednej
system zarządzania bazą danych, skutecznie wspiera mechanizm stripingu, stosując na przykład
mechanizmy adresowania bloków danych powodujące rozproszenie tych danych na wszystkich dyskach tworzących grupę dyskową, z drugiej strony ten sam mechanizm adresowania eliminuje konieczność przebudowy takiej grupy po dołożeniu do niej kolejnego urządzenia dyskowego.
ASM jest więc mechanizmem łączącym w sobie wydajność bezpośredniego zarządzania partycjami przez bazę danych z dużymi możliwościami zarządzania konfiguracją bazy danych przy wykorzystaniu przestrzeni tabel składających się z plików systemu operacyjnego oraz bezpieczeństwem
oferowanym przez wyrafinowane oprogramowanie zapewniające mirroring i striping danych na różnych urządzeniach dyskowych.
Podstawowe cechy ASM to:
• uproszczenie operacji dodawania nowego dysku do systemu – wystarczy podłączyć dysk,
dołączyć go do grupy dyskowej, a przebudowa takiej grupy i rozproszenie danych także na
ten nowy dysk zostanie wykonana w tle podczas pracy bazy danych
• rozproszenie operacji wejścia/wyjścia – jest to naturalna konsekwencja rozłożenia danych
na wszystkich urządzeniach tworzących grupę dyskową, dzięki czemu wzrasta przepustowość systemu a spada prawdopodobieństwo występowania wąskich gardeł
• automatyczne sterowanie rozpraszaniem – system sam dobiera wielkość jednostki danych
składowanych na każdym z urządzeń dyskowych, dzięki czemu wydajne staje się rozpraszanie danych zarówno z małych plików dziennika powtórzeń, jak i z największych plików
danych
• brak buforowania – ASM zapobiega buforowaniu danych przez system operacyjny serwera
bazy danych, dzięki czemu wzrasta wydajność operacji wejścia/wyjścia zarówno podczas
odczytu, jak i zapisu danych
• asynchroniczne systemy wejścia/wyjścia – ASM sam zarządza operacjami wejścia/wyjścia,
więc system operacyjny, który nie zapewnia tej asynchroniczności, nie jest już ograniczeniem
• mirroring – ASM pozwala stosować mirroring urządzeń dyskowych nawet wtedy, kiedy
w systemie nie zainstalowano specjalistycznych urządzeń wspierających taką funkcjonalność.
1.2. Automatyczne monitorowanie i diagnostyka pracy serwera bazy danych
Automatyczne monitorowanie i diagnostyka pracy serwera bazy danych (Automatic Database
Diagnostic Monitor; ADDM) to mechanizm, którego zadaniem jest analiza danych dotyczących
pracy serwera bazy danych przechowywanych w Automatic Workload Repository w celu identyfikacji potencjalnych zagrożeń dla wydajności serwera.
Wynikiem działania tego mechanizmu jest identyfikacja głównej przyczyny zagrożenia oraz szereg wskazówek, jak nie dopuścić do wystąpienia awarii, bądź zminimalizować jej skutki. Wyniki te
SA przechowywane w bazie danych i administrator może w każdej chwili skorzystać z tych podpowiedzi.
Analizy wykonywane przez mechanizm ADDM dotyczą:
• obciążenia procesora
• wykorzystania pamięci
• operacji wejścia/wyjścia
• zapytań SQL, programów PL/SQL i Java wymagających szczególnie dużej ilości zasobów
• parametrów pracy klastra aplikacji (RAC), aplikacji użytkowych, serwera bazy danych,
• współbieżności
Oracle 10g – nowe cechy
35
• powiązań miedzy obiektami
Dostep do tego mechanizmu jest realizowany przy pomocy Enterprise Managera oraz API w języku PL/SQL
1.3. Uproszczenie sposobu korzystania z parametrów inicjalizacyjnych serwera
Wszystkie parametry inicjalizacyjne zostały podzielone na 2 grupy: obowiązkowe, niezbędne do
pracy serwera, oraz dodatkowe. W pierwszej grupie znalazło się w zależności od planowanej konfiguracji około 20-25 parametrów, odpowiedzialnych w większości za włączenie mechanizmów automatycznego śledzenia i strojenia instancji bazy danych.
1.4. Zarządzanie komunikatami administracyjnymi wysyłanymi przez serwera
Cecha ta pozwala na konfiguracje sposobu rozsyłania komunikatów o stanie serwera. Oracle 10g
pozwala zdefiniować, jakie komunikaty maja trafiać do poszczególnych osób, oraz jaka ma być postać tych komunikatów. Po zakończeniu konfiguracji tego mechanizmu o każdym zdarzeniu informowane są właściwe osoby i mogą one podjąć odpowiednie działania.
1.5. Mechanizm automatycznego zarządzania pamięcią współdzieloną
Mechanizm automatycznego zarządzania pamięcią współdzieloną (Automatic Shared Memory
Management; ASMM) pozwala monitorować wykorzystanie i jeżeli zajdzie taka konieczność przydzielać odpowiednie obszary pamięci współdzielonej. Głównym celem tego mechanizmu jest zwolnienie administratora bazy danych z obowiązku ciągłego monitorowania i regulowania wielkości
poszczególnych obszarów SGA. Zapotrzebowanie na wielkości poszczególnych fragmentów nie jest
stałe i jest ściśle zależne od aktualnego obciążenia bazy danych i rodzaju wykonywanych na niej
operacji. Z tego tez względu określenie prawidłowego rozmiaru wszystkich elementów jest prawie
niewykonalne – zapotrzebowanie zmienia się w zależności od pory dnia, dnia tygodnia, czy też miesiąca.
Po włączeniu tego mechanizmu administrator określa docelową wielkość SGA i system automatycznie dostosowuje rozmiary poszczególnych jego elementów do aktualnego zapotrzebowania.
Dzięki temu administrator nie musi zmieniać wartości wielu parametrów inicjalizacyjnych (shared_pool_size, large_pool_size, java_pool_size, db_cache_size) w zależności od charakterystyki
pracy bazy danych (np. inne dla dziennej pracy użytkowników, inne podczas nocnego przetwarzania
wsadowego).
Aby włączyć ten mechanizm należy wydąć polecenie:
alter system set sga_target = 500M scope=both;
oraz ustawić wartości nastepujacych parametrów inicjalizacyjnych na 0:
shared_pool_size = 0
large_pool_size = 0
java_pool_size = 0
db_cache_size = 0
Administrator ma możliwość wskazania sugerowanych i minimalnych rozmiarów poszczególnych obszarów pamięci i wówczas mechanizm ASMM będzie uwzględniał te wskazówki podczas
swojej pracy.
1.6. Automatyczne śledzenie parametrów pracy serwera
Automatyczne śledzenie parametrów pracy serwera (Automatic Workload Repository; AWR) to
mechanizm pozwalający na ciągłe monitorowanie i składowanie parametrów pracy wszystkich składowych serwera bazy danych Oracle. Dzięki temu administrator może w każdej chwili zapoznać się
z tymi parametrami i dowiedzieć się, czy diagnozowany problem jest jednorazowym incydentem,
36
Mariusz Masewicz
czy też być może występuje już od dłuższego czasu, a jeżeli występuje, to czy w sposób ciągły, czy
też w jakiś specyficznych warunkach.
Podobnie jak pozostałe mechanizmy, tak i AWR jest dostępne przy pomocy Enterprise Managera
oraz przy pomocy API w języku PL/SQL. Należy tu zauważyć, że pomimo tego, że funkcjonalność
AWR jest zbliżona do pakietu StatPack ale narzędzia te nie są w żaden sposób kompatybilne ze sobą.
Mechanizm ten monitoruje następujące elementy:
• oczekiwania na zwolnienie blokad
• informacje na temak wykorzystania bazy danych przez użytkowników (sesje użytkowników)
• dynamiczne statystyki systemowe i sesyjne
• wykorzystanie poszczególnych obiektów bazy danych
• zapytania SQL intensywnie wykorzystujące zasoby serwera
Wyniki pracy AWR są wykorzystywane przez następujące mechanizmy:
• Automatic Database Diagnostic Monitor
• SQL Tuning Advisor
• Undo Advisor
• Segment Advisor
Wyniki pracy AWR tworzą szereg migawek (snapshot) pobieranych przez system w odstępach
jednogodzinnych. Domyślnie taka migawka jest przechowywana w systemie przez 7 dni. Źródłem
danych są tu przeważnie perspektywy systemowe udostępniające dynamiczne statystyki. Za zbieranie danych odpowiada proces o nazwie MMON. Wyniki są przechowywane w tabelach należących
do użytkownika sys, składowanych w przestrzeni tabel SYSAUX. Nazwy tych tabel zaczynają się od
przedrostka WRM$_* i WRH$_*, gdzie litera M w nazwie oznacza metadane, a H dane historyczne.
1.7. Zarządzanie zadaniami użytkowników
Znany ze starszych wersji serwera bazy danych pakiet DBMS_JOB został w Oracle10g zastąpiony przez pakiet DBMS_SCHEDULER. Zadaniem obu pakietów jest uruchamianie programów użytkownika w określonym momencie i z zadana częstotliwością.
Wadą pakietu DBMS_JOB był brak możliwości uruchamiania czegokolwiek, co nie byłoby programem w języku PL/SQL (np. zewnętrznych programów systemu operacyjnego). Z tego względu
dość często administratorzy systemów musieli posługiwać się zewnętrznymi narzędziami typu
CRON czy znana z systemu WINDOWS komenda AT. Dopiero pakiet DBMS_SCHEDULER pozwala zarządzać wszystkimi zadaniami uruchamianymi automatycznie z poziomu bazy danych –
niezależnie od tego, czy sa to procedury w języku PL/SQL, czy tez dowolne programy w systemie
operacyjnym.
Dodatkową cechą pakietu DBMS_SCHEDULER jest możliwość definiowania cykli w jakich
maja być uruchamiane programy w języku zbliżonym do naturalnego (np. repeat_interval => 'FREQ=MINUTELY; INTERVAL=30',):
Podobnie jak pozostałe mechanizmy, tak i funkcjonalność pakietu DBMS_SCHEDULER dostępna jest przy pomocy Enterprise Managera oraz przy pomocy API w języku PL/SQL.
2. Łatwiejsze użytkowanie
2.1. Nowe cechy języka
Zmiany z języku SQL maja na celu zwiększenie zgodności implementacji języka SQL z obowiązującymi standardami oraz ułatwiać zarządzanie coraz większymi strukturami danych. Do najważniejszych należy zaliczyć:
Oracle 10g – nowe cechy
37
• możliwość pełnotekstowego wyszukiwania danych, które jest nie wrażliwe na wielkość
•
•
•
•
wprowadzanych liter i zastosowane akcenty
nowe typy danych: BINARY_DOUBLE i BINARY_INTEGER, które mają za zadanie
przyśpieszyć wykonywanie operacji arytmetycznych oraz zmniejszyć ilość miejsca przeznaczonego na przechowywanie danych numerycznych. Dzięki zastosowaniu zgodności tych
typów danych ze standardami IEEE wszelkie operacje arytmetyczne wykonywane przy ich
użyciu są wielokrotnie szybsze od analogicznych operacji na danych typu NUMBER (kosztem ewentualnej utraty precyzji). Jednocześnie zastosowanie tych typów ułatwia wymianę
danych z programami zapisanymi w języku Java oraz zapisywanie ich w dokumentach
XML.
rozszerzone możliwości kolekcji zwiększają ich funkcjonalność i wydajność. Kolekcje typu
Varray mogą w miarę potrzeb mieć zwiększany limit elementów (wówczas wszystkie elementy takiego typu są inwalidowane) oraz mogą być kolumną w tabelach tymczasowych.
Kolekcje typu Nested Table wspierają operatory porównania oraz operatory typu MULTISET (MULTISET INSERT, MULTISET UNION).
rozszerzone możliwości zapytań hierarchicznych sprawiają, że przy pomocy klauzuli
CONNECT BY możliwe jest wykrywanie cykli w hierarchii, czy też stosowanie hierarchii
w podzapytaniach
wyrażenia regularne pozwalają zwiększyć możliwości wyszukiwania i dopasowywania do
wzorca danych składowanych w bazie danych. Zastosowano to standard wyrażeń regularnych stosowanych w systemie POSIX.
2.2. Nowe cechy języka PL/SQL
Podobnie jak to miało miejsce dla języka PL/SQL do języka PL/SQL wprowadzono wiele cech
mających poprawić wydajność oraz zgodność tego języka z obowiązującymi standardami. Najważniejszą nowością jest jednak nowy kompilator języka PL/SQL, który generuje kod wykonalny pozwalający na znacznie skrócenie czasu wykonywania. Inne ciekawe cechy języka Pl/SQL to:
• natywna kompilacja języka PL/SQL pozwala na wygenerowanie przez kompilator wydajnego kodu binarnego wykonywanego przez serwer. Generacja ta odbywa się poprzez wygenerowanie na podstawie kompilowanego kodu języka PL/SQL źródła procedury zapisanej
w języku C, a następnie kompilacji tak wygenerowanego kodu. Natywny kod może być
składowany albo w sposób tradycyjny – jako plik systemu operacyjnego albo wewnątrz bazy danych i wówczas taki kod może być na przykład archiwizowany w taki sam sposób jak
pozostałe obiekty.
• nowe typy danych: BINARY_DOUBLE i BINARY_INTEGER – podobnie jak w języku
SQL tak i tutaj mają za zadanie przyspieszyć wykonywanie operacji zmiennoprzecinkowych.
• rozszerzenie możliwości tabele zagnieżdżonych – wprowadzono możliwość wykonywania
operacji zbiorowych na tego typu kolekcjach (suma, część wspólna), możliwość bezpośredniego przypisywania kolekcji do innych kolekcji, porównywania kolekcji, sprawdzania, czy
dany element należy do kolekcji, sprawdzania, czy kolekcja jest podkolekcją innej kolekcji
• możliwość wykorzystania klauzuli FORALL dla fragmentów różnego rodzaju kolekcji
• ostrzeżenia generowane w trakcie kompilacji, które podobnie jak to ma miejsce w innych
językach, informują o tym, że choć składnia kodu jest poprawna, to może powodować niezamierzone działanie programu
• niejawna konwersja pomiędzy typami CLOB i NCLOB.
• wyrażenia regularne w standardzie POSIX
• możliwość definiowania własnych znaków ograniczających łańcuchy znaków. Funkcjonalność ta przydaje się wszędzie tam, gdzie bardo często wewnątrz łańcuchów znaków używa
38
Mariusz Masewicz
•
•
•
•
się znaków stanowiących normalne ograniczenie łańcucha: ‘. Pozwala to na uniknięcia kłopotliwego rozróżniania, który znak ograniczający jest końcem łańcucha, a który jest tylko
fragmentem treści przechowywanej w tym łańcuchu
definicje tabel mogą być zmieniane bez konieczności inwalidowania składowanych procedur, funkcji I wyzwalaczy operujących na tych tabelach
UTL_COMPRESS – pakiet pozwalający na kompresowanie i dekompresję danych. Najczęściej wykorzystywane funkcje to: LZ_COMPRESS, LZ_UNCOMPRESS, które operuja na
danych typu: RAW, BLOB i BFILE.
UTL_MAIL – pozwala na wysyłanie wiadomości email przy pomocy jednej instrukcji, bez
konieczności korzystania z funkcjonalności oferowanej przez pakiet UTL_SMTP. Dodatkowo procedury i funkcje z tego pakietu wspomagają wysyłanie wiadomości zawierających
załączniki, żądania potwierdzenia otrzymania wiadomości, dodawania nagłówków protokołu SMTP
DBMS_METADATA – pakiet pozwalający na wydobywanie z bazy danych informacji opisujących obiekty, manipulowanie tymi operacjami (np. dodanie kolumny, zmiana typu danych) a na koniec zapisanie wyniku tych działań w formie zapytań DDl.
2.3. Nowe mechanizmy wspomagające optymalizację zapytań SQL
Mechanizm wspomagający prace optymalizator zapytań SQL (SQL Tuning Advisor) to mechanizm, który pozwala analizować obciążenie serwera bazy danych i generuje informacje niezbędne do
poprawnego wykonywania najczęściej wykonywanych zapytań. Źródłem informacji dla tego mechanizmu jest repozytorium przechowujące informacje o aktualnie zadawanych zapytaniach (Automatic Workload Repository; AWR) lub ewentualnie zapytania wprowadzane do tego mechanizmu
ręcznie przez programistę. Dostęp do tego mechanizmu jest realizowany przy pomocy Enterprise
Managera lub udostępnionego API w języku PL/SQL. Wynikiem działania tego mechanizmu jest
szereg rekomendacji dotyczących np. konieczności zebrania statystyk, założenia indeksów, czy
przebudowania zapytania.
2.4. Automatyczne zbieranie statystyk dla optymalizatora
W tej wersji serwera bazy danych zrezygnowano ze stosowania optymalizatora regułowego podczas optymalizacji zapytań dla których brakuje statystyk opisujących charakterystykę przetwarzanych przez nie obiektów. Alternatywą dla optymalizatora regułowego jest optymalizator kosztowy,
wymagający do swojej pracy dostępności do aktualnych statystyk. Oznacza to, że zbieranie i aktualizowanie statystyk powinno być procesem dokładnie zaplanowanym i przeprowadzanym w regularnych odstępach czasu. Razem z serwerem Oracle10g administrator dostaje specjalne skonfigurowany proces Schedulera o nazwie GATHER_STATS_JOB, który odpowiada za regularne zbieranie
statystyk.
3. Jeszcze większe bezpieczeństwo danych
3.1. Nowe mechanizmy ładowania danych: Data Pump
Mechanizm ten ma zastąpić narzędzia EXP i IMP. Oferuje on dużo większą wydajność przesyłania danych, możliwość zrównoleglenia operacji, stosowania mechanizmów masowego wykonywania
operacji. Dodatkową zaletą stosowania tych mechanizmów jest możliwość wznowienia ich wykonywania po ewentualnym niepowodzeniu podczas ich wcześniejszego uruchomienia. Dodatkową
zaletą jest API dla języka PL/SQL pozwalające sterować pracą tych mechanizmów przy pomocy
programów działających w bazie danych. Mechanizm ten posiada wsparcie dla tabel zewnętrznych,
których nie można było obsługiwać przy pomocy standardowych narzędzi EXP i IMP.
Oracle 10g – nowe cechy
39
3.2. Przenośne przestrzenie tabel
Od wersji Oracle10g można przenosić pliki danych stanowiące przestrzenie tabel pomiędzy dowolnymi systemami operacyjnymi. Do tej pory taka operacja była obarczona wieloma ograniczeniami wynikającymi miedzy innymi z różnej reprezentacji liczb na poszczególnych platformach.
Mechanizm ten pozwala na znaczne przyspieszenie procesu archiwizowania danych, ale także
przenoszenia danych między serwerami. Kopiowanie plików jest mechanizmem dużo szybszym niż
jakikolwiek proces, który dokonywałby logicznego przeniesienia struktur danych między serwerami.
3.3. Rozszerzenie mechanizmu flashback
Wprowadzony w Oracle9i mechanizm flashback, pozwalający zadawać zapytania o stan tabeli w
określonym momencie w przeszłości, został rozszerzony o możliwość sprawdzania stanu transakcji
lub też całej bazy danych w dowolnym momencie w przeszłości. Aby wspierać ten mechanizm system rezerwuje na dysku pewna ilość miejsca (obszar o nazwie: Flash Recovery Area), w którym
przechowuje informacje o zmianach w bazie danych, jakie miały miejsce od czasu ostatniego jej
backupu. Dodatkową zaletą takiego rozwiązania jest skrócenie czasu odtwarzania bazy danych po
awarii. Mechanizm ten pozwala także na odtworzenie danych, które znajdowały się w przypadkowo
lub tez celowo usuniętych tabelach.
Ciekawym zastosowaniem tego mechanizmu może być też wykorzystanie go do przywracania
stanu całej bazy danych z określonego momentu w przeszłości – do tej pory administrator mógł jedynie skorzystać z kopii bezpieczeństwa i zarchiwizowanych plików dziennika powtórzeń aplikowanych dla takiej kopii.
Możliwości mechanizmu flashback można podzielić na następujące grupy:
3.3.1. Flashback Query
Pozwala zadawać zapytania o stan tabeli w określonym momencie w przeszłości. Ta cecha jest
odpowiednikiem mechanizmu Flashback znanego z Oracle9i.
3.3.2. Flashback Version Query
Pozwala śledzić zmiany wartości poszczególnych wierszy w czasie. Mechanizm ten pozwala na
zapoznanie się z aktywnością użytkowników modyfikujących interesujące nas dane. Wynikiem działania jest dokładna informacja na temat tego jak zmieniała się wartość danego atrybutu w interesującym nas przedziale czasu.
3.3.3. Flashback Transaction Query
Ten mechanizm można wykorzystać do otrzymania dodatkowych informacji dotyczących transakcji, których dane są przechowywane przez mechanizm flashback. Informacje te zawierają między
innymi treści poleceń potrzebnych do wycofania poleceń wydawanych w ramach obserwowanej
transakcji.
3.3.4. Flashback Table
Mechanizm pozwalający na przywrócenie stanu poszczególnych tabel do stanu w określonym
momencie czasu. Aby go stosować należy spełnić następujące warunki:
• Należy posiadać przywilej systemowy FLASHBACK ANY TABLE lub też obiektowy
FLASHBACK dla danej tabeli
• Należy posiadać przywileje SELECT, INSERT, DELETE, i ALTER dla tabeli
• System musi posiadać wystarczająca ilość informacji, aby mógł wykonać odtwarzanie
• Należy uaktywnić mechanizm ROW MOVEMENT (ALTER TABLE nazwa_tabeli ENABLE ROW MOVEMENT;)
40
Mariusz Masewicz
3.3.5. Flashback Drop (Recycle Bin)
W Oracle10g po wykonaniu polecenia DROP TABLE dane z tabeli nie są fizycznie usuwane, a
tylko przesuwane do specjalnego kosza, który jest kolekcją usuniętych tabel. Dopiero operacja
PURGE na koszu pozwala wyczyścić ten obszar. Tabele z kosza mogą być odpytywane w taki sam
sposób jak zwykłe tabele. Mechanizm ten jest włączony tylko dla niesystemowych, lokalnie zarządzanych przestrzeni tabel.
3.3.6. Flashback Database
Mechanizm ten może być alternatywą dla wykonywania niekompletnego odtwarzania bazy danych. Wymaga on jednak posiadania przywileju SYSDBA oraz odpowiedniego przygotowania obszaru recovery.
Podsumowanie
Powyższe zestawienie najważniejszych nowości w serwerze bazy danych Oracle10g pokazuje
wyraźna tendencję w rozwoju tego produktu. W miarę pojawiania się kolejnych wersji doskonalone
są istniejące już funkcje systemu oraz dodawany szereg funkcji, które mają ułatwić życie wszystkim
użytkownikom tego produktu. Wśród nowości każdy z użytkowników znajdzie coś dla siebie. Administratorzy bazy danych znajdą tu szereg funkcjonalności ułatwiających ich prace, programiści
ucieszą się z nowych cech języków SQL i PL/SQL a użytkownicy końcowi powinni być zadowoleni
z coraz wydajniejszych i bardziej niezawodnych aplikacji.
Przyjęta strategia rozwoju, dająca klientowi końcowemu produkt o bardzo dużych możliwościach
a jednocześnie produkt, którego administracja jest coraz prostsza sprawia, że coraz częściej te zalety
są dostrzegane nie tylko przez olbrzymie korporacje, ale także małych i średnich klientów.
Bibliografia
1. Dokumentacja bazy danych Oracle10g: Oracle Database Online Documentation 10g Release 1 (10.1)
http://otn.oracle.com/pls/db10g/portal.portal_demo3?selected=2
2. Oracle® Database 2 Day DBA 10g Release 1 (10.1) Part Number B10742-02
3. Oracle® Database Administrator's Guide 10g Release 1 (10.1) Part Number B10739-01
4. Oracle® Database Application Developer's Guide - Expression Filter 10g Release 1 (10.1) Part Number B10821-01
5. Oracle® Database Application Developer's Guide - Fundamentals 10g Release 1 (10.1) Part Number
B10795-01
6. Oracle® Database Backup and Recovery Advanced User's Guide 10g Release 1 (10.1) Part Number
B10734-01
7. Oracle® Database Backup and Recovery Basics 10g Release 1 (10.1) Part Number B10735-01
8. Oracle® Database Concepts 10g Release 1 (10.1) Part Number B10743-01
9. Oracle® High Availability Architecture and Best Practices 10g Release 1 (10.1) Part Number B1072601
10. Oracle® Database New Features Guide 10g Release 1 (10.1) Part Number B10750-01
11. Oracle® Database Performance Tuning Guide 10g Release 1 (10.1) Part Number B10752-01
12. PL/SQL Packages and Types Reference 10g Release 1 (10.1) Part Number B10802-01
13. PL/SQL User's Guide and Reference 10g Release 1 (10.1) Part Number B10807-01
14. Oracle® Database Recovery Manager Reference 10g Release 1 (10.1) Part Number B10770-01
15. Oracle® Database SQL Quick Reference 10g Release 1 (10.1) Part Number B10758-01
16. Oracle® Database SQL Reference 10g Release 1 (10.1) Part Number B10759-01
17. SQL*Plus® Quick Reference Release 10.1 Part Number B12171-01
18. SQL*Plus® User's Guide and Reference Release 10.1 Part Number B12170-01
19. Oracle® Database Upgrade Guide 10g Release 1 (10.1) Part Number B10763-01
20. Oracle® Database Utilities 10g Release 1 (10.1) Part Number B10825-01
Oracle 10g – nowe cechy
41
21. Dalszych informacji na temat poruszanych zagadnień należy szukać miedzy innymi na poniższych
stronach www:
22. http://www.oracle-base.com/
23. http://www.orafaq.com/
24. http://www.databasejournal.com/features/oracle/

Podobne dokumenty