Systemy zarządzania bazami danych 1. Wstępik

Download Report

Transcript Systemy zarządzania bazami danych 1. Wstępik

Systemy zarządzania bazami
danych
1. Wstępik
Oryginały m.in. Hector GarciaMolina, L. Banachowski
1. Wstępik
1
Tematyka
• Teoretyczna: jak zbudować (jak zbudowany
jest) SZBD?
• Praktyczna: jak wykorzystać tę wiedzę w
strojeniu baz danych
• SZBD się nie pisze, SZBD się kupuje
Oryginały m.in. Hector GarciaMolina, L. Banachowski
1. Wstępik
2
Literatura
• Hector Garcia-Molina, Jeffrey D. Ullman,
Jennifer Widom, Implementacja systemów baz
danych, WNT, 2003.
• [ też Pełny wykład, WNT 2006 ]
• Philippe Bonnet. Database Tuning: principles,
experiments, and troubleshooting techniques.
Elsevier, 2003
• Oracle. Database Performance Tuning Guide 10g
Release 1 (10.1).
Oryginały m.in. Hector GarciaMolina, L. Banachowski
1. Wstępik
3
Literatura uzupełniająca
• E. Whalen, M. Schroeder, Oracle Optymalizacja wydajności, Helion 2003.
• K. Loney, M. Theriault, Oracle 9i - Podręcznik
administratora baz danych. Helion 2003.
• M. Lentner, Oracle 9i. Kompletny podręcznik
użytkownika, Warszawa: PJWSTK 2003.
Oryginały m.in. Hector GarciaMolina, L. Banachowski
1. Wstępik
4
Struktura SZBD
Parser zapytań
Optymalizator
Użytkownik
Menedżer transakcji
Transakcja
Sterowanie współbież.
Tablica zamków
Menedżer buforów Menedżer odtwarzania
Menedżer plików
Dane statystyczne
Bufory RAM
Dziennik
Indeksy
Dane użytkownika Dane systemowe
Oryginały m.in. Hector GarciaMolina, L. Banachowski
1. Wstępik
5
Ilustracja – SZBD Oracle
• Instancja bazy danych
SGA
Globalny Obszar Systemu (SGA)
Procesy systemu:
serwera i drugoplanowe
Oryginały m.in. Hector GarciaMolina, L. Banachowski
1. Wstępik
6
Globalny Obszar Systemu (SGA)
• Bufory bazy danych zawierają bloki danych z bazy danych.
• Bufor dziennika powtórzeń zawiera dziennik zmian wykonanych
ostatnio na bazie danych. Pozycje dziennika zapisane w buforze
dziennika powtórzeń są przepisywane do plików dziennika
powtórzeń.
• Pula dzielona to obszary pamięci wspólnie używane przez procesy:
– Dzielony obszar SQL zawiera informacje o ostatnio wykonanych zdaniach
SQL: drzewo analizy składniowej i plan wykonania odpowiedniej instrukcji.
Pozwala na wielokrotne wykorzystanie planu. [ hard parse, soft parse, cursor
reuse ]
– Bufor słownika danych zawiera obraz fragmentów słownika danych.
Kolejki zleceń do bazy danych i kolejki odpowiedzi z bazy danych.
Oryginały m.in. Hector GarciaMolina, L. Banachowski
1. Wstępik
7
Procesy
• Procesy serwera są tworzone przez system do obsługi
zleceń od zgłaszających się przez sieć procesów
użytkowników.
• Procesy drugoplanowe są to stałe procesy tworzone przez
Oracle dla każdej instancji przeznaczone do wykonywania
rutynowych zadań systemu zarządzania bazą danych.
Oryginały m.in. Hector GarciaMolina, L. Banachowski
1. Wstępik
8
Procesy drugoplanowe
• Dyspozytor (D) – przekazywanie zleceń od połączonych
procesów użytkowników do kolejki zleceń, z której są one
pobierane przez dostępne procesy dzielone serwera oraz za
zwracanie wyników/odpowiedzi z powrotem do odpowiednich
procesów użytkowników.
• Pisarz bazy danych (DBWR) - przepisuje zmodyfikowane bloki
danych z buforów bazy danych w SGA do plików na dysku.
DBWR nie zapisuje bloków w chwili, gdy transakcja kończy się
zatwierdzeniem, co pozwala minimalizować liczbę zapisów na
dysk. DBWR zapisuje zmienione bloki na dysk tylko wtedy, kiedy
inne dane muszą zostać sprowadzone do SGA i za mało jest
wolnych buforów danych, aby je pomieścić. Realizuje punkty
kontrolne - chyba, że system powoła do tego specjalny proces
CKPT.
Oryginały m.in. Hector GarciaMolina, L. Banachowski
1. Wstępik
9
Procesy drugoplanowe (LGWR)
• Pisarz dziennika (LGWR) - przepisuje pozycje bufora dziennika
powtórzeń do pliku dziennika powtórzeń. W chwili gdy
transakcja zostaje zatwierdzona lub gdy bufor dziennika
powtórzeń się zapełni, LGWR zapisuje zawartość tego bufora do
pliku dziennika powtórzeń razem z informacją COMMIT.
Dopiero w chwili przesłania zawartości buforów dziennika
powtórzeń do plików dziennika powtórzeń uważa się transakcję
za zatwierdzoną (z możliwością odtworzenia stanu bazy danych
w przypadku awarii dysku).
• Działania procesów drugoplanowych DBWR i LGWR są
niezależne od siebie.
Oryginały m.in. Hector GarciaMolina, L. Banachowski
1. Wstępik
10
Procesy drugoplanowe (reszta)
• Monitor systemu (SMON) – odtwarzanie instancji przy uruchamianiu,
kompaktyfikacja wolnych obszarów na dysku (ekstentów) w celu uspójnienia
wolnych obszarów i ułatwienia kolejnych alokacji miejsca na dysku.
• Monitor procesów (PMON) – odtwarzanie procesu użytkownika po awarii,
zwalnianie zasobów, których używał ten proces, kontrola działania
dyspozytorów i procesów serwera i wznawianie ich, jeśli się zawiesiły.
• Archiwizator (ARCH) - w chwili zapełnienia plików dziennika powtórzeń,
kopiuje ich zawartość na nośnik archiwizacji.
• Proces punktu kontrolnego (CKPT) - realizuje punkt kontrolny.
• Procesy kolejek zadań (SNPn) - stałe zadania zaplanowane do wykonywania
przez system jak odświeżanie migawek czy zadania tworzone za pomocą
pakietu DBMS_JOB.
• Odtwarzacz (RECO) – odtwarzanie transakcji rozproszonych przy awarii sieci
lub systemu.
Oryginały m.in. Hector GarciaMolina, L. Banachowski
1. Wstępik
11
Ilustracja działania
1. Aplikacja kliencka ustanawia połączenie z serwerem za pomocą sterownika
Oracle Net.
2. Serwer wykrywa żądanie przychodzące z aplikacji i tworzy dedykowany
proces działający na serwerze w imieniu procesu użytkownika.
3. Użytkownik chce wykonać instrukcję SQL, np. zmienić adres osoby.
4. Proces serwera otrzymuje instrukcję i sprawdza czy w którymś z dzielonych
obszarów SQL nie jest zapisana identyczna instrukcja SQL. Jeśli jest, proces
serwera sprawdza uprawnienia użytkownika do żądanych danych i poprzednio
używany obszar SQL zostaje jeszcze raz użyty do przetworzenia instrukcji;
jeśli nie ma identycznej instrukcji, żądaniu zostaje przydzielony obszar
pamięci w ramach dzielonego obszaru SQL, w którym instrukcja SQL zostaje
poddana analizie składniowej i przetworzona.
Oryginały m.in. Hector GarciaMolina, L. Banachowski
1. Wstępik
12
Ilustracja działania (c.d.)
5. Proces serwera znajduje wszystkie potrzebne wartości danych lokalizując je
od razu w SGA albo sprowadzając je z plików z danymi na dysku.
6. Proces serwera modyfikuje dane w SGA. Proces DBWR zapisze
zmodyfikowane bloki na stałe na dysk, dopiero wtedy kiedy będzie to
konieczne. Ponieważ transakcja zostaje zatwierdzona, proces LGWR
natychmiast zapisuje zmiany dokonane przez transakcję do pliku dziennika
powtórzeń.
7. Gdy transakcja kończy się pomyślnie, proces serwera wysyła odpowiedni
komunikat poprzez sieć do aplikacji. Gdy nie kończy się pomyślnie, przesyła
odpowiedni komunikat o błędzie.
8. W czasie całej tej procedury, procesy drugoplanowe działają w tle, obserwując
czy czasem nie zaszły warunki wymagające ich interwencji.
Oryginały m.in. Hector GarciaMolina, L. Banachowski
1. Wstępik
13