DB architectuur - people.cs.kuleuven.bejoost.vennekens/DN/dbe-sl2.pdf · Redo-Log files ⌅ ⇤...

Post on 27-Mar-2020

3 views 0 download

Transcript of DB architectuur - people.cs.kuleuven.bejoost.vennekens/DN/dbe-sl2.pdf · Redo-Log files ⌅ ⇤...

DB architectuurjoost.vennekens@kuleuven.be

DB - logisch perspectief -

DB - fysisch perspectief -

DBMSFysische details van databank beheren Zodat gebruiker zich enkel om logische perspectief moet bekommeren Vereisten

Snel gegevens vinden, toevoegen,… Integriteit van gegevens (Vertrouwelijkheid, ...)

Belangrijkste componenten

0.4 Architectuur van een DBMS

In figuur 14 worden de verschillende onderdelen van een DBMS getoond. Onderaan is de plaatsvoorgesteld waar de data gestockeerd wordt; gewoonlijk is dit een of meerdere disks. Deze compo-nent bevat niet alleen gewone, echte data maar ook metadata. Dit is informatie over de structuurvan de data. Bij een R-DBMS bijvoorbeeld bevat de metadata de namen van de relaties, de namenvan de attributen van deze relaties en de datatypes van deze attributen (integer, string, ...). EenDBMS bevat normaal ook indexen voor de data. Een index is een datastructuur die het zoekenvan informatie in de databank versnelt.

aanpassingen �

queries

schema aanpassingen⇥⇥⇥⇥⇥⇥⌃“Query”Processor

��↵��⌦

TransactionManager

��⌅��⇤StorageManager

⌥⇥⇥⇥⇥⇥⇥ ⇥⇥⇥

⇥⇥⇥

DataMetadata ⇥⇥⇥

⇥⇥⇥

Figuur 14: Belangrijkste componenten van een DBMS

Storage manager. Zijn taak bevat het ophalen van de gevraagde data uit de databank en hetaanpassen van de informatie op aanvraag van de bovenliggende niveaus. In een eenvoudig DBMS isdeze component gewoon het filesysteem van het onderliggende besturingssysteem. De naakte datawordt op disk gestockeerd waarbij het filesysteem gebruikt wordt dat normaal deel uitmaakt vanhet besturingssysteem. De storage manager vertaalt de verschillende DML statements in low-levelfilesysteem commando’s en is dus verantwoordelijk voor de daadwerkelijke stockage, opvragen enaanpassen van de data in de databank. Omwille van de e⇤cientie beheert een DBMS meestal zelfde data op de disk. Er zijn twee onderdelen:

file manager : beheert de locatie van de bestanden op de disk; levert het blok of de blokken vaneen bestand op aanvraag van de bu�er manager;

bu�er manager : stockeert het door de file manager geleverde blok in een pagina van het primairgeheugen; dit blok blijft gedurende een bepaalde tijd in primair geheugen zodat anderequeries deze data ook kunnen gebruiken zonder dat er van disk gelezen moet worden; na eentijd, wanneer er geen aanvragen voor dat blok meer blijken te zijn, wordt de pagina voor eenander net ingelezen blok gebruikt.

Query processor. Deze component doet meer dan queries afhandelen. Ook de vragen vooraanpassingen van de data en de metadata passeren via de query processor. Deze vragen wordenmeestal uitgedrukt in een taal van hoog niveau (bijv. SQL). De query processor vertaalt de vraagnaar een reeks bevelen die naar de storage manager gestuurd worden, die ze dan zal uitvoeren.Het moeilijkste deel is de query optimisatie: de keuze van een goede opeenvolging van data-aanvragen aan het storage systeem zodat snel de gevraagde data gevonden wordt. Hiervoor worden

23

Query processor

Ontvangt hoog niveau bevelen of vragen (SQL)

Zet deze om naar commando’s voor storage manager

Belangrijk:query optimisatie

Storage managerBeheert bestanden

Aanpassen & opvragen

Onderdelen

File manager

Buffer managerRAM HDD

Transaction managerVerzekert integriteit van data

Parallelle bewerkingen

Systeemcrash

Belangrijk: logging

ACID

Oracle architectuur

DB vs instance0.5 Architectuur van Oracle.

0.5.1 Database versus instance

De database is de data op disk, gestockeerd op bestanden van het onderliggende operating system,of eventueel in UNIX in raw bestanden. De instance bestaat uit het System Global Area (SGA)geheugen en de achtergrond processen. Een instance wordt geSTART door gebruik te makenvan de Oracle Server Manager of de Oracle Enterprise Manager (OEM). De database wordt dangeMOUNT op de instance en tenslotte geOPENd. Gebruikers kunnen dan CONNECTeren naarde instance om de data in de database te raadplegen. Figuur 15 toont de basiscomponenten vaneen Oracle database en instance.

Oracle database⌅⇤ �⇥

⇤ ⇥

Parameter filesControl files

DatafilesRedo Log files

disk

��⇤⇤

⇥⇥⇥

⇥⇥⇥

⇥⇥⇥

Oracle server

⇤⇤��

Oracle instance

System Global Area (SGA)Background processes

memory

Figuur 15: Oracle database en Oracle instance

Behalve wanneer er gebruik gemaakt wordt van de Oracle Parallel Server (OPS) optie, is er eeneen-op-een mapping tussen instance en database. In de OPS wereld kan de database geMOUNTzijn op verschillende instances.

De instance op server A en de instanceop server B zijn beide gemountop dezelfde fysische database⇥

⇥⇥

⇥⇥⇥

⇥⇥⇥

server A

⌅⇤ �⇥⇤ ⇥Oracle database

� ⇥⇥⇥⇥

⇥⇥⇥

⇥⇥⇥

server B

Figuur 16: Oracle Parallel Server

De Oracle DBMS server is gebaseerd op een Multi-Server Architectuur. De server is verantwoor-delijk voor het verwerken van alle database activiteiten, zoals het uitvoeren van SQL statements,beheer van gebruikers en resources en het beheer van de opslagplaatsen (storages). Alhoewel ermaar een copy van de programma code van de DBMS server in geheugen aanwezig is, wordt eenlogische server aan elke geconnecteerde gebruiker toegewezen. Figuur 17 illustreert de architectuurvan een Oracle DBMS bestaande uit geheugenstructuren, processen en bestanden.

0.5.2 Oracle instance

De Oracle instance bestaat uit de Oracle processen en de bijhorende geheugenstructuren (ziefiguur 18). Deze zijn nodig om toegang te hebben tot de bestanden die samen de Oracle databasevormen en om Oracle gebruikers de data in deze bestanden te laten raadplegen.

25

1. START

2. MOUNT

3. OPEN

Architectuur

⌅⇤ �⇥⇤ ⇥⇤ ⇥⇤ ⇥Datafiles

⌅⇤ �⇥⇤ ⇥⇤ ⇥Redo-Log files

⌅⇤ �⇥⇤ ⇥Control files

⌅⇤ �⇥⇤ ⇥

Archive- and Backup files

�⌥⇧⌃DBWn

�⌥⇧⌃LGWR�⌥⇧⌃ARCH�⌥⇧⌃PMON�⌥⇧⌃SMON

Background Processen

✓Database

bu�ercache

�↵

⌦Redo-Log-

Bu�er

���⇤ ⇥⇥

⇥⇥⇥⇥⇥⌅

⇣✏��

LogArchiveBu�er

��⌦ ��↵

Shared Pool

Dictionary Cache

Library Cache

System Global Area (SGA)

⌘✓◆

⌘✓◆

⌘✓PGA PGA PGA

Server Server ServerProces Proces Proces

⌥ ⌥ ⌥⌃ ⌃ ⌃

◆⌘✓PGA

ServerProces

⌥⌃

User 1 User 2 User 3 User n

Figuur 17: Oracle systeem architectuur

Processen

Dit zijn programma’s die op een computer in uitvoering zijn, onder de controle van het operatingsystem van de computer. Oracle creeert twee soorten processen: Oracle processen (achtergronden server processen) en gebruikersprocessen.De achtergrondprocessen voeren taken uit die anders door elk gebruikersproces dat met dedatabase geconnecteerd is, zouden moeten uitgevoerd worden.

hcr 21494 1 0 08:16:32 ? 0:00 ora_qmnc_erphcr 21477 1 0 08:16:21 ? 0:00 ora_reco_erphcr 21473 1 0 08:16:21 ? 0:00 ora_ckpt_erphcr 21471 1 0 08:16:21 ? 0:00 ora_lgwr_erphcr 21483 1 0 08:16:22 ? 0:00 ora_s000_erphcr 21465 1 0 08:16:20 ? 0:00 ora_pmon_erphcr 21479 1 0 08:16:21 ? 0:00 ora_cjq0_erphcr 21498 1 0 08:16:34 ? 0:00 ora_mmnl_erphcr 21481 1 0 08:16:21 ? 0:00 ora_d000_erphcr 21496 1 0 08:16:34 ? 0:00 ora_mmon_erphcr 21475 1 0 08:16:21 ? 0:00 ora_smon_erphcr 21469 1 0 08:16:21 ? 0:00 ora_dbw0_erphcr 21502 1 0 08:16:43 ? 0:00 ora_q000_erphcr 21467 1 0 08:16:20 ? 0:00 ora_mman_erp

26

DBWnDatabase Writer

Van cache naar bestanden

Beleid: Least Recently Used (LRU)

Verschillende writer processen in parallel (DB_WRITER_PROCESSES parameter)

LGWRLog writer

Redo informatie

Beheren redo-log-buffer

DBWn wacht op LGWR

CKPTAlle wijzigingen wegschrijven

Maakt nieuwe consistente versie van DB

Vanwaar instance recovery kan beginnen

Bij wissel van redo log

Verminderen van MTTR

SMONSystem monitor

Instance recovery adhv redo logs

Opruimen tijdelijke informatie

Coalescing

PMONProcess monitor

Opruimen als gebruikersproces wegvalt

Cache

Locks

PID

Evt. rollbacks

ARCn

Archiveren van redo logs

Voordat ze overschreven worden door LGWR

RECO

Bij gedistribueerde DBs

Zorgt dit ervoor dat

ofwel alle locaties een transactie doen

ofwel geen enkele

Architectuur

⌅⇤ �⇥⇤ ⇥⇤ ⇥⇤ ⇥Datafiles

⌅⇤ �⇥⇤ ⇥⇤ ⇥Redo-Log files

⌅⇤ �⇥⇤ ⇥Control files

⌅⇤ �⇥⇤ ⇥

Archive- and Backup files

�⌥⇧⌃DBWn

�⌥⇧⌃LGWR�⌥⇧⌃ARCH�⌥⇧⌃PMON�⌥⇧⌃SMON

Background Processen

✓Database

bu�ercache

�↵

⌦Redo-Log-

Bu�er

���⇤ ⇥⇥

⇥⇥⇥⇥⇥⌅

⇣✏��

LogArchiveBu�er

��⌦ ��↵

Shared Pool

Dictionary Cache

Library Cache

System Global Area (SGA)

⌘✓◆

⌘✓◆

⌘✓PGA PGA PGA

Server Server ServerProces Proces Proces

⌥ ⌥ ⌥⌃ ⌃ ⌃

◆⌘✓PGA

ServerProces

⌥⌃

User 1 User 2 User 3 User n

Figuur 17: Oracle systeem architectuur

Processen

Dit zijn programma’s die op een computer in uitvoering zijn, onder de controle van het operatingsystem van de computer. Oracle creeert twee soorten processen: Oracle processen (achtergronden server processen) en gebruikersprocessen.De achtergrondprocessen voeren taken uit die anders door elk gebruikersproces dat met dedatabase geconnecteerd is, zouden moeten uitgevoerd worden.

hcr 21494 1 0 08:16:32 ? 0:00 ora_qmnc_erphcr 21477 1 0 08:16:21 ? 0:00 ora_reco_erphcr 21473 1 0 08:16:21 ? 0:00 ora_ckpt_erphcr 21471 1 0 08:16:21 ? 0:00 ora_lgwr_erphcr 21483 1 0 08:16:22 ? 0:00 ora_s000_erphcr 21465 1 0 08:16:20 ? 0:00 ora_pmon_erphcr 21479 1 0 08:16:21 ? 0:00 ora_cjq0_erphcr 21498 1 0 08:16:34 ? 0:00 ora_mmnl_erphcr 21481 1 0 08:16:21 ? 0:00 ora_d000_erphcr 21496 1 0 08:16:34 ? 0:00 ora_mmon_erphcr 21475 1 0 08:16:21 ? 0:00 ora_smon_erphcr 21469 1 0 08:16:21 ? 0:00 ora_dbw0_erphcr 21502 1 0 08:16:43 ? 0:00 ora_q000_erphcr 21467 1 0 08:16:20 ? 0:00 ora_mman_erp

26

Geheugenstructuren

System global area Program global area Sorteergebied

SGA

Informatie die gedeeld wordt tussen systeemprocessen gebuikersprocessen

Zevental belangrijke componenten

SGA: Database buffer cache

Kopie van DB gegevens in RAM Belangrijk voor performantie Grootte is belangrijke parameter LRU update Beheerd door DWRn

SGA: Shared poolInfo uit verwerking van SQL, PL/SQL Spaart tijd bij gelijkaardige queries Twee belangrijke onderdelen:

Dictionary cache -> metadata over structuur van DB Library cache -> parse tree, execution plan

SGA: AndereRedo log buffer -> LGWR Large pool -> grote brokken gegevens (optioneel) Java pool -> Oracle JVM Streams pool -> gedistribueerde omgeving Log archive buffer -> ARCH (optioneel)

Program global area

Hoort bij een gebruikersproces Configuratie:

shared server dedicated server

Daarnaast sorteergebied voor data-operaties, zoals sorteren, hash-join, ...

Tablespaces, files en schema’s

Fysische DB structuur0.5 Architectuur van Oracle.

0.5.1 Database versus instance

De database is de data op disk, gestockeerd op bestanden van het onderliggende operating system,of eventueel in UNIX in raw bestanden. De instance bestaat uit het System Global Area (SGA)geheugen en de achtergrond processen. Een instance wordt geSTART door gebruik te makenvan de Oracle Server Manager of de Oracle Enterprise Manager (OEM). De database wordt dangeMOUNT op de instance en tenslotte geOPENd. Gebruikers kunnen dan CONNECTeren naarde instance om de data in de database te raadplegen. Figuur 15 toont de basiscomponenten vaneen Oracle database en instance.

Oracle database⌅⇤ �⇥

⇤ ⇥

Parameter filesControl files

DatafilesRedo Log files

disk

��⇤⇤

⇥⇥⇥

⇥⇥⇥

⇥⇥⇥

Oracle server

⇤⇤��

Oracle instance

System Global Area (SGA)Background processes

memory

Figuur 15: Oracle database en Oracle instance

Behalve wanneer er gebruik gemaakt wordt van de Oracle Parallel Server (OPS) optie, is er eeneen-op-een mapping tussen instance en database. In de OPS wereld kan de database geMOUNTzijn op verschillende instances.

De instance op server A en de instanceop server B zijn beide gemountop dezelfde fysische database⇥

⇥⇥

⇥⇥⇥

⇥⇥⇥

server A

⌅⇤ �⇥⇤ ⇥Oracle database

� ⇥⇥⇥⇥

⇥⇥⇥

⇥⇥⇥

server B

Figuur 16: Oracle Parallel Server

De Oracle DBMS server is gebaseerd op een Multi-Server Architectuur. De server is verantwoor-delijk voor het verwerken van alle database activiteiten, zoals het uitvoeren van SQL statements,beheer van gebruikers en resources en het beheer van de opslagplaatsen (storages). Alhoewel ermaar een copy van de programma code van de DBMS server in geheugen aanwezig is, wordt eenlogische server aan elke geconnecteerde gebruiker toegewezen. Figuur 17 illustreert de architectuurvan een Oracle DBMS bestaande uit geheugenstructuren, processen en bestanden.

0.5.2 Oracle instance

De Oracle instance bestaat uit de Oracle processen en de bijhorende geheugenstructuren (ziefiguur 18). Deze zijn nodig om toegang te hebben tot de bestanden die samen de Oracle databasevormen en om Oracle gebruikers de data in deze bestanden te laten raadplegen.

25

1. START

2. MOUNT

3. OPEN

Fysische DB structuurParameter files (INIT.ORA) -> bij START, geeft configuratie van instance Control files -> bij MOUNT, namen van datafiles en logfiles Datafiles -> gegevens, na OPEN Redo log files -> voor recovery

Low-level -> high levelDBMS beheert data zoveel mogelijk zelf

<- block (parameter)

extent extent

<- segment

...

Tablespace ~ aantal bestanden

DB

Fysische en logische structuur

redo log file database control file

data file tablespace

segmentextentblock

tableindexrollback

TablespacesSYSTEM

altijd beschikbaar vanaf OPEN data dictionary

ROLLBACK bevat “rollback segmenten” ipv tabellen “before image” voor consistent lezen of rollback

TEMP, TOOLS, USERS DBA kan bijmaken voor gebruikersdata

Typische DBA taken

DB creatie1. Creatie van control files en SYSTEM tablespace 2. Data dictionary in SYSTEM tablespace 3. Objecten die nodig zijn voor PL/SQL enz. 4. Creatie van rollback segment in SYSTEM

DB creatie5. Rollback tablespace (best op andere disk) 6. Rollback segmenten (-> INIT.ORA) 7. Temporary tablespace 8. Bijkomende tablespaces: best verschillende disks voor data en indices 9. Default tablespaces toewijzen

SchemaVerzameling tabellen, views, indices Elk object is eigendom van een schema

SYS: eigenaar van data dictionary SYSTEM: extra systeeminformatie Andere gemaakt door DBA

= gebruiker

Gebruiker

Is eigenaar van alle objecten die hij maakt Deze objecten komen in gelijknamig schema Volledige naam van object: schema.object

Data dictionary

Metadata Read-only SYSTEM tablespace

Data dictionaryObjectdefinities (tabellen, indexen,...) Opslagcapaciteit per object Gebruikers, rechten en rollen Integriteitsvoorwaarden

Data dictionaryGemanipuleerd door Oracle DBMS Aantal views op structuur van databank

USER: user_objects (enkel gebruiker zelf) naam, type, datum van creatie,...

ALL: all_objects (alles waar gebruiker aan kan) naam, type, eigenaar...

DBA: sys.dba_objects (alles)

Data dictionary (2)

Views op dynamische performatie Views op toegekende rechten Views op rollen en rechten

GebruikerDBA kan gebruikers creeeren:

Hoeveel quota op welke tablespace Authenticatie

Database: geencrypteerd PW in DB OS Netwerk: public key

RechtenNa creatie, moet gebruiker rechten rechten krijgen Systeem rechten

Object rechten

CREATE SESSION ALTER SESSION CREATE TABLE

CREATE ANY TABLE ALTER ANY TABLE CREATE ANY INDEX

UNLIMITED TABLESPACE

SELECT, INSERT, UPDATE, DELETE

Rollen Verzameling van toegangsrechten Die kan worden toegewezen aan gebruikercreate role student not identified;

grant create session, create table, create view, create procedure, create trigger to student;

grant student to &&1;

ProfielResources die gebruiker mag gebruiken

create profile conlog limit connect_time 120 failed_login_attempts 8;

Verwerking van SQL statement

SQL van user Library cache? Maak uitvoeringsplan

Parse Optimize

⌅⇤ �⇥⇤ ⇥⇤ ⇥⇤ ⇥Datafiles

⌅⇤ �⇥⇤ ⇥⇤ ⇥Redo-Log files

⌅⇤ �⇥⇤ ⇥Control files

⌅⇤ �⇥⇤ ⇥

Archive- and Backup files

�⌥⇧⌃DBWn

�⌥⇧⌃LGWR�⌥⇧⌃ARCH�⌥⇧⌃PMON�⌥⇧⌃SMON

Background Processen

✓Database

bu�ercache

�↵

⌦Redo-Log-

Bu�er

���⇤ ⇥⇥

⇥⇥⇥⇥⇥⌅

⇣✏��

LogArchiveBu�er

��⌦ ��↵

Shared Pool

Dictionary Cache

Library Cache

System Global Area (SGA)

⌘✓◆

⌘✓◆

⌘✓PGA PGA PGA

Server Server ServerProces Proces Proces

⌥ ⌥ ⌥⌃ ⌃ ⌃

◆⌘✓PGA

ServerProces

⌥⌃

User 1 User 2 User 3 User n

Figuur 17: Oracle systeem architectuur

Processen

Dit zijn programma’s die op een computer in uitvoering zijn, onder de controle van het operatingsystem van de computer. Oracle creeert twee soorten processen: Oracle processen (achtergronden server processen) en gebruikersprocessen.De achtergrondprocessen voeren taken uit die anders door elk gebruikersproces dat met dedatabase geconnecteerd is, zouden moeten uitgevoerd worden.

hcr 21494 1 0 08:16:32 ? 0:00 ora_qmnc_erphcr 21477 1 0 08:16:21 ? 0:00 ora_reco_erphcr 21473 1 0 08:16:21 ? 0:00 ora_ckpt_erphcr 21471 1 0 08:16:21 ? 0:00 ora_lgwr_erphcr 21483 1 0 08:16:22 ? 0:00 ora_s000_erphcr 21465 1 0 08:16:20 ? 0:00 ora_pmon_erphcr 21479 1 0 08:16:21 ? 0:00 ora_cjq0_erphcr 21498 1 0 08:16:34 ? 0:00 ora_mmnl_erphcr 21481 1 0 08:16:21 ? 0:00 ora_d000_erphcr 21496 1 0 08:16:34 ? 0:00 ora_mmon_erphcr 21475 1 0 08:16:21 ? 0:00 ora_smon_erphcr 21469 1 0 08:16:21 ? 0:00 ora_dbw0_erphcr 21502 1 0 08:16:43 ? 0:00 ora_q000_erphcr 21467 1 0 08:16:20 ? 0:00 ora_mman_erp

26

Laad objecten In cache? Maak plaats als buffer vol Haal van disk ⌅⇤ �⇥⇤ ⇥⇤ ⇥⇤ ⇥

Datafiles

⌅⇤ �⇥⇤ ⇥⇤ ⇥Redo-Log files

⌅⇤ �⇥⇤ ⇥Control files

⌅⇤ �⇥⇤ ⇥

Archive- and Backup files

�⌥⇧⌃DBWn

�⌥⇧⌃LGWR�⌥⇧⌃ARCH�⌥⇧⌃PMON�⌥⇧⌃SMON

Background Processen

✓Database

bu�ercache

�↵

⌦Redo-Log-

Bu�er

���⇤ ⇥⇥

⇥⇥⇥⇥⇥⌅

⇣✏��

LogArchiveBu�er

��⌦ ��↵

Shared Pool

Dictionary Cache

Library Cache

System Global Area (SGA)

⌘✓◆

⌘✓◆

⌘✓PGA PGA PGA

Server Server ServerProces Proces Proces

⌥ ⌥ ⌥⌃ ⌃ ⌃

◆⌘✓PGA

ServerProces

⌥⌃

User 1 User 2 User 3 User n

Figuur 17: Oracle systeem architectuur

Processen

Dit zijn programma’s die op een computer in uitvoering zijn, onder de controle van het operatingsystem van de computer. Oracle creeert twee soorten processen: Oracle processen (achtergronden server processen) en gebruikersprocessen.De achtergrondprocessen voeren taken uit die anders door elk gebruikersproces dat met dedatabase geconnecteerd is, zouden moeten uitgevoerd worden.

hcr 21494 1 0 08:16:32 ? 0:00 ora_qmnc_erphcr 21477 1 0 08:16:21 ? 0:00 ora_reco_erphcr 21473 1 0 08:16:21 ? 0:00 ora_ckpt_erphcr 21471 1 0 08:16:21 ? 0:00 ora_lgwr_erphcr 21483 1 0 08:16:22 ? 0:00 ora_s000_erphcr 21465 1 0 08:16:20 ? 0:00 ora_pmon_erphcr 21479 1 0 08:16:21 ? 0:00 ora_cjq0_erphcr 21498 1 0 08:16:34 ? 0:00 ora_mmnl_erphcr 21481 1 0 08:16:21 ? 0:00 ora_d000_erphcr 21496 1 0 08:16:34 ? 0:00 ora_mmon_erphcr 21475 1 0 08:16:21 ? 0:00 ora_smon_erphcr 21469 1 0 08:16:21 ? 0:00 ora_dbw0_erphcr 21502 1 0 08:16:43 ? 0:00 ora_q000_erphcr 21467 1 0 08:16:20 ? 0:00 ora_mman_erp

26

Rijen die moeten veranderen Before image -> rollback segmenten Redo log buffer

LGWR Data buffer aanpassen

⌅⇤ �⇥⇤ ⇥⇤ ⇥⇤ ⇥Datafiles

⌅⇤ �⇥⇤ ⇥⇤ ⇥Redo-Log files

⌅⇤ �⇥⇤ ⇥Control files

⌅⇤ �⇥⇤ ⇥

Archive- and Backup files

�⌥⇧⌃DBWn

�⌥⇧⌃LGWR�⌥⇧⌃ARCH�⌥⇧⌃PMON�⌥⇧⌃SMON

Background Processen

✓Database

bu�ercache

�↵

⌦Redo-Log-

Bu�er

���⇤ ⇥⇥

⇥⇥⇥⇥⇥⌅

⇣✏��

LogArchiveBu�er

��⌦ ��↵

Shared Pool

Dictionary Cache

Library Cache

System Global Area (SGA)

⌘✓◆

⌘✓◆

⌘✓PGA PGA PGA

Server Server ServerProces Proces Proces

⌥ ⌥ ⌥⌃ ⌃ ⌃

◆⌘✓PGA

ServerProces

⌥⌃

User 1 User 2 User 3 User n

Figuur 17: Oracle systeem architectuur

Processen

Dit zijn programma’s die op een computer in uitvoering zijn, onder de controle van het operatingsystem van de computer. Oracle creeert twee soorten processen: Oracle processen (achtergronden server processen) en gebruikersprocessen.De achtergrondprocessen voeren taken uit die anders door elk gebruikersproces dat met dedatabase geconnecteerd is, zouden moeten uitgevoerd worden.

hcr 21494 1 0 08:16:32 ? 0:00 ora_qmnc_erphcr 21477 1 0 08:16:21 ? 0:00 ora_reco_erphcr 21473 1 0 08:16:21 ? 0:00 ora_ckpt_erphcr 21471 1 0 08:16:21 ? 0:00 ora_lgwr_erphcr 21483 1 0 08:16:22 ? 0:00 ora_s000_erphcr 21465 1 0 08:16:20 ? 0:00 ora_pmon_erphcr 21479 1 0 08:16:21 ? 0:00 ora_cjq0_erphcr 21498 1 0 08:16:34 ? 0:00 ora_mmnl_erphcr 21481 1 0 08:16:21 ? 0:00 ora_d000_erphcr 21496 1 0 08:16:34 ? 0:00 ora_mmon_erphcr 21475 1 0 08:16:21 ? 0:00 ora_smon_erphcr 21469 1 0 08:16:21 ? 0:00 ora_dbw0_erphcr 21502 1 0 08:16:43 ? 0:00 ora_q000_erphcr 21467 1 0 08:16:20 ? 0:00 ora_mman_erp

26

Bij COMMIT: before image mag weg

Bij ROLLBACK: before image wordt teruggezet

⌅⇤ �⇥⇤ ⇥⇤ ⇥⇤ ⇥Datafiles

⌅⇤ �⇥⇤ ⇥⇤ ⇥Redo-Log files

⌅⇤ �⇥⇤ ⇥Control files

⌅⇤ �⇥⇤ ⇥

Archive- and Backup files

�⌥⇧⌃DBWn

�⌥⇧⌃LGWR�⌥⇧⌃ARCH�⌥⇧⌃PMON�⌥⇧⌃SMON

Background Processen

✓Database

bu�ercache

�↵

⌦Redo-Log-

Bu�er

���⇤ ⇥⇥

⇥⇥⇥⇥⇥⌅

⇣✏��

LogArchiveBu�er

��⌦ ��↵

Shared Pool

Dictionary Cache

Library Cache

System Global Area (SGA)

⌘✓◆

⌘✓◆

⌘✓PGA PGA PGA

Server Server ServerProces Proces Proces

⌥ ⌥ ⌥⌃ ⌃ ⌃

◆⌘✓PGA

ServerProces

⌥⌃

User 1 User 2 User 3 User n

Figuur 17: Oracle systeem architectuur

Processen

Dit zijn programma’s die op een computer in uitvoering zijn, onder de controle van het operatingsystem van de computer. Oracle creeert twee soorten processen: Oracle processen (achtergronden server processen) en gebruikersprocessen.De achtergrondprocessen voeren taken uit die anders door elk gebruikersproces dat met dedatabase geconnecteerd is, zouden moeten uitgevoerd worden.

hcr 21494 1 0 08:16:32 ? 0:00 ora_qmnc_erphcr 21477 1 0 08:16:21 ? 0:00 ora_reco_erphcr 21473 1 0 08:16:21 ? 0:00 ora_ckpt_erphcr 21471 1 0 08:16:21 ? 0:00 ora_lgwr_erphcr 21483 1 0 08:16:22 ? 0:00 ora_s000_erphcr 21465 1 0 08:16:20 ? 0:00 ora_pmon_erphcr 21479 1 0 08:16:21 ? 0:00 ora_cjq0_erphcr 21498 1 0 08:16:34 ? 0:00 ora_mmnl_erphcr 21481 1 0 08:16:21 ? 0:00 ora_d000_erphcr 21496 1 0 08:16:34 ? 0:00 ora_mmon_erphcr 21475 1 0 08:16:21 ? 0:00 ora_smon_erphcr 21469 1 0 08:16:21 ? 0:00 ora_dbw0_erphcr 21502 1 0 08:16:43 ? 0:00 ora_q000_erphcr 21467 1 0 08:16:20 ? 0:00 ora_mman_erp

26

Data

Redo

cleandirty

Data Redo

cleandirty

Rollback segmenten

Redo archief

Data

Redo

cleandirty

Data Redo

cleandirty

SQL

LRU

Rollback segmenten

Redo archief

Data

Redo

cleandirty

Data Redo

dirty

SQL

DBWn

LGWR

Rollback segmenten

Redo archief

Data

Redo

cleandirty

Data Redo

dirty

SQL

DBWn

Rollback segmenten

Redo archief

Data

Redo

cleandirty

Data Redo

clean

SQL

Rollback segmenten

Redo archief

Data

Redo

cleandirty

Data Redo

SQL

Read

Rollback segmenten

Redo archief

Data

Redo

cleandirty

Data Redo

SQL

Rollback segmenten

Redo archief

Data

Redo

cleandirty

Data Redo

SQL

Update

Rollback segmenten

Redo archief

Data

Redo

cleandirty

Data Redo

SQL

Update

Rollback segmenten

Redo archief

Data

Redo

cleandirty

Data Redo

Rollback segmenten

Redo archief

Update klaar

Data

Redo

cleandirty

Data Redo

COMMIT

Rollback segmenten

Redo archief

Data

Redo

cleandirty

Data Redo

ROLLBACK

Rollback segmenten

Redo archief

Data

Redo

cleandirty

Data Redo

Redo log wissel

Rollback segmenten

Redo archief

ARCn

CKPT

Data

Redo

cleanclean

Data Redo

Redo log wissel

Rollback segmenten

Redo archief