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/