Datenbankadministration

Werbung
Datenbankadministration
10. Monitoring
AG DBIS University of Kaiserslautern, Germany
Karsten Schmidt [email protected]
(Vorlage TU-Dresden)
Wintersemester 2008/2009
K. Schmidt
10. Monitoring
Momentaufnahmen
K. Schmidt
10. Monitoring
Momentaufnahmen
Momentaufnahme (snapshot)
Zustandsaufnahme
verwendet für Datenbank-Tuning
Typen
Database
Table Space
Tables
Buffer Pools
Locks
Database Manager
Applications
K. Schmidt
10. Monitoring
Beispiel
DB2 => GET SNAPSHOT FOR DATABASE ON MYTPCH
Datenbankname
= MYTPCH
Datenbankpfad
= /home/db2inst1/db2inst1/NODE0000/SQ
Aliasname der Eingabedatenbank
= MYTPCH
Datenbankstatus
= Aktiv
Datenbankpartitionsnummer für Katalog
= 0
Katalogname des Netzwerkknotens
=
Betriebssystem auf Datenbank-Server
= LINUX
Position der Datenbank
= Lokal
Zeitmarke für erste Datenbankverbindung
= 2009-01-10 09.00.46.955453
Zeitmarke für letzte Zurücksetzung
=
Zeitmarke für letztes Backup
=
Zeitmarke für Momentaufnahme
= 2009-01-10 09.01.04.188117
Anzahl Pfade für dynamischen Speicher
= 1
Pfad für dynamischen Speicher
Obere Grenze für Verbindungen
= 4
Anwendungsverbindungen
= 1
Gesamtanzahl sekundärer Verbindungen
= 3
Aktuell verbundene Anwendungen
= 1
Aktuell im DB-Manager ausgeführte Anwendungen
= 0
Zu Anwendungen gehörende Agenten
= 4
Max. Anzahl zu Anwendungen gehörender Agenten
= 4
Max. Anzahl koordinierender Agenten
= 4
K. Schmidt
10. Monitoring
Erstellung von Momentaufnahmen
Erstellung
Kommandozeile
K. Schmidt
10. Monitoring
Monitore auf Instanzebene
Monitor
Überwacht System
liefert kumulierte Daten (für Momentaufnahme)
Monitore auf Instanzebene
gelten für alle Datenbanken einer Instanz
Aktivierung über Parameter in der Instanzkonfiguration
DFT_MON_STMT
DFT_MON_TABLE
DFT_MON_LOCK
DFT_MON_BUFFERPOOL
DFT_MON_SORT
DFT_MON_UOW
DFT_MON_TIMESTAMP
Beispiel
UPDATE DBM CFG USING DFT_MON_STMT ON
K. Schmidt
10. Monitoring
Monitore auf Applikationsebene
Monitore auf Applikationsebene
gelten nur für aktuelle Datenbankverbindung
Aktivierung:
UPDATE MONITOR SWITCHES USING <name> [ON|OFF]
STATEMENT
TABLE
LOCK
BUFFERPOOL
SORT
UOW
TIMESTAMP
Abfragen: GET MONITOR SWITCHES
K. Schmidt
10. Monitoring
Rücksetzen von Monitoren
Rücksetzen
Rücksetzen aller aufgezeichneten Werte
ggf. erforderlich, da Monitor kumulativ
RESET MONITOR [ALL | FOR DATABASE <name>]
Beispiel
DB2 => GET SNAPSHOT FOR DYNAMIC SQL ON MYTPCH
Anzahl Ausführungen
Anzahl Kompilierungen
Gesamte Ausführungszeit (sek.ms)
Anweisungstext
=
=
=
=
2
1
0.003983
select count(*) from lineitem
DB2 => RESET MONITOR ALL
DB2 => GET SNAPSHOT FOR DYNAMIC SQL ON MYTPCH
Anzahl Ausführungen
Anzahl Kompilierungen
Gesamte Ausführungszeit (sek.ms)
Anweisungstext
K. Schmidt
=
=
=
=
0
0
0.000000
select count(*) from lineitem
10. Monitoring
SQL Snapshot-Funktionen
Snapshot-Tabellenfunktionen
erzeugen Tabelle aus Snapshot
Namen
SNAPSHOT_DATABASE
SNAPSHOT_TABLE
SNAPSHOT_LOCK
SNAPSHOT_DYN_SQL
...
Parameter
Datenbankname
Partitionsnummer
Beispiel
SELECT * FROM TABLE (SNAPSHOT_TABLE(’MYTPCH’,0)) AS T
SNAPSHOT_TIMESTAMP
ROWS_WRITTEN ... TABLE_NAME
-------------------------- ------------ ... ---------2009-01-10-10.05.15.557598
273 ... REGION
K. Schmidt
10. Monitoring
Ereignismonitore
K. Schmidt
10. Monitoring
Ereignismonitore
Ereignismonitore (event monitor )
fortlaufende Überwachung über feste Zeitdauer
Datenbankobjekt
liefert detailierte Informationen über
Databases
Tables
Deadlocks
Table Spaces
Buffer Pools
Connections
Statements
Transactions
hoher Aufwand
K. Schmidt
10. Monitoring
Beispiel
Beispiel (Anweisungsmonitor)
CREATE EVENT MONITOR MYEVT
FOR STATEMENTS WRITE TO FILE ’/home/db2inst1/myevt/’
...
?> db2evmon -db MYTPCH -evm MYEVT
20) Statement Event ...
Appl Handle: 46
Appl Id: *LOCAL.db2inst1.080110103426
Appl Seq number: 00012
...
Text
: select count(*) from lineitem
...
Start Time: 01/10/2009 11:40:47.341598
Stop Time: 01/10/2009 11:40:47.341692
Exec Time: 0.000094 seconds
...
Fetch Count: 1
←
←
←
K. Schmidt
10. Monitoring
Erstellung von Ereignismonitoren
Erstellung von Ereignismonitoren
CREATE EVENT MONITOR <evm-mon>
FOR [DATABASE | TABLES | DEADLOCKS
| TABLESPACES | BUFFERPOOLS | CONNECTIONS
| STATEMENTS | TRANSACTIONS]+
[WHERE APPL_ID|AUTH_ID|APPL_NAME = <value> [AND|OR ...]]
WRITE TO TABLE [<table-options>]
| FILE <path>
[MANUALSTART | AUTOSTART]
[<file-options>]
Entfernen von Ereignismonitoren
DROP EVENT MONITOR <name>
K. Schmidt
10. Monitoring
Erstellung von Ereignismonitoren
Ablage in Tabellen
logische Ereignisgruppe <evm-group>
logische Dateneinheit eines Monitors
definieren Relationen
z.B.
STATEMENT → CONNHEADER, STMT, SUBSECTION, CONTROL
DATABASE → DB, CONTROL, DBMEMUSE
Angabe der Tabelle und der gewünschten Spalten (u.a.).
<table-options> ::= <evm-group>
([TABLE <tab-name>, [INCLUDES (<col-list>)]) [, ...]
graphisches Frontend: db2eva
Beispiel
CREATE EVENT MONITOR MYEVT
FOR DATABASE
WRITE TO TABLE DB (TABLE DB_MYEVT)
erzeugt Relation mt 129 Spalten
K. Schmidt
10. Monitoring
Erstellung von Ereignismonitoren
Ablage in Dateien
oft für erweiterte Auswertung verwendet
schreibt in mehrere Dateien
<file-options> ::=
[MAXFILES <number>] [MAXFILESIZE <pages>]
[BLOCKED | NONBLOCKED]
[APPEND | REPLACE]
Abfragen mit
db2evmon -db <db-name> -evm <evm-name>
db2evmon -path <path>
Beispiel
CREATE EVENT MONITOR MYEVT
FOR STATEMENTS
WRITE TO FILE ’/home/db2inst1/myevt/’
MAXFILES 10 MAXFILESIZE 100
erteugt 00000000.evt, 00000001.evt, ...
K. Schmidt
10. Monitoring
Arbeiten mit Ereignismonitoren
Aktivieren
starten/stopen der Aufzeichnung
SET EVENT MONITOR <name> STATE [0|1]
Statusabfrage
Katalogtabelle SYSCAT.EVENTMONITORS
SQL Funktion EVENT_MON_STATE
SELECT EVENT_MONT_STATE(’MYEVT’) FROM
SYSIBM.SYSDUMMY1
Ausschreiben
gepufferte Daten ausschreiben
FLUSH EVENT MONITOR <name>
K. Schmidt
10. Monitoring
Zusammenfassung
Momentaufnahmen
kumulierte Informationen
geringer Aufwand
Ereignismonitore
Detailinformationen
hoher Aufwand
K. Schmidt
10. Monitoring
Herunterladen