36

Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

  • Upload
    lekiet

  • View
    235

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback
Page 2: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

Oracle Datenbank Architektur -nicht nur für Einsteiger

Martin Klier

Performing Databases GmbHMitterteich

@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 2/37

Page 3: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

@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

Page 4: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

Referent

● Vorträge

● Kontakt: [email protected]

● Weblog: http://www.usn-it.de

@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 4/37

Regionalgruppen

Page 5: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 6: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 7: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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?

Page 8: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 9: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 10: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 11: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 12: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 13: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 14: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 15: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 16: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

Crash

Online

Redo

Logs

ArchivedRedoLogs

Tablespace

Blöcke

commit;

!

TEMP

@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 16/37

Page 17: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 18: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 19: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

● 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

Page 20: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

● 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

Page 21: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

● 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

Page 22: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 23: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 24: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

● 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

Page 25: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 26: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 27: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

Crash

Online

Redo

Logs

ArchivedRedoLogs

Tablespace

Blöcke

Undo Tbs.

TEMP

@MartinKlierDBA Oracle Datenbank Architektur - nicht nur für Einsteiger 27/37

Page 28: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 29: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 30: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 31: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 32: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

„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

Page 33: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 34: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 35: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback

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

Page 36: Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Performing Databases GmbH Mitterteich ... Flashback