Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Oracle Core für Einsteiger: Datenbank I/O

325 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
  • Als Erste(r) kommentieren

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

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

×