Administracja Systemami Baz Danych Architektura systemu
Transkrypt
Administracja Systemami Baz Danych Architektura systemu
Administracja Systemami Baz Danych dr inŜ. Juliusz Jezierski Zakres przedmiotu: przedmiotu: • architektura systemów relacyjnych baz danych, danych, • organizacja przestrzeni danych, danych, • autoryzacja dostępu do danych, danych, • monitorowanie działań uŜytkowników, ytkowników, • strojenie zapytań, • strojenie serwera, serwera, • wykonywanie kopii bezpieczeństwa, stwa, • odtwarzanie danych po awarii Architektura systemu Oracle10g (c) 1997-2005, Politechnika Poznańska, Instytut Informatyki: JJ, RW, MZ © Instytut Informatyki Politechniki Poznańskiej Slajd 1 Globalny Obszar SystemowySystemowypamięć współdzielona Architektura systemu Oracle Forms Reports aplikacje uŜytkownika obszar współdzielony bufor biblioteczny SQLplus SQL SQL SQL dane DBWR LGWR SMON PMON CKPT SNP procesy drugoplanowe © Instytut Informatyki Politechniki Poznańskiej duŜy obszar globalny obszar uŜytkownika instancja bazy danych ARCH obszar Javy bufor słownikowy procesy usługowe (serwery) Globalny Obszar Systemowy bufory bufor dziennika danych powtórzeń Slajd 3 •bufor danych (ang. database buffer cache) •bufor dziennika (ang. redo log buffer) •obszar współdzielony (ang. shared pool) •bufor biblioteczny (ang. libarary cache) •bufor słownikowy (ang. dictionary cache) •globalny obszar uŜytkownika (ang. user global area - UGA) •obszar Javy (ang. Java pool) •duŜy obszar (ang. large pool) © Instytut Informatyki Politechniki Poznańskiej Slajd 4 Pamięć prywatna procesów instancji Globalny obszar systemowy - sterowanie wielkością • Ręczne - za pomocą parametrów inicjalizacyjnych: inicjalizacyjnych: – DB_CACHE_SIZE - bufor danych – LOG_BUFFER - bufor dziennika – SHARED_POOL_SIZE obszar współdzielony (bufor biblioteczny + bufor słownikowy + globalny obszar uŜytkownika) – JAVA_POOL_SIZE - obszar Javy – LARGE_POOL_SIZE - duŜy obszar • Automatyczne - za pomocą parametru inicjalizacyjnego: inicjalizacyjnego: SGA_TARGET • Parametry te są dynamiczne, czyli mogą być zmieniane w trakcie pracy instancji • Wielkość całej instancji moŜe być ograniczona za pomocą parametru SGA_MAX_SIZE © Instytut Informatyki Politechniki Poznańskiej SQL PGA prywatne obszary poleceń SQL bufor biblioteczny SGA SQL Slajd 5 Parametry inicjalizacyjne mające wpływ na wielkość prywatnego obszaru poleceń SQL • OPEN_CURSORS - liczba prywatnych obszarów SQL równocześnie wykorzystywanych przez kursory przez pojedynczy proces serwera, zamknięcie kursora powoduje jego dealokację, domyślnie 50 • SESSION_CACHED_CURSORS - umoŜliwia buforowanie kursorów po stronie procesu serwera i odciąŜa wykorzystanie obszaru bibliotecznego, domyślnie 0 © Instytut Informatyki Politechniki Poznańskiej Obszary PGA Robocze SQL Private Global Area: Area: • stos - zmienne, tablice sesji itp., • informacje o sesji uŜytkownika, • prywatny obszar poleceń SQL • zmienne i parametry poleceń SQL(kursory) • obszary robocze SQL - sortowanie danych, tworzenia i przetwarzania map bitowych oraz tablic haszowych Slajd 7 © Instytut Informatyki Politechniki Poznańskiej Slajd 6 Obszary robocze SQL - sterowanie wielkością • Ręczne - za pomocą parametrów inicjalizacyjnych (dla kaŜdego procesu serwera): – BITMAP_MERGE_AREA_SIZE – CREATE_BITMAP_AREA_SIZE – HASH_AREA_SIZE – SORT_AREA_SIZE • Automatyczne - za pomocą parametru inicjalizacyjnych: inicjalizacyjnych: – PGA_AGGREGATE_TARGET (od 10MB do 4000MB) określa docelowy rozmiar pamięci PGA dla wszystkich sesji przyłączonych do instancji – WORKAREA_SIZE_POLICY - dopuszczalne wartości: • AUTO - uaktywnia automatyczne zarządzania pamięcią sortowania • MANUAL - dezaktywuje automatyczne zarządzania pamięcią sortowania i umoŜliwia ręczną alokację za pomocą parametrów %_AREA_SIZE © Instytut Informatyki Politechniki Poznańskiej Slajd 8 Procesy usługowe (serwery) • Konfiguracje serwerów usługowych SQL procesy usługowe - realizują Ŝądania uŜytkowników, wykonując: – autoryzację, analizę składniową i optymalizację polecenia SQL, – odczyt niezbędnych bloków z dysku do buforów, – pielęgnują listy: LRU i kolejkę punktu kontrolnego obszar współdzielony bufor danych Bufor biblioteczny • z dedykowanymi serwerami sqlplus formularz raport 4. Odczyt danych ZałoŜenie blokad zapis do segm. wycofania i modyfikacja danych Rejestracja zmian SQL SGA • z współdzielonymi serwerami we sqlplus formularz 2 © Instytut Informatyki Politechniki Poznańskiej 3 4 SQL wy dane 1 Slajd 9 © Instytut Informatyki Politechniki Poznańskiej Slajd 10 Sekretarz Dziennika Powtórzeń • Zadania Sekratarza Dziennika Powtórzeń (ang. Log WriterWriterLGWR) LGWR) – zapis danych z bufora dziennika do pliku • następuje zatwierdzenie transakcji • • • • SGA bufor ten jest w jednej trzeciej zapełniony upłyną trzy sekundy od ostatniego zapisu zostaje zgłoszony punkt kontrolny zanim DBW0 dokona jakiegokolwiek zapisu na dysk zawartości bufora danych lista LRU SGA Kolejka punktu kontrolnegot LGWR bufor dziennika powtórzeń DBW0 dane © Instytut Informatyki Politechniki Poznańskiej SQL SQL dane zadania Sekretarza Bazy Danych (ang. Database WriterWriter-DBW0): DBW0): – zapis zmodyfikowanych bloków z buforów na dysk gdy: • zostanie zgłoszony punkt kontrolny • upłyną trzy sekundy od ostatniego zapisu • brakuje miejsca w buforze danych • liczba brudnych bloków przekroczy określoną granicę bufor danych dispatcher raport Sekretarz Bazy Danych • dane SQL bufor dziennika powtórzeń bufor słownikowy 1. 2. 3. SQL Slajd 11 © Instytut Informatyki Politechniki Poznańskiej plik dziennika powtórzeń Slajd 12 Punkty kontrolne Przełączanie plików dziennika powtórzeń Zdarzenia systemowe uaktualniające informacje o najstarszym brudnym bloku w buforze danych - inf. inf. niezbędna do odtwarzania bd po awarii instancji Dwa rodzaje punktów kontrolnych: – Przyrostowe punkty kontrolne - na podstawie ciągłej aktywności DBW0, proces punktu kontrolnego CKPT uaktualnia pliki kontrolne i nagłówki bazy danych – Pełne punkty kontrolne • DBR0 zapisuje w plikach bazy danych wszystkie brudne bufory • CKPT uaktualnia pliki kontrolne i nagłówki plików danych • Dwie kategorie: – Całkowite - np. zamknięcie bazy danych, ręczne wykonanie punktu kontrolnego za pomocą polecenia ALTER SYSTEM CHECKPOINT – dla konkretnej przestrzeni tabel - np. wyłączanie przestrzeni tabel, przełączenie w tryb ReadOnly, ReadOnly, rozpoczęcie backupu online • LGWR • 12 15 13 14 © Instytut Informatyki Politechniki Poznańskiej © Instytut Informatyki Politechniki Poznańskiej Slajd 13 Przyrostowy punkt kontrolny Slajd 14 Proces Punktu Kontrolnego • LOG_CHECKPOINT_INTERVAL [OS blocks] Proces Punktu Kontrolnego (ang. Checkpointer - CKPT): – Zgłaszanie punktu kontrolnego, – Zapisywanie w nagłówkach plików danych i w plikach kontrolnych inf. inf. o zakończonym punkcie kontrolnym LOG_CHECKPOINT_TIMEOUT [s] Najwcześniej zmodyfikowane bloki SGA Najpóźniej zmodyfikowane bloki CKPT bufor danych Odtwarzanie po awarii instancji Punkt kontrolny plik kontrolny 12 FAST_START_IO_TARGET [I/O] FAST_START_MMTR_TARGET [s] DBWR 12 dane Pliki danych © Instytut Informatyki Politechniki Poznańskiej Slajd 15 © Instytut Informatyki Politechniki Poznańskiej 12 pliki dziennika powtórzeń Slajd 16 Monitor Systemu Monitor Procesów • Monitor Systemu (ang. System Monitor - SMON) odpowiedzialny jest za: – odtwarzanie systemu po awarii w czasie uruchamiania instancji: • Faza redo – przepisuje z dzienników powtórzeń wszystkie zarejestrowane zmiany do bazy danych, • Faza undo – wycofuje na podstawie odtworzonych segmentów wycofania wszystkie niezatwierdzone zmiany. – czyszczenie (lub usuwanie) segmentów tymczasowych – scalanie wolnych rozszerzeń (ang. extent) extent) w ramach segmentu (tylko dla przestrzeni tabel zarządzanych przez słownik bd) bd) • Monitor Procesów (ang. Process Monitor - PMON) zajmuje się odtwarzaniem procesów serwera, które uległy awarii; odpowiedzialny jest za: – wycofaniem transakcji – czyszczenie buforów – zwalnianie zajętych zasobów (np.: blokady, zatrzaski itp.) © Instytut Informatyki Politechniki Poznańskiej Slajd 17 © Instytut Informatyki Politechniki Poznańskiej Slajd 18 Proces odtwarzania - RECO Archiwizator • Odtwarza rozproszone transakcje, które uległy awarii w trakcie wykonywania protokołu 2PC • Archiwizator (ang. ArchiverArchiver-ARC0) dokonuje archiwizacji onon-line plików dziennika powtórzeń Proces koordynatora kolejki zadań - CQJ0 LGWR • Zarządza kolejką do wykonywania periodycznych zadań - w Windows widoczny jako usługa OracleScheduler ARC0 bufor dziennika powtórzeń Proces kolejki zadań - J000J000-J999 • Wykonuje zadanie zlecone przez koordynatora plik dziennika powtórzeń © Instytut Informatyki Politechniki Poznańskiej Proces monitora kolejki QMN0 14 zarchiwizowany 14 13 15 dziennik 12 • Proces wykorzystywany przez opcję Oracle Streams Advanced Queuing powtórzeń Slajd 19 © Instytut Informatyki Politechniki Poznańskiej Slajd 20 Otwieranie bazy danych OPEN alter database open MOUNT alter database mount NOMOUNT Otwieranie bazy danych (cd.) (cd.) startup [open] [restrict] • tryb nomount - uŜywany do tworzenia bazy danych, plików kontrolnych itp., powoduje: – uruchmienie instancji, – otwarcie pliku z parametrami i plików śladowych, • tryb mount - uŜywany do reorganizacji bazy danych (np.: zmiany nazwy pliku) oraz odtwarzania po awarii, powoduje: – otwarcie plików kontrolnych i przyłączenie plików z danymi oraz plików dziennika powtórzeń, • tryb open - udostępnia bazę danych uŜytkownikom do normalnej pracy, powoduje: – otwarcie plików z danymi oraz plików dziennika powtórzeń, – odtwarzanie po ewentualnej awarii, startup mount startup nomount © Instytut Informatyki Politechniki Poznańskiej Slajd 21 Zamykanie bazy danych © Instytut Informatyki Politechniki Poznańskiej Slajd 22 Zamykanie bazy danych •tryb normal - z oczekiwaniem na zakończenie wszystkich sesji uŜytkowników, OPEN SQLPLUS> shutdown [normal] alter database close MOUNT •tryb transactional - z oczekiwaniem na zakończenie wszystkich transakcji uŜytkowników, SQLPLUS> shutdown transactional alter database dismount NOMOUNT •tryb immediate - z wycofaniem wszystkich aktywnych transakcji, shutdown SQLPLUS> shutdown immediate •tryb abort - z natychmiastowym zakończeniem procesów instancji i zwolnieniem pamięci SGA wszystkich SQLPLUS > shutdown abort © Instytut Informatyki Politechniki Poznańskiej Slajd 23 © Instytut Informatyki Politechniki Poznańskiej Slajd 24