Rozdział 13: Architektura systemu Oracle
description
Transcript of Rozdział 13: Architektura systemu Oracle
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Rozdział 13: Architektura systemu OracleRozdział 13: Architektura systemu Oracle
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Warstwy instalacji Oracle’aWarstwy instalacji Oracle’a
AplikacjeAplikacjeAplikacjeAplikacje
Narzędzia OraclaNarzędzia OraclaNarzędzia OraclaNarzędzia Oracla
SQL, PL/SQLSQL, PL/SQLSQL, PL/SQLSQL, PL/SQL
Server Oracle’aServer Oracle’aServer Oracle’aServer Oracle’a
System OperacyjnySystem OperacyjnySystem OperacyjnySystem Operacyjny
DaneDaneDaneDane
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Architektura systemu OracleArchitektura systemu Oracle
Globalny Obszar Globalny Obszar SystemowySystemowy
procesy systemoweprocesy systemowe
procesy usługoweprocesy usługowe(serwery)(serwery)
danedane
instancjainstancjabazy danychbazy danych
SQLSQLSQLSQL
SQLSQL
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Instancja bazy danychInstancja bazy danych
• instancja bazy danych - zbiór procesów (ang. instancja bazy danych - zbiór procesów (ang. process, task, process, task, job, programjob, program) oraz obszar pamięci współdzielonej zwanej ) oraz obszar pamięci współdzielonej zwanej Globalnym Obszarem Systemowym (ang. Globalnym Obszarem Systemowym (ang. SystemSystem Global Global Area - SGAArea - SGA) obsługujący jedną bazę danych) obsługujący jedną bazę danych
procesy systemoweprocesy systemowe
Globalny Obszar Globalny Obszar SystemowySystemowy
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Rodzaje organizacji instancjiRodzaje organizacji instancji
• organizacja typu organizacja typu single-processsingle-process
serwer Oracleserwer Oracle
Globalny Obszar Globalny Obszar SystemowySystemowy
AplikacjaAplikacja
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Rodzaje organizacji instancji (cd.)Rodzaje organizacji instancji (cd.)
• organizacja typu organizacja typu multiple-processesmultiple-processes
Globalny Obszar Globalny Obszar SystemowySystemowy ProcesyProcesy
drugoplanowedrugoplanowe
procesy usługoweprocesy usługowe(serwery)(serwery)
SQLSQLSQLSQL
SQLSQL
SMONSMON PMONPMON CKPTCKPTLGWRLGWRDBWRDBWR ARCHARCH
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Struktura bazy danych Oracle’aStruktura bazy danych Oracle’a
Obszar GlobalnyObszar GlobalnySystemuSystemu
Pliki dziennika powtórzeńPliki dziennika powtórzeń
procesy drugoplanoweprocesy drugoplanowe(systemowe)(systemowe)
Pliki bazy danychPliki bazy danych
Pliki kontrolnePliki kontrolne Pliki startowePliki startowe
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Procesy usługowe (serwery)Procesy usługowe (serwery)
• procesy usługowe - realizują żądania użytkowników, wykonując:procesy usługowe - realizują żądania użytkowników, wykonując:– analizę składniową, optymalizację i wykonanie zleceń SQL,analizę składniową, optymalizację i wykonanie zleceń SQL,– odczyt niezbędnych bloków z dysku do buforów,odczyt niezbędnych bloków z dysku do buforów,– pielęgnują listy: LRU i zmodyfikowanych blokówpielęgnują listy: LRU i zmodyfikowanych bloków
SQLSQL
danedane
procesproces usługowyusługowySGASGAbuforbufor
danychdanych
lista LRUlista LRU
lista zmodyfikowanych lista zmodyfikowanych blokowblokow
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Sekretarz Bazy DanychSekretarz Bazy Danych
• zadania Sekretarza Bazy Danych (ang. zadania Sekretarza Bazy Danych (ang. Database Writer-Database Writer-DBWR)DBWR)::– zapis zmodyfikowanych bloków z buforów na dysk,zapis zmodyfikowanych bloków z buforów na dysk,
SGASGA
DBWRDBWR
buforbufordanychdanych
tt
danedane
lista zmodyfikowanych lista zmodyfikowanych blokowblokow
lista LRUlista LRU
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Sekretarz Dziennika PowtórzeńSekretarz Dziennika Powtórzeń• Zadania Sekratarza Dziennika Powtórzeń (ang. Zadania Sekratarza Dziennika Powtórzeń (ang. Log Writer-LGWR)Log Writer-LGWR)• zapis danych z bufora dziennika do pliku,zapis danych z bufora dziennika do pliku,• zapis rekordu zakończenia transakcji,zapis rekordu zakończenia transakcji,• realizacja punktu kontrolnego (ang. realizacja punktu kontrolnego (ang. checkpointcheckpoint).).
SGASGA
LGWRLGWR
plik dziennikaplik dziennikapowtórzeńpowtórzeń
bufor dziennikabufor dziennikapowtórzeńpowtórzeń
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Proces Punktu KontrolnegoProces Punktu Kontrolnego
• Proces Punktu Kontrolnego (ang. Proces Punktu Kontrolnego (ang. Checkpointer - CKPT) Checkpointer - CKPT) może przejąć zadanie realizacji punktu kontrolnego, może przejąć zadanie realizacji punktu kontrolnego, normalnie wykonywanego przez LGWRnormalnie wykonywanego przez LGWR
SGASGA
DBWRDBWR
buforbufordanychdanych
danedane plik dziennikaplik dziennikapowtórzeńpowtórzeń
CKPTCKPT
plik kontrolnyplik kontrolny
1212 1212
1212
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Monitor SystemuMonitor Systemu
• Monitor Systemu (ang. Monitor Systemu (ang. System MonitorSystem Monitor - SMON) - SMON) odpowiedzialny jest za „porządki”, do jego obawiązków odpowiedzialny jest za „porządki”, do jego obawiązków należy:należy:– odtwarzanie systemu po awarii w czasie uruchamiania odtwarzanie systemu po awarii w czasie uruchamiania
instancji,instancji,– usuwanie niepotrzebnych segementów tymczasowych,usuwanie niepotrzebnych segementów tymczasowych,– aktualizowanie pliku kontrolnego bazy,aktualizowanie pliku kontrolnego bazy,– scalanie wolnych rozszerzeń (ang. extent) w ramach scalanie wolnych rozszerzeń (ang. extent) w ramach
segmentusegmentu
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Monitor ProcesówMonitor Procesów
• Monitor Procesów (ang. Monitor Procesów (ang. Process Monitor -Process Monitor - PMON) zajmuje PMON) zajmuje się odtwarzaniem procesów usługowych, które uległy się odtwarzaniem procesów usługowych, które uległy awarii; awarii;
odpowiedzialny jest za:odpowiedzialny jest za:– usuwanie nienormalnie zakończonych połączeń,usuwanie nienormalnie zakończonych połączeń,– wycofywanie nie zatwierdzonych transakcji,wycofywanie nie zatwierdzonych transakcji,– czyszczenie buforów,czyszczenie buforów,– zwalnianie zajętych zasobów (np.: blokady, zatrzaski itp. zwalnianie zajętych zasobów (np.: blokady, zatrzaski itp.
założonych przez zatwierdzone procesy),założonych przez zatwierdzone procesy),– wykrywanie wewnętrznych zakleszczeń pomiędzy wykrywanie wewnętrznych zakleszczeń pomiędzy
blokadami zakładanymi na dane bazy i automatyczne blokadami zakładanymi na dane bazy i automatyczne wycofywanie transakcjiwycofywanie transakcji
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
ArchiwizatorArchiwizator
• Archiwizator (ang. Archiwizator (ang. Archiver-Archiver-ARCH) dokonuje archiwizacji ARCH) dokonuje archiwizacji online plików dziennika powtórzeńonline plików dziennika powtórzeń
LGWRLGWR
plik dziennikaplik dziennikapowtórzeńpowtórzeń
bufor dziennikabufor dziennikapowtórzeńpowtórzeń
ARCHARCH
zarchiwizowanyzarchiwizowany dziennikdziennik
powtórzeńpowtórzeń
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Organizacja pamięci operacyjnejOrganizacja pamięci operacyjnej
• przeznaczenie - przechowywanie:przeznaczenie - przechowywanie:– kodu wykonywanych programów, procesów,kodu wykonywanych programów, procesów,– informacji o bieżących sesjach użytkowników,informacji o bieżących sesjach użytkowników,– danych niezbędnych do wykonania programu (np.: stan danych niezbędnych do wykonania programu (np.: stan
wykonywanego zapytania),wykonywanego zapytania),– informacji współdzielonych przez różne procesy (np.: informacji współdzielonych przez różne procesy (np.:
blokady),blokady),– buforowanych danych.buforowanych danych.
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Organizacja pamięci operacyjnej (cd.)Organizacja pamięci operacyjnej (cd.)
• obszar kodu oprogramowania,obszar kodu oprogramowania,• Globalny Obszar Systemowy (SGA):Globalny Obszar Systemowy (SGA):
– bufor danych (ang. bufor danych (ang. Database Buffer CacheDatabase Buffer Cache),),– bufor dziennika (ang. bufor dziennika (ang. Redo Log BufferRedo Log Buffer),),– współdzielony zbiornik (ang. współdzielony zbiornik (ang. Shared PoolShared Pool),),
• Globalny Obszar Programu (ang. Globalny Obszar Programu (ang. Program Global AreaProgram Global Area),),• obszar sortowania (ang. Sort Area) obszar sortowania (ang. Sort Area)
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Organizacja pamięci operacyjnej (cd.)Organizacja pamięci operacyjnej (cd.)
SGASGAbuforbufor
danychdanychbuforbufor
dziennikadziennikapowtórzeńpowtórzeń
procesy systemoweprocesy systemowe
PGAPGA
serwerserwerPGAPGA SASA
aplikacjaaplikacja
obszar koduobszar koduoprogramowaniaoprogramowania
obszar koduobszar koduoprogramowaniaoprogramowania
obszar koduobszar koduoprogramowaniaoprogramowania
współdzielonywspółdzielonyzbiornikzbiornik
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Organizacja pamięci operacyjnej (cd.)Organizacja pamięci operacyjnej (cd.)
• obszar kodu oprogramowania - fragment pamięci obszar kodu oprogramowania - fragment pamięci operacyjnej do przechowywania i wykonywania operacyjnej do przechowywania i wykonywania programów; jest tylko do odczytu; na pewnych platformach programów; jest tylko do odczytu; na pewnych platformach może być współdzielony między różne procesy,może być współdzielony między różne procesy,
• SGA - współdzielony obszar pamięci operacyjnej SGA - współdzielony obszar pamięci operacyjnej zawierający dane i informacje sterujące dla jednej instancji:zawierający dane i informacje sterujące dla jednej instancji:– bufor danych - fragment SGA służący do buforowania bufor danych - fragment SGA służący do buforowania
danych użytkowych, zarządzany algorytmem LRU, danych użytkowych, zarządzany algorytmem LRU, wielkość określana przez DB_BLOCK_BUFFERS [Blk],wielkość określana przez DB_BLOCK_BUFFERS [Blk],
– bufor dziennika powtórzeń - obszar SGA o organizacji bufor dziennika powtórzeń - obszar SGA o organizacji pętli służący do buforowania zapisu do dziennika pętli służący do buforowania zapisu do dziennika powtórzeń, wielkość określana przez LOG_BUFFER [B] powtórzeń, wielkość określana przez LOG_BUFFER [B] (domyślnie: 4*DB_BLOCK_SIZE),(domyślnie: 4*DB_BLOCK_SIZE),
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Organizacja pamięci operacyjnej (cd.)Organizacja pamięci operacyjnej (cd.)
– współdzielony zbiornik, wielkość określana przez współdzielony zbiornik, wielkość określana przez SHARED_POOL_SIZE, składa się z:SHARED_POOL_SIZE, składa się z:• współdzielonego obszaru zleceń SQL - zawiera współdzielonego obszaru zleceń SQL - zawiera
elementy identycznych zleceń SQL (drzewo analizy elementy identycznych zleceń SQL (drzewo analizy składniowej, plan wykonania itp.)składniowej, plan wykonania itp.)
współdzielony zbiornikwspółdzielony zbiornik
współdzielony obszarwspółdzielony obszar zleceń SQLzleceń SQL
PGAPGA
prywatny obszarprywatny obszar zleceń SQLzleceń SQL
PGAPGA
prywatny obszarprywatny obszar zleceń SQLzleceń SQL
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Organizacja pamięci operacyjnej (cd.)Organizacja pamięci operacyjnej (cd.)
• bufor słownika bazy danych (ang. Data Dictionary bufor słownika bazy danych (ang. Data Dictionary Cache),Cache),
• Globalny Obszar Programu - fragment pamięci zawierający Globalny Obszar Programu - fragment pamięci zawierający dane i informacje sterujące pojedynczym procesem, dane i informacje sterujące pojedynczym procesem, obejmuje:obejmuje:– stos - zmienne, tablice sesji itp.,stos - zmienne, tablice sesji itp.,– informacje o sesji użytkownika,informacje o sesji użytkownika,– prywatny obszar zleceń SQL - zmienne i parametry prywatny obszar zleceń SQL - zmienne i parametry
zleceń SQL,zleceń SQL,• obszar sortowania - fragment pamięci niezbędny do obszar sortowania - fragment pamięci niezbędny do
sortowania danych, wielkość określana przez sortowania danych, wielkość określana przez SORT_AREA_SIZE [B]SORT_AREA_SIZE [B]
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Otwieranie bazy danychOtwieranie bazy danych
MOUNTMOUNT
NOMOUNTNOMOUNT
OPENOPEN
startup nomountstartup nomount
startup mountstartup mount
startup [open]startup [open]
alter database mountalter database mount
alter database openalter database open
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Otwieranie bazy danych (cd.)Otwieranie bazy danych (cd.)
• tryb tryb nomountnomount - używany do tworzenia bazy danych, plików - używany do tworzenia bazy danych, plików kontrolnych itp., powoduje:kontrolnych itp., powoduje:– uruchmienie instancji,uruchmienie instancji,– otwarcie pliku z parametrami i plików śladowych,otwarcie pliku z parametrami i plików śladowych,
• tryb tryb mountmount - używany do reorganizacji bazy danych (np.: - używany do reorganizacji bazy danych (np.: zmiany nazwy pliku) oraz odtwarzania po awarii, powoduje:zmiany nazwy pliku) oraz odtwarzania po awarii, powoduje:– otwarcie plików kontrolnych i przyłączenie plików z otwarcie plików kontrolnych i przyłączenie plików z
danymi oraz plików dziennika powtórzeń,danymi oraz plików dziennika powtórzeń,• tryb tryb openopen - udostępnia bazę danych użytkownikom do - udostępnia bazę danych użytkownikom do
normalnej pracy, powoduje:normalnej pracy, powoduje:– otwarcie plików danymi oraz plików dziennika otwarcie plików danymi oraz plików dziennika
powtórzeń,powtórzeń,– odtwarzanie po ewentualnej awarii,odtwarzanie po ewentualnej awarii,
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Zamykanie bazy danychZamykanie bazy danych
MOUNTMOUNT
NOMOUNTNOMOUNT
OPENOPEN
shutdownshutdown
alter database dismountalter database dismount
alter database closealter database close
(c) 2000, Instytut Informatyki Politechniki Poznańskiej
Zamykanie bazy danychZamykanie bazy danych
•tryb tryb normalnormal - z oczekiwaniem na zakończenie wszystkich - z oczekiwaniem na zakończenie wszystkich sesji użytkowników,sesji użytkowników,
•trybtryb immediate - immediate - z wycofaniem wszystkich aktywnych z wycofaniem wszystkich aktywnych transakcji,transakcji,
•trybtryb abort abort - z natychmiastowym zakończeniem wszystkich - z natychmiastowym zakończeniem wszystkich procesów instancji i zwolnieniem pamięci SGAprocesów instancji i zwolnieniem pamięci SGA
SVRMGR> shutdown [normal]SVRMGR> shutdown [normal]SVRMGR> shutdown [normal]SVRMGR> shutdown [normal]
SVRMGR> shutdown immediateSVRMGR> shutdown immediateSVRMGR> shutdown immediateSVRMGR> shutdown immediate
SVRMGR> shutdown abortSVRMGR> shutdown abortSVRMGR> shutdown abortSVRMGR> shutdown abort