Upload
others
View
14
Download
1
Embed Size (px)
Citation preview
Oracle Datenbank Architektur -nicht nur für Einsteiger
Martin KlierKlug GmbH integrierte Systeme, Teunz
DOAG Konferenz, 21.11.2013
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
Referent
• Martin Klier
• Datenbankadministrator für
• Fachliche Schwerpunkte:- Performanceoptimierung / Tuning- hochverfügbare Systeme- Cluster und Replikation
• Linux seit 1997
• Oracle Database seit 2003
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
Referent
• Vorträge
• Kontakt: [email protected]
• Weblog: http://www.usn-it.de
Regionalgruppe Nürnberg
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
• Klug GmbH integrierte SystemeLindenweg 1392552 Teunz
• http://www.klug-is.de
• Führendes und erfolgreiches Unternehmen der Software- und Steuerungssysteme für die Intralogistik
• Konzeption, Beratung, Softwareerstellung, Elektronik, Kommissioniertechnik, Hardware, ...
• 270 Mitarbeiter / 50 Auszubildende
Unternehmen
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
• 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
Dieser Vortrag ...
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
• Atomicity „Alles oder nichts“
• Consistency „Kein undefinierter Zustand“
• Isolation „Read Committed“
• Durability „Zugesicherte Speicherung“
Transaktionen nach „A.C.I.D.“
Basics ->
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
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
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
Host (=Server)
Connection + SessionIn
stan
ceD
atab
ase
SchemaSchema
Object XObject X
Listener:1521
Session
124
53Mem.S.
Processes
„TNS“1. Verbindungsaufbau2. Anforderung Session3. Start Session4. Übergabe Verb.5. Kommunikation
Client
SERVICE_NAME=DWH
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
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
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
DBserver1
Datenbank-Link
EMP
Anwender mit Clients
DBserver2
Listener:1521
EMPDB_LNK
Listener:1521
Aufbau einer Session
select *from EMP@DB_LNKwhere ... ;
speichert / impliziertZugangsdaten
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
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.
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
TEMP
Lesevorgang
Listener:1521
SGA
PGAs
Session
Tablespace
Blöcke
Sort,Hash,Merge
Shared Pool
select ... ;
Buffer Cache
„Buffer“
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
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 ...;
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
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
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
Crash
Online
Redo
Logs
ArchivedRedoLogs
Tablespace
Blöcke
commit;
!
TEMP
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
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
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
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
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
• 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
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
• 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
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
• 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
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
Das war aber nur die halbe Wahrheit ...
Das benötigte Transaktionsverfahren macht die Sache etwas komplizierter.
Was ist UNDO...?
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
TEMP
Undo-Konzept
Listener:1521
SGA
Buffer CachePGAs
Session
Tablespace Undo Tbs.
Blöcke
PMON
ARCnSMON
LGWRCKPT
Shared Poolrollback;
DBWn
update ...;
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
• 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.
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
Undo: Konsistentes Lesen
select * from TABLE where ... ;
geänderte, abernicht commitete
Rows
ITL Eintrag
Undo Tbs.
Consistent ReadClone
Undo Records
Session
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
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
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
Crash
Online
Redo
Logs
ArchivedRedoLogs
Tablespace
Blöcke
Undo Tbs.
TEMP
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
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.
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
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
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
Architektur 11.2 (Oracle Doku)Q
ue
lle:
htt
p:/
/do
cs.o
racl
e.c
om
/cd
/E1
18
82
_0
1/s
erv
er.
11
2/e
16
50
8/in
tro
.htm
#i6
23
45
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
Architektur 12.1 (Oracle Doku)Q
ue
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
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
„New“ Features
• Flashback Query basiert auf Undo
• Flashback Database basiert auf F.-Logs = Undo
• Dataguard (Standby Database)
• Active Dataguard= Dataguard + Flashback
• Real Application Clusters
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
Shared Pool
select ... ;
Buffer Cache
Lesen im RAC
Listener:1521
Session
Tablespace
Blöcke
Buffer Cache
Block Shipping
Interconnect?
Buffer lokalisieren
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
Replikation mit Dataguard
Buffer Cache
Session
Log Buffer
Online
Redo
Logs
LGWR
TMONBuffer Cache
Standby
Redo
Logs
RFSTTnn
MRP
X
Martin Klier: Oracle Datenbank Architektur - nicht nur für Einsteiger
Abschluß
Quellen:
• http://www.oracle.com/technology
• http://www.usn-it.de (eigenes Blog)
Alle Marken und Logos sind Eigentum der jeweiligen Unternehmen. Diese Präsentation dient zu Schulungszwecken und stellt keine Werbung und keine Leistungszusicherung dar, weder durch den Autor, den Referenten noch durch die
Klug GmbH integrierte Systeme. Irrtum und Änderungen vorbehalten.
(c) 2013 by Martin Klier, Klug GmbH integrierte Systeme, Teunz
Dieses Werk steht unter der Creative-Commons-Lizenz „by-sa“
Vielen Dank für Ihre Aufmerksamkeit!