DB architectuur
[email protected]
DB - logisch perspectief -
DB - fysisch perspectief -
DBMS • Fysische details van databank beheren • Zodat gebruiker zich enkel om logische perspectief moet bekommeren
• Vereisten • Snel gegevens terugvinden • Integriteit van gegevens • (Vertrouwelijkheid, ...) • Belangrijk concept: transactie
Transacties
Invoer •
Afkomstig van
• • •
Naive gebruikers
•
System admins
App. programmeurs Gesofisticeerde gebruikers
Soorten invoer • Queries • Generic query interface (SQL) • API • Aanpassingen gegevens • Generic query interface (SQL) • API • Aanpassing schema
Architectuur van een DBMS
Belangrijkste componenten
uur 14 worden de verschillende onderdelen van een DBMS getoond. Onderaan is de plaats gesteld waar de data gestockeerd wordt; gewoonlijk is dit ´e´en of meerdere disks. Deze compobevat niet alleen gewone, echte data maar ook metadata. Dit is informatie over de structuur e data. Bij een R-DBMS bijvoorbeeld bevat de metadata de namen van de relaties, de namen de attributen van deze relaties en de datatypes van deze attributen (integer, string, ...). Een MS bevat normaal ook indexen voor de data. Een index is een datastructuur die het zoeken nformatie in de databank versnelt. aanpassingen !! !!! ! "
queries # “Query” Processor
schema aanpassingen $ $ $ $ $ %$ ' ) '
& # Storage Manager
' ' (
* + * * * ,
& $! !!! $$ $ !! $$ # ! $$ !! $ $ !!!$$ Data !!! Metadata $$$ !!!$$$
Transaction Manager
-> indexen
Storage manager • • •
Beheert bestanden Aanpassen & opvragen Onderdelen
• • •
File manager Buffer manager
~ Controller
RAM
HDD
Query processor •
Ontvangt hoog niveau bevelen of vragen (SQL)
•
Zet deze om naar commando’s voor storage manager
•
Belangrijk: query optimisatie
•
~ View
Transaction manager •
Verzekert integriteit van data
• • •
Parallelle bewerkingen Systeemcrash
Belangrijk: logging
Oracle architectuur
0.5
DB vs instance
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 maken van de Oracle Server Manager of de Oracle Enterprise Manager (OEM). De database wordt dan geMOUNT op de instance en tenslotte geOPENd. Gebruikers kunnen dan CONNECTeren naar de instance om de data in de database te raadplegen. Figuur 15 toont de basiscomponenten van een Oracle database en instance.
2. MOUNT
Oracle database ! # " Parameter files Control files Datafiles Redo Log files " disk
$ ! ! " "
$
#
# #
#
# #
Oracle instance " " System Global Area (SGA) ! Background processes ! memory
# #
# Oracle server
3. OPEN 1. START
Figuur 15: Oracle database en Oracle instance
Behalve wanneer er gebruik gemaakt wordt van de Oracle Parallel Server (OPS) optie, is er een
Control files Datafiles Redo Log files " disk
! ! " "
$
memory
# #
# Oracle server
Oracle Parallel Server Figuur 15: Oracle database en Oracle instance
Behalve wanneer er gebruik gemaakt wordt van de Oracle Parallel Server (OPS) optie, is er een ´e´en-op-´e´en mapping tussen instance en database. In de OPS wereld kan de database geMOUNT zijn op verschillende instances. # #
#
#
# # ! # #
# server A
De instance op server A en de instance op server B zijn beide gemount op dezelfde fysische database ! # "
$
" $ Oracle database
"
# # #
#
# #
# #
# server B
Figuur 16: Oracle Parallel Server De Oracle DBMS server is gebaseerd op een Multi-Server Architectuur. De server is verantwoordelijk 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 er maar ´e´en copy van de programma code van de DBMS server in geheugen aanwezig is, wordt een logische server aan elke geconnecteerde gebruiker toegewezen. Figuur 17 illustreert de architectuur
Architectuur User 1
User 2
User 3
User n
, ! ) Server Proces
, ! ) + Server Proces
, ! + ) Server Proces
+
, ! ) Server Proces
+
PGA *
PGA * ,
PGA , *
,
PGA *
,
System Global Area (SGA) + / ) ) + Shared Pool Redo-LogDatabase Buffer Dictionary Cache . 0 1 3 buffer Log cache Library Cache Archive * , Buffer 4 * , 2 ' (' Background Processen ! '' % ' % ' % ' % ' % ' ) " LGWR DBWn ARCH PMON SMON & ( & (% ( & ( & ( && ** % % # ** % ** ! # %% ! # ** + # $ % ! # ! # ! " $ ! # " $ " $ " $ $ " $ " $ " " $ " $ " $ " $ Redo-Log files Archive- and Backup files Datafiles Control files
DBWn • • •
Database Writer
•
Verschillende writer processen in parallel (DB_WRITER_PROCESSES parameter)
Van cache naar bestanden Beleid: Least Recently Used (LRU)
LGWR • • • •
Log writer Redo informatie Beheren redo-log-buffer DBWn wacht op LGWR
SMON • •
System monitor
•
Opruimen tijdelijke informatie
•
Coalescing
Instance recovery adhv redo logs
PMON • •
Process monitor Opruimen als gebruikersproces wegvalt
• • • •
Cache Locks PID
Evt. rollbacks
CKPT • •
Alle wijzigingen wegschrijven
•
Vanwaar instance recovery kan beginnen
• •
Bij wissel van redo log
Maakt nieuwe consistente versie van DB
Verminderen van MTTR
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 User 1
User 2
User 3
User n
, ! ) Server Proces
, ! ) + Server Proces
, ! + ) Server Proces
+
, ! ) Server Proces
+
PGA *
PGA * ,
PGA , *
,
PGA *
,
System Global Area (SGA) + / ) ) + Shared Pool Redo-LogDatabase Buffer Dictionary Cache . 0 1 3 buffer Log cache Library Cache Archive * , Buffer 4 * , 2 ' (' Background Processen ! '' % ' % ' % ' % ' % ' ) " LGWR DBWn ARCH PMON SMON & ( & (% ( & ( & ( && ** % % # ** % ** ! # %% ! # ** + # $ % ! # ! # ! " $ ! # " $ " $ " $ $ " $ " $ " " $ " $ " $ " $ Redo-Log files Archive- and Backup files Datafiles Control files
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 pool • Info 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: Andere • Redo 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, ...
0.5
Fysische DB structuur
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 maken van de Oracle Server Manager of de Oracle Enterprise Manager (OEM). De database wordt dan geMOUNT op de instance en tenslotte geOPENd. Gebruikers kunnen dan CONNECTeren naar de instance om de data in de database te raadplegen. Figuur 15 toont de basiscomponenten van een Oracle database en instance.
2. MOUNT
Oracle database ! # " Parameter files Control files Datafiles Redo Log files " disk
$ ! ! " "
$
#
# #
#
# #
Oracle instance " " System Global Area (SGA) ! Background processes ! memory
# #
# Oracle server
3. OPEN 1. START
Figuur 15: Oracle database en Oracle instance
Behalve wanneer er gebruik gemaakt wordt van de Oracle Parallel Server (OPS) optie, is er een
Fysische DB structuur • Parameter 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 livel DBMS beheert data zoveel mogelijk zelf DB Tablespace ~ aantal bestanden <- segment <- block (parameter)
... extent
extent
Tablespaces • SYSTEM • 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
Schema • = gebruiker • Bevat tabellen, views, indices • Elk object is eigendom van een schema • SYS: eigenaar van data dictionary • SYSTEM: extra systeeminformatie • Andere gemaakt door DBA
Fysische en logische structuur redo log file
database
data file
tablespace
block
extent
control file
segment
table index rollback