RAT im Projekteinsatz
– was hat sich bewährt, was nicht...
Konrad Häfeli
Technologie Manager
Principal Consultant
Partner
DOAG SIG RAT
Offenbach, 12.10.2010
Basel
Bern
Lausanne
Zürich
Düsseldorf
Frankfurt/M.
Freiburg i. Br.
Hamburg
München
Stuttgart
Wien
Zur Person...
Technology Manager Infrastructure
Wissenserrarbeitung und Vermittlung
Technologieprojekte, Techno Circle, Workshops,...
Techn. Marketing (DOAG Konferenz, OOW,...)
Ausrichtung der Technologie Strategie
Aufbau und Betrieb des Technology Centers
Ausrichtung und Entwicklung der TVD-ToolboxTM
Principal Consultant
Trainer
Architektur und Interna Oracle
Backup Recovery Oracle
Treiben von Schwerpunktthemen
BR (Verfügbarkeit), Upgrade (RAT), Replication,
Cloud Computing, Database Machine/Exadata
2
RAT im Projekteinsatz
© 2010
Trivadis Facts & Figures
Über 540 Mitarbeiter an 11
Standorten im Raum D-A-CH
Finanziell unabhängig und
nachhaltig profitabel
Kennzahlen 2009
Konzernumsatz: CHF 100 Mio. /
EUR 66 Mio.
Bei über 650 Dienstleistungskunden in über 1'600 Projekten
aktiv
Über 160 laufende Service Level
Agreements
Forschungs- und Entwicklungsbudget:
CHF 5.0 Mio. / EUR 3.3 Mio.
3
RAT im Projekteinsatz
© 2010
Agenda
Einleitung
Übersicht
Server Sizing
Migrationsunterstützung auf Exadata
Daten sind
immer im Spiel.
Oracle VM Verifikation mit
Capture/Replay
Migration von 9i auf 10g mit SQL
Performance Analyzer
Zusammenfassung
4
RAT im Projekteinsatz
© 2010
Change!?!
Never change a running system ;-)
… manchmal halt doch!
Versionsupgrade
DB-Architekturänderungen (Single Instance –> auf RAC)
Plattformänderungen (Prozessor/Rechnerarchitekturen)
Vielfach mit Hoffnungen verbunden
Im Gegensatz zur Politik muss die Technik vorher die Vorteile
beweisen
5
RAT im Projekteinsatz
© 2010
Problemstellung
Sicherstellung, dass nach einer Änderung das System mind.
gleich „gut“ läuft (meistens die Durchlaufzeit)
D.h. Testen:
Testsystem bereitstellen
Reproduzierbare, produktive Last bereitstellen
Testdaten passend für die Last bereitstellen
Testiteration
Aufwändig
Da kommt RAT doch sehr gelegen
RAT, ist ein Framework, die Lösung müssen wir bauen
„a fool with a tool is still a fool…“
6
RAT im Projekteinsatz
© 2010
Agenda
Einleitung
Übersicht
Server Sizing
Migrationsunterstützung auf Exadata
Daten sind
immer im Spiel.
Oracle VM Verifikation mit
Capture/Replay
Migration von 9i auf 10g mit SQL
Performance Analyzer
Zusammenfassung
7
RAT im Projekteinsatz
© 2010
Real Application Testing – Übersicht
Eine der wichtigste Fragen von DBAs und Entwickler
“Läuft meine Applikation nach diesen Änderungen?"
Änderungen und ihre Einflüsse:
Hardware (Storage, Netzwerk, etc.)
Betriebssystem
Datenbank (Versionswechsel, INIT.ORA, RAC, etc.)
Datenzugriff (Datenvolumen, Indexing, Partitioning, etc.)
Real Application Testing ist das Oracle Tool zum beantworten
solcher Fragen
Statements und Tätigkeiten können aufgezeichnet und auf
diverses Umgebungen wiedergegeben werden
RAT8im Projekteinsatz
© 2010
Real Application Testing – Begriffe
Real Application Testing
Database Capture
and Replay
SQL Performance
Analyzer SPA
Database Capture and Replay:
Aufnahme und Wiedergabe der Datenbanklast
SQL Perfomance Analyzer:
Analyse und Wiedergabe von SQL Statements
RAT9im Projekteinsatz
© 2010
Einsatzkonzept SPA vs. DB Replay
SPA
Was: SQL response time
(nach Veränderungen)
Wie: Ausführung jedes
Statements im Tuning
Set, Vergleich Exec Plan
und runtime Stats
Wann: Unit Testing,
Identifikation
problematischer SQL
10
RAT im Projekteinsatz
DB replay
Was: Workload Durchsatz
(nach Veränderungen)
Wie: kompletter Workload
repaly mit concurrency,
synchronization und
dependency
Wann: Overall testing
aller Sub-Systeme mit
Produktionslast
© 2010
Agenda
Einleitung
Übersicht
Server Sizing
Migrationsunterstützung auf Exadata
Daten sind
immer im Spiel.
Oracle VM Verifikation mit
Capture/Replay
Migration von 9i auf 10g mit SQL
Performance Analyzer
Zusammenfassung
11
RAT im Projekteinsatz
© 2010
Server Sizing Projekt (1)
Bestehendes System:
Sun Solaris SPARC
10.2.0.4
Ca 1TB Daten
OLTP
Forms Applikationen mit 80% der Businesslogik in PL/SQL
Testhardware für 2 Wochen gemietet bei Sun
Kunde wollte 1 Woche capturen
Nach einem Tag 60GB capture files
Calibrate ergab 15 Workload Clients
12
RAT im Projekteinsatz
© 2010
Server Sizing Projekt (2)
Replay Ablauf, Target 11.1.0.7
Preprocessing, ca 1 ½ Stunden
Replay start, für ½ Stunde okay
Danach brach ein Großteil der WRCs mit ORA-600 ab…
Bug 9732822: WRC CLIENT FAILD WITH OCI-24550
In 11.2 gefixed…
Aufsetzen des Targets mit 11.2.0.1
Exception [type: SIGSEGV, Address not mapped to object]
[ADDR:0x60] [PC:0x103D946DC, kecpmtsPrqDelf()+28] [flags: 0x0,
count: 1] Errors in file…
ORA-07445: Exception aufgetreten: CORE Dump
[kecpmtsPrqDelf()+28] [SIGSEGV] [ADDR:0x60] [PC:0x103D946DC]
[Address not mapped to object] []
13
RAT im Projekteinsatz
© 2010
Server Sizing Projekt (3)
Service Request eröffnen
ADR Zip hochladen
Warten…
Der Kunde hat dann das RAT Sizing Projekt abgebrochen…
Lessons learnt:
14
Es braucht auch bei RAT Zeit!
Beim ersten Mal PoC für den RAT Einsatz planen
Bei „gewissen“ Lastverhalten reagiert RAT buggy…
SR Eskalation (hartnäckig bleiben…)
RAT im Projekteinsatz
© 2010
Agenda
Einleitung
Übersicht
Server Sizing
Migrationsunterstützung auf Exadata
Daten sind
immer im Spiel.
Oracle VM Verifikation mit
Capture/Replay
Migration von 9i auf 10g mit SQL
Performance Analyzer
Zusammenfassung
15
RAT im Projekteinsatz
© 2010
Migration RAC auf Exadata
Reference Projekt für Exadata
HA RAC Sun Solaris SPARC (E2900)
Exadata Database Machine Quarter Rack
„Volles“ Migrations Programm
16
Grundsetup
DB Konfig gemäss Kundenspezifikation
Setup von DBFS für Filetransport
Datenload mit impdp
Nachführung mit Golden Gate Replikation
Testing mit RAT
Fallback mit „reverse“ Golden Gate Replikation
RAT im Projekteinsatz
© 2010
Migration RAC auf Exadata (2)
Source System
Sun Solaris SPARC
10.2.0.4
Ca 500GB Daten
OLTP
Web Applikation über Connection Pool
Die ersten Tests mit Capture/Replay brachten ein Problem
Gewisse Statements wurden nicht replayed (sind aber definitiv im
Capture Zeitraum gelaufen...)
Untersuchungen (nach dem Einen oder Anderen nicht relevanten
patch) ergaben
Statements sind nicht im capture file
17
RAT im Projekteinsatz
© 2010
Migration RAC auf Exadata (3)
Reproduzieren mit Sqlplus
Statement absetzen, commit, warten,… nichts
Erst das exit aus Sqlplus forciert ein Schreiben ins capturefile
Oracle Entwickung (da wurde eskaliert…):
Yes this is expected.
Your capture session only had one statement and was
idle when finish_capture was called; therefore, …
the unflushed buffer never made it to disk.
This is a possible case, but it almost never happens
in a real system.
18
RAT im Projekteinsatz
© 2010
Migration RAC auf Exadata (4)
Flush Conditions für Capture files:
session log out
OR when finish_capture is running (it runs for at least 30 seconds by
default)
OR when the buffer is 75% or more full (default buffer size is 64kb)
OR every 5 minutes
The only issue is that, for this flush to happen, the session has to
be active
Beeinflussung durch:
Erhöhung des timeout für finish_capture
Reduktion der buffer size (ergibt aber höhere I/O Last)
19
RAT im Projekteinsatz
© 2010
Migration RAC auf Exadata (5)
Originalzitat Kunde:
Die Angaben, dass der Buffer automatisch nach "75%
voll" geschrieben wird oder nach einem Timeout von
5 Minuten, konnte von uns nicht festgestellt werden
(hat einfach nicht funktioniert), …
Resultat:
RAT wurde abgebrochen und im Migrationsprojekt nicht produktiv
eingesetzt
Unzufriedenheit auf Kunde UND Oracle Seite
20
RAT im Projekteinsatz
© 2010
Migration RAC auf Exadata – Bewertung
Zeitrahmen zu knapp für den Rat Einsatz
Applikationsverhalten nicht klar
RAT Verhalten nicht klar
Einsatzziele von RAT nicht abgeglichen
War es wirklich nötig die letzten Statements im Replay zu haben?
RAT war nicht prioritär, die Plattform ist seit Juli produktiv
21
RAT im Projekteinsatz
© 2010
Agenda
Einleitung
Übersicht
Server Sizing
Migrationsunterstützung auf Exadata
Daten sind
immer im Spiel.
Oracle VM Verifikation mit
Capture/Replay
Migration von 9i auf 10g mit SQL
Performance Analyzer
Zusammenfassung
22
RAT im Projekteinsatz
© 2010
Lasttest auf Oracle VM
Kunde zieht ein Wechsel von IBM P550 auf x86 mit Oracle VM in
Betracht
Source
AIX 6.1
Power5 (2 Quad Core CPU)
Lpar Setup
Oracle 10.2.0.4
Lokaler Storage
Target
23
Fujitsu Siemens RX300S, Xeon E5345
Oracle VM Cluster mit 2 Server (je 2 Quad Cores CPU )
Oracle VM 2.2.1
OEL 5.5
Oracle RDBMS 11.2.0.2
SAN mit OCFS Setup für Live Motion
RAT im Projekteinsatz
© 2010
Lasttest auf Oracle VM (2)
Fragestellungen
Was ist der Leistungsunterschied zwischen dem LPAR Setup und
verschiedenen Oracle VM Guest Setup
Wo sind die Bottlenecks… I/O?
Bei welcher Concurrency stösst das System an seine Grenzen
Oracle Benchmark für die virtualisierten Umgebungen
Eignet sich Rat für solche Testfragen
Setup
Als reproduzierbaren Lastgenerator wurde Swingbench ausgewählt
24
Skalierbarer Benchmark auf Order/Entry Daten
GUI (swingbench), CLI (charbench)
Wizardsetup
http://www.dominicgiles.com/swingbench.html
RAT im Projekteinsatz
© 2010
Swingbench Setup
25
RAT im Projekteinsatz
© 2010
Source Database Setup
10g : Database Capture aktivieren
@$ORACLE_HOME/rdbms/admin/wrrenbl.sql
SQL> alter system set PRE_11G_ENABLE_CAPTURE=true sid='*';
System altered.
SQL> show parameter PRE_11G_ENABLE_CAPTURE
NAME
TYPE
VALUE
------------------------------------ ----------- -----------–
pre_11g_enable_capture
boolean
TRUE
9i : Patch 6973309 installieren
Datenbank sollte neu gestartet sein, um Seiteneffekte zu
vermeiden (schon gestartete langlaufende Transaktionen, ...)
Startup im restricted mode (wird unrestricted nach start_capture)
Ein Directory für die Capture-Files muss existieren
26
RAT im Projekteinsatz
© 2010
Capture Setup/Start
Capture Filter setzen
begin
dbms_workload_capture.add_filter(fname => 'USERNAME',
fattribute => 'USER', fvalue => 'SOE');
end;
/
Capture starten
begin
dbms_workload_capture.start_capture(name => 'SOE_TEST1_CAP',
dir => 'RAT_DIR', duration => null, default_action =>
'EXCLUDE', auto_unrestrict => true);
end;
/
Exclude default action heisst include Filter Bedingung
27
RAT im Projekteinsatz
© 2010
Capturing
Workload ID
SQL> select ID,NAME,STATUS from dba_workload_captures where
name ='SOE_TEST1_CAP';
ID NAME
STATUS
---------- -------------------------- ----------------------–
12 SOE_TEST1_RUN1_CAP
IN PROGRES
Start Last auf Client
charbench.bat -c C:\Temp\RATTest\test1\swingbench-configtest1.xml -a -r C:\Temp\RATTest\test1\cb-result-test1.xml -v
trans,tpm,tps
Monitoring
SQL> select status, count(*) from v$session where username
='SOE' group by status;
STATUS
COUNT(*)
-------- ---------INACTIVE
3
ACTIVE
18
28
RAT im Projekteinsatz
© 2010
Capture Stop
Nachdem die Last durch ist
begin
dbms_workload_capture.finish_capture(timeout => 30, reason
=> 'End of workload');
end;
/
AWR Report erstellen
begin
dbms_workload_capture.export_awr(capture_id => 12);
end;
/
Transfer der Files auf das Zielsystem
oracle@oravm01:/u03/capture-files/test1/capture/ [TTCRAT02] ll
...
-rw-r--r-- 1 root root
960 Oct 1 03:35 wcr_4t9cbww00307c.rec
-rw-r--r-- 1 root root 17227776 Oct 1 03:37 wcr_ca.dmp
-rw-r--r-- 1 root root
22313 Oct 1 03:37 wcr_ca.log
29
RAT im Projekteinsatz
© 2010
Target Database Setup
Datenbanken auf den gleichen Stand bringen
Backup / Restore
impdp
Garantierter Restore Point setzen
Flashback Database
$ impdp soe/soe content=all directory=rat_dir
dumpfile=ttcrat01_soe.dmp logfile=ttcrat02_soe_imp.log
schemas=soe
SQL> alter package SOE.ORDERENTRY compile body;
30
RAT im Projekteinsatz
© 2010
Preprozess
Workload Files vorverarbeiten
begin
dbms_workload_replay.process_capture(capture_dir =>
'RAT_DIR', parallel_level => null /*auto-evaluate; 1 =
serial*/);
end;
/
Ergibt ein Unterverzeichnis „pp11.2.0.2.0“
oracle@oravm01:/u00/app/oracle/admin/TTCRAT02/dmp/pp11.2.0.2.0/
[TTCRAT02] ls
wcr_calibrate.xml wcr_conn_data.extb wcr_dep_graph.extb
wcr_process.wmd
wcr_scn_order.extb wcr_commits.extb
wcr_data.extb
wcr_login.pp
wcr_references.extb wcr_seq_data.extb
Auch mit GUI möglich (Enterprise Manager)
31
RAT im Projekteinsatz
© 2010
Preprozess (2)
Checken der Files ab 11.2.0.2
oracle@oravm01:/u00/app/oracle/product/11202/rdbms/jlib/
[rdbms11202] ls -l dbr*
-rw-r--r-- 1 oracle oinstall 117868 Sep 4 04:34 dbranalyzer.jar
-rw-r--r-- 1 oracle oinstall 74187 Sep 4 04:34 dbrparser.jar
Mit java Aufruf:
java -classpath
$ORACLE_HOME/dbjava/lib/ojdbc5.jar:$ORACLE_HOME/rdbms/jlib/dbrpa
rser.jar:$ORACLE_HOME/rdbms/jlib/dbranalyzer.jar
oracle.dbreplay.workload.checker.CaptureChecker
/u03/app/oracle/admin/TTCRAT02/dmp
//oravm01.ttc.trivadis.com:1521/TTCRAT02.ttc.trivadis.com
wcr_cap_analysis.html
32
RAT im Projekteinsatz
© 2010
Preprozess (3)
Mit Enterprise Manager
33
RAT im Projekteinsatz
© 2010
Probleme
„Starke“ PL/SQL Last
34
RAT im Projekteinsatz
© 2010
Probleme (2)
PreProc ORA-600 wegen corrupten Capture Files
ORA-00600: internal error code, arguments: [17183],
[0x2B4D34C7ABC0], [], [], [], [], [], [], [], [], [], []
DBMS_WORKLOAD_REPLAY.PROCESS_CAPTURE: WARNING: Preprocessing
encountered a CORRUPT file wcr_4t9cm0800341y.rec in
/u00/app/oracle/admin/TTCRAT02/dmp.
ORA-15591: encountered corrupt workload capture files
Cause: The captured workload contained one or more corrupt recording
files.
Action: …
The corrupt files will be replayed up to the point of the corruption. Alternatively, it
is possible to remove the corrupt files and run
DBMS_WORKLOAD_REPLAY.PROCESS_CAPTURE again. In this case, no
workload from the corrupt files will be replayed.
WARUM?: Aufgetreten bei grosser (ab ca 200 Session) Last…
35
RAT im Projekteinsatz
© 2010
Replay
Mit PL/SQL API
begin
dbms_workload_replay.initialize_replay(replay_name => 'SOE_TEST1_REP1',
replay_dir => 'RAT_DIR');
end;
/
select * from dba_workload_connection_map;
begin
dbms_workload_replay.remap_connection(connection_id => 1,
replay_connection =>
'oravm01.ttc.trivadis.com:1521/TTCRAT02.ttc.trivadis.com');
end;
/
begin
dbms_workload_replay.prepare_replay(synchronization => 'SCN',
connect_time_scale => 100, think_time_scale => 100,
think_time_auto_correct => true, scale_up_multiplier => 1
, capture_sts => true, sts_cap_interval => 300
);
end;
/
36
RAT im Projekteinsatz
© 2010
Workload Client
Calibrate
wrc mode=calibrate replaydir=/u00/app/oracle/admin/TTCRAT02/dmp
.
.
Report for Workload in: /u00/app/oracle/admin/TTCRAT02/dmp
----------------------Recommendation:
Consider using at least 1 clients divided among 1 CPU(s)
You will need at least 56 MB of memory per client process.
If your machine(s) cannot match that number, consider using more clients.
Workload Characteristics:
- max concurrency: 15 sessions
- total number of sessions: 15
Assumptions:
- 1 client process per 50 concurrent sessions
- 4 client process per CPU
- 256 KB of memory cache per concurrent session
- think time scale = 100
- connect time scale = 100
- synchronization = TRUE
37
RAT im Projekteinsatz
© 2010
Workload Client (2)
Start
wrc soe/soe@oravm01.ttc.trivadis.com/TTCRAT02.ttc.trivadis.com
mode=replay replaydir=/u00/app/oracle/admin/TTCRAT02/dmp
Start Replay
begin
dbms_workload_replay.start_replay;
end;
/
Fortschritt im Enterpries Manager
38
RAT im Projekteinsatz
© 2010
Problem
Hanging Client:
begin
dbms_workload_replay.cancel_replay(reason => 'Cancellation');
end;
/
Oder vor dem Start der wrc
begin
dbms_workload_replay.set_replay_timeout(enabled => true,
min_delay => 5, max_delay => 50, delay_factor => 10);
end;
/
Klar das Workload Timing ist dann nicht mehr relevant…
39
RAT im Projekteinsatz
© 2010
Reports
Das Reporting ist sehr stark
select * from dba_workload_replays;
begin
dbms_workload_replay.export_awr(replay_id => 32);
end;
/
Im EM sehr schön
40
RAT im Projekteinsatz
© 2010
Reports (2)
41
RAT im Projekteinsatz
© 2010
Resultat Lasttest
Durch Real Application Testing konnten die beiden Systeme in
verschiedenen Facetten verglichen werden
Die CPU Leistungsfähigkeit des Intel Prozessors ca 15% grösser
Die ca 60% längere Durchlaufszeit der Referenzlast konnte
eindeutig dem I/O System zugeschrieben werden (OCFS Zugriff
über die Virtualisierungsschicht)
Folgende Aufgaben stehen nun noch an
Tuning der I/O Schicht
Belastung des Oracle VM Servers mit zusätzlichen Gast VMs und
Vergleich der Performancedaten
Oracle VM ist mit Abstrichen im I/O Bereich für die Ablösung des
AIX Servers einsetzbar
42
RAT im Projekteinsatz
© 2010
Agenda
Einleitung
Übersicht
Server Sizing
Migrationsunterstützung auf Exadata
Daten sind
immer im Spiel.
Oracle VM Verifikation mit
Capture/Replay
Migration von 9i auf 10g mit SQL
Performance Analyzer
Zusammenfassung
43
RAT im Projekteinsatz
© 2010
SQL Performance Analyzer - Workflow
Produktion
Trace SQL
Transfer
RAT
SQLTuning Set
erstellen
Auswertung Trace
(Pre-Change)
Test
SQL Tuning Set
Ausführen
(Post-Change)
RAT
Auswertung
Trace von Datenbank-Aktivitäten
Erstellen eines Tuning Sets
Ausführen des Tuning Sets
Auswertung zentral über eine 11g DB
Verschiedene Metriken möglich
Mögliche Upgrade Kombinationen (Metalink Note 560977.1)
44
RAT im Projekteinsatz
© 2010
Projektreference für SPA
SQL Performance Analyzer
Compare
RAT
Trace
Compare
NEW
PROD
PROD
Copy
Trace
45
RAT im Projekteinsatz
Execute
© 2010
Details
SQL Performance Analyzer
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 64bit Production
With the Partitioning, OLAP,
11.1.0.7
Data Mining and
Real Application Testing options
RAT
#3 Create SQL Tuning Set
#4 Create SQL Tuning Task
#5 Evaluation Trace 9i
#8 Generate Reports
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit
Production
With the Partitioning, OLAP, Oracle Data Mining
and Real Application Testing options
JServer Release 9.2.0.8.0 - Production
9.2.0.8
PROD
#1 Trace
46
RAT im Projekteinsatz
10.2.0.4
NEW PROD
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
- 64bit Production
With the Partitioning, OLAP, Data Mining and Real
Application Testing options
© 2010
SQL Tuning Set
Sammlung von SQL Statements (jedes nur ein Mal)
Automatische Generierung via API oder GUI (Workflow)
Mehrfach einsetzbar
Benötigt eine Mapping Table
47
RAT im Projekteinsatz
DECLARE
mycur dbms_sqltune.sqlset_cursor;
BEGIN
DBMS_SQLTUNE.CREATE_SQLSET('9I_PROD_WLKD');
OPEN mycur FOR
SELECT VALUE (P)
FROM table(DBMS_SQLTUNE.SELECT_SQL_TRACE (
directory => 'TRC2SET',
file_name => '%ora%',
mapping_table_name => 'MAPPING',
select_mode =>
…
© 2010
Strategie
Trace nach Applikation / Tageszeiten in SQL Tuning Sets
Trace von Top Sessions / relevanten Statements in SQL
Tuning Sets
Bündelung nach Applikation in SQL Tuning Sets
Analyse der schlechter laufenden Statements
Verwaltung der Statements
Rerun getunter Statements
48
RAT im Projekteinsatz
© 2010
Unterstützung mit Tools
Shell-Tool
Oracle Database Control (GUI)
Oracle Application Express
Microsoft Excel
49
Step
Was
Tool
1.1
Tuning set creation from trace files
Shell Tool
1.2
Analyze trace data
Shell Tool
1.3
Create compare run
Shell Tool
1.4
Create report
Shell Tool
2
Graphical analysis
Oracle Database Control
3
Administration of the statements
Application Express
4
Coordination
Microsoft Excel
RAT im Projekteinsatz
© 2010
Vorteile der Tools
Schnelle Erstellung von SQL Tuning Sets
Schnelle Ausführung von compare runs
Easy to use
Reproduzierbarkeit
Schneller als GUI
50
RAT im Projekteinsatz
© 2010
Grafische Analyse (EM)
Compare run overview bis Details
51
RAT im Projekteinsatz
© 2010
Application Express
Administration für 28‘000
statements
Metadata Schema mit
Zugriff auf SPA Daten
Web-Access
Reports
Bemerkungen, etc.
Direkter Link vom
Statement in den EM
52
RAT im Projekteinsatz
© 2010
Resultate
450 SQL von 28‘000 Statements analysiert
Über 230 SQL Tuning Sets kreiert
Über 220 trials (Compare Run)
Rückfluss der Erkenntnisse in die Entwicklung
Indexstrukturen angepasst
Optimale optimizer settings definiert
Objektstatistik sammeln massiv vereinfacht
Database bereit für Upgrade
53
RAT im Projekteinsatz
© 2010
Agenda
Einleitung
Übersicht
Server Sizing
Migrationsunterstützung auf Exadata
Daten sind
immer im Spiel.
Oracle VM Verifikation mit
Capture/Replay
Migration von 9i auf 10g mit SQL
Performance Analyzer
Zusammenfassung
54
RAT im Projekteinsatz
© 2010
was hat sich bewährt…
Proof of Concept für RAT im Projekteinsatz machen
Kosten/Nutzen Analyse machen
Altes Testverfahren vs. RAT Einsatz (basierend auf dem RAT PoC)
Einsatzkonzept erarbeiten für Capture/Replay und SPA
Zeit einplanen (basierend auf dem PoC, bei bugs patching)
Kennenlernen der Applikationsarten/lasten
Nicht alle eigenen sich genau gleich für Replay
Kompromisse eingehen bei den Replay-Settings
Einsatz der zur Verfügung stehenden CaptureChecker
55
RAT im Projekteinsatz
© 2010
was hat sich bewährt… (2)
Automatismen via PL/SQl API einführen
RAT Infrastruktur DB bei SPA
Einsatz von SPA bei Upgrade ab 9i auf 10g oder 11g
Auswertung mit Hilfe der Reports
Einsatz des „normalen“ Tuning Wissens (AWR Compare, ASH,…)
Statement Tuning mit Hilfe Plan Baselines und Tuning Advisor
Prüfung der Anpassungen durch iteratives replay resp. SPA trial
Einsatz einer der Produktion äquivalenten Testumgebung
Rücksetzen via flashback auf garantierten Restorepoint
Zurücksetzen der Systemzeit bei (sysdate Einsatz)
56
RAT im Projekteinsatz
© 2010
…, was nicht...
Der Glaube an das perfekte Tool (blauäugig sein)
RAT ist sehr mächtig, hat (darum) aber auch Bugs (Unfeature ;-) )
Unter Zeitdruck RAT einsetzen
Beim erstmaligen Einsatz Lernkurve einrechnen
Grosse Last
Anzahl concurrent Sessions (>100?)
Grosse Workload Datenmenge
Stark PL/SQL-lastige Applikationen
Sehr kleine Last (letzte Statements werden nicht geflushed)
Lange Capturezeiten (ganzer Tag/Woche…)
„teile und herrsche“, Fokus auf das Wesentliche ergibt schnellere
Iterationszyklen
57
RAT im Projekteinsatz
© 2010
Fazit
RAT adressiert genau die Unsicherheiten bei Veränderungen der
Datenbank-Infrastruktur
Eine RAT Evaluation gehört in jedes Upgrade/Migrations Konzept
58
RAT im Projekteinsatz
© 2010
Vielen Dank!
?
www.trivadis.com
Basel
Bern
Lausanne
Zürich
Düsseldorf
Frankfurt/M.
Freiburg i. Br.
Hamburg
München
Stuttgart
Wien