Architektura systemu Oracle10g (c) Politechnika Poznańska, Instytut Informatyki
2 Zadania administratora bazy danych Instalowanie oprogramowania serwera bazy danych Tworzenie bazy danych Bieżące zarządzanie serwerem Zarządzanie strukturami danych Zarządzanie kontami użytkowników i ich uprawnieniami Konfiguracja środowiska sieciowego Sporządzanie kopii bezpieczeństwa bazy danych Naprawianie bazy danych po awarii Migracja danych Strojenie wydajności serwera bazy danych
3 Architektura systemu Oracle Forms Reports SQLplus aplikacje użytkownika dane SQL SQL SQL procesy usługowe (serwery) Globalny Obszar Systemowy instancja bazy danych DBWR LGWR SMON PMON CKPT ARCH SNP procesy drugoplanowe
Globalny Obszar Systemowy- pamięć współdzielona obszar współdzielony bufory danych bufor dziennika powtórzeń 4 bufor biblioteczny bufor słownikowy globalny obszar użytkownika obszar Javy duży obszar 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)
5 Globalny obszar systemowy - sterowanie wielkością Ręczne - za pomocą parametrów 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: 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
6 Pamięć prywatna procesów instancji SQL PGA PGA Obszary Robocze SQL Private Global 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 prywatne obszary poleceń SQL bufor biblioteczny SGA SQL
7 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
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: 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 8
9 Procesy usługowe (serwery) 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 Bufor biblioteczny obszar współdzielony bufor danych bufor dziennika powtórzeń bufor słownikowy 1. Odczyt danych 2. Założenie blokad 3. zapis do segm. wycofania i modyfikacja danych 4. Rejestracja zmian 3 2 4 SQL 1 dane
10 Konfiguracje serwerów usługowych SQL z dedykowanymi serwerami sqlplus formularz raport SQL SQL SQL z współdzielonymi serwerami SGA dane we sqlplus formularz raport dispatcher SQL SQL wy dane
Sekretarz Bazy Danych zadania Sekretarza Bazy Danych (ang. Database Writer-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ę 11 bufor danych SGA lista LRU Kolejka punktu kontrolnego t DBW0 dane
Sekretarz Dziennika Powtórzeń Zadania Sekratarza Dziennika Powtórzeń (ang. Log Writer- LGWR) zapis danych z bufora dziennika do pliku następuje zatwierdzenie transakcji 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 12 SGA bufor dziennika powtórzeń LGWR plik dziennika powtórzeń
13 Przełączanie plików dziennika powtórzeń LGWR 12 13 14 15
14 Punkty kontrolne Zdarzenia systemowe uaktualniające informacje o najstarszym brudnym bloku w buforze danych - 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,, rozpoczęcie backupu online
15 Przyrostowy punkt kontrolny LOG_CHECKPOINT_INTERVAL [OS blocks] LOG_CHECKPOINT_TIMEOUT [s] Najwcześniej zmodyfikowane bloki Najpóźniej zmodyfikowane bloki Punkt kontrolny Odtwarzanie po awarii instancji FAST_START_IO_TARGET [I/O] FAST_START_MMTR_TARGET [s] Pliki danych
16 Proces Punktu Kontrolnego Proces Punktu Kontrolnego (ang. Checkpointer - CKPT): Zgłaszanie punktu kontrolnego, Zapisywanie w nagłówkach plików danych i w plikach kontrolnych inf. o zakończonym punkcie kontrolnym SGA CKPT bufor danych 12 plik kontrolny DBWR 12 dane 12 pliki dziennika powtórzeń
17 Monitor Systemu 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) w ramach segmentu (tylko dla przestrzeni tabel zarządzanych przez słownik bd)
18 Monitor Procesów 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.)
19 Archiwizator Archiwizator (ang. Archiver-ARC0) ARC0) dokonuje archiwizacji on-line plików dziennika powtórzeń bufor dziennika powtórzeń LGWR ARC0 plik dziennika powtórzeń 14 15 zarchiwizowany dziennik powtórzeń 14 13 12
20 Proces odtwarzania - RECO Odtwarza rozproszone transakcje, które uległy awarii w trakcie wykonywania protokołu 2PC Proces koordynatora kolejki zadań - CQJ0 Zarządza kolejką do wykonywania periodycznych zadań - w Windows widoczny jako usługa OracleScheduler Proces kolejki zadań - J000-J999 J999 Wykonuje zadanie zlecone przez koordynatora Proces monitora kolejki QMN0 Proces wykorzystywany przez opcję Oracle Streams Advanced Queuing
21 Otwieranie bazy danych OPEN alter database open startup [open] [restrict] MOUNT alter database mount startup mount NOMOUNT startup nomount
22 Otwieranie bazy danych (cd.) 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,
23 Zamykanie bazy danych OPEN alter database close MOUNT alter database dismount NOMOUNT shutdown
24 Zamykanie bazy danych tryb normal - z oczekiwaniem na zakończenie wszystkich sesji użytkowników, SQLPLUS> shutdown [normal] tryb transactional - z oczekiwaniem na zakończenie wszystkich transakcji użytkowników, SQLPLUS> shutdown transactional tryb immediate - z wycofaniem wszystkich aktywnych transakcji, SQLPLUS> shutdown immediate tryb abort - z natychmiastowym zakończeniem procesów instancji i zwolnieniem pamięci SGA SQLPLUS > shutdown abort wszystkich