Oracle Database 11g.
Nowe mo¿liwoœci
Autorzy:
, Arup Nanda
T³umaczenie: Kamila Primke
ISBN: 978-83-246-1857-6
Tytu³ orygina³u:
New Features (Osborne Oracle Press)
Format: 168237, stron: 344
Zaufaj najlepszym technologiom gromadzenia danych!
• Jak zainstalowaæ now¹ wersjê bazy lub zaktualizowaæ star¹?
• Jakie nowoœci kryje Oracle 11g?
• Jak zapewniæ bazie najwy¿sz¹ wydajnoœæ oraz bezpieczeñstwo?
Byæ mo¿e bêdzie Ci trudno w to uwierzyæ, ale baza danych firmy Oracle ma ju¿ blisko
trzydziestkê! Pierwsze wydanie tej prawdopodobnie najlepszej bazy danych na œwiecie
datuje siê na 1979 rok. Przez te trzydzieœci lat rozwi¹zanie to zdoby³o sobie niezliczonych
zwolenników, wyznaczy³o standardy i zosta³o wdro¿one wszêdzie tam, gdzie wymagana
jest najwiêksza niezawodnoœæ i wydajnoœæ. Synonimem tych dwóch s³ów mo¿e byæ
w³aœnie Oracle!
W tej ksi¹¿ce poza opisem nowych funkcji znajdziesz szereg informacji na temat
sposobu instalacji Oracle Database 11g lub uaktualnienia istniej¹cej wersji do najnowszej.
Dziêki „Oracle Database 11g. Nowe mo¿liwoœci” dowiesz siê, jak wykorzystaæ funkcje
automatycznego zarz¹dzania pamiêci¹. Ponadto poznasz dostêpne narzêdzia doradcze
(Oracle Database Advisors), a tak¿e nauczysz siê zapewniaæ bazie najwy¿sz¹ wydajnoœæ
i bezpieczeñstwo. Je¿eli masz jakiekolwiek w¹tpliwoœci co do tego, czy warto zacz¹æ
u¿ywaæ nowej wersji bazy Oracle, ta ksi¹¿ka z pewnoœci¹ je rozwieje!
• Instalacja Oracle 11g
• Sposoby aktualizacji do wersji 11g
• Charakterystyka nowych w³asnoœci zarz¹dzania
• Wykorzystanie Automatic Memory Management
• Zastosowanie mechanizmu AutoTask
• Zapewnienie dostêpnoœci oraz sposoby przywracania danych
• Wykorzystanie narzêdzi doradczych (Oracle Database Advisors)
• Sposoby u¿ycia narzêdzia SQL Performance Analyzer
• Zapewnienie bezpieczeñstwa danym zgromadzonym w bazie
• Zestawienie najlepszych w³asnoœci Oracle 11g
Wykorzystaj nowe mo¿liwoœci bazy Oracle!
Spis treci
O autorze ................................................................................................. 11
O wspóautorze ........................................................................................ 13
O redaktorze technicznym ........................................................................ 15
Przedmowa .............................................................................................. 17
Podzikowania ......................................................................................... 19
Wstp ...................................................................................................... 21
Rozdzia 1. Oracle 11g, zaczynamy ............................................................................. 23
Instalacja Oracle Database 11g ....................................................................................................24
Asystent Konfiguracji Bazy Danych ...........................................................................................25
Uaktualnienie do Oracle Database 11g ........................................................................................25
Oszczdzanie czasu przy uaktualnianiu .................................................................................26
Wspierane cieki aktualizacji ..............................................................................................29
Wspierane metody aktualizacji ..............................................................................................29
Aktualizacja z DBUA ............................................................................................................30
Rczna aktualizacja ...............................................................................................................36
Eksportowanie i importowanie w celu aktualizacji bd jej wycofania ................................41
Zmiany w parametrach Oracle .....................................................................................................43
Nowe parametry ....................................................................................................................43
Parametry niezalecane ...........................................................................................................45
Parametry przestarzae ..........................................................................................................45
Dziwactwa parametru undo_management .............................................................................46
Zmiany w widokach sownikowych ............................................................................................46
Sowo na koniec ..........................................................................................................................46
Rozdzia 2. Nowe wasnoci zarzdzania ..................................................................... 47
Zmiany i nowe wasnoci w ASM ...............................................................................................47
Nowa dokumentacja ASM ....................................................................................................48
Atrybuty grup dyskowych ASM ............................................................................................48
ASM Fast Disk Resync .........................................................................................................49
Opcje kompatybilnoci ASM ................................................................................................50
Preferowane odczyty lustrzane ASM ....................................................................................51
ASM rolling upgrade .............................................................................................................52
Wsparcie ASM dla jednostek alokacji o zmiennym rozmiarze .............................................53
Nowa rola SYSASM .............................................................................................................53
Nowe polecenia narzdzia asmcmd .......................................................................................53
6
Oracle Database 11g. Nowe moliwoci
Automatic Memory Management ................................................................................................56
Przegld Automatic Memory Management ...........................................................................56
Nowe funkcje w Memory Advisor i nowe widoki .................................................................59
W jaki sposób Oracle zarzdza pamici? .............................................................................60
Automatic Memory Management i OEM ..............................................................................60
Przejcie na Automatic Memory Management ......................................................................60
Nowe wasnoci ADDM ..............................................................................................................61
Nowe widoki ADDM ............................................................................................................61
Wspóistnienie RAC i ADDM ...............................................................................................62
Zarzdzanie ADDM poprzez dbms_addm ............................................................................63
Klasyfikacja znalezisk ...........................................................................................................64
Dyrektywy .............................................................................................................................65
Nowe wasnoci AWR .................................................................................................................67
Domylna retencja migawek AWR .......................................................................................67
Nowe wasnoci linii bazowych AWR ..................................................................................67
Adaptacyjne progi metryk .....................................................................................................71
AutoTask — planowanie zautomatyzowanych zada utrzymania ...............................................72
Architektura AutoTask ..........................................................................................................72
Widoki danych sownikowych dla AutoTask ........................................................................73
Zarzdzanie zadaniami AutoTask poprzez OEM ..................................................................75
Rczne zarzdzanie zadaniami AutoTask .............................................................................78
Okna utrzymania AutoTask ...................................................................................................78
Zmiany i nowe wasnoci w zarzdzaniu plikiem parametrów ....................................................79
Obsuga bdów odczytu/zapisu do SPFILE .........................................................................79
Prostsze przejcie na wykorzystywanie plików SPFILE .......................................................80
Zabezpieczenie przed ustawianiem przez uytkowników nieprawidowych wartoci
w plikach SPFILE ...............................................................................................................80
Zmiany i nowe wasnoci w Resource Managerze ......................................................................80
Kalibracja wejcia/wyjcia ....................................................................................................81
Domylny plan utrzymania ....................................................................................................82
Wbudowane plany zasobów ..................................................................................................83
Statystyki Resource Managera w AWR ................................................................................83
Nowe wasnoci dyrektyw planu Resource Managera ..........................................................83
Zalenoci drobnoziarniste ..........................................................................................................85
Obecnie domylna opcja DDL WAIT .........................................................................................85
Nowa funkcjonalno dodawania kolumn ...................................................................................87
Sowo na koniec ..........................................................................................................................87
Rozdzia 3. Nowe wasnoci dostpnoci i odtwarzania ............................................... 89
Infrastruktura diagnozowania bdów ..........................................................................................89
Automatic Diagnostic Repository (ADR) .............................................................................90
Dziennik alertów ...................................................................................................................91
Pliki ladu, pliki zrzutu, pliki core .........................................................................................92
Support Workbench ...............................................................................................................92
Nowe wasnoci RMAN ............................................................................................................105
Zrównoleglenie interplikowej archiwizacji .........................................................................105
Szybsza kompresja archiwizacji ..........................................................................................107
Aktywna duplikacja bazy danych ........................................................................................107
Udoskonalona obsuga dugoterminowych archiwizacji .....................................................110
Przeczenie awaryjne kopii zapasowej zarchiwizowanych plików
dziennika powtórze .........................................................................................................111
Ulepszona polityka usuwania zarchiwizowanych plików dziennika powtórze .................111
Ulepszenia w katalogu odtwarzania ....................................................................................112
Optymalizacja archiwizacji wycofania ................................................................................113
Spis treci
7
Zwikszenie wydajnoci odtwarzania pojedynczych bloków danych
(Block Media Recovery) ...................................................................................................113
Pozostae nowe wasnoci RMAN ......................................................................................114
Nowe wasnoci powizane z mechanizmem Flashback ...........................................................115
Oracle Flashback Transaction Backout ...............................................................................115
Oracle Flashback Data Archives .........................................................................................118
Nowe wasnoci rezerwowych baz danych (Standby Database) ................................................123
Detekcja utraconego zapisu .................................................................................................123
Kompresja zarchiwizowanych plików dziennika powtórze ...............................................124
Moliwoci zapyta czasu rzeczywistego w fizycznej rezerwowej bazie danych ...............124
Migawkowe bazy danych ....................................................................................................124
Nowe wasnoci Oracle Data Pump ...........................................................................................125
Ustalenie narzdzia exp niezalecanym ................................................................................126
Kompresja zbiorów plików zrzutu ......................................................................................126
Udoskonalenie szyfrowania w Data Pump ..........................................................................127
Remapowanie danych w Data Pump (zaciemnianie) ...........................................................127
Zmiana nazwy tabeli z Data Pump ......................................................................................128
Data Pump i tabele partycjonowane ....................................................................................128
Nadpisywanie plików zrzutu ...............................................................................................129
Parametr data_options w Data Pump ...................................................................................129
Parametr transportable .........................................................................................................130
Sowo na koniec ........................................................................................................................130
Rozdzia 4. Narzdzia doradcze (Oracle Database Advisors) ....................................... 131
Data Recovery Advisor .............................................................................................................131
SQL Repair Advisor ............................................................................................................141
SQL Access Advisor ...........................................................................................................142
Streams Performance Advisor .............................................................................................146
Widoki narzdzi doradczych w Oracle Database 11g .........................................................147
Sowo na koniec ........................................................................................................................148
Rozdzia 5. Zarzdzanie zmianami ............................................................................ 149
Database Replay ........................................................................................................................149
Uywanie Oracle Database Replay .....................................................................................150
Przegld Database Replay ...................................................................................................150
Moliwoci i ograniczenia przechwytywania obcienia przez Database Replay ...............151
Database Replay — przechwytywanie obcienia ..............................................................152
Database Replay — przetwarzanie wstpne przechwycenia obcienia .............................163
Database Replay — odtwarzanie obcienia .......................................................................166
SQL Performance Analyzer .......................................................................................................177
Wprowadzenie do SQL Performance Analyzer ...................................................................178
SQL Performance Analyzer w OEM ...................................................................................178
SQL Performance Analyzer z wykorzystaniem procedur PL/SQL .....................................184
Sowo na koniec ........................................................................................................................189
Rozdzia 6. Bezpieczestwo ..................................................................................... 191
Monitorowanie ..........................................................................................................................191
Wasnoci hase .........................................................................................................................192
Ustawienia hase i profil domylny .....................................................................................192
Zoono hase ...................................................................................................................193
Wraliwo na wielko liter ...............................................................................................193
Zapobieganie wamaniom poprzez opónienie logowania po nieudanych próbach ............194
Zmiany w haszowaniu hase ................................................................................................196
Uywanie hase domylnych ...............................................................................................196
8
Oracle Database 11g. Nowe moliwoci
Drobnoziarnista kontrola dostpu (FGAC) w usugach sieciowych ..........................................197
Tworzenie ACL oraz definiowanie powizanych z list uprawnie ....................................197
Przypisywanie ACL do hostów w sieci ...............................................................................198
Widoki sownikowe dla ACL ..............................................................................................198
Szyfrowanie przestrzeni tabel ....................................................................................................199
Wprowadzenie do szyfrowania przestrzeni tabel ................................................................199
Przygotowanie bazy danych do szyfrowania przestrzeni tabel ............................................199
Tworzenie szyfrowanej przestrzeni tabel ............................................................................201
Szyfrowanie a wydajno systemu bazy danych .................................................................202
TDE a Log Miner, Oracle Streams i logiczne rezerwowe bazy danych .....................................203
Oracle SECUREFILE LOB .......................................................................................................203
Sowo na koniec ........................................................................................................................204
Rozdzia 7. Inteligencja biznesowa i hurtownie danych .............................................. 205
Partycjonowanie ........................................................................................................................205
Partycjonowanie przedziaowe ............................................................................................205
Rozszerzone partycjonowanie zoone ................................................................................209
Partycjonowanie referencyjne .............................................................................................210
Partycjonowanie systemowe ...............................................................................................212
Indeksy domenowe zarzdzane systemowo ........................................................................213
Kolumny wirtualne ....................................................................................................................214
O kolumnach wirtualnych ...................................................................................................214
Tworzenie tabel z kolumnami wirtualnymi .........................................................................215
Partycjonowanie tabel z kolumnami wirtualnymi ...............................................................217
Data Pump — importowanie pojedynczych partycji .................................................................217
Widoki zmaterializowane i przepisywanie zapyta ...................................................................218
Redefiniowanie online tabel z dziennikami widoku zmaterializowanego ...........................219
Przepisywanie zapyta podczas odwieania ......................................................................219
Odwieanie Partition Change Tracking
dla widoków zmaterializowanych z klauzul union all .....................................................219
Nowe i ulepszone widoki katalogowe widoków zmaterializowanych .................................219
Udoskonalenie przepisywania zapyta ................................................................................221
Klauzula pivot i klauzula unpivot ..............................................................................................223
Klauzula pivot .....................................................................................................................223
Klauzula unpivot .................................................................................................................225
Kompresja tabel .........................................................................................................................227
Sowo na koniec ........................................................................................................................228
Rozdzia 8. Rozwój aplikacji ..................................................................................... 229
SQL*Plus ...................................................................................................................................229
Nowe polecenia set ..............................................................................................................229
Zdarzenia Fast Application Notification w bazie danych RAC ...........................................230
Utrzymanie i aktualizacja online aplikacji .................................................................................231
Nowy parametr lock table ...................................................................................................231
Mniej blokad wycznych zakadanych podczas operacji online .........................................231
Indeksy niewidzialne ...........................................................................................................231
SQL ...........................................................................................................................................233
Tabele tylko do odczytu ......................................................................................................233
SQL Query Result Cache ....................................................................................................234
Pami podrczna wyników po stronie klienta ....................................................................238
Ulepszenie wyrae regularnych .........................................................................................238
Notacja nazwana i mieszana w SQL ...................................................................................239
PL/SQL ......................................................................................................................................239
Tworzenie wyzwalaczy jako wczonych bd wyczonych .............................................240
Klauzula follows polecenia create trigger ...........................................................................240
Spis treci
9
Wyzwalacze zoone ...........................................................................................................241
Wbudowywanie kodu (inlining) ..........................................................................................244
Typ danych simple_integer .................................................................................................245
Pami podrczna wyników funkcji PL/SQL ......................................................................246
Dynamiczny SQL ................................................................................................................246
Zmienne REF CURSOR i Dynamiczny SQL ......................................................................247
Ostrzeenie PLW-06009 .....................................................................................................248
Ulepszenia sekwencji w PL/SQL ........................................................................................248
Instrukcja continue w PL/SQL ............................................................................................248
Sowo na koniec ........................................................................................................................250
Rozdzia 9. Dostrajanie wydajnoci ........................................................................... 251
Ulepszone monitorowanie procesów Oracle ..............................................................................251
Statystyki ...................................................................................................................................253
Statystyki oczekujce i opublikowane .................................................................................253
Przywracanie poprzednich statystyk ...................................................................................255
Statystyki rozszerzone .........................................................................................................256
Natywna kompilacja PL/SQL ....................................................................................................262
SQL Plan Management ..............................................................................................................263
Przegld SQL Plan Management .........................................................................................263
Pochwycenie planu ..............................................................................................................263
Wykorzystanie linii bazowych planów SQL .......................................................................265
Odpytywanie linii bazowych planów SQL ..........................................................................266
Ewoluowanie linii bazowych planów SQL .........................................................................267
Zarzdzanie liniami bazowymi planów SQL .......................................................................268
Automatic SQL Tuning .............................................................................................................270
Przegld Automatic SQL Tuning ........................................................................................271
Automatic SQL Tuning w OEM .........................................................................................273
Rczne zarzdzanie Automatic SQL Tuning .......................................................................276
Rczne tworzenie i uywanie zbiorów SQL Tuning Set ............................................................279
Stworzenie zadania ..............................................................................................................279
Stworzenie SQL Tuning Set ................................................................................................280
Zaadowanie SQL Tuning Set .............................................................................................280
Poczenie SQL Tuning Set z zadaniem ..............................................................................281
Ustawienie parametrów zadania ..........................................................................................281
Wykonanie zadania .............................................................................................................281
Przejrzenie wyników ...........................................................................................................282
Inteligentne wspódzielenie kursorów (bind-aware peeking) ....................................................282
O bind-aware peeking .........................................................................................................283
Widoki zwizane z bind-aware peeking ..............................................................................283
Uruchamianie systemu z bind-aware peeking .....................................................................284
Wasnoci tymczasowych przestrzeni tabel ...............................................................................284
Kurczenie tymczasowych przestrzeni tabel .........................................................................285
Widok DBA_TEMP_FREE_SPACE ..................................................................................285
Monitorowanie SQL czasu rzeczywistego .................................................................................286
Przegld Real-Time SQL Monitoring .................................................................................286
Widoki Real-Time SQL Monitoring ...................................................................................286
Raport Real-Time SQL Monitoring ....................................................................................287
Kontrolowanie Real-Time SQL Monitoring ........................................................................287
Kontrolowanie uycia OEM Management Packs ......................................................................287
Sowo na koniec ........................................................................................................................288
10
Oracle Database 11g. Nowe moliwoci
Rozdzia 10. Inne nowe wasnoci i ulepszenia ............................................................ 289
Real Application Clusters ..........................................................................................................289
Równowaenie obcienia pocze OCI w czasie trwania ................................................290
Uywanie transakcji XA w RAC .........................................................................................290
RAC Configuration Assistants ............................................................................................291
Network Configuration Assistant (NetCA) .........................................................................291
Uaktualnienie bazy danych typu rolling upgrade ................................................................292
Zapytanie równolege uznaje umiejscowienie usugi ..........................................................293
Direct NFS ..........................................................................................................................293
Nowe wasnoci XMLDB .........................................................................................................294
Skadowanie binarne XML ..................................................................................................294
Wsparcie partycjonowania dla XMP ...................................................................................299
Ulepszenia XQuery .............................................................................................................299
Natywne Web Services w bazie danych ..............................................................................300
Udoskonalenia XML DB Repository ..................................................................................301
Zestaw narzdzi dewelopera XML ......................................................................................302
Java ............................................................................................................................................303
Wasnoci Oracle zwizane z JVM .....................................................................................303
Udoskonalenia istniejcych narzdzi ...................................................................................305
Narzdzie ojvmtc .................................................................................................................306
Wsparcie JDBC 4.0 .............................................................................................................307
Wsparcie JDK w Oracle Database 11g ................................................................................308
Nowe procedury i pakiety dostarczone w Oracle ......................................................................308
Dodatek
10 najlepszych wasnoci wedug Arupa .................................................. 311
Najlepsza dziesitka Arupa: #1 — Database Replay .................................................................312
Najlepsza dziesitka Arupa: #2 — SQL Performance Analyzer ................................................313
Najlepsza dziesitka Arupa: #3 — partycjonowanie .................................................................314
Najlepsza dziesitka Arupa: #4 — przeroczyste szyfrowanie przestrzeni tabel .......................315
Najlepsza dziesitka Arupa: #5 — Flashback Data Archive .....................................................316
Najlepsza dziesitka Arupa: #6 — SQL Plan Management .......................................................318
Najlepsza dziesitka Arupa: #7 — statystyki prywatne .............................................................319
Najlepsza dziesitka Arupa: #8 — wiksza wspóbieno .......................................................320
Najlepsza dziesitka Arupa: #9 — pami podrczna wyników ...............................................321
Najlepsza dziesitka Arupa: #10 — wysza jako kodu PL/SQL ............................................322
Skorowidz .............................................................................................. 325
Rozdzia 2.
Nowe wasnoci
zarzdzania
Mówi si, e rosyjskie zimy s mrone i dugie. Musz przyzna , e ten rozdzia bdzie jak
rosyjska zima. Jest dugi i moe bardziej suchy ni mrony, ale za to cay na temat bardzo
wanych spraw dotyczcych Oracle Database 11g. Wersja ta dostarcza wielu nowych wasno-
ci i ulepsze uatwiajcych zarzdzanie baz danych. S wród nich:
Automatic Storage Management (ASM),
Automatic Memory Management,
Automatic Database Diagnostic Monitor (ADDM),
Automatic Workload Repository (AWR),
AutoTask — planista zautomatyzowanych zada utrzymania,
zmiany i nowe wasnoci w pliku parametrów,
Resource Manager,
bardziej drobnoziarniste zalenoci,
DDL WAIT,
dodawanie kolumn z wartociami domylnymi.
Rozpocznijmy od zmian i nowych wasnoci zwizanych z ASM.
Zmiany i nowe wasnoci w ASM
ASM (Automatic Storage Management) zawiera teraz wiele nowych wasnoci, zaprojekto-
wanych tak, aby uywanie ASM stao si atwiejsze i wydajniejsze. W skad nowoci w ASM
wchodz:
48
Oracle Database 11g. Nowe moliwoci
nowa dokumentacja,
atrybuty grup dyskowych ASM,
ASM Fast Disk Resync,
atrybuty kompatybilnoci ASM,
preferowane odczyty lustrzane ASM,
aktualizacja ASM typu rolling upgrade,
inne udoskonalenia ASM,
nowa rola SYSASM.
Nowa dokumentacja ASM
Do Oracle Database 11g zostaa dodana dodatkowa dokumentacja powicona zarzdzaniu prze-
strzeni. Przewodnik Oracle Database Storage Administration Guide jest teraz czci cakowitej
dokumentacji bazy danych, a omawia w szczegóach instalacj, konfiguracj oraz uycie ASM.
Atrybuty grup dyskowych ASM
Dostpna nowa klauzula
attribute
ASM pozwala przypisa atrybuty bezporednio do grup dys-
kowych ASM (w przeciwiestwie do sytuacji uycia szablonów). Niektóre z atrybutów istniay
ju w Oracle Database 10g, ale zostay dodane take nowe, które mog zosta przypisane do grupy
dyskowej (omówimy to w dalszej czci rozdziau). Nowa jest take sama klauzula
attribute
.
Oba polecenia:
create diskgroup
i
alter diskgroup
, pozwalaj zdefiniowa lub modyfikowa
ustawienia atrybutów adekwatnie do wymaga. Ponisza tabela zawiera list atrybutów, które
mona ustawi za pomoc nowej klauzuli
attribute
.
Atrybut
Opis
au_size
Jest to rozmiar jednostki alokacji (allocation unit), który domylnie wynosi 1 MB.
Warto tego atrybutu mona ustawi tylko podczas tworzenia grupy dyskowej.
Moe ni by dowolna potga liczby 2 (1, 2, 4, 8 itd.), od 1 M do 64 M.
Przykadowo 4 M to
4194304
.
compatible.rdbms
Wicej informacji o tym atrybucie znajduje si w dalszym punkcie tego rozdziau,
zatytuowanym „Opcje kompatybilnoci ASM”. Jego przykadowa warto
to
'11.0'
, a domylna
'10.1'
. Raz ustawionej wartoci atrybutu nie mona
z powrotem zamieni na nisz.
compatible.asm
Definiuje format danych na dyskach ASM. Wicej o tym atrybucie w dalszym
punkcie tego rozdziau, „Opcje kompatybilnoci ASM”. Jego przykadowa warto
to
'11.0'
, a domylna to
'10.1'
.
disk_repair_time
Powoduje, e proces resync rozpoczyna ledzenie zmian w ekstentach nalecych
do dysków offline. Wicej informacji o tym atrybucie znajduje si w dalszym
punkcie tego rozdziau, „ASM Fast Disk Resync”. Jego dozwolone wartoci
mieszcz si w przedziale od 0 do 136 lat. Wsparcie dla tego atrybutu jest
zapewnione, tylko jeli oba atrybuty kompatybilnoci (
compatible.rdbms
i
compatible.asm
) maj ustawion warto
11.1
lub wysz.
Rozdzia 2.
i Nowe wasnoci zarzdzania
49
W celu sprawdzenia indywidualnych atrybutów przypisanych do kadej z grup dyskowych mona
zada zapytanie do widoku V$ASM_ATTRIBUTE. Oto przykad:
Select group_number, name, value
from v$asm_attribute order by group_number, name;
GROUP_NUMBER NAME VALUE
------------ -------------------- --------------------
1 au_size 1048576
1 compatible.asm 11.1.0.0.0
1 compatible.rdbms 11.1.0
1 disk_repair_time 600M
ASM Fast Disk Resync
W Oracle Database 11g wprowadzono ASM Fast Disk Resync, now wasno , która umoliwia
zsynchronizowanie dysków ASM w ramach grupy dyskowej ASM z grup dysków, która prze-
trwaa awari, po tym jak grupa, która jej ulega, jest niedostpna przez jaki okres czasu
(na przykad w zwizku z awari kontrolera dysku). Jeli awaria nie spowodowaa uszkodzenia
podczonych mediów dyskowych, ASM Fast Disk Resync bdzie móg ponownie zsynchroni-
zowa brakujce dyski, gdy tylko przeszkody powodujce niedostpno tych dysków zostan
usunite. Czas wykonania ponownej synchronizacji jest zaleny od wielu czynników, ale czsto
jest krótszy ni odbudowa caej grupy dyskowej. Podczas takiej synchronizacji nasze dyski ASM
mog by w peni operacyjne. Naley wzi pod uwag to, e w trakcie naprawy dysku moe si
obniy wydajno . Trzeba take uwzgldni fakt, e czas cakowitego przestoju i ponownej
synchronizacji niesie ze sob utrat redundancji.
Zazwyczaj ASM usuwa dysk w niedugim czasie od jego przejcia w stan offline. Aby wczy
moliwo szybkiej ponownej synchronizacji dysków (i zapobiec przejciu dysku w stan offline),
naley dla danej grupy dyskowej ustawi atrybut
disk_repair_time
. Jeli atrybut
disk_repair_time
jest ustawiony, proces resync rozpocznie ledzenie zmian w ekstentach dyskowych nalecych
do dysku offline. Kiedy dysk zostanie przywrócony w tryb online, proces resync zsynchronizuje
go i wczy z powrotem do grupy dyskowej.
Czas naprawy dysku definiujemy w jednostkach minutowych lub godzinowych (posugujc si
oznaczeniami m/M lub h/H w celu wskazania wybranej jednostki). Dozwolone jest uywanie
dziesitnych wyrae uamkowych (np. 3.5 H). Jeli ustawimy atrybut
disk_repair_time
bez
wskazania wartoci, domyln bdzie 3.6 godziny. Dlatego, jeli zdamy si na warto domyln,
naley si bardzo spieszy z wymian uszkodzonych kabelków! Chocia w przypadku gdy gro-
madzimy karty dyskowe, kable i tym podobne w naszym komputerowym pomieszczeniu i pimy
w pobliu na óku polowym, to 3,6 godziny moe okaza si w peni wystarczajce. Mówic
powanie, lepiej rozway zwikszenie wartoci tego atrybutu, gdy z reguy mieszkamy daleko,
a awarie wystpuj o takiej porze, e ciko jest zdoby zastpczy sprzt w przecigu zaledwie
3,6 godziny. Czas naprawy zostanie zresetowany po przywróceniu dysku w tryb online, dlatego
w przypadku kolejnego przejcia w stan offline zegar zacznie liczy od 0.
Jeli dysk przejdzie w stan offline, a czas naprawy dysku upynie, to taki dysk zostanie logicznie
usunity. Przed upywem zdefiniowanego czasu naprawy sami moemy usun dysk offline,
wywoujc polecenie
alter diskgroup ... disk offline
z uyciem klauzuli
drop after
.
50
Oracle Database 11g. Nowe moliwoci
Atrybutu
disk_repair_time nie mona ustawi dla dysków, które ju s dyskami offline.
Oto kilka przykadów ustawiania atrybutu czasu naprawy dysku dla grupy dyskowej:
ALTER DISKGROUP DG1 SET ATTRIBUTE 'DISK_REPAIR_TIME'='18H';
ALTER DISKGROUP DG2 SET ATTRIBUTE 'DISK_REPAIR_TIME'='12.5H';
ALTER DISKGROUP DG3 SET ATTRIBUTE 'DISK_REPAIR_TIME'='600M';
Opcje kompatybilnoci ASM
Oracle Database 11g daje moliwo ziarnistej kontroli kompatybilnoci z uwzgldnieniem
grup dyskowych ASM. Su temu dwa róne atrybuty ustawiane za pomoc polecenia
alter
diskgroup
. Pierwszy z nich to atrybut kompatybilnoci grup dyskowych Oracle. Warto atry-
butu kompatybilnoci grup dyskowych definiuje format danych na dysku ASM i zawsze powinna
by wiksza lub równa wartoci parametru kompatybilnoci bazy danych Oracle majcej dostp
do tego dysku ASM. Atrybut
compatible.asm
musi by ustawiony na warto wysz bd
równ wartoci atrybutu
compatible.rdbms
. Raz ustawionej wartoci atrybutu nie mona cofn
do poprzedniej, niszej.
Warto atrybutu kompatybilnoci grup dyskowych Oracle ustawia si za pomoc polecenia
alter diskgroup
i atrybutu
compatible.asm
, jak pokazano w poniszym przykadzie:
ALTER DISKGROUP DG1 SET ATTRIBUTE 'compatible.asm'='11.1.0';
Ustawienia wartoci tego parametru mona take dokona podczas wywoania polecenia
create
diskgroup
, jak pokazano niej:
CREATE DISKGROUP dgroup4 EXTERNAL REDUNDANCY
DISK '/oracle/asmdata/asm_dgroup1_04.asm'
ATTRIBUTE 'compatible.asm' = '11.1';
Drugim ze wspomnianych atrybutów jest atrybut kompatybilnoci bazy danych Oracle, którego
warto definiowana jest przez atrybut grupy dyskowej ASM
compatible.rdbms
. Atrybut ten
okrela minimaln wersj bazy danych Oracle, która moe zamontowa dan grup dyskow.
Jego warto powinna by równa najniszej wartoci ustawie kompatybilnoci wród wszystkich
baz danych Oracle, które zamontuj dan grup dyskow. Raz ustawionej wartoci atrybutu nie
mona cofn do poprzedniej, gdy warto atrybutu implikuje format wiadomoci przesyanych
w obie strony pomidzy instancj ASM a powizanymi instancjami baz danych. Oczywicie mo-
liwe jest zwikszenie wartoci atrybutu.
Zauwamy, e kada grupa dyskowa moe posiada swoje wasne ustawienia kompatybilnoci,
a w zwizku z tym róne wersje baz danych Oracle mog czy do kadej danej instancji ASM.
Poniej prezentujemy przykad ustawienia atrybutu kompatybilnoci bazy danych:
ALTER DISKGROUP DG1 SET ATTRIBUTE 'compatible.rdbms'='11.1.0';
Przykad ilustrujcy wzajemny wpyw atrybutów na siebie mona zauway , przygldajc
si zwizkowi pomidzy atrybutem
disk_repair_time
a atrybutem
compatible.asm
. Jeli zaak-
ceptujemy domyln warto atrybutu
compatible.asm
i spróbujemy ustawi warto
disk_repair_
´
time
, otrzymamy nastpujcy bd:
ORA-15032: not all alterations performed
Rozdzia 2.
i Nowe wasnoci zarzdzania
51
ORA-15242: could not set attribute DISK_REPAIR_TIME
ORA-15283: ASM operation requires compatible.rdbms of 11.1.0.0.0 or higher
Komunikat bdu wskazuje, e naley ustawi atrybut
compatible.asm
dla konfigurowanej
grupy dyskowej. Aby bdu unikn , zmiemy warto atrybutu
compatible.asm
z domylnej
'10.1'
na
'11.1.0'
, tak jak pokazano w przykadzie poniej:
ALTER DISKGROUP DG1 SET ATTRIBUTE 'compatible.asm'='11.1.0';
Parametr kompatybilnoci nie tylko kontroluje, które bazy danych mog czy si do naszej
grupy dyskowej ASM, ale take definiuje wasnoci dostpne w ASM (analogicznie jak w przy-
padku parametru kompatybilnoci bazy danych). Ustawienia kompatybilnoci grup dyskowych
mona sprawdzi w widoku V$ASM_ATTRIBUTE.
Przykadem wzajemnego oddziaywania atrybutów
compatible.asm
i
compatible.rdbms
moe
by sytuacja, kiedy
compatible.rdbms
ma warto
10.2
, a
compatible.asm
—
11.1
. W takim
przypadku zarzdzanie grup dysków ASM zostanie ograniczone do wersji Oracle 11.1 lub
wyszej, ale indywidualne grupy dyskowe mog wspópracowa z instancjami bazy danych
Oracle z parametrem kompatybilnoci ustawionym na warto 10.2 lub wysz.
Preferowane odczyty lustrzane ASM
Niektóre konfiguracje ASM angauj zdalne kopie lustrzane dysków znajdujcych si w bardzo
odlegych lokalizacjach (mog take angaowa zdalne instancje). W takich przypadkach pod-
stawowa grupa dyskowa moe by nie najlepszym zbiorem dysków do odczytu przez dan instan-
cj. Przykadowo, moemy posiada dwie instancje RAC (Real Application Cluster) na urzdze-
niach oddalonych od siebie o 500 kilometrów. Dany zespó dysków moe by przechowywany
w okrelonym systemie RAC. W takiej sytuacji chcielibymy, aby lokalna instancja RAC moga
czyta z najbliszego dostpnego dysku ASM w celu zapewnienia najlepszej wydajnoci.
Preferowane odczyty lustrzane ASM dostpne s jedynie w konfiguracjach RAC i zazwyczaj
s uywane tylko z klastrowanymi instancjami ASM. Preferowane odczyty lustrzane ASM
pozwalaj na odczyt z ekstentów kopii lustrzanych zamiast z ekstentów dysku podstawowego.
Aby skorzysta z zalet tej nowej wasnoci, naley skonfigurowa kopi lustrzan ekstentów,
lokaln dla danego odlegego wza klastra. W celu skonfigurowania w danej instancji listy
nazw preferowanych awaryjnych grup dyskowych uywanych przy dostpie do dysków ASM,
naley ustawi nowy parametr
asm_prefered_read_failure_groups
. Format jego wartoci
przedstawia si nastpujco: nazwaGrupyDyskowej.nazwaAwaryjnejGrupy, gdzie nazwaGru-
pyDyskowej to nazwa grupy dyskowej, do której naley grupa awaryjna, a nazwaAwaryjnejGrupy
to nazwa preferowanej grupy awaryjnej. W celu wskazania wielokrotnie nazw rónych par
grupaDyskowa.grupaAwaryjna naley kad ze zdefiniowanych preferowanych grup odczytu
oddzieli znakiem przecinka, tak jak pokazano w poniszym przykadzie:
Asm_preferred_read_failure_groups=dgroup1.fdisk2, dgroup2.fdisk2
Jeli ASM nie bdzie w stanie dokona odczytu z preferowanej awaryjnej grupy dyskowej, to
bdzie kontynuowa odczyt z grupy preferowanej, a w nastpnej kolejnoci z dowolnej innej
zdefiniowanej, dodatkowej awaryjnej grupy. W celu sprawdzenia, czy dany dysk nalecy do
grupy dyskowej jest dyskiem preferowanego odczytu, naley podejrze kolumn
PREFERED_READ
z widoku V$ASM_DISK.
52
Oracle Database 11g. Nowe moliwoci
ASM rolling upgrade
Oracle Database 11g wspiera aktualizacje typu rolling upgrade, czyli aktualizowanie w czasie
pracy systemu. Wykonywanie aktualizacji typu rolling upgrade z wersji Oracle Database 10g do
Oracle Database 11g nie jest wspierane. Kiedy ju dokonamy aktualizacji do 11g, to uaktual-
nienia do wyszych wersji bdziemy mogli wykonywa jako te typu rolling upgrade. Czci
skadow nowej wasnoci rolling upgrade jest moliwo aktualizacji instancji ASM jako typu
rolling upgrade. Przed wykonaniem uaktualnienia rolling upgrade musimy si upewni , e zalene
komponenty zostay uaktualnione wczeniej (przykadowo, przed aktualizacj ASM naley
uaktualni CRS — Cluster Ready Services).
W celu wsparcia aktualizacji rolling upgrade zostaa dodana nowa skadania w Oracle. Polecenie
alter system
zostao wzbogacone o nowy parametr
start rolling migration
. Kada migracja
wymaga dostarczenia zbioru rónych parametrów wraz z poleceniem
alter system start rolling
migration
, wczajc w to numer wersji, numer wydania, numer uaktualnienia, numer portu oraz
numer portu uaktualnienia. W sprawie szczegóów dotyczcych odpowiedniego formatu pole-
cenia naley odnie si do dokumentacji.
Po wydaniu polecenia
alter system start rolling migration
ASM najpierw spróbuje ustali ,
czy w toku s jakie operacje równowaenia ASM (rebalancing). Jeli takie operacje trwaj,
wykonanie polecenia zakoczy si bdem. W przypadku gdy w danym momencie nie wyst-
puj operacje równowaenia, charakterystyka dziaania klastra ASM bdzie wyglda nastpujco:
W przypadku grup dyskowych moliwe bdzie wycznie ich, zamontowanie
i odmontowanie (nie bdzie mona wykonywa operacji
alter
,
create
,
drop
).
Moliwe bdzie otwieranie i zamykanie plików w grupach dyskowych przez baz danych.
Moliwe bdzie usuwanie i zmienianie rozmiarów plików.
Dostp do widoków i pakietów staych bdzie ograniczony. Widoki globalne
na klastrowanej instancji ASM bd niedostpne.
Po zmodyfikowaniu instancji dla rozpoczcia migracji naley zamkn i zaktualizowa kad
z instancji, jedn na raz. Kiedy aktualizacja zostanie zakoczona, bdziemy mogli ponownie
uruchomi instancj ASM, a zostanie ona doczona do klastra. Po zakoczeniu wszystkich
kroków aktualizacji musimy jeszcze zakoczy sam proces uaktualniania poleceniem
alter
system
:
Alter system stop rolling migration;
Jeli podczas aktualizacji napotkamy jakie problemy, moemy po prostu odwróci proces
poprzez wycofanie. Kadorazowo naley zamkn jeden wze ASM, wycofa go do poprzed-
niej wersji oprogramowania, a nastpnie uruchomi ponownie. Po zakoczeniu wycofywania
mona zakoczy proces migracji. Zauwamy, e po zakoczeniu procesu migracji nie mona
go ju wycofa .
Jak mona si byo spodziewa, przed przystpieniem do aktualizacji zalecamy przeczytanie
instrukcji aktualizacji oraz upewnienie si, e moliwe jest wykorzystanie przedstawionej
procedury.
Rozdzia 2.
i Nowe wasnoci zarzdzania
53
Wsparcie ASM dla jednostek alokacji
o zmiennym rozmiarze
Jak wspomniano w jednym z poprzednich punktów, „Atrybuty grup dyskowych ASM”, ASM
wspiera teraz ekstenty (extent) o zmiennych rozmiarach, dziki czemu moliwe jest zmniejszenie
wymaga pamiciowych zwizanych z duymi plikami dyskowymi ASM i jednoczesne polep-
szenie wydajnoci. Obecnie, wraz ze wzrostem rozmiaru plików, Oracle moe automatycznie
zaalokowa wielokrotno ekstentów o zmiennym rozmiarze. Poniewa maksymalny rozmiar
pliku ASM jest zaleny od rozmiaru jego ekstentu, oznacza to, e rozmiar naszych plików moe
przekracza poprzedni limit 35 TB dla grup dyskowych zewntrznej redundancji.
Moliwe jest take zdefiniowanie takich grup dyskowych, e pliki w nich utworzone zostan
stworzone z jednostkami alokacji o rónych rozmiarach. Rozmiar jednostki alokacji waha si od
1 do 64 MB. Wicej informacji na temat ustawiania rozmiaru jednostek alokacji mona znale
w punkcie „Atrybuty grup dyskowych ASM”. Moliwo definiowania rónych jednostek alo-
kacji pozwala grupom dyskowym ASM z redundancj zewntrzn osign maksymalny roz-
miar 128 TB, w przeciwiestwie do rozmiaru 35 TB osiganego w Oracle Database 10g.
Nowa rola SYSASM
W Oracle zostaa udostpniona nowa rola SYSASM, z której naley korzysta podczas cze-
nia si z instancj ASM jako administrator. Roli SYSASM powinno si zacz uywa zamiast
SYSDBA, poniewa poczenia SYSDBA do instancji ASM prawdopodobnie nie bd wspie-
rane w przyszoci. Wymagania dotyczce uwierzytelniania s dla pocze z rol SYSASM
takie same jak dla pocze z rol SYSDBA.
Poniej prezentujemy przykad poczenia z instancj ASM z uyciem nowej roli SYSASM:
[oracle@localhost ~]$ sqlplus / as sysasm
SQL*Plus: Release 11.1.0.3.0 - Beta on Sat Feb 24 19:48:10 2007
Copyright (c) 1982, 2006, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.3.0 – Beta
With the Partitioning, OLAP and Data Mining options
SQL>
Mona take uy zwyczajnego polecenia poczenia, jak
connect sys/robert as SYSASM
i podobne.
Nowe polecenia narzdzia asmcmd
Zabawne, jak wielu ludzi, z którymi rozmawiaem, korzysta z ASM, a mimo to nigdy nie
uywao ani nie syszao o
asmcmd
. Narzdzie
asmcmd
pojawio si po raz pierwszy w Oracle
Database 10g Release 2, aby uatwi poruszanie si po dyskach ASM i ich zawartoci. W Oracle
Database 11g do
asmcmd
zostay dodane dalsze wasnoci, które bd omawiane w tym punkcie.
W skad owych wasnoci wchodz: moliwo archiwizacji i odtwarzania metadanych ASM,
nowe polecenie
lddsk
, polecenie
repair
oraz — dla istniejcych polece
asmcmd
— kilka
nowych opcji typu flagi.
54
Oracle Database 11g. Nowe moliwoci
Arup radzi…
Wsparcie dla ekstentów o zmiennym rozmiarze jest prawdopodobnie najwaniejszym dodatkiem do
ASM w Oracle Database 11g. Przed 11g liczba ekstentów, zwaszcza w ogromnych bazach danych,
bya po prostu zbyt dua. Skutkowao to tym, e mapy ekstentów (extent maps) byy zbyt wielkie, aby
mona byo nimi zarzdza w zbiorniku wspódzielonym (shared pool); miao to wpyw na wydajno,
jak równie powodowao straszliwe bdy
ORA-4031 Unable to allocate x bytes in shared pool
1
.
Dla zagodzenia negatywnych skutków w Oracle Database 10g moliwe byo zdefiniowanie wik-
szych rozmiarów jednostek alokacji za pomoc parametru z podkreleniem, tak jak pokazuje przykad:
_asm_ausize=16777216
Parametr ten, pomimo e z podkreleniem, jest wspierany przez Oracle i udokumentowany na Meta-
Link. Powyszy przykad definiuje 16-megabajtowe jednostki alokacji. W przypadku ogromnych baz
danych, powyej 10 TB, jest to zalecany rozmiar. Domylna warto to 1048576 (lub 1 MB), take
w Oracle Database 11g. Stan typu „jeden rozmiar do wszystkiego” nie by dobrym rozwizaniem we
wszystkich przypadkach. Jeli z góry posiadao si wiedz o tym, do jakich rozmiarów uronie baza
danych, mona byo miao ustawi parametr zawczasu, jednak w wielu sytuacjach oszacowanie
przyszego rozmiaru bazy danych mogo by bdne lub niemoliwe. W Oracle Database 11g problem
ten zosta rozwizany przez oddzielenie rozmiaru ekstentu od wielkoci jednostki alokacji. W 11g
jeden ekstent moe mie rozpito wicej ni jednej jednostki alokacji. Jego rozmiar moe si zwik-
sza wraz ze wzrostem rozmiaru bazy danych. Pozwala to na utrzymanie rozmiaru mapy obszarów
w rozsdnej granicy, co z kolei poprawia wydajno.
Bd co bd , oznacza to take, e ekstenty z czasem zostan na dysku w jakim stopniu pofrag-
mentowane. W wielu przypadkach jest to nieistotne, nawet jeli bdziemy czsto usuwa i tworzy
obiekty w bazie danych. Bdzie to jednak powanym problemem w przypadku czstego tworzenia
i usuwania plików danych. Jeli zaobserwujemy spadek wydajnoci, moemy zdefragmentowa dysk,
uywajc operacji
alter diskgroup ... rebalance.
Archiwizacja i odtwarzanie metadanych grup dyskowych ASM
Narzdzie
asmcmd
dostarcza zestawu nowych polece, które pozwalaj na archiwizacj i odzy-
skiwanie metadanych zwizanych ze wszystkimi grupami dyskowymi ASM. Polecenie
md_backup
wykona archiwizacj wszystkich lub czci metadanych ASM, w zalenoci od uytych para-
metrów. Poniej przedstawiamy przykad uycia polecenia
md_backup
w celu archiwizacji
caego repozytorium metadanych ASM.
[oracle@localhost ~]$ asmcmd
ASMCMD> md_backup
Kiedy polecenie zostanie w caoci wykonane, w biecym katalogu roboczym zostanie
utworzony plik. W moim systemie Linux plik zosta nazwany ambr_backup_intermediate_file,
ale w innych systemach operacyjnych jego nazwa moe si róni . Plik archiwizacji jest w znacz-
nej mierze plikiem tekstowym, wic moemy go po prostu czyta . Bardziej zaawansowane uycie
polecenia
md_backup
pozwala kontrolowa miejsce, w którym plik ma zosta utworzony, wyszcze-
gólnia grupy dyskowe majce podlega archiwizacji, a take przesania rónorakie opcje.
1
Polska wersja komunikatu bdu to: ORA-04031: nie mona przydzieli X bajtów pamici wspóuytkowanej
— przyp. tum.
Rozdzia 2.
i Nowe wasnoci zarzdzania
55
Polecenie
md_restore
suy do przywracania danych z archiwizacji grup dyskowych wykona-
nych za pomoc polecenia
md_backup
. Przywrócenie mona wykona bez wprowadzania ad-
nych modyfikacji lub wczeniej przesoni róne ustawienia w poleceniu
md_backup
. Oto przy-
kad wykonania przywracania metadanych:
[oracle@localhost ~]$ asmcmd
ASMCMD> md_restore –b ambr_backup_intermediate_file
Oba polecenia mog zosta wykonane poprzez przekazanie ich jako parametru podczas urucha-
miania narzdzia asmcmd, tak jak pokazano w przykadzie poniej:
[oracle@localhost ~]$ asmcmd md_backup
Naley mie wiadomo tego, e polecenie
md_backup
nie nadpisze poprzedniego pliku archi-
wizacji. Po wykonaniu archiwizacji naley samemu przenie gdzie taki plik, aby nastpna
archiwizacja moga si uda .
Po co waciwie uywa polece
md_restore
i
md_backup
? Tak jak w bazie danych Oracle, tak
i w przypadku ASM istnieje moliwo , e metadane ASM — skadowane w grupach dysko-
wych ASM — ulegn uszkodzeniu (na przykad z powodu uszkodze pamici w systemie ope-
racyjnym). Chocia zdarza si to (na szczcie) rzadko, w takich przypadkach nasza archiwi-
zacja metadanych ASM moe okaza si pomocna. Jeli uywamy ASM, zalecam, aby
archiwizacja metadanych doczya do naszych rutynowych, codziennych wykona archiwizacji.
Arup radzi…
Nie potrafi nawet wyrazi uytecznoci (i trafnoci czasu pojawienia si) funkcji archiwizacji/przy-
wracania metadanych. Jak wspomnia Robert, w nawizaniu do moliwoci uszkodzenia metadanych,
istnieje take prawdopodobiestwo, e kto wykona polecenie
dd i nadpisze zawarto nagówka
dyskowego. Mnie to spotkao, naprawd! Kluczem do zrozumienia sytuacji jest fakt, e w nagówku
znajduje si informacja, co jest gdzie zapisane na dysku. Nadpisanie nagówka usuwa t informacj,
ale nie same dane. Jeli potrafimy przywróci nagówek, moemy by te w stanie przywróci dane za
pomoc bazy danych, a zatem zawsze wykonujmy polecenie
md_backup i przechowujmy wynikowy plik
w bezpiecznej lokalizacji.
W niektórych przypadkach polecenie
md_restore moe take pomóc w przywróceniu usunitych
dysków. Kolejnym zastosowaniem jest rozwijanie automatycznego procesu kontroli zmian, za kadym
razem gdy dodajemy, zmieniamy lub usuwamy dyski.
Polecenie lsdsk
Polecenie
lsdsk
listuje dyski, które widzi ASM. Oto przykad:
[oracle@localhost ~]$ asmcmd lsdsk
Path
/oracle/asmdata/asm_dgroup1_01.asm
/oracle/asmdata/asm_dgroup1_02.asm
Polecenie remap
Polecenie
remap
moe zosta uyte w celu naprawy zakresu fizycznych bloków w naszym dysku
ASM. Jako parametry przyjmuje ono nazw grupy dyskowej, nazw dysku oraz zakres bloków
do remapowania. Zauwamy, e podczas gdy polecenie to moe przywróci dysk do uytku
56
Oracle Database 11g. Nowe moliwoci
(pod wzgldem fizycznie i logicznie uszkodzonych bloków), nie przywróci nam ono straconych
lub uszkodzonych danych. Oto przykad:
[oracle@localhost ~]$ asmcmd remap dgroup1 disk_001 2000-4000
Nowe opcje polece ls, lsct oraz lsdg
Polecenie
ls
ma dwa nowe parametry:
-c
oraz
-g
. Skorzystanie z parametru
-c
skutkuje uyciem
widoku V$ASM_DISKGROUP jako róda wydruku wyniku polecenia. Uycie parametru
-g
spowoduje, e ródem wydruku wyniku polecenia bdzie widok GV$ASM_DISKGROUP.
Polecenie
lsct
take posiada nowy parametr
-g
, który powoduje czytanie danych z widoku
GV$ASM_CLIENT zamiast z widoku V$ASM_CLIENT.
W kocu polecenie
lsdg
, które take zostao wzbogacone o parametry
-c
i
-g
. Parametr
-c
jako róda wydruku wyniku polecenia uywa widoku V$ASM_DISKGROUP, natomiast
parametr
-g
— widoku GV$ASM_DISKGROUP.
Automatic Memory Management
Firma Oracle wprowadzia wiele zmian we wasnociach automatycznego zarzdzania pami-
ci w Oracle Database 11g. Oracle Automatic Memory Management moe teraz automatycz-
nie zarzdza zarówno obszarem SGA (system global area), jak i obszarem PGA (program
global area). Kontrol nad t now funkcj zapewniaj nowe parametry
memory_target
i
memory_
´
max_target
. Dotyczce jej zmiany zostay take wprowadzone w niektórych narzdziach
doradczych (advisor). Zostay take dodane nowe widoki. W kolejnych podpunktach omówimy
kade z tych zagadnie.
Przegld Automatic Memory Management
Automatyczne zarzdzanie pamici zostao dodane do istniejcej struktury Oracle Automated
Memory Management i pozwala na uycie rónych parametrów konfigurujcych ustawienia
pamici. Automatic Memory Management posiada dwa nowe parametry pamici:
memory_max_
´
target
i
memory_target
. Rysunek 2.1 ilustruje zalenoci zachodzce pomidzy rónymi
parametrami pamici.
Przyjrzyjmy si bliej dwóm wspomnianym parametrom.
Parametr memory_target
Parametr
memory_target
jest w pewnym sensie kombinacj wartoci parametrów
sga_target
i
pga_aggregate_target
. Reprezentuje on cakowit ilo pamici, jak Oracle musi zaaloko-
wa dla rónych struktur SGA i PGA. Parametr
memory_target
jest parametrem dynamicznym.
Moe zosta ustawiony na warto do wartoci (wcznie) parametru
memory_max_target
, który
zostanie omówiony jako nastpny.
Rozdzia 2.
i Nowe wasnoci zarzdzania
57
Rysunek 2.1.
Zalenoci pomidzy
parametrami pamici
Parametr memory_max_target
Parametr
memory_max_target
pozwala na dynamiczn zmian wartoci parametru
memory_target
w granicach
memory_max_target
, tak wic w kadej chwili moemy przystosowa sumaryczn
ilo pamici dostpnej dla bazy danych jako cao .
Parametr
memory_max_target
moe zosta ustawiony rcznie albo wyznaczony i domylnie
ustawiony na warto równ lub wiksz wartoci parametru
memory_target
. Jeli parametr
memory_target
jest ustawiony, a parametr
memory_max_target
nie, to Oracle domylnie przy-
pisze temu drugiemu warto parametru
memory_target
. Jeli parametr
memory_target
nie jest
ustawiony, to domyln wartoci parametru
memory_max_target
bdzie
0
. W przypadku gdy
parametr
memory_target
nie jest ustawiony, ale parametr
memory_max_target
przyjmuje jak
niezerow warto , to moemy modyfikowa ustawienia pamici dynamicznie, poprzez zmian
memory_target
lub innych okrelonych parametrów pamici. Rysunek 2.2 ilustruje zalenoci
pomidzy parametrami pamici zarzdzanej automatycznie.
Parametrów
memory_max_target i memory_target nie mona uywa, jeli zosta ustawiony
LOCK_SGA. Wspomnianych parametrów nie mona take stosowa w poczeniu z ogrom-
nymi stronami w systemie Linux.
Parametr
memory_target
mona skonfigurowa podczas aktualizacji lub póniej. Kiedy kon-
figurujemy parametr
memory_target
, powinnimy wzi pod uwag biece ustawienia para-
metrów
sga_target
i
pga_aggregate_target
. W wikszoci sytuacji jako warto
memory_target
bdziemy ustawia sum rozmiarów zdefiniowanych przez wartoci parametrów
sga_target
i
pga_aggregate_target
, zerujc nastpnie te dwa parametry.
Moemy zdecydowa si na pozostawienie parametrów
sga_target
i
pga_aggregate_target
z ich biecymi wartociami. Robic tak, wskaemy minimalne iloci pamici, jakie powinny
zosta zaalokowane na te struktury. W takim przypadku Oracle bdzie móg dla kadej ze
struktur zaalokowa wicej pamici, ale nie bdzie móg zmniejszy dostpnej dla nich iloci
pamici poniej progu wyznaczonego przez ustawienia powizanych parametrów. Oznacza to,
58
Oracle Database 11g. Nowe moliwoci
Rysunek 2.2.
Zalenoci pomidzy
parametrami pamici
zarzdzanej
automatycznie
Ustawianie parametru
memory_target na niektórych platformach moe przyprawi nas o zy.
Przykadowo w systemie Linux naley upewni si, e /dev/shm (lub jego odpowiednik)
alokuje ilo pamici troch wiksz ni ta, na któr chcemy ustawi warto parametru
memory_target. Niespenienie powyszego warunku bdzie skutkowao nastpujcym bdem
2
:
ORA-00845: MEMORY_TARGET not supported on this system.
e jeli przejdziemy podczas aktualizacji na nowe parametry, zostawiajc wartoci
sga_target
i
pga_aggregate_target
bez zmian, to powinna zosta speniona nastpujca nierówno
memory_
´
target
>= (
sga_target
+
pga_aggregate_target
). Nieprawidowa konfiguracja nie pozwoli
na uruchomienie instancji z powodu wystpienia bdu ORA-00838.
Kolejn rzecz, o której naley wiedzie , jest to, e jeli ustawimy parametr
memory_max_target
i uruchomimy instancj, Oracle po prostu zagarnie ilo wolnej pamici równ wartoci tego
parametru. Moe to zalee od systemu operacyjnego — zaobserwowalimy to w rodowiskach
systemów operacyjnych Linux i Windows. Uwaajmy wic na potencjalne konsekwencje, jakie
pociga za sob ustawienie wspomnianego parametru.
Naley zachowa ostrono podczas zmiany ustawie, jeli przechodzimy na automatyczne
zarzdzanie pamici. Przechodzc na parametry
memory_max_target i memory_target, upew-
nijmy si, e parametry
sga_target i sga_size nie s ustawione. Pomimo i jednoczesne
ustawianie tych parametrów jest wspierane, naley to robi z ostronoci, aby unikn
nieoczekiwanych konsekwencji.
2
Polska wersja komunikatu bdu to: ORA-00845: Parametr MEMORY_TARGET nie jest obsugiwany w tym
systemie — przyp. tum.
Rozdzia 2.
i Nowe wasnoci zarzdzania
59
Nowe funkcje w Memory Advisor i nowe widoki
Oracle otrzyma nowy widok V$MEMORY_TARGET_ADVICE, który dostarcza wskazówek,
jak ustawi parametr
memory_target
. Poniej przedstawiamy przykadowe zapytanie do tego
widoku:
SQL> select * from v$memory_target_advice order by memory_size_factor;
MEMORY_SIZE MEMORY_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR VERSION
----------- ------------------ ------------ ------------------- ----------
176 .5 126 1.1443 0
264 .75 110 1 0
352 1 110 1 0
440 1.25 110 1 0
528 1.5 109 .99 0
616 1.75 109 .99 0
704 2 109 .99 0
Przykad pokazuje, e zwikszenie iloci pamici nie bdzie miao pozytywnego wpywu na
nasz baz danych. Biece ustawienie
memory_size
to 352 MB (jeli
MEMORY_SIZE_FACTOR
wynosi 1, to jest to aktualny rozmiar), co wydaje si by wiksz wartoci, ni potrzeba.
Zwikszenie jej o 50 procent, do 528 MB (
MEMORY_SIZE_FACTOR
równy 1.5), bdzie skutkowao
bardzo nieznaczn popraw wydajnoci, jak pokazuje rónica pomidzy wartociami kolumny
ESTD_DB_TIME
110 i 109. Zwró my uwag, e widok nie bdzie zawiera adnych danych, dopóki
automatyczne zarzdzanie pamici nie zostanie wczone (przynajmniej poprzez ustawienie
parametru
memory_target
).
Dane w omawianych widokach zale od migawek (snapshot) AWR. Jeli wyczylimy AWR
lub dopiero co stworzylimy baz danych, widoki mog by puste. Wyniki zapyta do tych
widoków w duym stopniu zale take od obcienia i wykorzystania systemu. Wynik bdzie
znaczco róny dla bezczynnego systemu w porównaniu z systemem o wysokim obcieniu
i zmiennoci.
Kolejny widok, V$MEMORY_DYNAMIC_COMPONENTS, zapewnia wgld w róne kom-
ponenty pamici bazy danych i ich rozmiary, ustalane przez Oracle’owe udogodnienie automa-
tycznego zarzdzania pamici. Poniej przedstawiamy przykadowe zapytanie do tego widoku,
pokazujce obecnie skonfigurowane komponenty pamici. Zauwamy, e oprócz zwyczajnych
pul pamici (pools) s tam take wpisy dotyczce SGA Target i PGA Target:
SQL> select component, current_size curr_size, min_size, max_size,
user_specified_size uss, granule_size gs from v$memory_dynamic_components
where current_size > 0;
COMPONENT CURR_SIZE MIN_SIZE MAX_SIZE USS GS
--------------- ---------- ---------- ---------- ---------- ----------
shared pool 67108864 62914560 67108864 0 4194304
large pool 4194304 0 4194304 0 4194304
java pool 4194304 4194304 4194304 0 4194304
SGA Target 218103808 218103808 218103808 0 4194304
DEFAULT buffer 134217728 134217728 138412032 83886080 4194304
cache
Shared IO Pool 8388608 8388608 8388608 8388608 4194304
PGA Target 150994944 150994944 150994944 0 4194304
60
Oracle Database 11g. Nowe moliwoci
W jaki sposób Oracle zarzdza pamici?
Przegldajc widok V$MEMORY_RESIZE_OPS, moemy monitorowa , w jaki sposób Oracle
zarzdza pamici. Widok zawiera list ostatnich 800 da zmiany rozmiaru SGA obsuonych
przez Oracle. Oto przykad:
SQL> select parameter, initial_size, target_size, start_time
from v$memory_resize_ops
where initial_size > 0 and final_size > 0
order by parameter, start_time;
PARAMETER INITIAL_SIZE TARGET_SIZE START_TIME
-------------------- ------------ ----------- -------------------
db_cache_size 121634816 117440512 04/28/2007 19:33:45
db_cache_size 121634816 117440512 04/28/2007 19:33:45
db_cache_size 117440512 113246208 04/28/2007 19:33:45
db_cache_size 113246208 109051904 04/28/2007 19:33:45
db_cache_size 109051904 104857600 04/28/2007 19:34:10
db_cache_size 104857600 100663296 04/28/2007 19:34:33
db_cache_size 100663296 96468992 04/28/2007 19:34:35
pga_aggregate_target 125829120 335544320 04/28/2007 19:39:20
shared_pool_size 58720256 62914560 04/28/2007 19:33:45
shared_pool_size 54525952 58720256 04/28/2007 19:33:45
shared_pool_size 62914560 67108864 04/28/2007 19:34:10
shared_pool_size 67108864 71303168 04/28/2007 19:34:33
shared_pool_size 71303168 75497472 04/28/2007 19:34:35
Jak wskazuje powyszy wynik zapytania, Oracle by bardzo zajty, dokonujc zmian w pamici
podrcznej bazy danych i w zbiorniku wspódzielonym (shared pool)!
Automatic Memory Management i OEM
Oracle Enterprise Manager (OEM) cakowicie wspiera automatyczne zarzdzanie pamici.
Na stronie domowej OEM kliknijmy w umieszczon na górze zakadk Server, a nastpnie
wybierzmy Memory Advisors. Z poziomu tej strony moemy wczy lub wyczy automa-
tyczne zarzdzanie pamici, ustawi cakowite i maksymalne rozmiary parametrów pamici
i przejrze histori alokacji pamici. Rysunek 2.3 przedstawia przykadow stron narzdzia
Memory Advisor.
Automatic Memory Management posiada interfejs w Memory Advisor (jest to graficzna nakadka
na widok V$MEMORY_TARGET_ADVICE). Moemy tam sprawdzi , jak powinnimy zaalo-
kowa pami dla instancji.
Przejcie na Automatic Memory Management
Przejcia na automatyczne zarzdzanie pamici mona dokona rcznie lub z poziomu OEM.
Wczenie usugi Automatic Memory Management jest take moliwe z poziomu narzdzia
Database Configuration Assistant (DBCA) podczas konfigurowania nowej bazy danych. Czy-
telnicy uaktualniajcy swoje oprogramowanie do Oracle Database 11g mog mie wtpliwoci,
czy warto przej na Automatic Memory Management. Jak ze wszystkim co nowe, podszed-
bym to tego z ostronoci, testujc wszystko dokadnie w rodowisku deweloperskim. Jeli
Rozdzia 2.
i Nowe wasnoci zarzdzania
61
Rysunek 2.3.
Strona narzdzia OEM Memory Advisor
istnieje naglca potrzeba przejcia, to trzeba to zrobi , ale jeli mona poczeka , to nie nara-
abym produkcyjnego systemu na ryzyko. W przypadku nowych baz danych, utworzonych
w 11g, prawdopodobnie zdecydowabym si na konfiguracj z Automatic Memory Manage-
ment i starannie j przetestowa.
Nowe wasnoci ADDM
Oracle Database 11g oferuje wiele nowych wasnoci ADDM (Automatic Database Diagnostic
Monitor), w skad których wchodz:
nowe widoki ADDM,
ADDM uwzgldniajcy istnienie RAC,
nowy pakiet
dbms_addm
do zarzdzania ADDM,
klasyfikacja,
dyrektywy.
Przyjrzyjmy si teraz bliej kadej z tych nowych wasnoci.
Nowe widoki ADDM
Ponisza tabela prezentuje nowe widoki powizane z ADDM, które zostay dodane w Oracle
Database 11g.
62
Oracle Database 11g. Nowe moliwoci
Nazwa widoku
Opis
DBA_ADDM_TASKS
Dostarcza historyczn reprezentacj wczeniejszych
zada ADDM.
DBA_ADDM_INSTANCES
Wywietla informacje o zadaniach ADDM na poziomie
instancji.
DBA_ADDM_FINDINGS
Dostarcza dodatkowych informacji dla rónych widoków
doradczych.
DBA_ADDM_FDG_BREAKDOWN
Zapewnia informacj o udziale poszczególnych znalezisk
(finding) w kadej z instancji.
DBA_ADDM_SYSTEM_DIRECTIVES
DBA_ADDM_TASK_DIRECTIVES
Zauwamy, e kady z widoków DBA_ ma odpowiadajcy mu widok USER_, za wyjtkiem
widoku DBA_ADDM_SYSTEM_DIRECTIVES.
Wspóistnienie RAC i ADDM
Istnieje co najmniej kilka istotnych zagadnie wydajnociowych specyficznych dla RAC. Przed
Oracle Database 11g jedyn metod analizy komponentu klastra o konfiguracji RAC byo prze-
gldanie znacznej liczby widoków GV$. Oracle Database 11g dostarcza nowego poziomu analizy
ADDM nazwanej Database ADDM. Z Database ADDM narzdzie Oracle ADDM jest teraz
wiadome obecnoci RAC i wcza analiz klastra RAC do ogólnego procesu analizy ADDM
bazy danych.
Podobnie jak w przypadku Instance ADDM (czyli ADDM dla pojedynczej instancji bazy danych),
nowe procesy Database ADDM (czyli ADDM dla caej bazy danych) s uruchamiane domylnie
po wykonaniu kadej migawki AWR (Automatic Workload Repository). Database ADDM moe
zapewni raportowanie wystpienia wymienionych niej stanów:
Nadmierne uywanie globalnych zasobów takich jak operacje wejcia/wyjcia i blokady
globalne.
Wysoko obciajce zapytania SQL i wystpienia gorcych bloków (hot block).
Nadmierny ruch typu interconnect w globalnej pamici podrcznej.
Opónienia czy sieciowych.
Odchylenia czasów odpowiedzi instancji.
Wczenie Database ADDM odbywa si poprzez wywoanie procedury
set_default_task_
´
parameter
z dostarczanego przez Oracle pakietu PL/SQL
dbms_advisor
. Pozwala to ustali
wartoci parametru
instances
majce wskaza instancje, które powinny podlega analizie Data-
base ADDM. Ponisza tabela daje wgld w róne opcje, których mona uy w przypadku
parametru
instances
.
Rozdzia 2.
i Nowe wasnoci zarzdzania
63
Opcja
Uruchamiany tryb analizy ADDM
UNUSED
Wycza Database ADDM dla wszystkich instancji.
Lista instancji rozdzielonych znakami przecinka
Database ADDM zostanie wykonane tylko
dla wymienionych instancji.
ALL
Wcza Database ADDM dla wszystkich instancji.
Oto kilka przykadów ustawiania wartoci parametru
instances
:
-- Wycz Database ADDM dla wszystkich instancji
Exec dbms_advisor.set_default_task_parameter('ADDM', 'INSTANCES', 'UNUSED');
-- Skonfiguruj Database ADDM dla instancji 1. i 3.
Exec dbms_advisor.set_default_task_parameter('ADDM', 'INSTANCES', '1,3');
-- Skonfiguruj Database ADDM dla wszystkich instancji
Exec dbms_advisor.set_default_task_parameter('ADDM', 'INSTANCES', 'ALL');
Rezultat takiego dodatkowego poziomu analizy bdzie widoczny w co najmniej kilku miejscach
w OEM, na przykad na podstronie Cluster strony analizy wydajnoci. Stamtd mona przej
do bardziej szczegóowych stron. Moliwe jest take raportowanie rczne z wykorzystaniem
nowego pakietu
dbms_addm
, które zostanie omówione w kolejnym podpunkcie.
Zarzdzanie ADDM poprzez dbms_addm
W celu wsparcia pracy administratora bazy danych w zarzdzaniu Oracle ADDM, w Oracle Data-
base 11g zosta wprowadzony nowy pakiet
dbms_addm
. Pakiet ten umoliwia zlecenie rozpoczcia
analizy ADDM, ukierunkowanie analizy, wydrukowanie raportu lub usunicie wyniku poprzed-
niej analizy.
Niektóre najpowszechniej uywane programy pakietu
dbms_addm
wraz z ich przeznaczeniem
zostay wymienione w poniszej tabeli (nie uwzgldnia ona dyrektyw, poniewa zostan pokrótce
omówione póniej):
analyze_db
Planuje analiz ADDM bazy danych opart na zakresie dwóch dostarczonych
migawek.
analyze_inst
Planuje analiz ADDM instancji w oparciu o dwie dostarczone migawki.
analyze_partial
Planuje czciow analiz ADDM w oparciu o dwie dostarczone migawki
oraz list instancji.
delete
Usuwa wybrane zadanie ADDM.
get_report
Dostarcza domylny raport ADDM dla wybranych zada ADDM.
Poniej prezentujemy przykad uycia pakietu
dbms_addm
w celu wykonania analizy ADDM
bazy danych i raportowania jej wyniku:
-- Przedstaw list wanych migawek z ostatnich 4 godzin
select instance_number, snap_id
from wrm$_snapshot
where end_interval_time < systimestamp - interval '4' HOUR
order by 1,2;
64
Oracle Database 11g. Nowe moliwoci
INSTANCE_NUMBER SNAP_ID
--------------- ----------
1 24
2 23
2 25
2 26
Var tname varchar2(60);
BEGIN
:tname:='Zadanie ADDM Database';
dbms_addm.analyze_db(:tname, 25, 26);
END;
/
set long 1000000
Spool /tmp/dbreport.rpt
SELECT dbms_addm.get_report(:tname) FROM dual;
spool off
Wynikowy raport posiada w ogólnoci taki sam format jak standardowy raport ADDM, który
mona otrzyma w Oracle Database 10g (wykonujc skrypt addmrpt.sql). Wynik analizy ADDM
mona usun przy pomocy
dbms_addm.delete
, tak jak pokazano poniej:
exec dbms_addm.delete('Zadanie ADDM Database');
Klasyfikacja znalezisk
Framework Oracle Advisor zosta wprowadzony w Oracle Database 10g. ADDM jest wanie
przykadem doradcy (advisor). Framework wyrónia symptomy, problemy, ostrzeenia i infor-
macyjne typy znalezisk (odpowiednie wartoci kolumny TYPE widoku dba_advisor_findings
to SYMPTOM, PROBLEM, WARNING, INFORMATION). Nazwy znalezisk (finding name)
zostay dodane do frameworku Oracle Advisor dopiero w Oracle Database 11g. Dostarczaj one
dodatkowej informacji, która pomaga zaklasyfikowa otrzymane ustalenia do jakiej kategorii.
Przykadowym znaleziskiem moe by ustalenie, e wykorzystanie procesora jest zbyt wysokie,
tak jak pokazuje przykad:
SQL> select task_name, finding_name,
type, impact_type from dba_advisor_findings
where rownum < 2;
TASK_NAME FINDING_NAME TYPE IMPACT_TYPE
-------------------- ------------------ ----------- ------------------------------
ADDM:2209966315_1_3 Wykorzystanie CPU PROBLEM Czas pracy bazy danych
w mikrosekundach.
Nowa kolumna w Oracle Database 11g —
FINDING_NAME
— klasyfikuje znalezisko do konkretnej
kategorii, w naszym przypadku do kategorii wykorzystania procesora („Wykorzystanie CPU”).
Kolumna ta zostaa dodana take do widoku USER_ADVISOR_FINDINGS.
Taka nowa klasyfikacja znalezisk moe posuy wykonaniu dodatkowej analizy, tak jak
w poniszym przypadku, gdzie staramy si sprawdzi , czy problem nadmiernego wykorzy-
stania procesora nasila si o jakich okrelonych porach (np., jak w naszym przykadzie, w oko-
licach poudnia):
Rozdzia 2.
i Nowe wasnoci zarzdzania
65
SQL> select to_char(execution_end, 'hh24') hour , count(*)
from dba_advisor_findings a, dba_advisor_tasks b
where finding_name='Wykorzystanie CPU'
and a.task_id=b.task_id
group by to_char(execution_end, 'hh24')
order by 1;
HO COUNT(*)
-- ----------
04 1
05 1
07 1
11 3
12 3
13 2
15 1
16 2
17 1
Wyróniamy okoo 80 rónych kategorii znalezisk, które mona zobaczy w widoku DBA_
ADVISOR_FINDING_NAMES.
Dyrektywy
Gdy uywamy ADDM, podane moe by ukierunkowanie analizy na ignorowanie wystpie-
nia niektórych stanów. Przykadowo, jeli sabe strony schematu ROBERT s dobrze znane, nie
obejmowanie go analiz ADDM bdzie miao sens. W celu wykluczenia rónych analiz ADDM
i zgaszania rónych znalezisk moemy ustali dyrektywy. Mog one zosta przypisane do wybra-
nych zada ADDM lub ustawione jako dyrektywy systemowe. Dyrektywy mona ustawia
z wiersza polece lub wewntrz OEM. Nastpujce podpunkty omawiaj tworzenie, usuwanie
i przykady uycia dyrektyw.
Tworzenie dyrektyw
Procedury suce do ustawiania dyrektyw znajduj si w poniszej tabeli:
Typ
Nazwa procedury
Opis
Dyrektywa:
wstaw
znalezisko
dbms_addm.
insert_finding_directive
Ogranicza raport ADDM do specyficznych kategorii
znalezisk (wicej informacji na ten temat znajdziemy
we wczeniejszym podpunkcie tego rozdziau
„Klasyfikacja znalezisk”).
Dyrektywa:
wstaw
parametr
dbms_addm.
insert_parameter_directive
Tworzy dyrektyw, która zapobiega sugerowaniu
przez ADDM dziaa majcych na celu zmian
wartoci konkretnych parametrów systemowych
(
v$parameter
).
Dyrektywa:
wstaw
segment
dbms_addm.
insert_segment_directive
Tworzy dyrektyw, która zapobiega sugerowaniu
przez ADDM dziaa dotyczcych konkretnych
wacicieli, segmentów, podsegmentów lub konkretnych
numerów obiektów.
66
Oracle Database 11g. Nowe moliwoci
Typ
Nazwa procedury
Opis
Dyrektywa:
wstaw SQL
dbms_addm.
insert_sql_directive
Tworzy dyrektyw, która zapobiega sugerowaniu
przez ADDM dziaa dotyczcych zapyta SQL
o konkretnych identyfikatorach. Dalsza filtracja
umoliwia ograniczenie zapytania SQL do minimalnej
liczby aktywnych sesji lub minimalnego czasu
odpowiedzi mierzonego w mikrosekundach.
Usuwanie dyrektyw
Jak pokazuje ponisza tabela, pakiet
dbms_addm
dostarcza procedur sucych do usuwania
dyrektyw:
Typ
Nazwa procedury usuwajcej
Dyrektywa: usu znalezisko
dbms_addm.delete_finding_directive
Dyrektywa: usu parametr
dbms_addm.delete_parameter_directive
Dyrektywa: usu segment
dbms_addm.delete_segment_directive
Dyrektywa: usu SQL
dbms_addm.delete_sql_directive
Ustalanie, czy dyrektywy s zdefiniowane
W wielu widokach mona znale now kolumn
FILTERED
, która wskazuje, czy konkretny wiersz
danego widoku podleg filtracji przez dyrektyw. Do widoków zawierajcych kolumn
FILTERED
nale:
DBA i USER_ADVISOR_FINDINGS,
DBA i USER_ADVISOR_RECOMMENDATIONS,
DBA i USER_ADVISOR_ACTIONS.
Przykady uywania dyrektyw
Przykadow sytuacj, w której chcielibymy posuy si dyrektywami, moe by przypadek,
gdy nie chcemy, aby ADDM kiedykolwiek raportowa na temat schematu ROBERT. W poni-
szym przykadzie wykluczamy ten schemat i uruchamiamy raportowanie:
var tname VARCHAR2(60);
var inst_num number;
BEGIN
-- Uruchomienie tylko dla biecej instancji
select instance_number into :inst_num from v$instance;
-- Nazwanie analizy
:tname := 'moja_analiza_instancji';
-- Stworzenie zadania
DBMS_ADVISOR.CREATE_TASK('ADDM', :tname);
-- Migawka rozpoczcia analizy
DBMS_ADVISOR.SET_TASK_PARAMETER(:tname, 'START_SNAPSHOT', 242);
-- Migawka zakoczenia analizy
DBMS_ADVISOR.SET_TASK_PARAMETER(:tname, 'END_SNAPSHOT', 243);
Rozdzia 2.
i Nowe wasnoci zarzdzania
67
-- Przypisanie instancji do zadania
DBMS_ADVISOR.SET_TASK_PARAMETER(:tname, 'INSTANCE', :inst_num);
-- Ustawienie dyrektywy
DBMS_ADVISOR.INSTER_SEGMENT_DIRECTIVE(:tname, 'Segment directive ID', 'ROBERT');
-- Uruchomienie zadania
DBMS_ADVISOR.EXECUTE_TASK(:tname);
END;
/
-- Raportowanie zadania
set long 1000000
select dbms_addm.get_report('moja_analiza_instancji') from dual;
exec dbms_addm.delete_segment_directive(NULL, 'Segment directive ID');
exec dbms_addm.delete('moja_analiza_instancji');
Moemy take wygenerowa raport ADDM za pomoc procedury
dbms_advisor.get_task_
´
report
, nakazujc zignorowanie zbioru ogranicze, tak jak pokazano poniej:
select dbms_advisor.get_task_report('moja_analiza_instancji', 'TEXT', 'ALL') from dual;
Nowe wasnoci AWR
Oracle Database 11g ulepszy repozytorium Oracle Database Automated Workload Repository
(AWR), które zostao wprowadzone w Oracle Database 10g. Nowe wasnoci czyni zarzdzanie
baz danych jeszcze prostszym. W skad nowych lub ulepszonych wasnoci wliczamy:
zmian domylnej retencji migawek AWR,
nowe wasnoci linii bazowych AWR,
adaptacyjne progi metryk.
Domylna retencja migawek AWR
Domylnie Oracle Database 11g zachowuje teraz informacj o migawkach AWR przez osiem
dni (w przeciwiestwie do siedmiu dni, jak poprzednio). Domylne zachowanie mona zawsze
zmieni . Nowa warto bdzie ustalona tylko dla nowych baz danych. Uaktualnione bazy danych
utrzymaj takie wartoci retencji AWR, jakie zostay dla nich wczeniej okrelone.
Nowe wasnoci linii bazowych AWR
Oracle Database 11g konsoliduje poprzednie wasnoci linii bazowych przedstawionych w Oracle
Database 10g. Te skonsolidowane wasnoci okrelamy terminem AWR Baseline. Ponadto,
oprócz rónych wasnoci dostpnych w Oracle Database 10g, w Oracle Database 11g zostay
dodane nowe, czynice linie bazowe AWR jeszcze bardziej przydatnymi administratorowi bazy
danych. W skad tych wasnoci wchodz:
nowe typy linii bazowych AWR,
adaptacyjne progi.
68
Oracle Database 11g. Nowe moliwoci
Nowe typy AWR Baseline
Oracle Database 11g wprowadza troch zawirowa w AWR Baseline. W ich skad wchodz:
Linie bazowe okien kroczcych. Przesuwne linie bazowe. Zazwyczaj s oparte
na caoksztacie danych statystycznych dostpnych w AWR.
Pojedyncze linie bazowe. Pozwalaj na zdefiniowanie linii bazowej, która ma zosta
uchwycona w danym, pojedynczym okresie czasu w przyszoci.
Powtórzeniowe linie bazowe. Pozwalaj na zdefiniowanie linii bazowej majcej by
pochwytywan w powtarzajcych si okresach czasu w przyszoci.
Kolejne podpunkty omówi wszystkie nowe, wymienione tu typy linii bazowych. Rozwaymy
take szablony linii bazowych, widoki danych sownikowych powizane z tymi szablonami
i usuwanie szablonów.
Linie bazowe okien kroczcych
Now wasnoci w Oracle Database 11g s linie bazowe okien kroczcych (moving window
baseline). Linia bazowa okna kroczcego nosi nazw SYSTEM_MOVING_WINDOW, a szcze-
góy jej dotyczce mona znale w widoku WRM$_BASELINE. Okres rozpoczcia i zako-
czenia okna linii bazowej SYSTEM_MOVING_WINDOW odnosi si do czasu pomidzy naj-
wczeniejsz i najpóniejsz dostpn migawk w Oracle Database 11g. W wyniku tego okres
czasu reprezentowany przez t lini bazow jest kontrolowany wartoci opcji retencji w AWR
i stale si przesuwa (std sprytna nazwa: linia bazowa okna kroczcego).
Domylny rozmiar okna moe zosta zmieniony poprzez wywoanie procedury
dbms_workload_
´
repository.modify_baseline_window_size
, tak jak pokazuje przykad:
exec dbms_workload_repository.modify_baseline_window_size ( -
window_size => 30);
Warto parametru
window_size
musi wynosi nie wicej dni ni cakowita warto liczby dni
parametru retencji AWR, w przeciwnym przypadku otrzymamy bd ORA-13541.
Przesuwnych linii bazowych mona uywa w OEM, aby porówna biece statystyki ze staty-
stykami linii bazowej, co ma uatwi stwierdzenie, jak radzi sobie nasza baza danych w kwestii
wydajnoci. Przykadowo, strona wydajnoci w OEM pozwala na zdefiniowanie linii bazowej,
z któr chcemy porówna raportowane statystyki. Mona uy systemowej przesuwnej linii
bazowej, rcznie zdefiniowanej linii bazowej lub nie uywa adnej.
Linia bazowa okna kroczcego kontynuuje odzwierciedlanie biecej wydajnoci naszego sys-
temu. Dane tej linii bazowej s wiee, podczas gdy rcznie zdefiniowane linie bazowe z cza-
sem stan si nieaktualne i przestan odzwierciedla dokadny stan linii bazowej naszej bazy
danych. Prawdopodobnie dobrym pomysem jest, zdajc sobie z tego spraw, utrzyma kilka
rcznie zdefiniowanych linii bazowych w celach porównawczych, aby upewni si, e wydaj-
no naszej bazy danych ukradkiem nie spada.
Rozdzia 2.
i Nowe wasnoci zarzdzania
69
Pojedyncze linie bazowe
Pojedyncze linie bazowe (single baseline) pod pewnymi wzgldami przypominaj linie bazowe
w Oracle Database 10g; mona zdefiniowa pojedyncz lini bazow w oparciu o istniejcy
zbiór migawek AWR. Jednak pojedyncze linie bazowe pozwalaj take na zdefiniowanie linii
bazowej dla okresu czasu w przyszoci. Przykadowo, jeli mamy jakie specjalne przetwarza-
nie, które wystpuje nieregularnie, ale wiemy, e bdzie miao miejsce w ten weekend, moemy
wykreowa pojedyncz lini bazow, aby zaplanowa jej wygenerowanie w przyszoci.
Pojedyncz lini bazow mona skonfigurowa za pomoc OEM. Na stronie domowej OEM
Database naley wybra zakadk Server. Opcja zatytuowana AWR Baselines bdzie widoczna
pod Statistics Management. Z poziomu tej strony mona utworzy pojedyncz lini bazow. OEM
zada od nas zdefiniowania jej czasu rozpoczcia i czasu zakoczenia lub podania zakresu
migawek AWR.
Jeli tworzymy pojedyncz lini bazow w oparciu o wczeniejsze migawki AWR, nie jest two-
rzony aden jej szablon. Jednak gdy tworzymy pojedyncz lini bazow w oparciu o okres czasu
w przyszoci, jest tworzony szablon w celu zaplanowania uruchomienia tej linii bazowej. Dopóki
szablon linii bazowej nie zostanie wykonany, nie bdzie wykazywany na licie linii bazowych
AWR w OEM. Za pomoc parametru
expiration
mona zdefiniowa dat wyganicia linii
bazowej. Czas wyganicia jest oparty na parametrze
end_time
stworzonej linii bazowej.
Procedury PL/SQL
dbms_workload_repository.create_baseline_template
uywamy w celu rcz-
nego stworzenia pojedynczej linii bazowej. W poniszym przykadzie tworzymy pojedyncz
lini bazow dla przyszego czasu (30 wrzenia) i ustawiamy czas wyganicia na 30 dni od warto-
ci
end_time
tej linii bazowej.
Alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
BEGIN
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (
start_time => '2008-09-30 13:00:00',
end_time => '2008-09-30 14:00:00',
baseline_name => 'baseline_092008',
template_name => 'template_092008', expiration => 30);
END;
/
Wyniki wykonania linii bazowych mona przeglda na stronie OEM AWR Baselines, klikajc
na wybran lini bazow. Mona je take przejrze , posugujc si rónymi widokami danych
sownikowych, wczajc w to widoki DBA_HIST_BASELINE oraz DBA_HIST_BASELINE_
DETAILS. Mona take wykorzysta rczne raportowanie, uywajc skryptu awrddrpt.sql.
Arup radzi…
Powtórzeniowe linie bazowe s niezwykle przydatne przy rozwizywaniu problemów wydajnociowych
powizanych z konkretnymi momentami lub przedziaami czasu. Przykadowo, wyobra my sobie hur-
towni danych, w której proces ETL (Extract, Transform, Load) odbywa si w nocy, a raportowanie za
dnia. Powtórzeniowa linia bazowa, której wykonanie powtarza si kadej nocy w okrelonych inter-
waach czasu, pomaga ustali jaki wzorzec na przestrzeni dni. Badajc raporty AWR kadej z linii
bazowych, mona stwierdzi, czy wystpowanie problemów wydajnociowych podlega jakiemu wzorcowi,
co z kolei jest przydatne w procesie ich rozwizywania.
70
Oracle Database 11g. Nowe moliwoci
Powtórzeniowe linie bazowe
Uruchamianie powtórzeniowych linii bazowych (repeating baseline) moe zosta zdefiniowane
na podstawie regularnych, staych interwaów czasowych. Przykadowo, jeli istnieje proces
raportowania wykonywany co sobot od godziny 18:00 do 23:00, moemy chcie stworzy
powtórzeniow lini bazow uruchamian w tym okresie czasu. Moe si to przyda w ledzeniu
cakowitej wydajnoci przetwarzania w duszym czasie lub przy rozwizywaniu problemów
w istotnych procesach przetwarzania, które nagle dowiadczyy problemów wydajnociowych.
Powtórzeniow lini bazow mona skonfigurowa za pomoc OEM. Na stronie domowej OEM
Database naley wybra zakadk Server. Opcja zatytuowana AWR Baselines bdzie widoczna
pod Statistics Management. Z poziomu tej strony mona utworzy powtórzeniow lini bazow.
OEM zada od nas zdefiniowania jej czasu rozpoczcia i czasu zakoczenia, jak równie czsto-
tliwoci (dziennej, miesicznej i tak dalej). Bdzie take trzeba poda dat/czas jej wyganicia
(powtórzeniowe linie bazowe ostatecznie podlegaj wyganiciu). W kocu OEM umoliwi
zdefiniowanie, jak dugo linia bazowa powinna zosta zachowana (retencja), a nastpnie stworzy
dla nas powtórzeniow lini bazow. Po utworzeniu takiej linii bazowej Oracle utworzy repre-
zentujcy j szablon. Wicej na temat szablonów linii bazowych dowiemy si w nastpnym pod-
punkcie. Wykonanie kadej z linii bazowych bdzie skutkowao pojawieniem si takiego wyko-
nania na stronie OEM AWR Baselines.
Procedury PL/SQL
dbms_workload_repository.create_baseline_template
uywamy w celu
rcznego stworzenia powtórzeniowej linii bazowej. Poniszy przykad ilustruje stworzenie takiej,
która jest wykonywana w kad niedziel o godzinie 13:00 przez 3 godziny. Ta linia bazowa
wyganie po 30 dniach, rozpocznie si 2008-05-31, a ostatni raz wykona si w ostatni niedziel
przed 2008-12-31.
BEGIN
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (
day_of_week => 'sunday', hour_in_day => 13,
duration => 3, expiration => 30,
start_time => '2008-05-31 17:00:00',
end_time => '2008-12-31 20:00:00',
baseline_name_prefix => 'baseline_Sunday_reports _',
template_name => 'template_Sunday_reports');
END;
/
Szablony linii bazowych AWR
Szablony linii bazowych AWR s tworzone dla powtórzeniowych linii bazowych. Szablony te
s wykorzystywane za kadym razem, kiedy uruchamiana jest zaplanowana linia bazowa. Sza-
blony mona przeglda w OEM, gdzie znajduj si róne informacje na temat stworzonych
powtórzeniowych linii bazowych.
Szablony linii bazowych AWR i sowniki danych
Informacje na temat szablonów linii bazowych s dostpne w widoku danych sownikowych
DBA_HIST_BASELINE_TEMPLATE. Oto przykad wykorzystania wspomnianego widoku:
Rozdzia 2.
i Nowe wasnoci zarzdzania
71
SQL> select template_name, template_type from dba_hist_baseline_template;
TEMPLATE_NAME TEMPLATE_
------------------------------ ---------
robert_test_002 SINGLE
template_070526 SINGLE
template_Sunday_reports REPEATING
test_repeating REPEATING
Usuwanie szablonów linii bazowych
OEM dostarcza atwego sposobu usuwania szablonów linii bazowych. Na stronie domowej OEM
Database, w zakadce Server, naley wybra AWR Baselines. Ze strony AWR Baselines wybie-
ramy link do AWR Baseline Templates. W kocu na stronie AWR Baseline Templates widzimy
status i konfiguracj istniejcych szablonów linii bazowych i moemy je usun .
Rczne usuwanie istniejcych szablonów linii bazowych odbywa si z wykorzystaniem proce-
dury PL/SQL
dbms_workload_repository.drop_baseline_template
, jak pokazano poniej:
BEGIN
DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE (
template_name => 'template_Sunday_reports');
END;
/
Adaptacyjne progi metryk
Ustalanie progów alarmowych w OEM odbywa si troch na chybi trafi. Metryki wydajnoci
mog by trudne do zdefiniowania i róni si w zalenoci od obcienia. W przypadku nowych
baz danych ustalenie progów jest podwójnie utrudnione, gdy nie dysponujemy adn histo-
ryczn informacj, na której mona si oprze . Dla systemów posiadajcych histori obcie-
nia linie bazowe mog posuy takiemu zdefiniowaniu metryk, aby dokadniej odzwierciedlay
one stan systemu.
W Oracle Database 11g adaptacyjne progi metryk (adaptive metric threshold) pozwalaj wznie
si ponad to, poniewa automatycznie ustal progi, uywajc do tego linii bazowych AWR.
OEM uatwia take zaaplikowanie adaptacyjnych progów — wystarczajce jest wykonanie
zaledwie kilku klikni . Kolejn korzyci pync z uywania adaptacyjnych progów metryk
jest to, e wraz ze zmian obcienia systemu progi alarmowe ewoluuj w celu odzwierciedlenia
biecego stanu naszej bazy danych.
Na stronie OEM Baseline Metric Thresholds (link dostpny jest na stronie AWR Baselines omó-
wionej w poprzednim punkcie ksiki) moemy zleci Oracle wykonanie szybkiej konfigura-
cji progów. Bazujc na rodzaju obcienia najczciej wystpujcego w naszym systemie (sys-
tem przetwarzania transakcyjnego OLTP, hurtownia danych lub system zmiennego obcienia),
OEM zdefiniuje za nas progi metryk. Raz ustalone pocztkowe progi mona edytowa wedug
potrzeb z poziomu strony Basic Metric Thresholds.
Progi generowane automatycznie przystosuj si do danego obcienia systemu, tak jak wska-
zuj linie bazowe wykorzystane do ustalenia tych progów. Zatem jeli obcienie raportowa-
niem wzrasta wieczorami, kiedy zaledwie kilku uytkowników online korzysta z bazy, warto
72
Oracle Database 11g. Nowe moliwoci
metryki aktywnych sesji bdzie prawdopodobnie nisza pod koniec ni w cigu dnia. Wraz
ze zmian w czasie przesuwnej linii bazowej AWR progi alarmowe dowolnej z metryk adapta-
cyjnych mog ulec zmianie. Na stronie OEM Baseline Metric Thresholds mona sprawdzi , czy
dana metryka jest metryk adaptacyjn.
AutoTask — planowanie
zautomatyzowanych zada utrzymania
System Oracle Database 10g wprowadzi nowe zautomatyzowane zadania utrzymania, takie
jak automatyczne zbieranie statystyk. Oracle Database 11g dodaje do infrastruktury Oracle nowy
komponent zwany AutoTask. Jego zadaniem jest dostarczenie centralnego komponentu odpo-
wiedzialnego za zarzdzanie zaplanowanymi zadaniami utrzymania. W poniszym punkcie przyj-
rzymy si architekturze AutoTask, widokom danych sownikowych oraz zarzdzaniu AutoTask
rcznie i poprzez OEM. Na koniec przyjrzymy si oknom utrzymania AutoTask.
Architektura AutoTask
AutoTask wyrasta z istniejcej architektury Oracle Database 11g. Czciami skadowymi archi-
tektury AutoTask s:
AutoTask Backgroud Process (ABP). Ten proces ta jest tworzony przez MMON.
Jest on odpowiedzialny za zarzdzanie cechami AutoTask, koordynuje klientów (client)
oraz planist (scheduler) AutoTask, a take utrzymuje histori zwizan z AutoTask,
któr mona obejrze w widoku DBA_AUTOTASK_TASK.
AutoTask Clients. S to automatyczne zadania utrzymania planowane przez AutoTask.
Oracle Database 11g zawiera klienty do zbierania statystyk, klienty Segment Advisor
oraz klienty Automatic SQL Tuning Advisor.
AutoTask Maintenance Windows. Róne okna utrzymania istniej dla rónych dni
tygodnia. Mog one by modyfikowane zgodnie z potrzebami.
Resource Manager. Przygotowany plan zasobów ma za zadanie ogranicza ilo
zasobów konsumowanych przez AutoTask. Plan ten moe by modyfikowany wedug
potrzeb.
OEM. Pozwala zarzdza czasem rozpoczcia i trwania rónych okien utrzymania
AutoTask oraz dodawa i usuwa zadania utrzymania. OEM mona take wykorzysta
do uaktywniania i dezaktywowania zada utrzymania.
Scheduler. Planista. Operacje AutoTask polegaj w znacznej mierze na planicie.
Architektura AutoTask wykorzystuje okna i infrastruktur planisty do uruchamiania
zada AutoTask.
Rozdzia 2.
i Nowe wasnoci zarzdzania
73
Widoki danych sownikowych dla AutoTask
Dla wsparcia infrastruktury AutoTask zostay stworzone nowe widoki. Stare prace (job) w Oracle
Database 11g zostay usunite z widoków DBA_SCHEDULER_* i przesunite do widoków
DBA_AUTOTASK_* (jak np. SQL Tuning Advisor). Dodano nastpujce widoki zwizane
z AutoTask:
DBA_AUTOTASK_CLIENT — widok ten zawiera list rónych klientów
uruchamianych przez AutoTask. Widok DBA_AUTOTASK_CLIENT posiada
zasób informacji, wczajc w to nazwy rónych zada AutoTask, które maj zosta
uruchomione, statusy tych zada, grupy konsumenckie, do których one nale, i redni
czas wykonania. Kolejne treci dostpne w widoku to: zuycie procesora przez zadanie
w czasie, maksymalny czas trwania klienta, nazwa grupy okien, do której przypisany
jest klient, oraz wiele innych atrybutów klienta. Oto przykad wykorzystania widoku
DBA_AUTOTASK_CLIENT:
SQL> select client_name, status, consumer_group, mean_job_duration
from dba_autotask_client;
CLIENT_NAME STATUS CONSUMER_GROUP
MEAN_JOB_DURATION
--------------------------------- -------- ------------------------------
auto optimizer stats collection ENABLED ORA$AUTOTASK_STATS_GROUP
+000000000 00:04:26.000000000
auto space advisor ENABLED ORA$AUTOTASK_SPACE_GROUP
+000000000 00:00:45.272727272
sql tuning advisor ENABLED ORA$AUTOTASK_SQL_GROUP
+000000000 00:05:53.000000000
W dokumentacji znajdziemy informacj, e kolumna
MEAN_JOB_DURATION zawiera redni,
a nie rodkow warto czasu trwania zadania, jak mogaby sugerowa jej nazwa.
DBA_AUTOTASK_CLIENT_HISTORY — widok, który dostarcza historycznej
reprezentacji uruchomie zdarze klientów AutoTask w ramach okna. Pozwala on
spojrze na historyczn informacj przebiegu kadego klienta AutoTask w oparciu
o dane okno, w którym AutoTask dziaa. Poniej przedstawiamy przykadowe zapytanie
do widoku, sprawdzajce, kiedy dziaa klient zautomatyzowanego zbierania statystyk:
SQL> select client_name, window_name, jobs_created, jobs_started,
jobs_completed
from dba_autotask_client_history
where client_name like '%stats%';
CLIENT_NAME WINDOW_NAME JOBS JOBS JOBS
CREATED STARTED COMPLETED
------------------------------- ---------------- ------- -------- ----------
auto optimizer stats collection THURSDAY_WINDOW 1 1 1
auto optimizer stats collection SUNDAY_WINDOW 3 3 3
auto optimizer stats collection MONDAY_WINDOW 1 1 1
auto optimizer stats collection SATURDAY_WINDOW 2 2 2
auto optimizer stats collection SUNDAY_WINDOW 4 4 4
auto optimizer stats collection TUESDAY_WINDOW 1 1 1
74
Oracle Database 11g. Nowe moliwoci
DBA_AUTOTASK_CLIENT_JOB — dostarcza informacji o aktualnie zdefiniowanych
i wykonywanych pracach AutoTask. Ten widok zazwyczaj jest pusty, chyba e jaka
praca jest w danym momencie w toku.
DBA_AUTOTASK_JOB_HISTORY — widok dostarczajcy informacji na temat
historii wykonania kadego klienta AutoTask.
SQL> select client_name, job_status, job_start_time, job_duration
from dba_autotask_job_history
where client_name like '%stats%' order by job_start_time;
CLIENT_NAME JOB_STATUS JOB_START_TIME
JOB_DURATION
------------------------------- ---------- -----------------------------------
--------------
auto optimizer stats collection SUCCEEDED 18-FEB-07 02.43.45.598298 PM -07:00
+000 00:00:24
auto optimizer stats collection SUCCEEDED 18-FEB-07 06.49.51.326230 PM -07:00
+000 00:02:21
auto optimizer stats collection SUCCEEDED 18-FEB-07 10.59.53.677261 PM -07:00
+000 00:00:55
auto optimizer stats collection SUCCEEDED 23-FEB-07 12.57.25.844519 AM -07:00
+000 00:12:49
auto optimizer stats collection SUCCEEDED 24-FEB-07 06.17.02.045879 PM -07:00
+000 00:13:09
auto optimizer stats collection SUCCEEDED 05-MAR-07 10.00.06.955011 PM -07:00
+000 00:04:32
DBA_AUTOTASK_OPERATION — widok dostarczajcy informacji na temat
atrybutów przypisanych operacjom AutoTask. Przykadowo, praca klienta AutoTask
moe by oznaczona jako
SAFE TO KILL
, jeli moe zosta przerwana w rodku dziaania
bez negatywnych skutków. Przykad takiej pracy pokazany zosta w wydruku poniszego
zapytania, gdzie kolumna
ATTRIBUTES
pracy „automatyczne zbieranie statystyk” jest
oznaczona jako
SAFE TO KILL
:
SQL> select * from dba_autotask_operation
where client_name like '%stats%';
CLIENT_NAME OPERATION_NAME OPE PRIORIT
----------------------------------- ------------------------- --- -------
ATTRIBUTES USE_R STATUS
------------------------------------- ----- --------
auto optimizer stats collection auto optimizer stats job OPT INVALID
ON BY DEFAULT, VOLATILE, SAFE TO KILL FALSE ENABLED
DBA_AUTOTASK_SCHEDULE — dostarcza czasy rozpoczcia i trwania kadego
z okien AutoTask.
DBA_AUTOTASK_TASK — ten widok dostarcza danych na temat kadego
indywidualnego zadania AutoTask. Oferuje zasób informacji od statystyk ostatniego
wykonania danego zadania, do oszacowanych statystyk jego kolejnego wykonania.
SQL> select client_name, task_name, task_target_type
from dba_autotask_task;
CLIENT_NAME TASK_NAME TASK_TARGET_TYPE
------------------------------- ------------------------- ----------------
auto optimizer stats collection gather_stats_prog System
auto space advisor auto_space_advisor_prog System
sql tuning advisor AUTO_SQL_TUNING_PROG SQL Workload
Rozdzia 2.
i Nowe wasnoci zarzdzania
75
Tutaj widzimy przykadowe miejsce, gdzie AutoTask spotyka si z planist. Zwrómy uwag
na kolumn
TASK_NAME w widoku DBA_AUTOTASK_TASK. Wie ona zadanie AutoTask
z programem skadowanym planisty, który to program mona odszuka w widoku DBA_
SCHEDULER_ PROGRAMS, tak jak pokazano poniej:
select program_name
from dba_scheduler_programs
where program_name='GATHER_STATS_PROG';
PROGRAM_NAME
------------------------------
GATHER_STATS_PROG
DBA_AUTOTASK_WINDOW_CLIENTS — widok dostarczajcy informacji
na temat rónych okien powizanych z klientami AutoTask.
DBA_AUTOTASK_WINDOW_HISTORY — widok ten dostarcza informacji
na temat okien AutoTask.
Zarzdzanie zadaniami AutoTask poprzez OEM
OEM oferuje interfejs do zarzdzania zadaniami AutoTask na stronie Scheduler Central. Link
do niej znajduje si na dole strony domowej OEM. Na stronie domowej planisty moemy zoba-
czy zarówno zautomatyzowane zadania utrzymania uruchamiane przez AutoTask, jak i zwy-
czajne prace (job) planisty lub prace Enterprise Managera. Rysunek 2.4 przedstawia przykad
strony OEM Scheduler Central, wywietlajcej zautomatyzowane zadania utrzymania, których
wykonanie zostao zaplanowane.
Rysunek 2.4.
Scheduler Central — strona narzdzia OEM
76
Oracle Database 11g. Nowe moliwoci
Na górze strony OEM znajduj si róne rodzaje dostpnych prac wymienione na licie rozwi-
janej. Kada z pozycji listy jest hiperczem przenoszcym do strony pozwalajcej na dalsze
zarzdzanie tymi rodzajami prac. Przykadowo, moemy wybra Automated Maintenance Tasks,
a OEM wywietli stron pokazan na rysunku 2.5, która pozwala na zarzdzanie zautomatyzo-
wanymi zadaniami utrzymania.
Rysunek 2.5.
Strona OEM Scheduler Central wywietlajca zadania Automated Maintenance Tasks
Na stronie z rysunku 2.5 mona sprawdzi , czy zadania wykonuj si w obrbie ich zaplano-
wanych okien, czy przekraczaj te ramy czasowe. Zwró my uwag na trzy opcje znajdujce si
na górze strony pod nagówkiem Schedulers. Pozwalaj one na zarzdzanie rónymi rodzajami
zaplanowanych zada. Przykadowo, jeli chcemy zarzdza zautomatyzowanymi zadaniami
utrzymania, powinnimy wybra link Automated Maintenance Tasks, a przejdziemy do strony
z rysunku 2.6.
Ze strony z rysunku 2.6 moemy zarzdza zautomatyzowanymi zadaniami utrzymania, klikajc
przycisk Configure umieszczony na górze. Niej na stronie znajdziemy wymienione konkretne
zautomatyzowane zadania utrzymania oraz graficznie przedstawiony plan ich przeszych
i przyszych uruchomie. Moemy klikn na dane zadanie, aby zobaczy szczegóowe zalecenia
dostarczone jako cz frameworku doradcy. Jeli klikniemy w Segment Advisor, zostaniemy
przeniesieni na stron OEM Segment Advisor Recommendations.
Wspomnielimy o dostpnej moliwoci konfiguracji zautomatyzowanych zada utrzymania
poprzez kliknicie w przycisk Configure widoczny na rysunku 2.6. OEM zapewnia opcje uak-
tywnienia lub dezaktywacji zautomatyzowanego zadania utrzymania albo na poziomie global-
nym, albo na poziomach ziarnistoci. Mona uaktywni lub dezaktywowa okrelone zadania
lub ich konkretne zaplanowane uruchomienia. Niektóre zadania posiadaj przycisk Configure,
który pozwala na ich dalsz konfiguracj. Rysunek 2.7 przedstawia przykadow stron OEM
Automated Maintenance Tasks Configuration.
Rozdzia 2.
i Nowe wasnoci zarzdzania
77
Rysunek 2.6.
Strona OEM Automated Maintenance Tasks
Rysunek 2.7.
Strona OEM Automated Maintenance Tasks Configuration
78
Oracle Database 11g. Nowe moliwoci
Rczne zarzdzanie zadaniami AutoTask
Oracle Database 10g do administracji nowymi zautomatyzowanymi pracami planisty, takimi
jak standardowo dostpne („z pudeka”) zbieranie statystyk bazodanowych, uywao pakietu
dbms_scheduler
. Wraz z pojawieniem si AutoTask bdziemy uywali nowego pakietu, aby
zarzdza tymi pracami, a mianowicie
dbms_auto_task_admin
. OEM take wykorzystuje ten
pakiet do zarzdzania zautomatyzowanymi pracami.
Podprogramu
dbms_auto_task_admin.disable
bdziemy uywali do dezaktywowania dowolnego
z zada AutoTask. Zwró my uwag, e aden z parametrów nie posiada domylnych wartoci,
dlatego w skadni wywoania naley poda je wszystkie. W poniszym przykadzie wyczymy
automatyczne zbieranie statystyk:
BEGIN
dbms_auto_task_admin.disable(client_name => 'auto optimizer stats collection',
operation => NULL, window_name => NULL);
END;
/
Parametr
window_name
pozwala zdefiniowa konkretne okno, które zamierzamy dezaktywowa
(w przeciwiestwie do dezaktywacji caego zadania). Standardowo mamy siedem okien, kade
na jeden dzie tygodnia. Nosz one nazwy MONDAY_WINDOW, TUESDAY_WINDOW
i tak dalej. Jeli nie yczymy sobie, aby statystyki byy gromadzone w niedziel (bo na przykad
w tym dniu adujemy nowe rekordy do hurtowni danych), jestemy w stanie uniemoliwi wyko-
nanie AutoTask w tym dniu nastpujcym poleceniem:
BEGIN
dbms_auto_task_admin.disable(client_name => 'auto optimizer stats collection',
operation => NULL, window_name => 'SUNDAY_WINDOW');
END;
/
Natomiast aby ponownie umoliwi wykonanie danego zadania, skorzystajmy z podprogramu
dbms_auto_task_admin.enable
. Znowu musimy poda wartoci dla wszystkich parametrów, jak
pokazuje poniszy przykad:
BEGIN
dbms_auto_task_admin.enable(client_name => 'auto optimizer stats collection',
operation => NULL, window_name => NULL);
END;
/
Okna utrzymania AutoTask
Jak wspomniano wczeniej, zadania AutoTask s zaprojektowane tak, aby wykonyway si
podczas trwania okien utrzymania AutoTask. Istnieje siedem domylnych okien, po jednym na
kady dzie tygodnia. Okna dni roboczych (MONDAY_WINDOW, TUESDAY_WINDOW
i tak dalej) trwaj cztery godziny i rozpoczynaj si o godzinie 22 lokalnego czasu. Okna dni
weekendowych trwaj 20 godzin, a ich czas rozpoczcia zaplanowany jest na godzin 6 rano
lokalnego czasu.
Rozdzia 2.
i Nowe wasnoci zarzdzania
79
Okna *_WINDOWS zastpuj okna WEEKEND_WINDOW i WEEKNIGHT_WINDOW dostpne
w Oracle Database 10g, jednake oba te okna pozostaj nadal zdefiniowane w Oracle
Database 11g.
Okna s przypisane do planu zasobów, DEFAULT_MAINTENANCE_PLAN, który jest auto-
matycznie uaktywniany podczas otwarcia okien utrzymania. Do planu zasobów DEFAULT_
MAINTENANCE_PLAN przypisanych jest wiele grup konsumenckich oraz róne towarzyszce
zadania, wczajc w to:
ORA$AUTOTASK_SQL_GROUP — do tej grupy konsumenckiej s przypisane
zadania automatycznego strojenia SQL, czyli zadania Automatic SQL Tuning.
ORA$AUTOTASK_SPACE_GROUP — do tej grupy przypisane s zadania Segment
Advisor.
ORA$AUTOTASK_STATS_GROUP — do tej grupy przypisane s zadania
automatycznego zbierania statystyk.
Kada z wymienionych grup kontroluje wykorzystanie zasobów (np. dopuszczalne obcienie
procesora) przez konkretne zadania utrzymania AutoTask.
Zmiany i nowe wasnoci
w zarzdzaniu plikiem parametrów
Firma Oracle wprowadzia kilka zmian w zarzdzaniu plikami parametrów serwera (pliki
SPFILE). Wczamy w to:
obsug bdów odczytu/zapisu do plików SPFILE;
atwiejsze przejcie na uywanie plików SPFILE;
zabezpieczenie przed ustawianiem przez uytkowników nieprawidowych wartoci
w plikach SPFILE.
Przyjrzyjmy si bliej poniszym wasnociom.
Obsuga bdów odczytu/zapisu do SPFILE
W Oracle Database 11g pliki SPFILE s bardziej chronione. Jeli wystpi bd odczytu/zapisu
do pliku SPFILE, Oracle wygeneruje bd w dzienniku alertów, a przysze wpisy do pliku
parametrów zostan zignorowane. W takiej sytuacji moemy optowa za zamkniciem bazy
danych i przywróceniem pliku parametrów. Moemy take utworzy nowy plik parametrów,
korzystajc z nowej opcji
create spfile from memory
(zostanie ona omówiona w kolejnym
punkcie). W kocu, w przypadku wystpienia bdu zwizanego z plikiem SPFILE, moemy
kontynuowa dziaanie bazy danych.
80
Oracle Database 11g. Nowe moliwoci
Prostsze przejcie na wykorzystywanie plików SPFILE
Niestety, zapewne s poród nas tacy, którzy cigle jeszcze nie przeszli na uruchamianie z wyko-
rzystaniem pliku SPFILE. Tworzenie i rozpoczcie uywania tego pliku jest teraz jeszcze
prostsze — moemy teraz uywa nowego polecenia
create spfile from memory
. Polecenie to
zbierze ustawienia z pamici i dokona ich zrzutu do pliku SPFILE. T metod, jeli sobie tego
yczymy, mona take wykorzysta do utworzenia kopii zapasowej pliku SPFILE przy uyciu
biecych ustawie z pamici. Jest to bardzo porczny sposób wykonania kopii zapasowej pliku
SPFILE, zanim dokonamy w nim jakichkolwiek zamian za pomoc polecenia
alter system
.
Standardowo Oracle stworzy plik SPFILE w lokalizacji domylnej, zdefiniowanej w systemie
operacyjnym (czsto jest to ORACLE_HOME/dbs). Moemy jednak wyspecyfikowa miejsce,
gdzie plik SPFILE ma zosta utworzony, definiujc nazw pliku i jego lokalizacj, jak pokazuje
nastpujcy przykad:
Create spfile='/oracle/util/spfilename.sp' from memory;
Zabezpieczenie przed ustawianiem przez uytkowników
nieprawidowych wartoci w plikach SPFILE
W Oracle Database 11g dooono dodatkow walidacj podczas dokonywania zmian w para-
metrach bazy danych. Obecnie w wielu przypadkach, podczas próby zmiany parametru z uy-
ciem niepoprawnej skadni, Oracle pouczy o zastosowaniu nieprawidowej wartoci. Niestety,
nie jest to w Oracle Database 11g do koca spójne, ale dobre na pocztek. Oto przykad:
SQL> alter system set control_management_pack_access = 'Wrong_Value'
scope=spfile;
alter system set control_management_pack_access = 'Wrong_Value' scope=spfile
*
ERROR at line 1:
ORA-00096: invalid value Wrong_Value for parameter
control_management_pack_access, must be from among DIAGNOSTIC+TUNING,
DIAGNOSTIC, NONE
Zmiany i nowe wasnoci
w Resource Managerze
Oracle Database 11g przedstawi szereg nowych wasnoci powizanych z menederem zaso-
bów Resource Manager. W ich skad wliczamy:
zdolno zmierzenia maksymalnej przepustowoci wejcia/wyjcia systemu (kalibracja
wejcia/wyjcia);
domylny plan utrzymania;
wbudowane plany zasobów;
Rozdzia 2.
i Nowe wasnoci zarzdzania
81
historie statystyk Resource Managera skadowane w AWR;
nowe dyrektywy planu Resource Managera.
Kalibracja wejcia/wyjcia
Oracle Database Resource Manager posiada now procedur pozwalajc uruchomi testy kali-
bracji wejcia/wyjcia w naszej bazie danych oraz przejrze ich wyniki. Uruchomienie pro-
cedury
dbms_resource_manager.calibrate_IO
wygeneruje obcienie na wszystkich wzach
klastra. Procedura przyjmuje dwa parametry wejciowe i trzy parametry wyjciowe, jak poka-
zano w poniszych tabelach:
Parametr wejcia
Typ
Znaczenie
num_physical_disks
pls_integer
Jest to przybliona liczba dysków fizycznych uywanych przez
baz danych. Domylna warto wynosi 1.
max_latency
pls_integer
Maksymalne opónienie w milisekundach dozwolone dla
da operacji wejcia/wyjcia o rozmiarze równym wartoci
db_block_size
. Domylnie 20.
Parametr wyjcia
Typ
Znaczenie
max_iops
pls_integer
Maksymalna liczba losowo rozdystrybuowanych da operacji
wejcia/wyjcia o rozmiarze
db_block_size
, które system moe
udwign .
max_mbps
pls_integer
Maksymalna liczba megabajtów na sekund, jak system moe
udwign . Obliczenie oparte na losowo rozdystrybuowanych
1-megabajtowych odczytach.
actual_latency
pls_integer
rednie opónienie da wejcia/wyjcia
db_block_size
w tempie MAX_IOPS na ms.
W celu uycia opisanej funkcji naley posugiwa si asynchronicznymi operacjami wejcia/
wyjcia.
Oto przykad uycia procedury
dbms_resource_manager.calibrate_io
:
Declare
v_max_iops PLS_INTEGER:=1;
v_max_mbps PLS_INTEGER:=1;
v_actual_latency PLS_INTEGER:=1;
begin
dbms_resource_manager.calibrate_io(
max_iops=>v_max_iops,
max_mbps=>v_max_mbps,
actual_latency=>v_actual_latency);
dbms_output.put_line('Results follow: ');
dbms_output.put_line('Max IOPS: '||v_max_iops);
dbms_output.put_line('Max MBPS: '||v_max_mbps);
dbms_output.put_line('Actual Latency: '||v_actual_latency);
end;
/
82
Oracle Database 11g. Nowe moliwoci
Status kalibracji (biecej lub historycznej) moemy sprawdzi , odpytujc widok V$IO_
CALIBRATION_STATUS, jak pokazano w nastpujcym przykadzie:
Select status from v$io_calibration_status;
STATUS
-------------
IN PROGRESS
Wyniki kalibracji znajdziemy w tabeli
DBA_RSRC_IO_CALIBRATE
, jak pokazuje poniszy przykad:
select * from dba_rsrc_io_calibrate;
STATUS LATENCY MAX_IOPS MAX_MBPS NUM_DISKS
------------- ---------- ---------- ---------- ----------
CALIBRATION_TIME
---------------------------------------------------------
READY 19 77 6 1
27-MAY-07 09.50.15.421 PM
Domylny plan utrzymania
Tak jak w poprzednich wersjach Oracle, zazwyczaj nie istnieje domylnie aktywny plan utrzy-
mania. Jest jeden wyjtek, o którym naley pamita , a jest on zwizany z planem zasobów
DEFAULT_MAINTENANCE_PLAN, o którym mówilimy wczeniej w tym rozdziale. Kiedy
okno utrzymania planisty zostaje otwarte, a plan jest z nim zwizany (jak podczas trwania okna
utrzymania), wtedy plan powizany z oknem planisty zostaje uaktywniony w systemie.
Jeli nie chcemy, aby planista definiowa plan zasobów, moemy wykorzysta procedur
dbms_
´
scheduler.set_attribute
w celu ustawienia atrybutu
resource_plan
na pusty cig znaków,
co wyczy t wasno . Bdzie trzeba zmodyfikowa wszystkie okna utrzymania w Oracle
Database 11g, aby cakowicie zapobiec ustawieniu planu DEFAULT_MAINTENANCE_PLAN.
Podobnie, jeli chcemy przypisa inny plan zasobów, moemy posuy si t sam metod
(czyli procedur
dbms_scheduler.set_attribute
), aby dla danego harmonogramu uruchomie
(schedule) ustawi atrybut nazwy planu zasobów na now warto .
Arup radzi…
Kalibracja wejcia/wyjcia nie jest niczym nowym w sektorze IT. Istnieje kilkanacie innych technologii,
które j umoliwiaj — poczwszy od rozwiza proponowanych przez dostawców sprztu, a na dostaw-
cach oprogramowania systemów operacyjnych skoczywszy. Nawet Oracle dostarcza narzdzie zwane
Orion, czciowo realizujce ten cel. Zatem jakich dodatkowych funkcji dostarcza narzdzie kalibracji
wejcia/wyjcia w 11g?
Otó jest ich mnóstwo. Po pierwsze, wszystkie pozostae narzdzia jedynie wykonuj wiele operacji
wejcia/wyjcia do dysków i buduj profil oparty o ten transfer. Niektóre id dalej, dostarczajc wicej
ziarnistoci, inteligencji i tym podobnych, jednak w mniejszym lub wikszym stopniu ich dziaanie
pozostaje takie samo. Procedura kalibracji wejcia/wyjcia pakietu
dbms_resource_manager jest
wyjtkowa w sensie wykonywania dziaa identycznych z rutynowymi dziaaniami Oracle Database,
a nie generycznych da wejcia/wyjcia. Dziki temu kalibracja dobrze odzwierciedla faktyczne
wywoania bazy danych Oracle, co ma znaczcy wpyw na wydajno. Gdyby istnia bd w kodzie jdra
Oracle, w obszarze wejcia/wyjcia, to zapewne miaby on wpyw take na kalibracj, co byoby wielce
podane. Oczywicie mówimy tu o podaniu wykrycia efektów istniejcego bdu, a nie o podaniu
jego istnienia samego w sobie.
Rozdzia 2.
i Nowe wasnoci zarzdzania
83
Jeli generalnie jestemy za tym, aby plan DEFAULT_MAINTENANCE_PLAN by wykorzy-
stywany przez planist, ale s sytuacje, w których nie chcemy przesania biecego planu zaso-
bów, moemy skonfigurowa parametr bazy danych
resource_manager_plan
z atrybutem
force
zapobiegajcym przesoniciu planu, jak pokazano w przykadzie:
Alter system set resource_manager_plan='force:rf_plan' scope=both;
Aby wybra plan, moemy posuy si procedur PL/SQL
dbms_resource_manager.switch_plan
.
W celu pozbycia si atrybutu
force
wykonujemy polecenie
alter system
, podobnie jak poka-
zano w powyszym przykadzie, tyle e po prostu bez atrybutu
force
. Oto przykad:
Alter system set resource_manager_plan='rf_plan' scope=both;
Wbudowane plany zasobów
Oracle Database 10g dostarcza wbudowanego planu zasobów zwanego SYSTEM_PLAN. Sam
w sobie nie by on zbyt przydatnym planem zasobów. Oracle Database 11g dostarcza nowego
planu MIXED-WORKLOAD PLAN, zapewniajcego zarzdzanie zasobami w mieszanym
rodowisku, w którym wystpuje zarówno przetwarzanie OLTP, jak i DSS (lub prace wsadowe).
Statystyki Resource Managera w AWR
Jedn z ciekawszych wasnoci AWR jest dostarczanie trwaego repozytorium historycznych
statystyk. Poniewa widoki V$ s czyszczone, kiedy zamykamy baz danych, AWR staje si
najlepszym miejscem rzetelnej reprezentacji historycznej wydajnoci naszej bazy danych. Aby
uatwi ledzenie efektywnoci Oracle Database Resource Managera, AWR zawiera teraz widoki
dostarczajce historycznej informacji na temat jego wydajnoci. Nowe widoki to:
DBA_HIST_RSRC_PLAN — zawiera historyczne dane z V$RESOURCE_PLAN.
DBA_HIST_RSRC_CONSUMER_GROUP — zawiera historyczne dane
z V$RESOURCE_ CONSUMER_GROUP.
Kady z tych widoków jest powizany z konkretn migawk AWR i moe zosta zmaterializo-
wany przez OEM. Ponadto w Oracle Database 11g dodano widok V$RSRCMGRMETRIC,
zawierajcy historyczne metryki Resource Managera konsumpcji zasobów przez róne grupy
konsumenckie.
Nowe wasnoci dyrektyw planu Resource Managera
W Oracle Database 11g z dyrektywami planu Resource Managera zostay skojarzone nowe atry-
buty, w skad których wchodz:
switch_io_megabytes
— definiuje ilo megabajtów wejcia/wyjcia, które mog zosta
skonsumowane przez dan sesj, zanim zostanie podjta akcja dyrektywy. Domylna
warto to
NULL
(nieograniczona).
switch_io_reqs
— definiuje liczb da wejcia/wyjcia, które mog zosta wywoane
przez dan sesj, zanim zostanie podjta akcja dyrektywy. Domylna warto to
NULL
(nieograniczona).
84
Oracle Database 11g. Nowe moliwoci
switch_for_call
— zastpuje parametr
switch_time_in_call
, który w Oracle Database
11g jest niezalecany. Jeli warto parametru
switch_for_call
wynosi
TRUE
, a akcja
zostaa podjta jako rezultat jednego z parametrów:
switch_time
,
switch_io_megabytes
lub
switch_io_reqs
, to na kocu gównego wywoania grupa konsumencka zostanie
przywrócona do swojej oryginalnej grupy konsumenckiej.
mgmt_p1
–
mgmt_p8
— parametry te zastpuj
CPU_P1
–
CPU_P8
, które w Oracle Database
11g s niezalecane. Jeli plan posiada parametr
CPU_MTH
ustawiony na warto
EMPHASIS
,
to definiuje procent zuycia procesora konieczny do zaalokowania rónych poziomów
(od 1 do 8). Tylko
MGMT_P1
jest odpowiedni, jeli parametr
CPU_MTH
jest ustawiony
na warto
RATIO
(zazwyczaj uywana w przypadku prostszych planów, z tylko jednym
poziomem alokacji procesora), w którym to przypadku definiuje wag uycia procesora.
Przykad wykorzystania nowych parametrów przedstawiamy poniej:
-- Stwórz plan zasobów
BEGIN
DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
END;
/
BEGIN
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP (
CONSUMER_GROUP => 'OLTP',
COMMENT => 'OLTP');
END;
/
BEGIN
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP (
CONSUMER_GROUP => 'HIGH_IO_GROUP',
COMMENT => 'OLTP');
END;
/
BEGIN
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP (
CONSUMER_GROUP => 'EXCESSIVE_IO_GROUP',
COMMENT => 'OLTP');
END;
/
BEGIN
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP (
CONSUMER_GROUP => 'REPORTING',
COMMENT => 'RAPORTOWANIE');
END;
/
BEGIN
DBMS_RESOURCE_MANAGER.CREATE_PLAN(
PLAN => 'DAYTIME',
COMMENT => 'Wicej zasobów dla aplikacji OLTP');
END;
/
BEGIN
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE (
PLAN => 'DAYTIME',
GROUP_OR_SUBPLAN => 'OLTP',
COMMENT => 'grupa OLTP',
MGMT_P1 => 75,
SWITCH_GROUP => 'HIGH_IO_GROUP',
Rozdzia 2.
i Nowe wasnoci zarzdzania
85
SWITCH_IO_REQS => 100,
SWITCH_IO_MEGABYTES => 250,
SWITCH_FOR_CALL => TRUE);
END;
/
BEGIN
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE (
PLAN => 'DAYTIME',
GROUP_OR_SUBPLAN => 'REPORTING',
COMMENT => 'grupa raportowania',
MGMT_P1 => 15,
PARALLEL_DEGREE_LIMIT_P1 => 8,
ACTIVE_SESS_POOL_P1 => 4);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE (
PLAN => 'DAYTIME',
GROUP_OR_SUBPLAN => 'OTHER_GROUPS',
COMMENT => 'Ta jest wymagana',
MGMT_P1 => 10);
END;
/
BEGIN
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE (
PLAN => 'DAYTIME',
GROUP_OR_SUBPLAN => 'EXCESSIVE_IO_GROUP',
COMMENT => 'grupa wysokiego wejcia/wyjcia',
MGMT_P1 => 15,
PARALLEL_DEGREE_LIMIT_P1 => 2);
END;
/
Zalenoci drobnoziarniste
Przed Oracle Database 11g zmiany obiektów bazy danych mogy powodowa mylne uznanie
podlegych obiektów za niepoprawne (invalid). Przykadowo, przed 11g, dodanie kolumny do
tabeli mogo skutkowa tym, e zaleny widok zosta uznany za niepoprawny.
Obecnie Oracle Database 11g zapisuje metadane zalenoci na wikszym poziomie ziarnistoci,
wic czynnoci takie jak dodanie lub usunicie z tabeli kolumny niemajcej wpywu na zaleny
obiekt nie spowoduj uznania tego podlegego obiektu za niepoprawny.
Obecnie domylna opcja DDL WAIT
W Oracle Database 10g, domylnie, polecenia DDL nie oczekiway na moliwo zaoenia blo-
kady na obiekcie. Zamiast tego, w razie istnienia ju konfliktowej blokady na obiekcie, próba
wykonania polecenia koczya si niepowodzeniem oraz generowany by bd ORA-00054.
Obecnie, w wersji 11g, w wielu przypadkach Oracle nie tylko nie zwróci bdu, ale wykona
modyfikacj nawet bez potrzeby oczekiwania. Przykadowo, w Oracle Database 11g mona
wykona , co nastpuje:
86
Oracle Database 11g. Nowe moliwoci
Sesja 1:
SQL>insert into test values (1);
1 row created.
Sesja 2:
SQL>alter table test add (id2 number);
Table altered.
Zauwamy, e w powyszym przykadzie sesja nr 2 nie musi czeka na zatwierdzenie sesji nr 1
(np. poleceniem
commit
). Waciwie, gdybymy wykonali polecenie
describe
tabeli
TEST
w sesji
nr 1 nawet przed wykonaniem zatwierdzania, nie tylko widzielibymy now kolumn, ale
równie moglibymy wstawi do tabeli nowy wiersz z przypisan wartoci dla tej kolumny
3
.
Arup radzi…
Opcja DDL WAIT to bardzo przydatna wasno. Ile to razy próbowalimy zmodyfikowa tabel
w rodowisku produkcyjnym i okazywao si, e kto akurat jej uywa? Nasze polecenie
alter table
koczyo si bdem
4
ORA-00054: resource busy and acquire with nowait… Wszystko, czego byo
nam trzeba, to minimalne okno czasowe, w którym moglibymy otrzyma wyczn blokad na obiekcie
i wykona konieczne modyfikacje. Operacje DML mogyby zosta wznowione chwilk pó niej. Niestety!
Nie dao si tego wykona w Oracle Database 10g ani wczeniej.
Musiaem ucieka si do sztuczek polegajcych na umieszczaniu polecenia DDL w ptli i wykonywa-
niu go kilkanacie razy z nadziej, e w kocu uda si zaoy blokad na obiekcie — bardzo brutalne,
ale skuteczne. W Oracle Database 11g nie trzeba si wiele napracowa. W sesji, która bdzie wyda-
wa polecenie DDL, naley najpierw wykona nastpujce polecenie:
alter session set ddl_lock_timeout = 10;
Dziki temu kade kolejne polecenie DDL tej sesji poczeka 10 sekund, zanim zostanie przerwane
(chyba e wykona si pomylnie przed upywem tego czasu). Jeli wydamy polecenie DDL, które nie
bdzie w stanie zaoy wycznej blokady z powodu czynnoci DML trwajcych w innych sesjach,
nie zakoczy si ono bdem ORA-00054, ale raczej zostanie zawieszone (waciwie to poczeka na
moliwo zaoenia blokady). W momencie zaoenia blokady polecenie zakoczy si sukcesem.
Dopiero jeli nie uda si tego zrobi w przecigu 10 sekund, polecenie to zakoczy si bdem
ORA-00054.
Powysza wasno jest niezwykle przydatna w wykonywaniu modyfikacji DDL w systemach o wysokiej
zajtoci.
Moemy take wykorzysta nowy parametr
ddl_lock_timeout
na poziomie sesji, aby wskaza ,
e polecenie DDL powinno poczeka na zwolnienie blokady na obiekcie. Oto przykad:
SQL> alter session set ddl_lock_timeout=30;
Session altered.
3
Poniewa tabela test ma teraz dwie kolumny, próba wykonania kolejnego wstawienia w postaci
insert into
test values (wartosc);
bdzie powodowa bd, zatem najlepszym rozwizaniem w jeszcze trwajcej sesji
nr 1 byoby korzysta ze skadni polecenia jawnie podajcej list kolumn:
insert into test(nazwa_kolumny)
values (wartosc);
— przyp. tum.
4
Polska wersja komunikatu bdu to: ORA-00054: zasób zajty, a zlecono uzyskanie z NOWAIT lub upyn
limit czasu — przyp. tum.
Rozdzia 2.
i Nowe wasnoci zarzdzania
87
Nowa funkcjonalno dodawania kolumn
Oracle Database 11g pozwala teraz na dodanie do tabeli kolumny typu
NOT NULL
z domyln
wartoci w jednej szybkiej i prostej operacji. Warto domylna jest pamitana w bazie jako
metadana i w rzeczywistoci nie jest przechowywana fizycznie w tabeli. Dziki temu proces
dodawania kolumny z domyln wartoci jest znacznie szybszy.
Arup radzi…
To bardzo podana wasno z punktu widzenia dostpnoci. Przed Oracle 11g, kiedy dodawalimy
kolumn z ograniczeniem NOT NULL i z domyln wartoci, Oracle w rzeczywistoci umieszcza t
warto w kadym wierszu tabeli z osobna. We wszystkich wierszach, aa! Wyobra my sobie multi-
milionowowierszow tabel, w której dane byy uaktualniane kilkanacie milionów razy. Ile infor-
macji wycofania (undo) i powtórzenia (redo) zostao wygenerowanych! Co wicej, na tabeli na cay
czas trwania operacji zostaa zaoona blokada, aby zapobiec operacjom DDL. Wszytko to powodo-
wao nieze zamieszanie wród uytkowników.
W Oracle 11g polecenie
alter table pracownicy add(stopien varchar2(1) default 'X' not null)
w rzeczywistoci nie powoduje jednoczesnego uaktualnienia wartoci w tabeli i modyfikacji jej struktury.
Mona si o tym przekona, ustawiajc zdarzenie (event) 10046 przed uruchomieniem polecenia DDL
i sprawdzajc plik ladu po wykonaniu:
SQL> alter session set events '10046 trace name context forever, level 16';
Session altered.
SQL> alter table pracownicy add(stopien varchar2(1) default 'X' not null);
Table altered.
SQL> alter session set events '10046 trace name context off';
Session altered.
Teraz naley sprawdzi plik ladu; nie znajdziemy tam odniesienia do wyraenia
update pracownicy…
Takie zachowanie, czyli nie ustawianie fizycznie wartoci kolumny, skutkuje znaczcym zmniejsze-
niem rozmiarów informacji wycofania i powtórzenia oraz koczy si szybciej.
Kolejne przydatne zastosowanie tej wasnoci objawia si podczas dodawania do tabeli kolumny
NOT NULL bez wartoci domylnej.
Sowo na koniec
W niniejszym rozdziale poruszylimy wiele zagadnie. Jak wida , Oracle Database 11g jest
peen porzdnego „towaru”. Myl, e niektórymi z najbardziej przydatnych wasnoci s te
najprostsze, jak opcja DDL WAIT (wida , e brakuje jej skomplikowania, jakim cechuje si
cz innych wasnoci!) lub nowa moliwo dodawania kolumn. Zatwardziali uytkownicy
ASM równie znajd nowe funkcje pomocnymi. Arup take wykona wystrzaow robot w tym
rozdziale, gromkie brawa! Tak czy owak, taki nawa informacji, a to jeszcze nie koniec. Roz-
dzia 3. ju czeka w bloku startowym, a zapewnia jeszcze lepsz zabaw — jestecie w stanie
w to uwierzy ? Trzymajcie si mocno, to bdzie ostra jazda!