oracle datenbank architektur - nicht nur für einsteiger · oracle datenbank architektur - nicht...
TRANSCRIPT
Oracle Datenbank Architektur -nicht nur für Einsteiger
Martin Klier
Performing Databases GmbHMitterteich
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 2/37
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 3/37
Referent
● Martin Klier● Lösungsarchitekt und
Datenbankspezialist
● Fachliche Schwerpunkte:– Performanceoptimierung / Tuning– hochverfügbare Systeme– Cluster und Replikation
● Linux seit 1997● Oracle Database seit 2003
Referent
● Vorträge
● Kontakt: [email protected]
● Weblog: http://www.usn-it.de
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 4/37
Regionalgruppen
Unternehmen
● Spezialisten für Datenbanktechnik– Konzeptberatung und Vergabekompetenz– Architektur- und Systemplanung– Lizenzierung– Realisierung und Troubleshooting
● Kontakt– Performing Databases GmbH
Wiesauer Straße 2795666 Mitterteich
– Web: http://www.performing-databases.com
– Twitter: @PerformingDB
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 5/37
Dieser Vortrag ...
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 6/37
● Transaktionsprinzip A.C.I.D.
● Oracle Datenbank-Architektur– Verbindung, Namespace(s) und Abschottung– Instanz und Datenbank– Alles Blöcke, oder was?– Redo, Undo und was man damit macht– Die Basis für moderne Features
● Stets das Ziel: „Das Konzept dahinter“ verstehen
● Primär für Einsteiger = Vertiefung für Erfahrene
Transaktionen
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 7/37
● Atomicity „Alles oder nichts“
● Consistency „Kein undefinierter Zustand“
● Isolation „Read Committed“
● Durability „Zugesicherte Speicherung“
Basics ->
Wie wird das technisch gelöst?
Host (=Server)
GrundbegriffeIn
stan
ceD
atab
ase
SchemaSchema
Object XObject X
Listener:1521
Processes
Memory Segment(s)
Registrieren
Anwender mit Clients
SERVICE_NAME=INTRANET
SERVICE_NAME=DWH
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 8/37
Host (=Server)
Connection + SessionIn
stan
ceD
atab
ase
SchemaSchema
Object XObject X
Listener:1521
Session
12
45
3Mem.S.
Processes
„TNS“1. Verbindungsaufbau2. Anforderung Session3. Start Session4. Übergabe Verb.5. Kommunikation
Client
SERVICE_NAME=DWH
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 9/37
Host (=Server)
Abschottung / Schemas
Inst
ance
Dat
abas
e
BOB
SessionMem.S.
Processes
User„ALICE“
ALICE
EMPLOYEES EMPLOYEES
select *from BOB.EMPLOYEESwhere ...;
grant selecton EMPLOYEESto ALICE;
Schemas
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 10/37
DBserver1
Datenbank-Link
EMP
Anwender mit Clients
DBserver2
Listener:1521
EMPDB_LNK
Listener:1521
Aufbau einer Session
select *from EMP@DB_LNKwhere ... ;
speichert / impliziertZugangsdaten
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 11/37
TEMP
Architekturschema (vereinfacht)
Listener:1521
PMON
SGA
SessionSession
Buffer Cache
Shared Pool
Log Buffer
ARCnSMON
LGWR
DBWn
PGAs
CKPT
Session
Online
Redo
Logs
ArchivedRedoLogs
Tablespace Undo Tbs.
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 12/37
TEMP
Lesevorgang
Listener:1521
SGA
PGAs
Session
Tablespace
Blöcke
Sort,Hash,Merge
Shared Pool
select ... ;
Buffer Cache
„Buffer“
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 13/37
TEMP
Daten-Änderung,Database Writer
Listener:1521
SGA
PGAs
Session
Tablespace
Blöcke
PMON
ARCnSMON
LGWRCKPT
Shared Pool
DBWnAber:Database Writerist ein Lazy Writer!
Schreibvorgang auf HDDkann extrem nachhängen!
Buffer Cache
update ...;
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 14/37
TEMP
Daten-Änderung(nur Redo)
Listener:1521
SGA
Buffer Cache
Log Buffer
PGAs
Session
Online
Redo
Logs
ArchivedRedoLogs
Tablespace
Blöcke
PMON
ARCnSMON DBWn
CKPT
commit;
LGWR
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 15/37
Crash
Online
Redo
Logs
ArchivedRedoLogs
Tablespace
Blöcke
commit;
!
TEMP
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 16/37
Crash Recovery(nur Redo)
Online
Redo
Logs
ArchivedRedoLogs
Tablespace
Blöcke
?SGA
Buffer Cache
Log Buffer
PMON
ARCn
LGWR
DBWn
CKPT
SMON
TEMP
Listener:1521
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 17/37
INACTIVE
Detail: Online Redo Logs
„Group“ 1
„Members“
„Group“ 4
„Group“ 3
„Group“ 2
UNUSED
CURRENT
ACTIVE
LGWR
● darf überschrieben werden
● darf NICHT überschrieben w.● DBWn synchronisiert auf TBS
● LGWR befüllt gerade aus Log Buffer
● war noch nie CURRENT
„Log Switch“
DBWn
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 18/37
● Schreibt den Log Buffer ins Online Redo Log
– bei jedem Commit
– wenn Log Buffer voll
– nach spätestens 3 Sekunden● Laufzeit bestimmt Commit-Zeit
● Läuft mit höchster Priorität
Log Writer
OnlineRedoLogs
Log Buffer
LGWR
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 19/37
● dienen der Absicherung des Cache
● müssen aufbewahrt werden so lange DBWn nicht in Tablespace geschrieben hat
● müssen aufbewahrt werden so lange ARCn nicht in Archived Redo Log geschrieben hat
● werden später zyklisch überschrieben
Online Redo Logs
OnlineRedoLogs
ArchivedRedoLogs
ARCn
Log Buffer
LGWR
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 20/37
● werden pro RL-“Group“ vom Archiver (ARCn) erzeugt
– frühestens: nach Log Switch– spätestens: vor Überschreiben Online Redo Log
● dienen dem Nachfahren von verlorenen Operationenbeim Recovery aus einem Backup
– Complete Recovery– Point-in-Time-Recovery
● werden min. bis zum nächsten Backup aufbewahrt
– nie überschrieben– später gelöscht
Archived Redo Logs
OnlineRedoLogs
ArchivedRedoLogs
ARCn
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 21/37
Das war aber nur die halbe Wahrheit ...
Das benötigte Transaktionsverfahren macht die Sache etwas komplizierter.
Was ist UNDO...?
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 22/37
TEMP
Undo-Konzept
Listener:1521
SGA
Buffer CachePGAs
Session
Tablespace Undo Tbs.
Blöcke
PMON
ARCnSMON
LGWRCKPT
Shared Poolrollback;
DBWn
update ...;
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 23/37
● dienen dem Zurückrollen von Änderungen
● kein „Undo-“Hintergrundprozess (Session / Job / etc. schreibt selbst)
● werden später überschrieben („Ringpuffer“)
– frühestens: nach Abschluss der Transaktion– meist: nach Ablauf der Undo Retention
– spätestens: bei Platzbedarf● weitere Verwendung
– für konsistentes Lesen (stets)– Flashback-Technologien (optional)
Undo Records
Undo Tbs.
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 24/37
Undo: Konsistentes Lesen
select * from TABLE where ... ;
geänderte, abernicht commitete
Rows
ITL Eintrag
Undo Tbs.
Consistent ReadClone
Undo Records
Session
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 25/37
TEMP
Daten-Änderung (komplett)
Listener:1521
SGA
Buffer CachePGAs
Session
Tablespace Undo Tbs.
Blöcke
PMON
SMON
CKPT
Shared Pool
update ...;
DBWn
Log Buffer
Online
Redo
Logs
ArchivedRedoLogs
LGWR
ARCn
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 26/37
Crash
Online
Redo
Logs
ArchivedRedoLogs
Tablespace
Blöcke
Undo Tbs.
TEMP
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 27/37
SMON
Crash Recovery
Online
Redo
Logs
ArchivedRedoLogs
Tablespace
Blöcke
?SGA
Buffer Cache
Log Buffer
PMON
ARCn
LGWR
DBWn
CKPT TEMP
Listener:1521
Undo Tbs.
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 28/37
SMON nach Crash Recovery
Online
Redo
Logs
ArchivedRedoLogs
Tablespace
Blöcke
SGA
Buffer Cache
Log Buffer
PMON
ARCn
LGWR
DBWn
CKPT
SMON
TEMP
Listener:1521
Undo Tbs.
rollback by SMONSession
Shared Pool
Konkurr. Abfrage select ... ;
PGAs
X@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 29/37
Architektur 11.2(Oracle Doc)
Que
lle:
http
://d
ocs
.ora
cle
.co
m/c
d/E
118
82_
01/
serv
er.1
12
/e16
508
/intr
o.h
tm#i
623
45
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 30/37
Architektur 12.1(Oracle Doc)
Que
lle:
http
://w
ww
.ora
cle.
com
/web
fold
er/te
chne
twor
k/tu
toria
ls/o
be/d
b/12
c/r1
/pos
ter/
OU
TP
UT
_pos
ter/
img/
Ora
cle%
2012
c%20
Arc
hite
ctur
e_no
rmal
.png
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 31/37
„New“ Features
● F lashback Querybasiert auf Undo● Flashback Databasebasiert auf F.-Logs = Undo
● Dataguard (Standby Database)= Logwriter (Redo)
● Active Dataguard= Dataguard + Flashback
● Real Application Clusters
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 32/37
Shared Pool
select ... ;
Buffer Cache
Lesen im RAC
Listener:1521
Session
Tablespace
Blöcke
Buffer Cache
Block Shipping
Interconnect?
Buffer lokalisieren
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 33/37
Replikation mit Dataguard
Buffer Cache
Session
Log Buffer
Online
Redo
Logs
LGWR
TMONBuffer Cache
Standby
Redo
Logs
RFSTTnn
MRP
X
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 34/37
Feedback - wie war's?
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 35/37
● Transaktionsprinzip A.C.I.D.
● Oracle Datenbank-Architektur– Verbindung, Namespace(s) und Abschottung– Instanz und Datenbank– Alles Blöcke, oder was?– Redo, Undo und was man damit macht– Die Basis für moderne Features
● Stets das Ziel: „Das Konzept dahinter“ verstehen
● Primär für Einsteiger = Vertiefung für Erfahrene