Active Workload Repository (AWR) und Active Session History (ASH) sind Funktionen der Oracle Enterprise Edition,
die in der Problemanalyse auf Oracle-DB heute kaum mehr wegzudenken sind.
Leider erfordert die Nutzung dieser Analysedaten zum einen die Enterprise Edition der DB und zusätzlich auch die Lizenzierung des Diagnostics Pack.
Das im Analyse-Tool "Panorama" (https://rammpeter.github.io/panorama.html) integrierte Sampling von historischen Daten ermöglicht mit AWR und ASH vergleichbare Funktionen lizenzfrei für jede Oracle-Version inkl. der Standard Edition.
Die Aufzeichnung erfolgt konfigurierbar für eine beliebige Anzahl von Datenbanken jeweils lokal in der betrachteten DB in Tabellenstrukturen analog zu AWR und ASH.
Dieser Vortrag zeigt wie mit Nutzung von "Panorama":
- die AWR- und ASH-kompatible Aufzeichnung zu konfigurieren ist
- die diversen Analyse-Funktion von Panorama transparent und identisch zu nutzen sind entweder mit den originalen AWR- und ASH-Daten der EE-DB oder den durch Panorama selbst gesampelten Daten
2. Otto Group Solution Provider
(OSP)
Gründung:
März 1991
Muttergesellschaft:
Otto Group
Standorte:
Dresden, Hamburg, Altenkunstadt, Madrid, Taipei
Anzahl Mitarbeitende:
> 450
Geschäftsführer:
Dr. Stefan Borsutzky, Norbert Gödicke, Jens Gruhl
3. Zur Person
Mail: Peter.Ramm@ottogroup.com
Peter Ramm
Teamleiter strategisch-technische Beratung bei OSP in Dresden
> 30 Jahre Historie in IT-Projekten
Schwerpunkte:
• Entwicklung von OLTP-Systemen auf Basis von Oracle-Datenbanken
• Architektur-Beratung bis Trouble-Shooting
• Performance-Optimierung bestehender Systeme
4. § Aufzeichnungen zurückliegender Betriebszustände der DB sind essentiell z.B. für Troubleshooting und Forensik
§ Oracles builtin Lösung Active Workload Repository (AWR) und Active Session History (ASH) ist dafür passgenau
§ AWR und ASH sind allerdings limitiert auf EE und zusätzliche Lizenzierung des Diagnostics Pack
§ Vorhandene Alternativen wie z.B. Statspack bieten drastisch geringeren Funktionsumfang
§ Lizenzierung von EE und Diagnostics Pack nur für AWR/ASH bedeuten erheblichen finanziellen Mehraufwand
Motivation für ein unabhängiges Workload Repository
Listenpreise Juli 2000 in US-$
Lizenz-Art Named User+ Support / Jahr
Named User +
Prozessor-Lizenz Support / Jahr
Prozessor-Lizenz
Standard Edition 2 350 $ 77 $ 17.500 $ 3.850 $
Enterprise Edition 950 $ 209 $ 47.500 $ 10.450 $
Diagnostics Pack 150 $ 33 $ 7500 $ 1.650 $
EE + Diagnostics Pack 1.100 $ 242 $ 55.000 $ 12.100 $
5. § Von Oracle-Lizenzierung unabhängige Aufzeichnung der Historien in Tabellen in einem lokalen Schema der DB
§ Diese Tabellen sind strukturidentisch zu den AWR-Pendants (DBA_HIST_xxx-Views) in Rel. 19 bzw. 21
§ Gleiche Namens-Suffixe der Tabellen (PANORAMA_xxx statt DBA_HIST_xxx)
§ Durch die identischen Strukturen wird möglich:
- Das Analyse-Tool Panorama kann leicht umschalten zwischen AWR/ASH als Datenbasis oder eigener Historie
- Alle auf AWR/ASH basierenden Funktionen von Panorama werden damit auch verfügbar für SE bzw. EE ohne
Diagnostics Pack
- Über auf eigene Historientabellen verweisende Synonyme mit den Namen der originalen AWR/ASH-Views
kann auch andere Analyse-Software / Skripte weiter verwendet werden ohne Lizenzverletzung / Zugriff auf
die originalen AWR-Views
Detaillierte Beschreibung: https://rammpeter.github.io/panorama_sampler.html
Lösungsansatz für separates Workload Repository
6. Panorama for Oracle Databases
Open-Source Tool für Performance-Analyse
von Oracle-DB
Basiert auf per SQL erreichbaren Daten,
Historien aus AWR-Daten oder eigenem
Sampling
Nutzbar als Docker-Image oder
selbststartendes war-File (Java)
Die GUI-Funktionen von Panorama greifen
nur rein lesend auf die DB zu und installieren
keine eigenen Objekte.
Beschreibung von Panorama inkl. Download-Link: https://rammpeter.github.io/panorama.html
Blog zu Oracle-Performance-Analyse: https://rammpeter.blogspot.com
Diverse Slides zur Anwendung von Panorama: https://www.slideshare.net/PeterRamm1
7. § Die in PL/SQL erfassten Daten werden jeweils lokal in der betrachteten DB gespeichert
§ Es findet kein Transfer der gesampelten Daten über Netzwerk zum Panorama-Server statt.
PL/SQL-Daemon für ASH wird im Takt der AWR-Snapshots gestartet für die Dauer eines Snapshots
§ Auf einer Panorama-Instanz kann die Sampler-Funktion für eine unbegrenzte Anzahl von DB aktiviert werden
§ Sampling erfolgt je Ziel-DB unabhängig voneinander in separatem Thread
§ Die benötigten DB-Objekte werden selbständig durch Panorama-Sampler erstellt bei erstem Snapshot
§ Unterstützt alle DB-Versionen und Editionen von 11.2 bis 21, EE, SE, SE2, XE
§ Bislang wird eine Alternative per Panorama-Sampler geboten für u.g. AWR-Views:
Technische Implementierung Panorama-Sampler
gv$Active_Session_History
DBA_Hist_Active_Sess_History
DBA_Hist_Cache_Advice
DBA_Hist_Database_Instance
DBA_Hist_Datafile
DBA_Hist_Enqueue_Stat
DBA_Hist_FileStatXS
DBA_Hist_IOStat_Detail
DBA_Hist_IOStat_Filetype
DBA_Hist_Log
DBA_Hist_Memory_Resize_Ops
DBA_Hist_OSStat
DBA_Hist_OSStat_Name
DBA_Hist_Parameter
DBA_Hist_PGAStat
DBA_Hist_Process_Mem_Summary
DBA_Hist_Resource_Limit
DBA_Hist_Seg_Stat
DBA_Hist_Service_Name
DBA_Hist_SGAStat
DBA_Hist_Snapshot
DBA_Hist_SQL_Bind
DBA_Hist_SQL_Plan
DBA_Hist_SQLStat
DBA_Hist_SQLText
DBA_Hist_StatName
DBA_Hist_Sysmetric_History
DBA_Hist_Sysmetric_Summary
DBA_Hist_System_Event
DBA_Hist_SysStat
DBA_Hist_Tablespace
DBA_Hist_Tempfile
DBA_Hist_TempStatXS
DBA_Hist_TopLevelCall_Name
DBA_Hist_UndoStat
DBA_Hist_WR_Control
9. Technische Implementierung: Limitierungen
Für ASH per Panorama-Sampler wirken folgende Limitierungen verglichen mit der Oracle-internen Funktion:
§ Die Plan-Line-ID und Operation werden mangels Quelle nicht aufzeichnet.
Somit funktioniert leider nicht die Aufgliederung der Last auf die einzelnen Zeilen des Execution Plans.
§ Nur Top-Level SQL werden aufgezeichnet wie in v$Session.SQL_ID aufgeführt.
Damit werden rekursiv ausgeführte SQL nicht ausgewiesen.
§ I/O-Requests und Amount read/written wird nicht aufgezeichnet da das Sampling von v$SesStat zu langsam ist
für einen Sample-Record je Sekunden und Session.
Für in AWR per Panorama-Sampler erfasste Execution-Pläne gilt:
§ In Tabelle Panorama_SQL_Plan werden die Spalten „Access_Predicates“ und „Filter_Predicates“ der Execution
Pläne mit realen Werten gefüllt.
§ Dies war bis zu Rel. 21 in Oracles originalen AWR-Aufzeichnungen nicht enthalten (obwohl die Spalten seit 10g
existierten)
10. § Wenn die Environment-Variable PANORAMA_MASTER_PASSWORD gesetzt ist beim Start von Panorama, werden:
- Zugriff auf zusätzliche Steuerfunktionen möglich nach Eingabe des Passworts in Menü „Admin login“
- die Konfiguration der Panorama-Sampler-Ziele möglich über „Admin“/“Panorama-Sampler config”
- die konfigurierten Sampling-Funktionen zyklisch ausgeführt auf den Ziel-Datenbanken
§ Die Daten der konfigurierten Ziele werden verschlüsselt abgelegt im lokalen Filesystem der Panorama-Instanz
§ Wichtig: Spezifizieren des Ablageverzeichnis per Env.-Variable PANORAMA_VAR_HOME, sonst nur temporär
Konfiguration Panorama-Sampler
11. § Verbindungsparameter zur DB erfassen
§ Optional ein abweichendes Schema definieren, in dem die Datenstrukturen für Panorama-Sampler erzeugt werden.
Pflicht bei Verbindung mit User SYSTEM
§ Konfigurationsdaten werden verschlüsselt mit Server-Key und PANORAMA_SAMPLER_MASTER_PASSWORD
Konfiguration Panorama-Sampler : DB-Verbindung
12. § Snapshot-Zyklus und Aufbewahrungsdauer (Retention) sind analog zu AWR
§ Die Limits für minimale Anzahl Executions und minimale Runtime innerhalb eines Snapshot-Zyklus erlauben
Reduktion auf relevante SQL für Aufzeichnung / wenig ausgeführte SQLs mit vernachlässigbarer Laufzeit können
von der Aufzeichnung ausgeschlossen werden
§ Die 1-sekündlichen ASH-Samples können auch über den AWR-Snapshot hinaus vorgehalten werden, der sie in 10-
Sekunden.Samples vereinzelt
Konfiguration Panorama-Sampler : AWR und ASH-Pendants
13. § Diese Funktion existiert nicht im originalen AWR der Oracle-DB
§ Zyklische Aufzeichnung des Storagebedarfes aller DB-Objekte
§ Erlaubt detailliertes Nachvollziehen der Entwicklung der Storageanforderungen Top-Down von DB bis Objekt
Konfiguration Panorama-Sampler : Objekt-Größen
14. § Diese Funktion existiert nicht im originalen AWR der Oracle-DB
§ Zyklische Aufzeichnung des allokierten DB-Caches nach Objekten
§ Erlaubt detailliertes Nachvollziehen welche Objekte in der Vergangenheit welchen Anteil des DB-Cache reklamierten
Konfiguration Panorama-Sampler : DB-Cache Auslastung
15. § Diese Funktion existiert nicht im originalen AWR der Oracle-DB
§ Zyklische Aufzeichnung von blockierenden Locks und langfristig gehaltenen Locks
Konfiguration Panorama-Sampler : Blocking Locks
§ Erlaubt Rekonstruktion der
Blocker/Waiter-Hierachie mit
Kontextinformationen zu
beteiligten Sessions
§ Insbesondere für RAC-DBs
werden die instanz-
überschreitenden Blocker/Waiter-
Beziehungen sauber
ausgewiesen statt
Blocker=GLOBAL in Oracles ASH
16. § Diese Funktion existiert nicht im originalen AWR der Oracle-DB
§ Langzeit-Aufbewahrung von verdichteten ASH-Samples für Darstellung des Lastverhaltens der DB über Jahre
Konfiguration Panorama-Sampler : Long-Term Trends
§ GUI-Analysefunktion inkl. Graphen
analog den ASH-
Auswertefunktionen
§ Erlaubt Erkennung langfristiger
Trends in der Auslastung der DB-
Server
§ Support z.B. für Kapazitätsplanung
17. Regeln für Real Application Cluster (RAC):
§ Panorama-Sampler speichert die Historien nur für die RAC-Instanz, auf der die konfigurierte
Connection sich verbindet
§ Es müssen daher für die Konfiguration TNS-Services verwendet werden, die fest einem konkreten
RAC-Knoten zugeordnet sind.
§ Für jeden RAC-Knoten muss eine separate Konfiguration im Panorama-Sampler erzeugt werden
§ Die Daten der diversen RAC-Knoten können/sollten dabei im selben Schema (und damit in den selben
Tabellen) gespeichert werden
Panorama-Sampler für RAC und PDB
Regeln für Pluggable Database (PDB):
§ User SYSTEM in CDB kann die Daten für CDB und alle PDBs sampeln mit einer Konfiguration
§ Non-System-User in CDB sampelt nur die Daten der CDB.
Es braucht eine separate Konfiguration für jede PDB in diesem Falle
18. § Starten einer Panorama-Instanz
§ Konfigurieren eines DB-Ziels
§ Funktionen auf Basis AWR und ASH des Panorama-Samplers:
- Dashboard auf Basis der 1-sekündlichen ASH-Samples
- Session Waits historisch auf Basis der gesamten ASH –Daten ( 1- und 10-Sekunden-Samples)
- SQL-Historie, Details eines SQL in bestimmtem Zeitraum
- Execution Pläne aus der Vergangenheit
§ Größenentwicklung von Objekten
§ Historie der DB-Cache-Nutzung
§ Long-Term Trend Auswertung
Demonstration einiger Funktionen
19. Vielen Dank für Ihr Interesse
Otto Group Solution Provider (OSP) Dresden GmbH
Freiberger Str. 35 | 01067 Dresden
T +49 (0)351 49723 0 | F +49 (0)351 49723 119
osp.de