230 231 Plan prezentacji Monitorowanie bazy danych – AWR – ADDM – Metryki – Alerty Monitorowanie bazy danych Migracja danych Automatic Workload Repository (1/5) 232 • Baza danych generuje wiele różnego rodzaju statystyk wydajnościowych • Statystyki wydajnościowe, to dane, opisujące np.: – – – – działanie systemu sesje użytkowników, zapytania serwisów • AWR pozwala zautomatyzować proces zbierania tych dynamicznie zmieniających się statystyk (dla wersji wcześniejszych niż 10g patrz -> statpack) • Domyślnie statystyki: – zbierane są co godzinę – przechowywane w bazie danych przez 8 dni (7 dni dla 10g) Migracja danych – – – – – Data pump Export/Import SQL*Loader External tables Transportable tablespaces – SQL*Plus – SQL Developer – RMAN - Duplicate Automatic Workload Repository (2/5) • Statystyki systemowe mają charakter narastający – zerowane w momencie startu instancji – później ich wartości tylko przyrastają • Źródłem statystyk są między innymi dynamiczne perspektywy • Zebrane wyniki mogą być analizowane przez użytkowników albo przez narzędzia wspomagające proces administrowania bazy danych 233 Infrastruktura mechanizmów monitorowania 234 i diagnostyki Działania proaktywne Podpowiadacze (advisor) Alerty AWR Błędy krytyczn e Automatic Diagnostic Repository Wiedza na temat Automatyczne zbieranie Bezpośredni dostęp do historii bazy danych statystyk pamięci instancji Automatic Workload Repository (4/5) Advisor, ...) – DIAGNOSTIC – NONE 236 • Statystyki zbierane przez AWR obejmują następujące aspekty pracy bazy danych: – – – – – 235 • Poziom szczegółowości zbieranych statystyk reguluje parametr inicjalizacyjny: STATISTICS_LEVEL, który może przyjmować wartości: – BASIC – TYPICAL – ALL • Dodatkowo można skonfigurować parametr: CONTROL_MANAGEMENT_PACK_ACCESS, Może on przyjmować wartości: – DIAGNOSTIC+TUNING (SQL Tuning Advisor, SQLAccess Działania reaktywne Automatyczne działania Automatic Workload Repository (3/5) Time Model Statistics Wait Event Statistics Session and System Statistics Active Session History Statistics High-Load SQL Statistics • Repozytorium AWR stanowi podstawę działania wszystkich mechanizmów automatycznego strojenia bazy danych (advisors) (AWR, ADDM, ...) Automatic Workload Repository (5/5) • Konfiguracja: – OEM -> Server -> AWR • Raporty: – OEM -> Server -> AWR -> Run AWR Report • Zebranie statystyk – ręcznie – OEM -> Server -> AWR -> Snapshots 237 AWR – lista zebranych migawek 238 AWR - raport 239 Ręczne zebranie migawki Raport na podstawie zawartości migawki –należy wskazać migawkę początkową i końcową – pomiędzy wskazanymi migawkami nie mogło wystąpić wyłączenie bazy danych AWR - raport 240 Automatic Database Diagnostic Monitor 241 (1/3) • Uruchamiany automatycznie po każdym zebraniu danych przez AWR • Wykrywa i raportuje problemy z bazą danych • Do swojego działania wykorzystuje repozytorium AWR • Wynik działania jest prezentowany na stronie głównej konsoli OEM • Przeglądanie wyników działania ADDM pozwala na szybkie zidentyfikowanie potencjalnego zagrożenia dla bazy danych • Podpowiedzi zawierają informacje na temat kroków, jakie musi podjąć administrator bazy danych aby zminimalizować zagrożenie Automatic Database Diagnostic Monitor 242 (2/3) 243 (3/3) • Typowe podpowiedzi dotyczą: • Uruchamianie ADDM: – modyfikacji sprzętu (pamięć, procesory, dyski, ...) – zmiany oprogramowania zarówno Oracle (strojenie) jak i zewnętrznego do bazy danych – zmian w schemacie bazy danych – zmiany logiki aplikacji (cache dla sekwencji, zmienne wiązania) – uruchomienia innego advisora ADDM – informacje na stronie głównej EM Automatic Database Diagnostic Monitor 244 – OEM -> Performance -> Snapshots -> Run ADDM – OEM -> Advisor Central-> ADDM • Następnie określa się zakres „dat” (numery migawek mechanizmu AWR) których ma dotyczyć analiza • Analiza uzyskanych wyników: – na stronie głównej OEM, pozycja: ADDM Findings – OEM -> Advisor Central -> historia uruchomień ADDM – wyniki analizy 245 ADDM – raport (fragment) 246 ADDM – problemy i rekomendacje 247 • Proponowane rozwiązania zawierają informacje o: – problemie – symptomach – dodatkowe informacje o problemie • Aplikowanie zaproponowanych zmian: – OEM -> ADDM Findings ADDM – problemy i rekomendacje 248 ADDM – problemy i rekomendacje 249 ADDM – historia znalezionego problemu 250 Metryki (1/2) 251 • Dynamiczne statystyki wydajnościowe informują o liczbie zdarzeń (odczyty/zapisy danych, dane wysłane/odebrane przez sieć, liczba zapytań użytkownika, …), które miały miejsce od uruchomienia instancji bazy danych • Dynamiczne statystyki w żaden sposób nie informują jednak o tym, jak uzyskana wartość narastała w czasie (czy obecnie mamy tendencje wzrostową, czy też od dłuższego czasu dane zdarzenie w ogóle nie występowało) Metryki (2/2) 252 • Metryki informują nas o tym, jak wartość danej statystyki zmieniała się w ostatniej jednostce czasu • Metryki przeważnie reprezentują informacje o przyroście danej wartości w zdefiniowanej jednostce czasu (różnej dla różnych metryk) • AWR przechowuje w swoim repozytorium wartości metryk • OEM -> Related Links -> All Metrics Metryki – spis metryk 253 Metryki - przykłady 254 Alerty (1/2) 255 • Baza danych Oracle (10g) została wyposażona w infrastrukturę pozwalającą na informowanie administratora o zbliżającym się niebezpieczeństwie • Alert jest generowany, gdy wartość metryki przekroczy wartość skonfigurowanego progu • Automatyczne alerty dotyczą błędów: – zajętości przestrzeni tabel – Snapshot Too Old – mało miejsca w obszarze Recovery Area Alerty (2/2) 256 • Alerty mogą być zgłaszane na jednym z dwóch poziomów ważności: – ostrzeżenie (warning) – krytyczny (critical) • Progi dla których generowane są alerty mogą być konfigurowane przez administratora • OEM -> Related Links -> Metric and policy settings • Z każdym alertem może być związane automatyczne działanie korekcyjne Alerty – konfiguracja progów 257 258 Alerty – automatyczne działania naprawcze Alerty – powiadomienia 259 • Informacje o alertach: – są wyświetlane na stronie głównej EM – mogą być wysyłane do administratorów przy pomocy poczty elektronicznej – mogą powodować uruchomienie procedury PL/SQL lub programu w systemie operacyjnym Alerty – strona główna EM 260 Alerty – konfiguracja powiadomień 261 Alerty – opis problemu 262 Historia alertów 263 – OEM -> Alert History Alerty – obsługa • W zależności od typu alertu administrator powinien naprawić zgłoszony problem, a nastepnie: – system automatycznie zauważy zmiany i „wygasi” alert – administrator musi ręcznie „wygasić” alert (na stronie z opisem szczegółów alertu) 264 265 Migracja danych Migracja danych w EM 266 Ładowanie danych: ścieżka bezpośrednia a konwencjonalna zapisy do pliku insert Tabela Data Pump (1/3) • Wbudowana w bazę danych (od wersji 10g) funkcjonalność odpowiadająca za przenoszenie danych pomiędzy bazami danych Oracle • Pozwala na bezpośrednie lub pośrednie (za pomocą wynikowego pliku z danymi) przenoszenie danych bez względu na: – wersję serwera bazy danych (wymagane 10g lub wyższe) – system operacyjnym na którym działa ten serwer HWM Ścieżka konwencjonalna Ścieżka bezpośrednia Polecenia COMMIT Bezpośredni (szybki) zapis do plików Dane redo zawsze generowane Dane redo mogą być generowane Sprawdzane wszystkie ograniczenia integralnościowe Sprawdzane tylko: PRIMARY KEY, UNIQUE, oraz NOT NULL Powoduje uruchomienie odpowiednich wyzwalaczy Nie uruchamia wyzwalaczy Umożliwia ładowanie do tabel w klastrach Nie obsługuje tabel w klastrach Inni użytkownicy normalnie korzystają (modyfikują) tabelę Tabela zablokowana przed możliwością wprowadzania zmian przez użytkownikow 268 267 Data Pump (2/3) • Wewnątrz bazy danych działanie tego mechanizmu kontroluje pakiet: – DBMS_DATAPUMP • Na zewnątrz interfejs do Data Pump zapewniają narzędzia: – expdp/impdp – dostępne z poziomu linii komend systemu operacyjnego, pracujące w trybie: • interaktywnym • parametry przekazane w linii polecenia • parametry w pliku parametrów – Strony EM • OEM -> Data Movement-> Export to/Import from Export files 269 270 Data Pump (3/3) • Wspiera działania wykonywane przy pomocy ścieżki bezpośredniej i konwencjonalnej • Pozwala na zdefiniowanie zadania, a następnie na dowolne odłączanie i dołączanie się do bazy danych w celu sprawdzenia: – postępu prac – informacji o błędach – wstrzymania/wznowienia wykonywania prac Cel Źródło Data Pump job Proces serwera Baza danych Baza danych Pliki wynikowe Master table Master table Pliki wynikowe “Tryb sieciowy” Proces serwera Data Pump • Tryby pracy Database link Data Pump job impdp 271 – Możliwość określenia, która tabela oraz które dane przenosić (warunek lub losowa próbka danych) – Jawna specyfikacja wersji docelowej bazy danych – Równoległe wykonywanie operacji – Szacowanie czasu wykonywania operacji – Tryb sieciowy dla środowisk rozproszonych – Możliwość wyspecyfikowania parametrów importu, różnych od parametrów eksportu (remapping) – Próbkowanie danych – Kompresja danych i metadanych – Szyfrowanie danych – Obsługa XMLowych typów danych 272 Data Pump – architektura expdp Data Pump - zalety – – – – – baza danych schemat tabela przestrzeń tabel metadane mechanizmu Transportable tablespace • Przykładowe wywołanie (linia poleceń): expdp hr/hr FULL=y DUMPFILE=dp_dir1:full1%U.dmp, dp_dir2:full2%U.dmp FILESIZE=2G PARALLEL=3 LOGFILE=dp_dir1:expfull.log JOB_NAME=expfull 273 Data Pump – eksport (1/3) Data Pump – eksport (3/3) 274 276 Data Pump – eksport (2/3) Data Pump – import danych (1/3) 275 277 Data Pump – import danych (2/3) Data Pump – import danych z innej baz danych 278 280 Data Pump – import danych (3/3) Export/Import (1/4) 279 281 • Przed wersją Oracle 10g były to podstawowe narzędzia do przenoszenia danych pomiędzy bazami danych Oracle (niezależność od wersji i platformy) • Obecnie zaleca się stosowanie Data Pump • Uruchamiane z linii poleceń z poziomu serwera lub dowolnego klienta bazy danych – Programy exp i imp Export/Import (2/4) 282 – interaktywny – parametry w linii poleceń – parametry w pliku parametrów • Tryby pracy: – cała baza danych – przestrzeń tabel – schemat użytkownika – tabela 284 • Oprócz schematu i danych tabel narzędzia przenoszą pozostałe obiekty bazy danych: – – – – – – – składowane procedury, funkcje, pakiety wyzwalacze perspektywy statystyki obiektów pgraniczenia integralnościowe indeksy … • Często wykorzystywane jako element „logicznej” kopii bezpieczeństwa bazy danych 283 • Tryb uruchamiania: • Plik danych – binarny, ale zawiera dane w postaci „odczytywalnej” dla człowieka • Plik danych na maszynie na której uruchomiono narzędzie • Operacje wykonywane przy uruchomionej bazie danych • Praca w trybie ścieżki konwencjonalnej i bezpośredniej Export/Import (4/4) Export/Import (3/4) SQL*Loader 285 • Ładuje dane z zewnętrznego pliku do bazy danych • Wymaga przygotowania pliku opisującego format danych wejściowych i sposób ich ładowania do tabel w bazie danych • Pracuje w trybie ścieżki bezpośredniej i konwencjonalnej • Uruchamiany z poziomu linii poleceń – sqlldr • lub EM – OEM -> Data Movement-> Load data from user files 286 SQL*Loader – architektura Dane wejściowe SQL*Loader (1/6) 287 Plik sterujący Odrzucone SQL*Loader Przygotowanie danych Poprawne Selekcja danych Niepoprawne Wybrane Niepoprawne Oracle server Odrzucone Wstawione Niepoprawne Log SQL*Loader (2/6) 288 SQL*Loader (3/6) 289 SQL*Loader (4/6) SQL*Loader (6/6) 290 292 SQL*Loader (5/6) SQL*Loader – wygenerowany skrypt sterujący LOAD DATA APPEND INTO TABLE hr.employees_loader FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ( EMPLOYEE_ID INTEGER EXTERNAL, FIRST_NAME CHAR, LAST_NAME CHAR, EMAIL CHAR, PHONE_NUMBER CHAR, HIRE_DATE DATE, JOB_ID CHAR, SALARY INTEGER EXTERNAL, COMMISSION_PCT INTEGER EXTERNAL, MANAGER_ID INTEGER EXTERNAL, DEPARTMENT_ID INTEGER EXTERNAL ) 291 293 SQL*Plus (1/2) 294 SQL*Plus (2/2) 295 Export do formatu CSV Konfiguracja ustawień narzędzia SQL*Plus SQL> SET ECHO OFF SQL> SET NEWPAGE 0 SQL> SET SPACE 0 SQL> SET PAGESIZE 0 SQL> SET FEEDBACK OFF SQL> SET HEADING OFF Eksport do pliku z danymi rozdzielonymi znakami tabulacji SQL> SPOOL c:\emp.txt SQL> select … from emp where ... order by …; SQL> SPOOL OFF External tables (1/4) • Pozwalają na reprezentowanie danych zapisanych w plikach zewnętrznych w stosunku do bazy danych w sposób „udający” relacyjna tabelę • Do ładowania danych wykorzystuje SQL*Loader lub Data Pump • Utworzone w ten sposób tabele zezwalają tylko na odczyt danych (SELECT) SQL> SPOOL c:\emp.csv SQL> select col1 || ‘,’ || col2 || ‘,’ ||col3… from emp; SQL> SPOOL OFF Eksport do postaci skryptu w języku SQL SQL> SPOOL c:\emp.sql SQL> select ‘insert into nowe_emp (col1, col2, col2) values (’ || col1 || ‘,’ || col2 || ‘,’ ||col3|| ‘);’ from emp; SQL> SPOOL OFF Wsadowe uruchomienie skryptu C:\> sqlplus -S scott/tiger@ploug c:\emp.sql 296 External tables (2/4) • Każdorazowe zapytanie do tabeli zewnętrznej uruchamia narzędzie „ładujące” dane • Dane te nie są w żaden sposób utrwalane w bazie danych • Wszystkie zmiany w plikach źródłowych będą odzwierciedlane przez wyniki kolejnych zapytań do tabeli zewnętrznej • Data Pump pozwala na jednorazowe zapisanie danych w pliku (CREATE TABLE AS SELECT) i później na traktowanie takiego pliku jako tabeli zewnętrznej 297 External tables (3/4) 298 CREATE TABLE emp_ext (first_name, last_name, department_name) ORGANIZATION EXTERNAL ( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY ext_dir LOCATION ('emp1.exp','emp2.exp','emp3.exp') ) PARALLEL AS SELECT e.first_name,e.last_name,d.department_name FROM employees e, departments d WHERE e.department_id = d.department_id AND d.department_name in ('Marketing', 'Purchasing'); Transportable tablespaces (1/8) CREATE TABLE extab_employees (employee_id NUMBER(4), first_name VARCHAR2(20), last_name VARCHAR2(25), hire_date DATE) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY extab_dat_dir ACCESS PARAMETERS ( records delimited by newline badfile extab_bad_dir:'empxt%a_%p.bad' logfile extab_log_dir:'empxt%a_%p.log' fields terminated by ',' missing field values are null ( employee_id, first_name, last_name, hire_date char date_format date mask "dd-mon-yyyy“)) LOCATION ('empxt1.dat', 'empxt2.dat') ) PARALLEL REJECT LIMIT UNLIMITED; 300 • Najszybszy sposób przenoszenia danych pomiędzy bazami danych Oracle • Polega na kopiowaniu plików danych z bazy źródłowej do docelowej • Razem z plikami danych należy przenieść metadane opisujące zawartość plików – export odpowiednich struktur słownikowych Transportable tablespaces (2/8) 301 • W kolejnych wersjach bazy danych zmniejszane są kolejne ograniczenia dotyczące możliwości transportu pomiędzy różnymi platformami: system operacyjny/hardware • Perspektywa v$transportable_platform zawiera informacje o obsługiwanych platformach i stosowanych na nich formatach endian • W zależności od wersji baz wspierane są różne kombinacje wersji bazy źródłowej i docelowej – jeżeli bazą docelową jest baza w wersji 11g, to źródłem może być baza o wartości parametru COMPATIBLE =10.0.0 299 External tables (4/4) Minimum Compatibility Setting Source Database Target Database Transport Scenario Databases on the same platform Tablespace with different database block size than the target database Databases on different platforms 8.0 9.0 10.0 8.0 9.0 10.0 Transportable tablespaces (3/8) Źródło 302 Transportable tablespaces (4/8) 303 Przestrzenie tabel w stanie read-only Eksport metadanych – export/Data Pump Czy źródło i cel używają tego samego standardu endian? Tak Nie Konwersja plików przy przez program RMAN (10g) Dostarczenie plików do bazy docelowej Import metadanych Cel Przestrzenie tabel w stanie odczyt-zapis Transportable tablespaces (5/8) 304 Transportable tablespaces (6/8) 305 Transportable tablespaces (7/8) 308 SQL Developer (1/3) Excel Import Data Export Data Export DDL Eksport/Import danych i definicji pojedynczej tabeli Save to file Save to worksheet Save to clipboard 306 Transportable tablespaces (8/8) SQL Developer (2/3) TEXT CSV INSERT LOADER XML HTML XLS Eksport definicji i danych wielu obiektów 307 309 SQL Developer (3/3) 310 RMAN – Duplicate (1/3) 311 • Polecenie Duplicate programu RMAN pozwala stworzyć bazę danych będącą kopią bazy źródłowej • Wykorzystuje kopie archiwalne duplikowanej bazy danych • Duplikat bazy danych może: Wybór obiektów, które mają zostać wyeksportowane oraz warunków, które mają spełniać eksportowane dane – mieć zmienioną nazwę – mieć zmieniony numer seryjny – zostać uruchomiony na innym serwerze lub w innym katalogu $ORACLE_HOME RMAN – Duplicate (2/3) 312 1. Tworzenie pliku hasłowego dla bazy danych auixiliary 2. Nawiązanie połączenia z instancją auixiliary (protokół SQL*Net) 3. Stworzenie pliku parametrów dla instancji auixiliary 4. Uruchomienie instancji auixiliary w trybie NOMOUNT 5. Uruchomienie źródłowej bazy danych 6. Sprawdzenie dostępności kopi archiwalnych źródłowej bazy danych 7. Alokacja kanałów auxiliary przez program RMAN 8. Wykonanie polecenia DUPLICATE RMAN – Duplicate (3/3) 313