4. Tablespaces und Pufferpool. Datenbankadministration



Ähnliche Dokumente
Datenbankadministration

Datenbankadministration

IBM DB2 für Linux/Unix/Windows Monitoring und Tuning

11. Backup & Recovery. Datenbankadministration

Datenschutz: Zugriffsrechte in SQL

Betriebssysteme 1. Thomas Kolarz. Folie 1

Datenbank Objekte (Tabellen, Segemente, Extents, Blöcke)

Aufbau einer Oracle Datenbank Tablespace, Arten von Dateien

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

Datenbankadministration

Tablespaces und Datendateien

Tablespaces und Datendateien

Datenbanken erstellen Liste von Datenbanken anzeigen Datenbanken löschen. MySQL 4, 5. Kapitel 06: Datenbanken. Marcel Noe

12. Datenschutz: Zugriffsrechte in SQL Datenschutz: Zugriffsrechte in SQL

Freiberuflicher IT-Berater Schwerpunkte: Unix, Oracle, Netzwerk. IT-Berater. Dipl.-Inform.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Übung 5. Implementierung einer Datenbank. Prof. Dr. Andreas Schmietendorf 1. Übung 5

PHP- Umgang mit Datenbanken (1)

Test-22 Documentation. Release latest

Transaktionsverwaltung

IBM DB2 für Linux/Unix/Windows Administration Grundlagen

Prozessarchitektur einer Oracle-Instanz

Aufbau einer Oracle Datenbank

Oracle 9i Einführung Performance Tuning

Online Table Shrink. Freigabe von ungenutztem Speicherplatz. Autor: Ralf Durben, ORACLE Deutschland GmbH

Oracle 10g Einführung

Cluster-Bildung. VL Datenbanken II 4 107

ORACLE PROZESSARCHITEKTUR J O N N Y R I L L I C H

Partitioning Technik und Anwendungsbeispiele

Oracle Datenbankadministration Grundlagen

IBM DB2 für Unix/Linux/Windows SQL Grundlagen

Inhaltsverzeichnis. Inhalt. 1 Einführung in die Datenbanktechnologie

11.3 Transaktionen und LUWs in SAP R/3

NICHT TRIVIAL: MAKROVARIABLEN - GLOBAL ODER LOKAL

11.3 Transaktionen und LUWs in SAP R/3

Tutorial 7 TEIL 2/2. Untersuchung von ebusiness Anwendungen auf der Basis des IBM WebSphere Developer V 7.0

Wiederverwendungsbibliothek (Reuse Library)

IBM Informix Tuning und Monitoring

Benachrichtigungen. Installation und Konfiguration. Version 2017 Summer Release

Safexpert Oracle Datenbank Konnektor

Datenbank, Datenbankspiegel und Katastrophenschutz

Oracle Database 12c: Administration Workshop Ed 2

Automatisierung von Tabellen- und Index-Reorganisationen

Performance Verbesserung BIRT-BERICHTE

Verwaltung der Textdokumente

Whitepaper. Produkt: combit Relationship Manager. HowTo: Microsoft SQL Server Datenbank verschlüsseln. combit GmbH Untere Laube Konstanz

Anfrageoptimierung Ausführungspläne, Hints, Statistikinformationen, IDEs

Relationales Datenbanksystem Oracle

IBM DB2 für Linux/Unix/Windows Administration Grundlagen

Erzeugung und Veränderung von Tabellen

Grundlagen der Datenbanksysteme 2 (M-DB2) Dr. Karsten Tolle

Volltextsuche im Archiv mit Windows-Index-Service

Oracle Datenbank - Recovery

Arbeiten mit Nachrichten im Fakultäts-Typo3-System

Schlafen Sie gut!? - Autodesk Vault System Überwachung

Kurzanleitung für den MyDrive Client

1.1 Datenbankprogramm Oracle für MCIS MDA

Steinberg Library Manager

Vault kennt zwei Typen von Eigenschaftsdefinitionen, systemdefinierte und benutzerdefinierte Eigenschaften, ähnlich wie bei Inventor.

Bereitstellung von Microservice mit dem OCCS

Erstellen eines Normfall Projektspeichers auf Basis einer vorhandenen Installation von:

Datenbankadministration

Handhabung von Windowsprofilen

MAILCHIMPCONNECTOR FÜR DAYLITE

IBM DB2 UNIX/Linux/Windows Backup und Hochverfügbarkeit mit HADR

Continuous Delivery mit Orcas

ANDREAS PROUZA. Wien,

Lösung von Übungsblatt 6

Betriebssysteme I WS 2017/18. Prof. Dr. Dirk Müller. 05a 64-/32-Bit-Architekturen

Foglight Performance Analysis for Oracle

Dateisysteme. Erweiterte Anforderungen an Speicher

2 ArcGIS Pro Grundlagen

FAQ Einführung Upload FAQ

Transkript:

4. Tablespaces und Pufferpool Datenbankadministration

Architektur von Datenbanksystemen ÜBERSICHT DER FUNKTIONEN Puffer Tablespaces 2

Tablespaces

CREATE DATABASE revisited CREATE DATABASE <NAME> Initialisieren einer Hierarchie von Verzeichnissen und Dateien Anlegen von Verwaltungs-, Monitoring und Recoverydateien (Möglicherweise) wird ein Bufferpool angelegt Drei Tablespaces werden angelegt Weitere Konfigurationen 4

CREATE DATABASE revisited (2) CREATE DATABASE TEST /home/db2ins49/db2ins49/node0000/test. ---T0000000 ---#C0000000.CAT ---T0000001 ---#C0000000.TMP -----C0000000.TMP -----#SQLTAG.NAM ---T0000002 ---#C0000000.LRG /home/db2ins49/db2ins49/node0000/sql00003. #db2rhist.asc #db2rhist.bak #SQLBP.1 #SQLBP.2 #SQLDBCON #SQLDBCONF #SQLINSLK #SQLOGCTL.LFH.1 #SQLOGCTL.LFH.2 #SQLOGDIR #SQLOGMIR.LFH #SQLSGF.1 #SQLSGF.2 #SQLSPCS.1 #SQLSPCS.2 #SQLTMPLK ---db2event -----db2detaildeadlock -----#00000000.evt -----#db2event.ctl ---SQLOGDIR ---#S0000000.LOG ---#S0000001.LOG ---#S0000002.LOG 5

DB2 Tabellenbereiche TABELLENBEREICH (TABLE SPACE) Logische Speicherstruktur/Abstraktionsebene - enthält Datenbankobjekte, z.b. Tabellen, Indizes, LOB- und LONG-Daten besteht aus Behältern (container) - Verzeichnis - Datei - Device (logisches Gerät) durch Betriebssystem oder DBMS verwaltet - Verfügbarkeit der Container abhängig von Verwaltungsstrategie können explizit bei Erstellung von Datenbankobjekten angegeben werden CREATE TABLE <name> ( ) [IN <tablespace_name>] [INDEX IN <tablespace_name>] [LONG IN <tablespace_name>] nur wenn der primäre Tablespace DMS ist und nur DMS Tablespaces für LONG IN GENERELLER EINSTIEG INS THEMA https://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.admin.dbobj.doc/doc/c0004935.html 6

DB2 Tabellenbereiche (2) Daten werden Round-Robin geschrieben. Eine Tabelle ist einem Tabellenbereich zugeordnet (Indizes und LONG/LOB eventuell in (je einem) weiteren Tabellenbereich). Extent size: Anzahl der Seiten die in einen Container geschrieben werden bevor zum nächsten gewechselt wird Einem Tabellenbereich sind ein bis mehrere Container zugeordnet 7

DB2 Tabellenbereiche (3) KLASSIFIKATION DER TABELLENBEREICHE Katalogtabellenbereich (Catalog table space) - enthält Systemkatalogtabellen und sichten - ist immer erforderlich, aber existiert nur einmal pro Datenbank - kann nicht gelöscht werden Reguläre Tabellenbereiche (Regular table space) - speichert sämtliche permanenten Nutzerdaten Tabellen- und Indexdaten kann auch LOB- und LONG-Daten enthalten - kann keine temporären Tabellen enthalten - ein regulärer oder ein Tabellenbereich für lange Objektdaten notwendig Temporärer Systemtabellenbereich (System temporary table space) - speichert interne temporäre Daten, z.b. beim Sortieren, Reorganisieren oder bei Verbundoperationen - ist notwendig 8

DB2 Tabellenbereiche (4) KLASSIFIKATION DER TABELLENBEREICHE (2) Tabellenbereich für lange Objektdaten (Large table space) - speichert sämtliche permanenten Nutzerdaten - primär für das Speichern von LOB- und LONG-Daten ausgelegt Tabellen können größer werden als bei regulären Tabellenbereichen (z.b. 64 GB regular vs. 2048 GB large) - es können mehr als 255 Zeilen pro Seite gespeichert werden - Indizes werden größer! - wenn nicht definiert, wird ein regulärer Tabellenbereich genutzt - muss durch Datenbank verwaltet sein (DMS) somit nur bestimmte Container nutzbar Temporäre Benutzertabellenbereiche (User temporary table space) - speichert temporäre Tabellen (DECLARE GLOBAL TEMPORARY TABLE) z.b. Zwischenergebnisse von Stored Procedures - sind optional 9

DB2 Tabellenbereiche (5) JEDE DATENBANK MUSS MINDESTENS 3 TABELLENBEREICHE ENTHALTEN einen Katalogtabellenbereich - default: SYSCATSPACE einen oder mehrere Tabellenbereiche für persistente Nutzerdaten - default: USERSPACE1 einen oder mehrere temporäre Systemtabellenbereiche - default: TEMPSPACE1 werden beim Erzeugen einer Datenbank automatisch angelegt, können aber auch explizit spezifiziert werden - CREATE DB <name> [CATALOG TABLESPACE ( )] [USER TABLESPACE ( )] [TEMPORARY TABLESPACE ( )] Link zur Referenz: DB2 Information Center - CREATE DATABASE 10

Tabellenbereichsverwaltung

SMS Tabellenbereich SYSTEM MANAGED SPACE (SMS) besteht aus einem oder mehreren System-Containern - vom Betriebssystem verwaltet - wächst und schrumpft dynamisch - Entspricht Verzeichnis im Dateisystem Daten transparent in Dateien im Verzeichnis Tabellen an Tabellenbereich gebunden Speichernutzung gleichmäßig auf alle Container verteilt - Tabellenbereich ist voll, sobald einer der Container voll ist kein nachträgliches Hinzufügen von Containern möglich Prefetching und Caching des Dateisystems nutzbar zur Ablage von Daten, deren Größe nicht von vornherein abgeschätzt werden kann (z.b. System temporary) kein Verwaltungsaufwand 12

DMS Tabellenbereich DATABASE MANAGED SPACE (DMS) besteht aus einem oder mehreren Datenbank-Containern - von Datenbank verwaltet - entspricht Datei oder Gerät - Speicherplatz wird vorallokiert (feste Größe!) Effiziente Tupeladressierung möglich Tabellen können sich über mehrere Tabellenbereiche erstrecken (Table partitioning) Speichernutzung anfangs gleichmäßig auf alle Container verteilt - auffüllen größerer Container wenn kleinere voll Vergrößerung bzw. Verkleinerung und Hinzufügen bzw. Löschen von Containern möglich/notwendig (ALTER TABLESPACE) - können auch automatisch vom DBMS vergrößert werden (AUTORESIZE YES) - Standardmäßig deaktiviert hoher Verwaltungaufwand 13

SMS versus DMS SMS Speicherplatz durch Betriebssystem allokiert und verwaltet Speicherplatz wird bei Bedarf allokiert DMS Speicherplatz durch DB2 allokiert und verwaltet Speicherplatz wird vorallokiert nur Verzeichniscontainer nutzbar nur Datei- und Gerätecontainer nutzbar zusätzliche Container können nicht hinzugefügt werden reguläre und große Daten im selben Tabellenbereich verwaltet leichter zu erstellen und verwalten zusätzliche Container können hinzugefügt werden (ALTER TABLESPACE) reguläre und große Daten können in unterschiedlichen Tabellenbereichen verwaltet werden mehr Verwaltungsaufwand, aber bessere Kontrolle 14

Automatic Managed Storage AUTOMATIC MANAGED STORAGE Entscheidung, ob SMS oder DMS durch DB2-Datenbankmanager (seit Version 8.2.2) Nicht-/Nutzung wird beim Anlegen der Datenbank definiert AUTOMATIC STORAGE wenn nicht angegeben, seit 9.5 standardmäßig aktiviert TYP DESTABELLENBEREICHS BESTIMMT VERWALTUNGSSTRATEGIE CATALOG, REGULAR oder LARGE à DMS (USER SYSTEM) TEMPORARY à SMS AUTOMATISCHES HINZUFÜGEN VON NEUEN CONTAINERN Angabe eines oder mehrerer Speicherpfade - eventuell auch expliziter Datenbankpfad Speicherpfad Ort der Erstellung der Tabellenbereiche - Standard: DFTDBPATH (abfragbar per GET DBM CFG) Datenbankpfad Ort für Monitoring- und Konfigurationsdateien 15

DB2 Verzeichnishierarchie ANLEGEN EINERAUTOMATIC STORAGE DATENBANK Syntax - CREATE DATABASE [ON <rootpath> [DBPATH ON <path>]] Datenbankpfad - <rootpath>/<instancename>/<nodename> - /home/db2insxy/db2insxy/node0000 Pro Datenbank werden dort standardmäßig zwei Verzeichnisse angelegt - <databasename> TPCH Speicherpfad - SQL0000N SQL00001 Datenbankpfad ON Klausel kann mehrere Pfade enthalten - der erste wird als DBPATH genutzt, falls DBPATH ON nicht gegeben ist In <databasename>, ein Verzeichnis pro Tablespace - T0000000 DMS/Datei: C0000000.CAT - T0000001 SMS/Verzeichnis: C0000000.TMP - T0000002 DMS/Datei: C0000000.LRG 16

Informationen über Tabellenbereiche ANZEIGE ALLER TABELLENBEREICHE EINER DATENBANK LIST TABLESPACES [SHOW DETAIL] Tablespace ID = 0 Name = SYSCATSPACE Type = Database managed space Contents = All permanent data. Regular table space. ANZEIGE DER CONTAINER DIE EINEM TABELLENBEREICH ZUGEORDNET SIND LIST TABLESPACE CONTAINERS FOR <tabspace-id> [SHOW DETAIL] Container ID = 0 Name Type = /NODE0000/TPCH/T0000000/C0000000.CAT = File 17

Datenbank-Design mit Tabellenbereichen GRÜNDE FÜR VERSCHIEDENE TABELLENBEREICHE Berücksichtigung unterschiedlicher Eigenschaften von regulären und Langfeld- bzw. LOB-Daten - z.b.: LOB besser in eigene Tabellenbereiche auslagern Container möglicherweise auf günstigeren Medien anlegen unterschiedliche Eigenschaften von SMS, DMS und Automatic Storage - erhöhten Administrationsaufwand auf kritische Tabellen beschränken Performanz- und Speicheroptimierung durch verschiedene Seitengrößen, EXTENTSIZE-Werte und Pufferpools - z.b.: eigenen Pufferpool für Tabellenbereich mit häufig angefragten Tabellen - z.b.: häufig gescannte Tabellen in eigenen Tabellenbereich mit großer Seitengröße, Extentsize und Prefetchsize und umgekehrt - z.b.: Tabellen mit kleinen Tupeln in Tabellenbereich mit kleiner Seitengröße - z.b.: individuelles Backup/Restore einzelner Tabellenbereiche (z.b. mit häufig geänderten Daten) anstatt der gesamten Datenbank - z.b.: Parallelität durch Verwendung verschiedener physischer Geräte 18

Spezifikation von Tabellenbereichen SPEZIFIKATION VON TABELLENBEREICHEN Beispiele mit Automatic Storage CREATE TABLESPACE USERSPACE3 INITIALSIZE 100 M MAXSIZE 1 G CREATE TABLESPACE USERSPACE4 INCREASESIZE 10 PERCENT MAXSIZE 2 G ERFORDERLICHE RECHTE: SYSCTRL, SYSADM 19

Erstellung SMS/DMS-Tabellenbereiche SMS-CONTAINER system-container ::= CREATE TABLESPACE <name> MANAGED BY SYSTEM USING ( <dir> ) DMS-CONTAINER database-container ::= container-clause ::= CREATE TABLESPACE <name> MANAGED BY DATABASE USING ([FILE DEVICE] <file> <numofpages>, ) 20

Tabellenbereichsparameter PARAMETER Seitengröße (PAGESIZE) - bedingt maximale Größe eines Tupels bzw. Anzahl Tupel pro Seite - Festlegung gilt für alle Tabellen im Tabellenbereich - geringe Seitengröße bei wahlfreiem Lesen und Schreiben weniger Speicher durch unerwünschte Tupel verschwenden - große Seitengröße bei Lesen vieler aufeinander folgender Tupel Anzahl E/A-Anforderungen minimieren Speicherbereichsgröße (EXTENTSIZE) - Anzahl Seiten, die in einen Behälter geschrieben werden, bevor Daten in den nächsten Behälter geschrieben werden - Auswirkung: Speicherauslastung, Leseperformanz bei Block-I/O Vorablesegröße (PREFETCHSIZE) - Anzahl Seiten die vorab angefordert werden (Guideline: Vielfaches von EXTENTSIZE, Anzahl der Container und Anzahl der physischen Devices unter den Containern) - Auswirkung: Leseperformanz bei Scans Mehr Infos: DB2 Information Center - Designing table spaces 21

Implikationen der Seitengröße Seitengröße Max. Zeilengröße Max. Spalten Max. Tupel pro Seite Max. Tabellenbereichsgröße regulär large regulär large 4kB 4005 B 500 251 287 64 GB 2048 GB 8kB 8101 B 1012 253 580 128 GB 4096 GB 16kb 16293 B 1012 254 1165 256 GB 8192 GB 32kB 32677 B 1012 253 2335 512 GB 16384 GB http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.lu w.sql.ref.doc/doc/r0001029.html (Table 7) 22

Pufferpools

DB2 Pufferpool PUFFERPOOL (BUFFERPOOL) Ausführungsort für Lese- und Schreiboperationen (Cache) wichtiger Einzelbereich bei der Optimierung jedem Tabellenbereich muss ein Pufferpool zugewiesen werden Seitengröße von Pufferpool und Tabellenbereich müssen gleich sein keine Pufferung von LOB- und Langfelddaten default: IBMDEFAULTBP PARAMETER Seitengröße (PAGESIZE) - siehe Tabellenbereiche Größe (SIZE) - Anzahl Seiten à Größe des Pufferpools 24

Spezifikation von Pufferpools SPEZIFIKATION VON PUFFERPOOLS ERFORDERLICHE RECHTE: SYSCTRL, SYSADM 25

DB2 Self-Tuning Memory SELF-TUNING MEMORY seit Version 9 verteilt verfügbaren Speicher zwischen verschiedenen Prozessen (Sperrverwaltung, Anfrageverarbeitung, usw.) der Datenbank reagiert auf Änderungen des Anfrageverhaltens passt Speicherkonfigurationsparameter und Größe des Pufferpools an, um Performanz zu optimieren betroffene Ressourcen - Pufferpools (ALTER / CREATE BUFFERPOOL) - Package Cache (PCKCACHESZ) - Speicher für Sperren (LOCKLIST) - Sortierspeicher (SORTHEAP, SHEAPTHRES_SHR) - Gesamtspeicher der Datenbank (DATABASE_MEMORY) PARAMETER GET DB CFG [ grep SELF_TUNING_MEM ] (default: ON) 26

Zusammenfassung TABELLENBEREICHE Logische Abstraktion zwischen Tabellen und physischer Speicherung Fünf Klassen von Tabellenbereichen Verwaltung per SMS, DMS oder Automatic Storage PUFFERPOOLS Cache der jedem Tabellenbereich zugewiesen sein muss WEITERFÜHRENDE LITERATUR Automatic storage tablespaces Types of tablespaces Designing table spaces Designing buffer pools 27