Oracle 11g Database Replay 實驗

snowdba發表於2015-07-25
此次實驗將生成一個工作負載,再新增主鍵後重放,會看到效能大幅度提升。

(1)使用SYS使用者連線資料庫。建立測試使用者,表和目錄。目錄用來存放捕獲結果。

grant dba to client_player identified by oracle_123;

create table client_player.t1 as select * from all_objects;

create directory dbply_dir as '/home/oracle/dbply_dir';

grant all on directory dbply_dir to public;

(2)編寫負載指令碼   

vi dbply.sql

connect client_player/oracle_123

declare n number;

begin

for i in 1..100000 loop

select count(1) into n from t1 where object_id=1;

end loop;

end;

/

 


(3)開始捕獲負載,採用測試使用者執行負載指令碼

exec dbms_workload_capture.start_capture('play capture','DBPLY_DIR');

@dbply.sql

注意:目錄名稱需要用大寫,指令碼中已經使用測試使用者登入。
 

(4)使用sys使用者終止捕獲並處理捕獲結果

exec dbms_workload_capture.finish_capture;

exec dbms_workload_replay.process_capture('DBPLY_DIR');

 

(5) 重放工作負載

exec dbms_workload_replay.initialize_replay('play capture','DBPLY_DIR');

exec dbms_workload_replay.prepare_replay;

另外開啟一個視窗,進入DBPLY_DIR會看到捕獲到的負載被解析成各種檔案

cd /home/oracle/dbply_dir

enmoedu1*PROD1 dbply_dir $ ll

total 116

drwxr-xr-x 12 oracle dba  4096 Jul 25 07:36 inst1

-rw-r--r--  1 oracle dba  3648 Jul 25 07:42 wcr_calibrate.xml

-rw-r-----  1 oracle dba 12288 Jul 25 07:42 wcr_conn_data.extb

-rw-r--r--  1 oracle dba 36222 Jul 25 07:42 wcr_cr.html

-rw-r--r--  1 oracle dba 17366 Jul 25 07:42 wcr_cr.text

-rw-r--r--  1 oracle dba   173 Jul 25 07:42 wcr_fcapture.wmd

-rw-r--r--  1 oracle dba   532 Jul 25 07:42 wcr_login.pp

-rw-r--r--  1 oracle dba    35 Jul 25 07:42 wcr_process.wmd

-rw-r--r--  1 oracle dba    97 Jul 25 07:36 wcr_scapture.wmd

-rw-r-----  1 oracle dba 12288 Jul 25 07:42 wcr_scn_order.extb

-rw-r-----  1 oracle dba 12288 Jul 25 07:42 wcr_seq_data.extb


在作業系統提示符下執行
$ wrc client_player/oracle_123 replaydir=.

在SQL*Plus中啟動重放
exec dbms_workload_replay.start_replay;

重放結束後會提示Replay finished 下面是執行wrc過程的螢幕輸出
Replay started (07:47:15)

Replay finished (07:52:24)

 

(6) 檢索重放報告,需要指定ID號

select id,capture_id,directory,start_time,end_time from dba_workload_replays;

 

        ID CAPTURE_ID DIRECTORY                      START_TIM END_TIME

---------- ---------- ------------------------------ --------- ---------

        13         89 DBPLY_DIR                      25-JUL-15 25-JUL-15

        12         81 DB_REPLAY                      24-JUL-15 24-JUL-15


設定螢幕輸出的緩衝區  

set long 100000

select dbms_workload_replay.report(13,'TEXT') from dual;


下面擷取了DBTime部分作為比較 

Replay Statistics

---------------------------------------------------------------

|        Statistic        | Replay          | Capture         |

---------------------------------------------------------------

| DB Time                 | 195.004 seconds | 199.362 seconds |

---------------------------------------------------------------

| Average Active Sessions |             .66 |             .67 |

 


(7)向測試表新增主鍵約束  
alter table client_player.t1 add constraint p1_pk primary key (object_id);

(8)重新初始化環境,再次執行dbreplay,會發現DBTime大幅度降低。
exec dbms_workload_replay.initialize_replay('play capture','DBPLY_DIR');

exec dbms_workload_replay.prepare_replay;

exec dbms_workload_replay.start_replay;

$ wrc client_player/oracle_123 replaydir=.
..
Replay started (08:02:29)

Replay finished (08:07:32)


 select id,capture_id,directory,start_time,end_time from dba_workload_replays;

        ID CAPTURE_ID DIRECTORY                      START_TIM END_TIME

---------- ---------- ------------------------------ --------- ---------

        15         89 DBPLY_DIR                      25-JUL-15 25-JUL-15

        13         89 DBPLY_DIR                      25-JUL-15 25-JUL-15

        12         81 DB_REPLAY                      24-JUL-15 24-JUL-15

 

 

set long 100000


select dbms_workload_replay.report(13,'TEXT') from dual

Replay Statistics

---------------------------------------------------------------

|        Statistic        | Replay          | Capture         |

---------------------------------------------------------------

| DB Time                 |   1.362 seconds | 199.362 seconds |

---------------------------------------------------------------


| Average Active Sessions |               0 |             .67 |

實驗完畢

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29047826/viewspace-1751582/,如需轉載,請註明出處,否則將追究法律責任。

相關文章