Systemy zarządzania bazami danych 1. Wstępik

13
Oryginały m.in. Hector Garcia-Molina, L. Banachowski 1. Wstępik 1 Systemy zarządzania bazami danych 1. Wstępik

description

Systemy zarządzania bazami danych 1. Wstępik. Tematyka. Teoretyczna: jak zbudować (jak zbudowany jest) SZBD? Praktyczna: jak wykorzystać tę wiedzę w strojeniu baz danych. SZBD się nie pisze, SZBD się kupuje. Literatura. - PowerPoint PPT Presentation

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

Page 1: Systemy zarządzania bazami danych 1. Wstępik

Oryginały m.in. Hector Garcia-Molina, L. Banachowski

1. Wstępik 1

Systemy zarządzania bazami danych

1. Wstępik

Page 2: Systemy zarządzania bazami danych 1. Wstępik

Oryginały m.in. Hector Garcia-Molina, L. Banachowski

1. Wstępik 2

Tematyka

• Teoretyczna: jak zbudować (jak zbudowany jest) SZBD?

• Praktyczna: jak wykorzystać tę wiedzę w strojeniu baz danych

• SZBD się nie pisze, SZBD się kupuje

Page 3: Systemy zarządzania bazami danych 1. Wstępik

Oryginały m.in. Hector Garcia-Molina, L. Banachowski

1. Wstępik 3

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).

Page 4: Systemy zarządzania bazami danych 1. Wstępik

Oryginały m.in. Hector Garcia-Molina, L. Banachowski

1. Wstępik 4

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.

Page 5: Systemy zarządzania bazami danych 1. Wstępik

Oryginały m.in. Hector Garcia-Molina, L. Banachowski

1. Wstępik 5

Struktura SZBD

Menedżer buforów

Parser zapytań Użytkownik

Transakcja Menedżer transakcji

Optymalizator

Menedżer odtwarzaniaSterowanie współbież.

Menedżer plików DziennikTablica zamków Bufory RAM

Dane statystyczneIndeksy

Dane użytkownika Dane systemowe

Page 6: Systemy zarządzania bazami danych 1. Wstępik

Oryginały m.in. Hector Garcia-Molina, L. Banachowski

1. Wstępik 6

Ilustracja – SZBD Oracle

SGA

Procesy systemu: serwera i drugoplanowe

Globalny Obszar Systemu (SGA)

• Instancja bazy danych

Page 7: Systemy zarządzania bazami danych 1. Wstępik

Oryginały m.in. Hector Garcia-Molina, L. Banachowski

1. Wstępik 7

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.

Page 8: Systemy zarządzania bazami danych 1. Wstępik

Oryginały m.in. Hector Garcia-Molina, L. Banachowski

1. Wstępik 8

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.

Page 9: Systemy zarządzania bazami danych 1. Wstępik

Oryginały m.in. Hector Garcia-Molina, L. Banachowski

1. Wstępik 9

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.

Page 10: Systemy zarządzania bazami danych 1. Wstępik

Oryginały m.in. Hector Garcia-Molina, L. Banachowski

1. Wstępik 10

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.

Page 11: Systemy zarządzania bazami danych 1. Wstępik

Oryginały m.in. Hector Garcia-Molina, L. Banachowski

1. Wstępik 11

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.

Page 12: Systemy zarządzania bazami danych 1. Wstępik

Oryginały m.in. Hector Garcia-Molina, L. Banachowski

1. Wstępik 12

Ilustracja działania1. 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.

Page 13: Systemy zarządzania bazami danych 1. Wstępik

Oryginały m.in. Hector Garcia-Molina, L. Banachowski

1. Wstępik 13

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.