230
Monitorowanie bazy danychMigracja danych
231
Plan prezentacji
Monitorowanie bazy danych
– AWR– ADDM– Metryki– Alerty
Migracja danych
– Data pump– Export/Import– SQL*Loader– External tables– Transportable
tablespaces– SQL*Plus– SQL Developer– RMAN - Duplicate
232
Automatic Workload Repository (1/5)
• 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)
233
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
234Infrastruktura mechanizmów monitorowania i diagnostyki
AWR
Podpowiadacze (advisor)
Automatycznedziałania
Alerty
Wiedza na temat
historii bazy danych
Automatyczne zbieranie
statystyk
Bezpośredni dostęp do
pamięci instancji
AutomaticDiagnostic Repository
Błędy krytyczne
Działania proaktywne
Działania reaktywne
235
Automatic Workload Repository (3/5)
• 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
Advisor, ...)
– DIAGNOSTIC (AWR, ADDM, ...)
– NONE
236
Automatic Workload Repository (4/5)
• Statystyki zbierane przez AWR obejmująnastępujące aspekty pracy bazy danych: – 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)
237
Automatic Workload Repository (5/5)
• Konfiguracja:– OEM -> Server ->
AWR
• Raporty:– OEM -> Server ->
AWR -> Run AWR Report
• Zebranie statystyk –ręcznie– OEM -> Server ->
AWR -> Snapshots
238
AWR – lista zebranych migawek
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
239
AWR - raport
240
AWR - raport241Automatic Database Diagnostic Monitor
(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
242Automatic Database Diagnostic Monitor (2/3)
• Typowe podpowiedzi dotyczą:– 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
243Automatic Database Diagnostic Monitor (3/3)
• Uruchamianie ADDM:– 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ń
244ADDM – informacje na stronie głównej EM
245
ADDM – wyniki analizy
246
ADDM – raport (fragment)247
ADDM – problemy i rekomendacje
• Proponowane rozwiązania zawierająinformacje o:– problemie– symptomach– dodatkowe informacje o problemie
• Aplikowanie zaproponowanych zmian:– OEM -> ADDM Findings
248
ADDM – problemy i rekomendacje249
ADDM – problemy i rekomendacje
250
ADDM – historia znalezionego problemu251
Metryki (1/2)
• 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)
252
Metryki (2/2)
• 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
253
Metryki – spis metryk
254
Metryki - przykłady255
Alerty (1/2)
• 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
256
Alerty (2/2)
• 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
257
Alerty – konfiguracja progów
258
Alerty – automatyczne działania naprawcze259
Alerty – powiadomienia
• 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
260
Alerty – strona główna EM261
Alerty – konfiguracja powiadomień
262
Alerty – opis problemu263
Historia alertów
– OEM -> Alert History
264
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)
265
Migracja danych
266
Migracja danych w EM267Ładowanie danych:
ścieżka bezpośrednia a konwencjonalna
Ś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
Tabela
zapisy do pliku
HWM
insert
268
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
269
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
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
271
Data Pump - zalety
– 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
Plikiwynikowe
Baza danych
Data Pumpjob
Źródło
Mastertable
Processerwera
Plikiwynikowe
Proces serwera
Cel
Data Pumpjob
impdp
Baza danych
Mastertable
Databaselink
“Tryb sieciowy”
273
Data Pump
• Tryby pracy– 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
274
Data Pump – eksport (1/3)275
Data Pump – eksport (2/3)
276
Data Pump – eksport (3/3)277
Data Pump – import danych (1/3)
278
Data Pump – import danych (2/3)279
Data Pump – import danych (3/3)
280Data Pump – import danych z innej baz danych
281
Export/Import (1/4)
• 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
282
Export/Import (2/4)
• 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
283
Export/Import (3/4)
• Tryb uruchamiania: – interaktywny– parametry w linii poleceń– parametry w pliku parametrów
• Tryby pracy:– cała baza danych– przestrzeń tabel– schemat użytkownika– tabela
284
Export/Import (4/4)
• 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
285
SQL*Loader
• Ł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 Plik sterujący
SQL*Loader
Log
Wstawione
Wybrane
Niepoprawne
Niepoprawne
Niepoprawne
Selekcja danychPoprawne
Odrzucone
Odrzucone
Przygotowanie danych
Oracle server
287
SQL*Loader (1/6)
288
SQL*Loader (2/6)289
SQL*Loader (3/6)
290
SQL*Loader (4/6)291
SQL*Loader (5/6)
292
SQL*Loader (6/6)293SQL*Loader
– wygenerowany skrypt sterującyLOAD 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
)
294
SQL*Plus (1/2)
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 empwhere ...order by …;
SQL> SPOOL OFF
295
SQL*Plus (2/2)
Export do formatu CSVSQL> SPOOL c:\emp.csvSQL> select col1 || ‘,’ || col2 || ‘,’ ||col3… from emp;SQL> SPOOL OFF
Eksport do postaci skryptu w języku SQLSQL> SPOOL c:\emp.sqlSQL> select ‘insert into nowe_emp (col1, col2, col2)
values (’ || col1 || ‘,’ || col2 || ‘,’ ||col3|| ‘);’ from emp;SQL> SPOOL OFF
Wsadowe uruchomienie skryptuC:\> sqlplus -S scott/tiger@ploug c:\emp.sql
296
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)
297
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
298
External tables (3/4)
CREATE TABLE emp_ext(first_name, last_name, department_name)
ORGANIZATION EXTERNAL(
TYPE ORACLE_DATAPUMPDEFAULT DIRECTORY ext_dirLOCATION ('emp1.exp','emp2.exp','emp3.exp')
)PARALLELASSELECT e.first_name,e.last_name,d.department_nameFROM employees e, departments dWHERE e.department_id = d.department_id AND
d.department_name in('Marketing', 'Purchasing');
299
External tables (4/4)
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
Transportable tablespaces (1/8)
• 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
• 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
301
Transportable tablespaces (2/8)
• 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
Minimum Compatibility Setting
Source Database Target Database
Transport Scenario
Databases on the same platform 8.0 8.0
Tablespace with different database block 9.0 9.0size than the target database
Databases on different platforms 10.0 10.0
302
Transportable tablespaces (3/8)
Przestrzenie tabel w stanie read-only
Tak
Czy źródło i cel używają tego samego standardu
endian?
Eksport metadanych – export/Data Pump
Konwersja plików przyprzez program RMAN (10g)
Dostarczenie plików do bazy docelowej
Import metadanych
Przestrzenie tabel w stanie odczyt-zapis
Nie
Źródło
Cel
303
Transportable tablespaces (4/8)
304
Transportable tablespaces (5/8)305
Transportable tablespaces (6/8)
306
Transportable tablespaces (7/8)307
Transportable tablespaces (8/8)
308
SQL Developer (1/3)
Import DataExport DataExport DDL
Excel TEXTCSV
INSERTLOADER
XMLHTMLXLS
Eksport/Import danych i definicji
pojedynczej tabeli
Save to fileSave to
worksheetSave to
clipboard
309
SQL Developer (2/3)
Eksport definicji i danych wielu obiektów
310
SQL Developer (3/3)
Wybór obiektów, które majązostać wyeksportowane oraz warunków, które mają spełniaćeksportowane dane
311
RMAN – Duplicate (1/3)
• 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:– mieć zmienioną nazwę– mieć zmieniony numer seryjny– zostać uruchomiony na innym serwerze lub w innym
katalogu $ORACLE_HOME
312
RMAN – Duplicate (2/3)
1. Tworzenie pliku hasłowego dla bazy danych auixiliary2. Nawiązanie połączenia z instancją auixiliary (protokół
SQL*Net)3. Stworzenie pliku parametrów dla instancji auixiliary4. Uruchomienie instancji auixiliary w trybie NOMOUNT5. Uruchomienie źródłowej bazy danych6. Sprawdzenie dostępności kopi archiwalnych źródłowej bazy
danych7. Alokacja kanałów auxiliary przez program RMAN8. Wykonanie polecenia DUPLICATE
313
RMAN – Duplicate (3/3)