@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 2/32
Oracle Core für Einsteiger:
Datenbank I/O
Martin Klier
Perf...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 3/32
Referent
● Martin Klier
● Lösungsarchitekt und
Datenbankspe...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 4/32
Referent
● Vorträge
● Kontakt: martin.klier@performing-db.c...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 5/32
Unternehmen
● Spezialisten für Datenbanktechnik
– Konzeptbe...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 6/32
Ziele
● Funktionsweise des RDBMS (Überblick)
● Nutzung des ...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 7/32
Grundlagen
Funktion DBMS
#FiveWordTechHorrors „John knows e...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 8/32
TEMP
Architekturschema
(vereinfacht)
Listener
:1521
PMON
SG...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 9/32
TEMP
Lesevorgang
Listener
:1521
SGA
PGAs
Session
Tablespace...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 10/32
TEMP
Daten-Änderung,
Database Writer
Listener
:1521
SGA
PG...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 11/32
TEMP
Daten-Änderung
(nur Redo)
Listener
:1521
SGA
Buffer C...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 12/32
●
Bei Transaktion
●
Wenn Log Buffer voll
●
spätestens alle...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 13/32
TEMP
Daten-Änderung (komplett)
Listener
:1521
SGA
Buffer C...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 14/32
Einige IO-Kategorien
#FiveWordTechHorrors „Storage is fast...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 15/32
Tablespace
DB file sequential read
Buffer Cache
6 Single B...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 16/32
●
Verwendet für Einzelzugriffe (Index Block)
●
In äußerst ...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 17/32
Tablespace
DB file scattered read
Buffer Cache
1 Multibloc...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 18/32
●
Verwendet für FULL SCANs (Table, Index …)
●
1 I/O call l...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 19/32
Tablespace
Direct Path Read
Prozess-PGA
1 Multiblock IO Ca...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 20/32
●
Verwendet für Massen-Lesevorgänge (Parallel Exec, Export...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 21/32
Oracle ASM
#FiveWordTechHorrors „No ASM diskgroups are onl...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 22/32
ASM
LUN 1 LUN 2 LUN 4 LUN 5
Location A Location B
LUN 3 LU...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 23/32
●
„Automatic Storage Management“
(Automagic?)
●
Logical Vo...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 24/32
InMemory ist cool.
Cool reicht nicht.
UseCase muß passen.
...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 25/32
Storage Sizing Basics
#FiveWordTechHorrors „Database fits ...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 26/32
●
Die Datenbank passt ohnehin in den Cache.
●
Wir vermeide...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 27/32
TEMP
Daten-Änderung (komplett)
Listener
:1521
SGA
Buffer C...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 28/32
–
Falsch
–1. Data Block - eins
2. Undo Block - zwei
3. Onl...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 29/32
IOPS von Medien
HDD SSD
50x
SSD Storage
15x
7.000
100.000
...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 30/32
W
hitepaper!1. Grundfunktionen
2. Read IOs
3. Automatic St...
@MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 31/32
Q & A
Download Präsentation und Whitepaper
http://www.perf...
Oracle Core für Einsteiger: Datenbank I/O
Oracle Core für Einsteiger: Datenbank I/O
Nächste SlideShare
Wird geladen in …5
×

Oracle Core für Einsteiger: Datenbank I/O

172 Aufrufe

Veröffentlicht am

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

Funktionsweise des RDBMS (Überblick)
Nutzung des Massenspeichers
Automatic Storage Management (Überblick)
Darstellung verschiedener IO-Typen
Storage Sizing Basics

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
172
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
5
Aktionen
Geteilt
0
Downloads
5
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Oracle Core für Einsteiger: Datenbank I/O

  1. 1. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 2/32 Oracle Core für Einsteiger: Datenbank I/O Martin Klier Performing Databases GmbH Mitterteich #FiveWordTechHorrors „Storage comes from other department“
  2. 2. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 3/32 Referent ● Martin Klier ● Lösungsarchitekt und Datenbankspezialist ● Fachliche Schwerpunkte: – Performanceoptimierung / Tuning – hochverfügbare Systeme – Cluster und Replikation ● Linux seit 1997 ● Oracle Database seit 2003
  3. 3. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 4/32 Referent ● Vorträge ● Kontakt: martin.klier@performing-db.com ● Weblog: http://www.usn-it.de Regionalgruppen April 2014
  4. 4. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 5/32 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
  5. 5. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 6/32 Ziele ● Funktionsweise des RDBMS (Überblick) ● Nutzung des Massenspeichers ● Automatic Storage Management (Überblick) ● Darstellung verschiedener IO-Typen ● Storage Sizing Basics #NoHorror
  6. 6. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 7/32 Grundlagen Funktion DBMS #FiveWordTechHorrors „John knows everything about databases.“
  7. 7. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 8/32 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.
  8. 8. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 9/32 TEMP Lesevorgang Listener :1521 SGA PGAs Session Tablespace Blöcke Sort, Hash, Merge Shared Pool select ... ; Buffer Cache „Buffer“
  9. 9. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 10/32 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 ...;
  10. 10. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 11/32 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
  11. 11. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 12/32 ● Bei Transaktion ● Wenn Log Buffer voll ● spätestens alle 3 Sekunden ● (wenn private strand geleert wird) Schreiben Redo Logs Online Redo Logs Archived Redo Logs ARCn Log Buffer LGW1 LGW2 Paralleles Schreiben möglich aber: Bug 19959089
  12. 12. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 13/32 TEMP Daten-Änderung (komplett) Listener :1521 SGA Buffer Cache PGAs Session Tablespace Undo Tbs. Blöcke PMON SMON Shared Pool update ...; Log Buffer Online Redo Logs Archived Redo Logs LGWR ARCn CKPT DBWn
  13. 13. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 14/32 Einige IO-Kategorien #FiveWordTechHorrors „Storage is fast. What's IOPS?“
  14. 14. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 15/32 Tablespace DB file sequential read Buffer Cache 6 Single Block Read IOs (=„random access“) 6 Memory Access Calls (CPU)
  15. 15. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 16/32 ● Verwendet für Einzelzugriffe (Index Block) ● In äußerst geringem Maß auch bei Vollzugriffen möglich ● 1 I/O call liest1 Blockim TBS ● Schreibt Buffer auf optimalen Platz im Cache DB file sequential read
  16. 16. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 17/32 Tablespace DB file scattered read Buffer Cache 1 Multiblock Read IO 6 Memory Access Calls (CPU)
  17. 17. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 18/32 ● Verwendet für FULL SCANs (Table, Index …) ● 1 I/O call liestn zusammenhängede Blöckeim TBS ● max(n) = DB_FILE_MULTIBLOCK_READ_COUNT ● Schreibt „scattered“ im Buffer Cache Ziel: Sparen von IO-Zeit DB file scattered read
  18. 18. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 19/32 Tablespace Direct Path Read Prozess-PGA 1 Multiblock IO Call 1 Memory Access Call (CPU)
  19. 19. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 20/32 ● Verwendet für Massen-Lesevorgänge (Parallel Exec, Export.. ● 1 I/O call liestn zusammenhängende Blocksim TBS ● max(n) = DB_FILE_MULTIBLOCK_READ_COUNT ● Schreibt zusammenhängend in die Prozess-PGA Ziel: Sparen von IO- und CPU-Zeit Direct Path Read
  20. 20. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 21/32 Oracle ASM #FiveWordTechHorrors „No ASM diskgroups are online“
  21. 21. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 22/32 ASM LUN 1 LUN 2 LUN 4 LUN 5 Location A Location B LUN 3 LUN 6 Diskgroup A Diskgroup B Oracle Datenbank Instanz ASM Instanz Verwaltung Administration Direktzugriffe Online Redo Logs Datafiles Backups ... Spiegelung Spiegelung + Striping
  22. 22. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 23/32 ● „Automatic Storage Management“ (Automagic?) ● Logical Volume Manager ● Umgehung des Verwaltungslayers für Datenzugriffe (analog Raw Device) ● Multi-Master-fähig ● Bedienung über SQL oder Command Line Tools ASM
  23. 23. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 24/32 InMemory ist cool. Cool reicht nicht. UseCase muß passen. #FiveWordTechHorrors „InMemory solves all performance problems“
  24. 24. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 25/32 Storage Sizing Basics #FiveWordTechHorrors „Database fits into cache anyway“
  25. 25. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 26/32 ● Die Datenbank passt ohnehin in den Cache. ● Wir vermeiden IO sowieso wo es geht. ● Warum spiegeln - wir machen stündliche Archivelog-Backups ● Vor zehn Jahren waren das noch Megabytes. ● Ich mache das schon seit 20 Jahren: Unsere Storage IST schnell genug für XYZ. #StorageTechHorrors
  26. 26. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 27/32 TEMP Daten-Änderung (komplett) Listener :1521 SGA Buffer Cache PGAs Session Tablespace Undo Tbs. Blöcke PMON SMON Shared Pool update ...; Log Buffer Online Redo Logs Archived Redo Logs LGWR ARCn CKPT DBWn 1 1 1 1 ? ? ? CF 1
  27. 27. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 28/32 – Falsch –1. Data Block - eins 2. Undo Block - zwei 3. Online Redo Log - drei 4. Archived Redo Log - vier 5. Control File - fünf 5-Finger-Faustregel – aber ok – +1 für weitere(n) Block +1 für Flashback Log
  28. 28. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 29/32 IOPS von Medien HDD SSD 50x SSD Storage 15x 7.000 100.000 Storage S-Cluster 10x 1.000.000 140 7.000 100.000
  29. 29. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 30/32 W hitepaper!1. Grundfunktionen 2. Read IOs 3. Automatic Storage Management 4. InMemory vs. IO 5. Storage Sizing Grundlagen Zusammenfassung Download Präsentation und Whitepaper http://www.performing-databases.com
  30. 30. @MartinKlierDBA Oracle Core für Einsteiger: Datenbank I/O 31/32 Q & A Download Präsentation und Whitepaper http://www.performing-databases.com

×