oracle实用sql(10)--用statspack收集备库性能数据

从oracle 10g开始,statspack报告已经被dbms_workload_repository中的awr报告取代.随着oracle 11g的ative dataguard越来越多的被当作读库使用,对于adg的监控和分析,awr就无能为力了.因为备库上基于awr报告的dba_hist_*视图对应的底层表实际上是主库同步过来的,如果产生报告,则产生的是主库的报告.虽然可以产生对于adg的ash报告,但提供的信息有限。statspack提供了从主库收集备库信息的功能,让它又有了新的用武之地.当然,还是期待dbms_workload_repository未来能实现类似的功能.

以下示例:
oracle version:11.2.0.4

1.在主库添加收集主库信息的perfstat用户
#虽然我们不用perfstat收集主库信息,但经测试,此用户也必须创建.
sqlplus / as sysdba
SQL> @?/rdbms/admin/spcreate.sql

2.在主库添加收集备库信息的stdbyperf用户,并添加一个备库
sqlplus / as sysdba
SQL> @?/rdbms/admin/sbcreate.sql

#如果有多个备库,继续添加
SQL> @?/rdbms/admin/sbaddins.sql


3.添加自动收集备库信息的job
begin
  sys.dbms_job.submit(job => :job,
                      what => 'stdbyperf.STATSPACK_ct6601sb_ct6601sb.snap;',
                      next_date => to_date('31-07-2016 14:20:01', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'trunc(SYSDATE+1/24,''HH'')');
  commit;
end;
/


4.根据需要产生报告
SQL> @?/rdbms/admin/sbreport.sql



请使用浏览器的分享功能分享到微信等