Seminar06_ORACLE - Friedrich-Schiller

Werbung
Friedrich-Schiller-Universität Jena
Lehrstuhl für Datenbanken und Informationssysteme
Seminar: Aspekte und Werkzeuge der DB-Administration und deren Automatisierung
ORACLE 10g
the self-managing database
Benedikt Terschluse
Gliederung
Gliederung:
1. Einleitung
2. Funktionalität von ORACLE Database 10g
2.1 self-configuring
2.2 self-optimizing
2.3 self-organizing
2.4 self-inspecting
2.5 self-protecting
2.6 self-healing
3. Vergleich zur Konkurrenz
4. Fazit
Benedikt Terschluse
1. Einführung
1. Einführung
•
Die Firma ORACLE
» gegründet 1977 in Kalifornien von Larry Ellison, Bob
Miner und Ed Oates
» CEO: Lawrence J. Ellison
» heute rund 55000 Mitarbeiter weltweit
•
•
Marktanteil von ORACLE liegt bei 41,3%
Hauptkonkurrent ist IBM mit ähnlichem Marktanteil
•
Hier wird ORACLE Database 10g Release 2 betrachtet
(von 2005)
Benedikt Terschluse
1. Einführung
Analyse der Fähigkeiten von Database 10g in den Gebieten:
•
•
•
•
•
•
Self-configuring:
» Installation und Konfiguration
Self-optimizing:
» Probleme erkennen -> Performance verbessern
Self-organizing:
» gegebene Ressourcen geschickt verteilen
Self-inspecting:
» wann fällt welche workload an
Self-protecting:
» Sicherheitslücken erkennen
Self-healing:
» Fehler beheben können
Benedikt Terschluse
Gliederung
Gliederung:
1. Einleitung
2. Funktionalität von ORACLE Database 10g
2.1 self-configuring
2.2 self-optimizing
2.3 self-organizing
2.4 self-inspecting
2.5 self-protecting
2.6 self-healing
3. Vergleich zur Konkurrenz
4. Fazit
Benedikt Terschluse
2. Funktionalität von Database 10g
2.1 self-configuring
2. Funktionalität von ORACLE Database 10g
2.1 self-configuring
•
schnellere Installation:
» Server-Installation (1.5 GB) in 20 Minuten
» Client Installation (80MB) in einer Minute
•
einfache Konfiguration:
» Database Creation Assistant (DBCA): leitet den DBA
durch den Einrichtungsvorgang
•
einfache Updates:
» Database Update Assistant (DBUA): leitet durch den
Update-Vorgang. Für manuelle Updates: catupgrd.sql
Benedikt Terschluse
2. Funktionalität von Database 10g
2.1 self-configuring
Automatic Shared (SGA) Memory Management:
Normal muß der DBA für jede der folgenden Komponenten
einzeln Speicher festlegen:
•
•
•
•
•
shared pool (für die Ausführung von SQL und PL/SQL)
java pool (java excecution state)
large pool (für große Bedarfe wie recovery manager)
buffer cache
streams pool
Jetzt nur noch den SGA-TARGET Parameter wählen.
Benedikt Terschluse
2. Funktionalität von Database 10g
2.1 self-configuring
Abb1: SGA-TARGET auf 132 MB
festgelegt aktuell wird der
Speicher wie in
der Tabelle dargestellt verteilt.
Alternativ: View
V$SGA_DYNAMIC_COMPONENTS
Benedikt Terschluse
2. Funktionalität von Database 10g
2.1 self-configuring
Einschränkungen zur automatischen Verteilung:
•
DBA kann Speicheruntergrenzen festlegen
» Beispiel:
– SGA_TARGET = 132 MB
– SHARED_POOL_SIZE = 32 MB
– DB_CACHE_SIZE = 20 MB
– bleiben 80 MB zur automatischen Verteilung
•
recycle buffer caches und additional buffer caches
manuell festlegen
» Speicher dafür bei automatischer Verteilung abziehen
Benedikt Terschluse
2. Funktionalität von Database 10g
2.1 self-configuring
Vorteile durch automatisches Speichermanagement:
•
Out-of-memory Fehler seltener
•
deutliche Performanceverbesserung:
» schnelle Anpassung an neue workload
•
einfacher zu bedienen
» nur ein Parameter muß festgelegt werden
Benedikt Terschluse
2. Funktionalität von Database 10g
2.1 self-configuring
Abb2: aktivieren des automatic shared
managements
Zum Aktivieren des automatic memory managements im Enterprise Manager
auf enable klicken oder in der Kommandozeile
ALTER SYSTEM SET SGA_TARGET = „Größe des Speichers“ eingeben.
Benedikt Terschluse
2. Funktionalität von Database 10g
2.1 self-configuring
Abb3: size advisor für den SGA_TARGET
SGA_TARGET kann zwischen SGA_MaxSize und Minimum des Speichers,
der den einzelnen Komponenten zugeteilt wurde, gesetzt werden.
Zur Hilfe kann man den SizeAdvisor befragen (siehe Abb3).
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
2.2 self-optimizing
•
•
•
Kernpunkt der Bemühungen des autonomic computing.
Gegebene Ressourcen effektiv auslasten
Anfragen tunen
ORACLE Database 10g verwendet hier:
•
•
automatic workload repository (AWR):
» sammelt Statistiken über die workload
automatic database diagnostics monitor (ADDM):
» erkennt wo Optimierungsbedarf besteht
» optimiert selbst
» oder leitet an „Spezialisten“ weiter (siehe Abb4)
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Abb4: die Optimierungsarchitektur
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Die automatic workload repository (AWR):
•
läuft automatisch im Hintergrund
•
Standardeinstellungen: alle 30 min. ein snapshot, Daten
die älter als 7 Tage sind, werden gelöscht
•
Einstellungen kann der DBA natürlich verändern
•
DBA kann auch jederzeit selbst einen snapshot machen
•
Gesammelte Statistiken sind Basis für Optimierungen im
ADDM
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Der automatic database diagnostics monitor (ADDM):
•
Ziel: Finde die Bereiche der Datenbank, welche den
größten Ressourcenbedarf haben
•
Ist die Stelle des Problems gefunden, wird nach den
Ursachen gesucht
•
ADDM gibt Vorschläge was man tun sollte und welchen
„Experten“ man ggf. zu Rate ziehen sollte
•
Im Enterprise Manager kann man durch intuitive
Steuerung das Problem bis auf die Basis herunterbrechen
•
genaueres in den folgenden screenshots ...
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Abb5: Im Enterprise Manager wird angezeigt, dass es 2 Probleme
gibt, die das ADDM gefunden hat
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Abb6: Kurzbeschreibung der Probleme und Lösungsvorschläge
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Abb7: Detailinformationen zu Problem Nr. 1 mit Details, wie man es
beheben könnte
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Abb8: ADDM Report mit
Verbesserungsvorschlag
in Textform
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Der Enterprise Manager
•
•
•
Enterprise Manager ist das Herzstück der
Datenbankverwaltung.
von hier aus sind die verschiedenen Reports zu erreichen
Struktur sieht folgendermaßen aus:
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Abb10: Enterprise
Manager
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Die Detailseiten:
•
ADDM Detail bekannt aus Abb. 7
•
Wait Detail: Zeigt an, wie die Wartezeiten verteilt sind.
Von hier aus kann man sich weitere Details zu den
sessions und den SQL Statements ansehen
•
Session Detail: Sind die Wartezeiten gleichmäßig auf alle
sessions verteilt oder gibt es welche wo gar nichts geht
•
SQL Detail: Welche SQL Statements warten am längsten
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
SQL-Tuning in Database 10g
•
klassische Aufgabe des Optimizers
•
kein rule-based optimizer mehr, nur noch cost-based
optimizing in database 10g
•
manuelles SQL Tuning schwierig und zeitaufwendig, da
man sowohl das Datenbankschema (Indexe, ...) genau
kennen muss als auch die workload
•
workload verändert sich mit der Zeit, => neue
Indexe/materialized views müssen her
•
daher: automatisches SQL Tuning
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Der SQL tuning process:
Dieser Prozess besteht aus 3 Schritten, die in einer Art
Schleife ablaufen, bis eine akzeptable Performance erreicht
ist, oder keine Verbesserungen mehr erreicht werden können:
•
•
•
herausfinden, welche Anfragen sehr lange dauern und
einen besonders hohen Bedarf an Systemresourcen
haben
sicherstellen, dass der Query-Optimizer die Anfrage
bereits gut optimiert hat
Andere Ausführungspläne testen, um die Anfrage
schneller zu machen.
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Abb11: Manuelles
SQL-tuning
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Abb12: Autom.
SQL-tuning
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Der SQL Tuning Advisor
Er checkt SQL Statements in 4 Stufen:
•
•
•
•
Analyse von Statistiken
» jedes Objekt nach Statistiken durchsuchen
» Vorschläge machen, was noch erhoben werden sollte
SQL-Profiling:
» Erstellen eines SQL Profils zur Anfrageoptimierung
» SQL Syntax selbst muss nicht geändert werden
Ausführungspfadanalyse:
» schauen ob neuer Index Bearbeitung schneller macht
SQL Strukturanalyse:
» SQL-Anfrage auf syntaktische und semantische
Struktur prüfen
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Der SQL Tuning Advisor
Abb13: Aufruf des SQL Tuning Advisors im ADDM
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Der SQL Tuning Advisor
Abb14: Vorschlag des SQL Tuning Advisors nach Aufruf aus ADDM
Benedikt Terschluse
2. Funktionalität von Database 10g
2.2 self-optimizing
Der SQL Access Advisor
•
analysiert ein vorgeschlagenes Datenbankschema für eine
bestimmte workload
•
schlägt vor, welche Indexe und matirialized views zu
erstellen sind
•
prüft, dass Kosten für Anlegen der Strukturen nicht deren
Nutzen übersteigen
Benedikt Terschluse
2. Funktionalität von Database 10g
2.3 self-organizing
2.3 self-organizing
•
gegebenen Ressourcen geschickt nutzen und verteilen
•
nicht trennscharf von self-configuring oder self-optimizing
abzugrenzen
•
ORACLE Database 10g: besitzt für die Verteilung der
Systemressourcen den Resource Manager
»
CPU-Zeit an Benutzergruppen und Anwendungen
verteilen
»
Batch Jobs evtl. nur in Nebenzeiten ausführen lassen
»
dazu kann man einen resource plan festlegen
Benedikt Terschluse
2. Funktionalität von Database 10g
2.3 self-organizing
Parameter des resource plans:
•
CPU-Zeit
•
Anzahl aktiver Sessions
•
Anzahl paralleler Zugriffe
•
Automatische Gruppenzuweisung
•
SQL Anfragen und Sessions beenden
•
Ausführungsdauer
•
Undo Operationen
•
Maximale Wartezeit
Benedikt Terschluse
2. Funktionalität von Database 10g
2.3 self-organizing
3 Beispiele für verschiedene resource plans
1.: resource plan für eine Bank (zweistufig)
Abb15.1: Struktur des Plans
Abb15.2: Tabelle zur Ressourcenverteilung
auf Stufe 1 (Banksystem)
Benedikt Terschluse
2. Funktionalität von Database 10g
2.3 self-organizing
3 Beispiele für verschiedene resource plans
2.: resource plan für ERP oder CRM System
Abb16: Tabelle zur Ressourcenverteilung (ERP oder CRM System)
Benedikt Terschluse
2. Funktionalität von Database 10g
2.3 self-organizing
3 Beispiele für verschiedene resource plans
3.: resource plan für ein Data Warehouse
Abb17: Tabelle zur Ressourcenverteilung (Data Warehouse)
Benedikt Terschluse
2. Funktionalität von Database 10g
2.3 self-organizing
Den Resource Manager findet man natürlich auch im
Enterprise Manager:
Abb18: Resource Manager im
Enterprise Manager
Benedikt Terschluse
2. Funktionalität von Database 10g
2.3 self-organizing
Weitere Möglichkeiten des self-optimizing in Database 10g:
•
•
Intelligent Capacity Planning
»
Schätzung, wie groß ein Objekt werden wird
»
Wählt daher den passenden Speicherort
»
vermeidet Fragmentierung der Platten
Storage Manager
»
Verteilung der Daten auf verschiedene Platten
»
Lese- und Schreibzeit wird kürzer
»
Grundlage ist Analyse der workload
Benedikt Terschluse
2. Funktionalität von Database 10g
2.4 self-inspecting
2.4 self-inspecting
•
Ein DBMS sollte „sich kennen“
•
große Herausforderung, da workload sich dauernd ändert
•
Statistiken müssen stets aktuell gehalten werden
•
in Database 10g ist dafür die automatic workload
repository (AWR) zuständig
•
ist bereits in 2.2 erklärt worden
Benedikt Terschluse
2. Funktionalität von Database 10g
2.5 self-protecting
2.5 self-protecting
•
Schutz vor deadlocks und Abstürzen, verursacht durch
schlechte Anfragen oder schlechte Ressourcenverteilung
»
•
-> das sollte der Resource Manager regeln (siehe 2.3)
Schutz vor Angriffen auf die Datenbank
»
ORACLE bietet row-level security an. IBM und
Microsoft setzen auf security per table
»
nur regelbasiert, daher keine weitere Betrachtung an
dieser Stelle
Benedikt Terschluse
2. Funktionalität von Database 10g
2.6 self-healing
2.6. self-healing
•
Datenbank nach einem Fehler schnell wieder in einen
funktionierenden Zustand zurückversetzen
•
ACID-Eigenschaften erfüllen
•
und dabei downtime möglichst klein halten, Ausfallzeiten
sind schließlich immer teuer
•
In Database 10g gibt es hierfür den Recovery Manager
(RMAN)
Benedikt Terschluse
2. Funktionalität von Database 10g
2.6 self-healing
Der Recovery Manager
•
Zeitfenster festlegen, in dem backup stattfinden soll
•
Speicherort für backup festlegen:
»
•
DB_RECOVERY_FILE_DEST
Alle notwendigen Dateien (control files, log files, ...) hier
gespeichert und verwaltet:
»
Dateianordnung und Komprimierung für maximale
Speicherplatzausnutzung
»
alte und nicht mehr benötigte Dateien automatisch
löschen
Benedikt Terschluse
2. Funktionalität von Database 10g
2.6 self-healing
Das inkrementelle backup
•
gibt es seit ORACLE Database 8.0
•
Neu in Database 10g:
»
geänderte Blöcke werden gekennzeichnet
»
erspart zeitaufwendige Suche bei Anstoß des backup
»
daher kann inkrementelles backup nun schneller
durchgeführt werden
Benedikt Terschluse
2. Funktionalität von Database 10g
2.6 self-healing
Das flashback feature
•
Ein Hauptproblem für die Sicherheit in Datenbanken ist
der Benutzer.
•
Fehler, die durch Benutzereingriff entstehen sind schwer
zu vermeiden
•
mit flashback feature schnell zu einer funktionierenden
Konfiguration zurückspringen
•
soll schneller gehen als den Fehler zu machen 
Benedikt Terschluse
2. Funktionalität von Database 10g
2.6 self-healing
Das flashback feature
Abb18: Vergleich vor/mit
ORACLE Database 10g
bei Wiederherstellung einer
versehentlich gelöschten Tabelle
Benedikt Terschluse
Gliederung
Gliederung:
1. Einleitung
2. Funktionalität von ORACLE Database 10g
2.1 self-configuring
2.2 self-optimizing
2.3 self-organizing
2.4 self-inspecting
2.5 self-protecting
2.6 self-healing
3. Vergleich zur Konkurrenz
4. Fazit
Benedikt Terschluse
3. Vergleich zur Konkurrenz
3. Vergleich zur Konkurrenz
•
da es sehr viele verschiedene DBMS gibt vergleiche ich
hier nicht mit allen, sondern nur mit dem
Hauptkonkurrenten IBM DB2 Universal Database 8.2
•
„unabhängige“ Studie der Edison Group vom 1.11.2004
Benedikt Terschluse
3. Vergleich zur Konkurrenz
Ergebnisse der Studie
•
Installation und erste, einfache out of the box
Konfiguration
Benedikt Terschluse
3. Vergleich zur Konkurrenz
Ergebnisse der Studie
•
täglicher Betrieb
Benedikt Terschluse
3. Vergleich zur Konkurrenz
Ergebnisse der Studie
•
Sicherungen und Wiederherstellung nach Fehler
Benedikt Terschluse
3. Vergleich zur Konkurrenz
Ergebnisse der Studie
•
Performancediagnose und tuning
Benedikt Terschluse
3. Vergleich zur Konkurrenz
Ergebnisse der Studie
•
•
Zusammenfassung: Database 10g ist insgesamt im Schnitt
47% schneller als DB2 und erfordert 36% weniger Schritte
um ein gewünschtes Ergebnis zu erzielen
ORACLE hält also sein Versprechen, hier eine wesentlich
schnellere und einfacher zu bedienende Datenbank erstellt zu
haben
Benedikt Terschluse
Gliederung
Gliederung:
1. Einleitung
2. Funktionalität von ORACLE Database 10g
2.1 self-configuring
2.2 self-optimizing
2.3 self-organizing
2.4 self-inspecting
2.5 self-protecting
2.6 self-healing
3. Vergleich zur Konkurrenz
4. Fazit
Benedikt Terschluse
4. Fazit
4. Fazit
•
Viele sehr interessante automatische Features
•
sehr große Vereinfachung der Bedienung, sichtbar auch in
der Studie die in Abschnitt 3 betrachtet wurde
•
gleichzeitig ist die Datenbank auch wirklich schneller
geworden, auch dies zeigt sich in Abschnitt 3
•
trotzdem gibt es noch genug Möglichkeiten für den
Administrator um einzugreifen
•
aus gutem Grund?? ...
Benedikt Terschluse
Vielen Dank für die Aufmerksamkeit.
Benedikt Terschluse
Herunterladen