Oracle Datenbank Architektur -
nicht nur für Einsteiger
Martin Klier
Performing Databases GmbH
Mitterteich
@MartinKlierDBA...
● Martin Klier
● Lösungsarchitekt und
Datenbankspezialist
● Fachliche Schwerpunkte:
– Performanceoptimierung / Tuning
– ho...
Referent
● Vorträge
● Kontakt: martin.klier@performing-db.com
● Weblog: http://www.usn-it.de
@MartinKlierDBA Oracle Datenb...
Unternehmen
● Spezialisten für Datenbanktechnik
– Konzeptberatung und Vergabekompetenz
– Architektur- und Systemplanung
– ...
Dieser Vortrag ...
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 6/36
● Transaktionsprinzip A.C....
Transaktionen
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 7/36
● Atomicity „Alles oder nichts“...
Host (=Server)
GrundbegriffeInstanceDatabase
Schema
Schema
Object XObject X
Listener
:1521
Processes
Memory Segment(s)
Reg...
Host (=Server)
Connection + SessionInstanceDatabase
Schema
Schema
Object XObject X
Listener
:1521
Session
1
2
4
5
3Mem.S.
...
Host (=Server)
Abschottung / Schemas
Instance
Database
BOB
SessionMem.S.
Processes
User
„ALICE“
ALICE
EMPLOYEES EMPLOYEES
...
DBserver1
Datenbank-Link
EMP
Anwender
mit Clients
DBserver2
Listener
:1521
EMPDB_LNK
Listener
:1521
Aufbau einer Session
s...
TEMP
Architekturschema
(vereinfacht)
Listener
:1521
PMON
SGA
Session
Session
Buffer Cache
Shared Pool
Log Buffer
ARCnSMON
...
TEMP
Lesevorgang
Listener
:1521
SGA
PGAs
Session
Tablespace
Blöcke
Sort,
Hash,
Merge
Shared Pool
select ... ;
Buffer Cache...
TEMP
Daten-Änderung,
Database Writer
Listener
:1521
SGA
PGAs
Session
Tablespace
Blöcke
PMON
ARCnSMON
LGWRCKPT
Shared Pool
...
TEMP
Daten-Änderung
(nur Redo)
Listener
:1521
SGA
Buffer Cache
Log Buffer
PGAs
Session
Online
Redo
Logs
Archived
Redo
Logs...
Crash
Online
Redo
Logs
Archived
Redo
Logs
Tablespace
Blöcke
commit;
!
TEMP
@MartinKlierDBA Oracle Datenbank Architektur - ...
Crash Recovery
(nur Redo)
Online
Redo
Logs
Archived
Redo
Logs
Tablespace
Blöcke
?
SGA
Buffer Cache
Log Buffer
PMON
ARCn
LG...
INACTIVE
Detail: Online Redo Logs
„Group“ 1
„Members“
„Group“ 4
„Group“ 3
„Group“ 2
UNUSED
CURRENT
ACTIVE
LGWR
● darf über...
● Schreibt den Log Buffer ins Online Redo Log
– bei jedem Commit
– wenn Log Buffer voll
– nach spätestens 3 Sekunden
● Lau...
● dienen der Absicherung des Cache
● müssen aufbewahrt werden so lange DBWn nicht
in Tablespace geschrieben hat
● müssen a...
● werden pro RL-“Group“ vom Archiver (ARCn) erzeugt
– frühestens: nach Log Switch
– spätestens: vor Überschreiben Online R...
Das war aber nur die halbe
Wahrheit ...
Das benötigte Transaktionsverfahren macht die Sache etwas komplizierter.
Was ist U...
TEMP
Undo-Konzept
Listener
:1521
SGA
Buffer Cache
PGAs
Session
Tablespace Undo Tbs.
Blöcke
PMON
ARCnSMON
LGWRCKPT
Shared P...
● dienen dem Zurückrollen von Änderungen
● kein „Undo-“Hintergrundprozess
(Session / Job / etc. schreibt selbst)
● werden ...
Undo: Konsistentes Lesen
select * from TABLE where ... ;
geänderte, aber
nicht commitete
Rows
ITL
Eintrag
Undo Tbs.
Consis...
TEMP
Daten-Änderung (komplett)
Listener
:1521
SGA
Buffer Cache
PGAs
Session
Tablespace Undo Tbs.
Blöcke
PMON
SMON
CKPT
Sha...
Crash
Online
Redo
Logs
Archived
Redo
Logs
Tablespace
Blöcke
Undo Tbs.
TEMP
@MartinKlierDBA Oracle Datenbank Architektur - ...
SMON
Crash Recovery
Online
Redo
Logs
Archived
Redo
Logs
Tablespace
Blöcke
?
SGA
Buffer Cache
Log Buffer
PMON
ARCn
LGWR
DBW...
SMON nach Crash
Recovery
Online
Redo
Logs
Archived
Redo
Logs
Tablespace
Blöcke
SGA
Buffer Cache
Log Buffer
PMON
ARCn
LGWR
...
Architektur 11.2
(Oracle Doc)
Quelle:
http://docs.oracle.com/cd/E11882_01/server.112/e16508/intro.htm#i62345
@MartinKlierD...
Architektur 12.1
(Oracle Doc)
Quelle:
http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/poster/OUTPUT_po...
„New“ Features
● Flashback Query basiert auf Undo
● Flashback Database basiert auf F.-Logs = Undo
● Dataguard (Standby Dat...
Shared Pool
select ... ;
Buffer Cache
Lesen im RAC
Listener
:1521
Session
Tablespace
Blöcke
Buffer Cache
Block Shipping
In...
Replikation mit Dataguard
Buffer Cache
Session
Log Buffer
Online
Redo
Logs
LGWR
TMON
Buffer Cache
Standby
Redo
Logs
RFSTTn...
Feedback - wie war's?
@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 35/36
● Transaktionsprinzip ...
Oracle Datenbank Architektur - nicht nur für Einsteiger
Oracle Datenbank Architektur - nicht nur für Einsteiger
Nächste SlideShare
Wird geladen in …5
×

Oracle Datenbank Architektur - nicht nur für Einsteiger

428 Aufrufe

Veröffentlicht am

Martin Klier - http://www.performing-databases.com

Dieser Vortrag ...
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


Atomicity Consistency Isolation Durability
„Alles oder nichts“
„Kein undefinierter Zustand“ „Read Committed“ „Zugesicherte Speicherung“
Transaktionen
Wie wird das technisch gelöst?

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
428
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
8
Aktionen
Geteilt
0
Downloads
3
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Oracle Datenbank Architektur - nicht nur für Einsteiger

  1. 1. Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 2/36
  2. 2. ● Martin Klier ● Lösungsarchitekt und Datenbankspezialist ● Fachliche Schwerpunkte: – Performanceoptimierung / Tuning – hochverfügbare Systeme – Cluster und Replikation ● Linux seit 1997 ● Oracle Database seit 2003 @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 3/36 Referent
  3. 3. Referent ● Vorträge ● Kontakt: martin.klier@performing-db.com ● Weblog: http://www.usn-it.de @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 4/36 Regionalgruppen
  4. 4. Unternehmen ● Spezialisten für Datenbanktechnik – Konzeptberatung und Vergabekompetenz – Architektur- und Systemplanung – Lizenzierung – Realisierung und Troubleshooting ● Kontakt – Performing Databases GmbH Wiesauer Straße 27 95666 Mitterteich – Web: http://www.performing-databases.com – Twitter: @PerformingDB @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 5/36
  5. 5. Dieser Vortrag ... @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 6/36 ● 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
  6. 6. Transaktionen @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 7/36 ● Atomicity „Alles oder nichts“ ● Consistency „Kein undefinierter Zustand“ ● Isolation „Read Committed“ ● Durability „Zugesicherte Speicherung“ Basics -> Wie wird das technisch gelöst?
  7. 7. Host (=Server) GrundbegriffeInstanceDatabase Schema Schema 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/36
  8. 8. Host (=Server) Connection + SessionInstanceDatabase Schema Schema Object XObject X Listener :1521 Session 1 2 4 5 3Mem.S. Processes „TNS“ 1. Verbindungsaufbau 2. Anforderung Session 3. Start Session 4. Übergabe Verb. 5. Kommunikation Client SERVICE_NAME =DWH @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 9/36
  9. 9. Host (=Server) Abschottung / Schemas Instance Database BOB SessionMem.S. Processes User „ALICE“ ALICE EMPLOYEES EMPLOYEES select * from BOB.EMPLOYEES where ...; grant select on EMPLOYEES to ALICE; Schemas @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 10/36
  10. 10. DBserver1 Datenbank-Link EMP Anwender mit Clients DBserver2 Listener :1521 EMPDB_LNK Listener :1521 Aufbau einer Session select * from EMP@DB_LNK where ... ; speichert / impliziert Zugangsdaten @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 11/36
  11. 11. TEMP Architekturschema (vereinfacht) Listener :1521 PMON SGA Session Session Buffer Cache Shared Pool Log Buffer ARCnSMON LGWR DBWn PGAs CKPT Session Online Redo Logs Archived Redo Logs Tablespace Undo Tbs. @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 12/36
  12. 12. 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/36
  13. 13. TEMP Daten-Änderung, Database Writer Listener :1521 SGA PGAs Session Tablespace Blöcke PMON ARCnSMON LGWRCKPT Shared Pool DBWn Aber: Database Writer ist ein Lazy Writer! Schreibvorgang auf HDD kann extrem nachhängen! Buffer Cache update ...; @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 14/36
  14. 14. TEMP Daten-Änderung (nur Redo) Listener :1521 SGA Buffer Cache Log Buffer PGAs Session Online Redo Logs Archived Redo Logs Tablespace Blöcke PMON ARCnSMON DBWn CKPT commit; LGWR @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 15/36
  15. 15. Crash Online Redo Logs Archived Redo Logs Tablespace Blöcke commit; ! TEMP @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 16/36
  16. 16. Crash Recovery (nur Redo) Online Redo Logs Archived Redo Logs 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/36
  17. 17. 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/36
  18. 18. ● 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 Online Redo Logs Log Buffer LGWR @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 19/36
  19. 19. ● 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 Online Redo Logs Archived Redo Logs ARCn Log Buffer LGWR @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 20/36
  20. 20. ● 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 Operationen beim 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 Online Redo Logs Archived Redo Logs ARCn @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 21/36
  21. 21. 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/36
  22. 22. TEMP Undo-Konzept Listener :1521 SGA Buffer Cache PGAs Session Tablespace Undo Tbs. Blöcke PMON ARCnSMON LGWRCKPT Shared Pool rollback; DBWn update ...; @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 23/36
  23. 23. ● 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/36
  24. 24. Undo: Konsistentes Lesen select * from TABLE where ... ; geänderte, aber nicht commitete Rows ITL Eintrag Undo Tbs. Consistent Read Clone Undo Records Session @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 25/36
  25. 25. TEMP Daten-Änderung (komplett) Listener :1521 SGA Buffer Cache PGAs Session Tablespace Undo Tbs. Blöcke PMON SMON CKPT Shared Pool update ...; DBWn Log Buffer Online Redo Logs Archived Redo Logs LGWR ARCn @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 26/36
  26. 26. Crash Online Redo Logs Archived Redo Logs Tablespace Blöcke Undo Tbs. TEMP @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 27/36
  27. 27. SMON Crash Recovery Online Redo Logs Archived Redo Logs 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/36
  28. 28. SMON nach Crash Recovery Online Redo Logs Archived Redo Logs Tablespace Blöcke SGA Buffer Cache Log Buffer PMON ARCn LGWR DBWn CKPT SMON TEMP Listener :1521 Undo Tbs. rollback by SMON Session Shared Pool Konkurr. Abfrage select ... ; PGAs X @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 29/36
  29. 29. Architektur 11.2 (Oracle Doc) Quelle: http://docs.oracle.com/cd/E11882_01/server.112/e16508/intro.htm#i62345 @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 30/36
  30. 30. Architektur 12.1 (Oracle Doc) Quelle: http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/poster/OUTPUT_poster/img/Oracle%2012c%20Architecture_normal.png @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 31/36
  31. 31. „New“ Features ● Flashback Query basiert auf Undo ● Flashback Database basiert 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/36
  32. 32. 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/36
  33. 33. Replikation mit Dataguard Buffer Cache Session Log Buffer Online Redo Logs LGWR TMON Buffer Cache Standby Redo Logs RFSTTnn MRP X @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 34/36
  34. 34. Feedback - wie war's? @MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 35/36 ● 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

×