Kapitel 21
Real Application Testing
530
Das Preprocessing kann wiederum in SQL*Plus oder mit dem Enterprise Mana-
ger gestartet werden.
Durch das Preprocessing wurden die Replay-Dateien erzeugt. Damit sind fast alle
Voraussetzungen für das Starten des Replay-Prozesses erfüllt.
21.3 Workload Replay
Überprüfen Sie, bevor Sie den Replay-Prozess starten, ob alle Voraussetzungen
erfüllt und alle Vorbereitungen getroffen sind. In der Datenbank sollten alle benö-
tigten Datenbankobjekte zur Verfügung stehen. Die Systemzeit des Testservers
sollte zurückgesetzt werden, sodass der Startzeitpunkt des Replays mit dem Start-
zeitpunkt des Capture-Prozesses übereinstimmt. Damit stellen Sie sicher, dass alle
zeitbezogenen Transaktionen korrekt ausgeführt werden.
Achten Sie weiterhin darauf, dass kein zusätzlicher Workload auf der Datenbank
und den Servern das Ergebnis des Replays verfälschen. Bereiten Sie alle Tools vor,
die Sie zur Überwachung und Aufzeichnung des Workloads benötigen.
Der Workload im Replay-Prozess wird von Replay Clients erzeugt. Die Replay Cli-
ents werden durch das wrc-Utility gestartet. Das Programm benutzt mehrere
Threads, wobei jeder Thread einen Teil des Workloads übernimmt. Die Anzahl der
notwendigen Replay Clients ist abhängig von der Anzahl der Sessions. Um die
notwendige Anzahl von Clients zu bestimmen, kann das wrc-Utility im Modus
»CALIBRATE« gestartet werden.
SQL> BEGIN
2 DBMS_WORKLOAD_REPLAY.PROCESS_CAPTURE(capture_dir => 'CAPTURE_TEST');
3 END;
4 /
PL/SQL-Prozedur erfolgreich abgeschlossen
$ wrc mode=calibrate replaydir=.
Workload Replay Client: Release 12.1.0.1.0 - Production on Fri Apr 11 17:48:43
2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Report for Workload in: .
-----------------------
Recommendation:
Consider using at least 1 clients divided among 1 CPU(s).
Workload Characteristics:
- max concurrency: 20 sessions
- total number of sessions: 20
Assumptions:
- 1 client process per 50 concurrent sessions
21.3
Workload Replay
531
Sind soweit alle Vorbereitungen getroffen, können Sie den Replay-Prozess ini-
tialisieren. Dabei werden unter anderem alle Metadaten in die Datenbank ge-
laden.
Im nächsten Schritt müssen die Verbindungsinformationen zur Datenbank für
den Testserver angepasst werden. Dies erfolgt über ein Mapping der Connect
Strings. Der View DBA_WORKLOAD_CONNECTION_MAP sagt Ihnen, welche
Connect Strings ersetzt werden müssen.
- 4 client process per CPU
- think time scale = 100
- connect time scale = 100
- synchronization = TRUE
Listing 21.6: Die Replay Clients kalibrieren
SQL> BEGIN
2 DBMS_WORKLOAD_REPLAY.INITIALIZE_REPLAY(replay_name => 'TEST12G',replay_dir
=> 'CAPTURE_TEST');
3 END;
4 /
PL/SQL-Prozedur erfolgreich abgeschlossen.
Listing 21.7: Den Replay-Prozess initialisieren
SQL> SELECT * FROM dba_workload_connection_map;
REPLAY_ID CONN_ID SCHEDULE_CAP_ID
---------- ---------- ---------------
CAPTURE_CONN
-----------------------------------------------------------------------------
REPLAY_CONN
-----------------------------------------------------------------------------
1 1
(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/opt/oracle/product/12.1.0/dbhom
_1/bin/oracle)(ARGV0=oracleMITP)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTO
COL=beq)))')(DETACH=NO))(CONNECT_DATA=(CID=(PROGRAM=sqlplus)(HOST=serv7.dbexper
ts.cm)(USER=oracle))))
SQL> BEGIN
2 DBMS_WORKLOAD_REPLAY.REMAP_CONNECTION(connection_id => 1,
3 replay_connection => '(DESCRIPTION=(ADDRESS=(PROTOCOL=beq) (PROGRAM=/opt/
oracle/product/12.1.0/dbhome_1
4 /bin/oracle)(ARGV0=oracleMITP)(ARGS='(DESCRIPTION=(LOCAL=YES)
(ADDRESS=(PROTOCOL=
5 beq)))')(DETACH=NO))(CONNECT_DATA=(CID=(PROGRAM=sqlplus)
(HOST=serv7.dbexperts.co 6 m)(USER=oracle))))');
7 END;
8 /
PL/SQL-Prozedur erfolgreich abgeschlossen.
Kapitel 21
Real Application Testing
532
Für den Replay-Prozess können Sie eine Reihe von Optionen setzen. Die wich-
tigste wird durch den Parameter »SYNCHRONIZATION« ausgedrückt. Wird er
auf »TRUE« gestellt, dann wird die Reihenfolge der Transaktionen so abgespielt,
wie sie während der Aufzeichnung stattgefunden hat. Der Standardwert ist
»TRUE«.
An dieser Stelle müssen die Replay Clients mit dem wrc-Utility gestartet werden.
Damit sind alle Vorbereitungen abgeschlossen und das Replay kann gestartet
werden.
Der Replay Client meldet sich mit der Nachricht, dass der Prozess gestartet wurde:
Der Fortschritt des Replay-Prozesses lässt sich im Oracle Enterprise Manager
überwachen.
Da die Instanz auf dem Testsystem kleiner ist, läuft der Replay-Prozess ent-
sprechend länger. Dieser Sachverhalt wird durch die Grafik auf der Überwa-
chungsseite gut wiedergegeben. Die zeitliche Umsetzung durch den Workload
Client ist an dieser Stelle richtig. Da die Transaktionen auf dem Testsystem länger
benötigen, ist die Laufzeit des Szenarios entsprechend länger.
SQL> BEGIN
2 DBMS_WORKLOAD_REPLAY.PREPARE_REPLAY(synchronization => TRUE);
3 END;
4 /
PL/SQL-Prozedur erfolgreich abgeschlossen.
wrc system/manager replaydir=.
Workload Replay Client: Release 12.1.0.1.0 - Production on So Apr 20 23:14:40
2014
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
Wait for the replay to start (23:39:04)
Listing 21.8: Die Replay Clients starten
SQL> BEGIN
2 DBMS_WORKLOAD_REPLAY.START_REPLAY();
3 END;
4 /
PL/SQL-Prozedur erfolgreich abgeschlossen.
Wait for the replay to start (23:39:04)
Replay started (22:45:16)

Get Oracle 12c - Das umfassende Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.