Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht...

35
Oracle Datenbank Architektur - nicht nur für Einsteiger Martin Klier Klug GmbH integrierte Systeme, Teunz DOAG Konferenz, 21.11.2013

Transcript of Oracle Datenbank Architektur - nicht nur für Einsteiger · Oracle Datenbank Architektur - nicht...

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

Q & A

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!