Database Resource Manager im praktischen Einsatz

Werbung
München, November 2012
Database Resource Manager im praktischen
Einsatz
Referenten:
Thomas Riedel – Payback GmbH
Ulrike Schwinn – Oracle B.V. & Co. KG
Inhalt
A.
B.
C.
Was und Wo ist PAYBACK
D.
E.
F.
G.
H.
GoLive-Planung & GoLive & Monitoring
Resource Manager? Warum bei PAYBACK?
Konzeptionierung, Implementierung und Testing eines globalen
Ressourcen-Plans
LIVE-Erfahrung
Zukunftspläne
Direktinfo Oracle
Q&A
A.
Was und Wo ist PAYBACK
PAYBACK ist das größte europäische Bonusprogramm –
und gleichzeitig die größte Multichannel-Plattform in
Deutschland
8 von 10 Deutschen kennen die
Marke PAYBACK
Rund 15,2 Mrd. € Umsatz über
PAYBACK Karten bei den Partnern
(2011)
Drittwichtigste Karte in den
Geldbörsen der Deutschen (nach
EC- und Kreditkarte, TNS Emnid 2012)
In 2011 verschickte PAYBACK
1 Mrd. Printcoupons und 2,4 Mrd.
digitale Coupons an Kunden
In 2011 wurden Punkte im Wert von
rund 160 Mio. € gesammelt
97% aller gesammelten Punkte
werden wieder eingelöst
Die Karte wird am Tag durchschnittlich 1,5 Mio. mal an den
Kassen vorgezeigt
PAYBACK ist auf Platz 1 in Deutschland, Polen und Indien
Seit Juni2012 gibt es Payback auch in Mexiko
Weitere Länder werden folgen
C.
Warum bei PAYBACK und was ist der Resource
Manager überhaupt?
Warum hat sich PAYBACK für den Einsatz des Resource
Managers entschieden?
Stand 2009
○ Wachstum Payback
○ Schlechte
Performance des
bestehenden DWH
Exadata V1
○ Schnellere
Antwortzeiten
Migration V1
Resource Plan
○ Kontrolle über die
verwendeten
Parallelitätsgrade
○ Gleiche Problematik
in DWHs anderer
Projekte / Länder
○ Sicherung der
maximalen CPUAuslastung
○ Problematik hat sich
mittlerweile auch auf
die OLTPs
ausgedehnt
○ Mehre Parallelität
○ Database Services
○ Prozesse brechen
immer häufiger
aufgrund von
Ressourcenmangel
ab
Einsatz Resource
Manager
○ Analysten / User
haben kontinuierlich
mehr Ressourcen
in Anspruch genommen
Ressourcenengpass
Resource Plan
Globaler Resource
Plan
Was ist der Resource Manager?
○ Seit Oracle 8i, aktueller Release-Stand 11.2.0.3
○ Steht ohne zusätzliche Installation zur Verfügung
○ Muss aktiviert werden; Ausnahme: Scheduler Windows
○ Hauptaufgabe: Verteilung der Rechenleistung auf Benutzer/Applikationen
○ Unterstützt zusätzliche Funktionen wie “Instance Caging” und “Automated
Maintenance Tasks “ (Integration mit Datenbank Scheduler)
○ Nutzung über PL/SQL API oder über Enterprise Manager und
SQL*Developer
○ Enterprise Edition erforderlich
Bestandteile
○ Resource Consumer Group
Vordefinierte oder user definierte Gruppen
Definition mit Name und Switch Privileg
Manueller bzw. automatischer Wechsel zu anderer Gruppe ist möglich
○ Consumer Group Mapping
Manuell oder über spezielle Attribute (wie DB User, Service, Module Name ...)
Priorisierung möglich
○ Resource Plan und Resource Plan Directive
Vordefinierte oder user definierte Pläne
Dynamische Pläne: ein Plan zu einer Zeit !
Single und multi Level Pläne
Beispiele für Direktiven
○ CPU Methode: Single oder Multi Level
ab 11g: MAX_UTILIZATION_LIMIT Einstellung
○ Active Session Pool: Maximale Anzahl Sessions
○ Parallelität: Maximaler Parallelisierungsgrad
ab 11g Parallel Statement Queuing, Parallel Target Limit
○ Automatisches Consumer Group Switching
○ Execution Time-Grenze
○ Undo Pool-Begrenzung
○ Idle Time-Begrenzung
○ Resource Plan und Resource Plan Directive
D.
Konzeptionierung, Implementierung und Testing
eines globalen Ressourcen-Plans
Konzeptionierung
○ Aufbau der Consumer-Groups
Welche Betriebsprozesse gibt es und wie lassen sich diese untergliedern?
○ Aufbau der Subpläne
Wie kann ich meine Consumer-Groups am besten mit Ressourcen belegen?
○ Aufbau des "Masterplans"
Bleibt der "Masterplan" dauerhaft aktiv oder wird er z.B. Nachts deaktiviert?
Konzeptionierung – finaler Plan
○ Aufteilung der LEVEL
○ MAX Systemauslastung
○ MAX-CPU
○ MAX-PARALLEL
Implementierung
1
Erstellen der "Consumer Groups"
2
Erstellen der "Subplans" & "Directives"
3
Erstellen des "Masterplan"
4
Erstellen der "Consumer-Group-Mapping"
5
Anpassung der "Scheduler-Windows"
6
"Switch-Group"-Privileg an dedizierte User bzw. PUBLIC granten
Code Beispiel
BEGIN
dbms_resource_manager.clear_pending_area();
dbms_resource_manager.create_pending_area();
dbms_resource_manager.create_plan(plan => 'PB_RES_PLAN',
comment => 'Default Resourceplan for PB-Projects');
dbms_resource_manager.create_plan_directive(plan
=> 'PB_RES_PLAN',
group_or_subplan => 'SYS_GROUP',
comment
=> 'System Group',
MGMT_P1
=> 90,
max_utilization_limit => 95);
dbms_resource_manager.create_plan_directive(plan
=> 'PB_RES_PLAN',
group_or_subplan => 'HIGH_PRIO_PLAN',
comment
=> 'HighPrio Subplan',
MGMT_P2
=> 70,
max_utilization_limit => 75);
dbms_resource_manager.create_plan_directive(plan
=> 'PB_RES_PLAN',
group_or_subplan => 'ORA$AUTOTASK_SUB_PLAN',
comment
=> 'Subplan for Autotasks',
MGMT_P2
=> 25,
max_utilization_limit => 35);
dbms_resource_manager.create_plan_directive(plan
=> 'PB_RES_PLAN',
group_or_subplan => 'ORA$DIAGNOSTICS',
comment
=> 'Subplan for Autotasks',
MGMT_P2
=> 5,
max_utilization_limit => 15);
dbms_resource_manager.create_plan_directive(plan
=> 'PB_RES_PLAN',
group_or_subplan => 'LOW_PRIO_PLAN',
comment
=> 'LowPrio Subplan',
MGMT_P3
=> 30,
max_utilization_limit => 50);
dbms_resource_manager.create_plan_directive(plan
=> 'PB_RES_PLAN',
group_or_subplan => 'OTHER_GROUPS',
comment
=> 'Other Groups',
MGMT_P4
=> 10,
parallel_degree_limit_p1 => 0,
max_utilization_limit => 15);
dbms_resource_manager.validate_pending_area();
dbms_resource_manager.submit_pending_area();
END;
Testing
Testcase 1: Parallelität
Connect gegen diverse "Consumer-Groups" via DB-Service
ALTER SESSION FORCE PARALLEL QUERY PARALLEL 64
Starten eines SQL-Statements
Prüfen, ob die DOP (Degree Of Parallelism) dem konfigurierten entspricht
Testcase 2: CPU-Usage
Connect gegen diverse "Consumer-Groups" via DB-Service
Start einer "Sortierung-Procedure"
Prüfen, ob die zu beobachteten Werte den Konfigurierten entsprechen
E.
GoLive-Planung & GoLive & Monitoring
GoLive-Planung & GoLive
Planung
○ Abstimmung Zeitpunkt
○ Erläuterung der bevorstehenden Änderung
○ Fallback-Plan
GoLive
begin
dbms_resource_manager.switch_plan(plan_name => 'PB_RES_PLAN', sid => '*');
end;
Monitoring
OEM
LIVE-Monitoring
MonitoringZahlen
SQL
UDM (User Defined Metric)
11g / 12c
gv$rsrcmgrmetric_history
gv$rsrc_consumer_group
gv$rsrc_session_info
Schwellwert-Messung
und Alerting
aktuell nicht
verfügbar
gv$rsrcmgrmetric_history
gv$rsrc_consumer_group
gv$rsrc_session_info
Keine historischen Werte
Monitoring - Beispiele
Beispiel OEM (Top Activity):
Beispiel UDM:
select 'resource_bottleneck_detected',
count(*)
from gv$rsrcmgrmetric_history rmh,
(select distinct to_char(rh.begin_time, 'HH24:MI') time
from gv$rsrcmgrmetric_history rh,
(select max(begin_time) time
from gv$rsrcmgrmetric_history
group by inst_id) max_time
where to_char(rh.begin_time, 'HH24:MI') >=
to_char(max_time.time - 1 / 24 / 60 * 5, 'HH24:MI')
group by rh.begin_time
order by 1) act_time
where to_char(rmh.begin_time, 'HH24:MI') = act_time.time
and round(cpu_wait_time / 60000, 2) > <zahl>
F.
LIVE-Erfahrung & Analyse
LIVE-Erfahrung
Erfolg
○ Verhalten in Produktion wie in den
Testcases beobachtet (mittlerweile auf X2)
○ Businesskritische Prozesse laufen nun
ohne Probleme
○ Anwender geben positives Feedback
Positiver Nebeneffekt:
Unternehmen spart Geld und Zeit
G.
Zukunftspläne
Zukunftspläne
Rollout des Konzepts in andere Länder und das OLTP
Group-Mapping anhand von "Action und Module"
Automatisches Beenden von Langläufern
Limitieren der Sessionanzahl
In Verbindung mit dem Resource Manager die neue Funktionalität des
"Auto-DOP" nutzen
H.
Direktinfo Oracle
Resource Manager Ausblick
Zukunftsinformationen aus erster Hand von:
payback.de
Q/A
PAYBACK GmbH
Theresienhöhe 12
80339 München
Thomas Riedel
Databases
[email protected]
www.payback.de
[email protected]
Unterstützen Sie
mit Punkten Hilfsprojekte,
die Ihnen am Herzen liegen:
www.payback.de/spendenwelt
Herunterladen