Monitorowanie bazy danych. Migracja danych

advertisement
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
Download