Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Panorama-Sampler: AWR und ASH lizenzfrei für alle Editionen der Oracle-DB

Peter Ramm
December 01, 2022

Panorama-Sampler: AWR und ASH lizenzfrei für alle Editionen der Oracle-DB

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.

Diese Präsentation 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

Peter Ramm

December 01, 2022
Tweet

More Decks by Peter Ramm

Other Decks in Programming

Transcript

  1. 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
  2. Zur Person Mail: [email protected] 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
  3. § 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 $
  4. § 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
  5. 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
  6. § 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
  7. 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)
  8. § 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
  9. § 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
  10. § 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
  11. § 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
  12. § 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
  13. § 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
  14. § 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
  15. 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
  16. § 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
  17. 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