oracle11g ADG staspack安装文档
本文档主要是用来解决物理备库的性能监控问题。我们都知道,当物理备库出现问题的时候,由于备库是只读模式的,所以无法在备库上使用awr/statspack/ash/addm等性能报告来分析。因此,在故障分析和调优应用的时候,只能手动收集相关的统计数据信息,这样给我们的工作带来了巨大的不变。随着oracle 11.1 adg的出现,被遗忘很久的statspack有了新的用途,那就是可以用来监控备库性能。
参考资料
mos文档: installing and using standby statspack in 11g (文档 id 454848.1)
安装要求
备库状态为read-only模式
备库状态为正在应用日志的状态
statspack的安装
主库端安装statspack
执行安装脚本如下:
sqlplus / as sysdba
sql> @?/rdbms/admin/spcreate.sql
注:如果你的主库已创建perstat用户,此脚本可以跳过。如果你的主库上没有该模式对象,则需要创建。创建的过程中,会要求填写如下信息:
perfstat用户的密码(自定义)
模式对象默认使用的表空间(建议使用sysaux)
模式对象默认使用的临时表空间( 建议使用系统,例:temp)
主端安装standby statspack
执行安装脚本如下:
sqlplus / as sysdba
sql> @?/rdbms/admin/sbcreate
注:此脚本在执行过程中会创建standby statspack的模式对象,即stdbyperf,安装过程中会有如下提示信息:
提示输入stdbyperf用户的密码(自定义)
模式对象默认使用的表空间(建议使用sysaux)
模式对象默认使用的临时表空间(建议使用系统,例:temp)
创建完成之后,会自动调用sbaddins.sql脚本,这个脚本的目的是用来配置statpack添加第一个备库实例的信息。会提示输入,如下信息:
连接到物理备库的tns 的本地服务名
需要提供perfstat用户的密码
在statspack配置信息中手动添加新的实例
使用如下用户登录,执行脚本如下:
sql> connect stdbyperf/your_password
sql> @?/rdbms/admin/sbaddins
会提示输入如下信息:
1.连接到物理备库的tns 的本地服务名
2.需要提供perfstat用户的密码
手动收集备库的性能数据* *
执行脚本如下
sql> connect stdbyperf/your_password
sql> exec statspack_<db_unique_name>_<instance_name>.snap
生成备库统计信息报告
执行脚本如下
sql> connect stdbyperf/your_password
sql>@?/rdbms/admin/sbreport
删除快照信息
执行脚本如下:
sql>connect stdbyperf/your_password
sql>@?/rdbms/admin/sbpurge
删除备库的statspack的配置
执行脚本如下:
sql>connect stdbyperf/your_password
sql> @?/rdbms/admin/sbdelins
删除备库的statspack
sql> connect / as sysdba
sql> @?/rdbms/admin/sbdrop
配置自动收集快照任务
1.查看job
sql> connect stdbyperf/your_password
sql>select job,schema_user,last_date,what,instance from user_jobs;
2.查询db_link和package_name
sql> col db_unique_name for a5
sql> col package_name for a25
sql> select * from stats$standby_config;
db_un inst_name db_linkpackage_name
--- ------------ ---------------- -----------------------
st wxxrdb stdby_link_st statspack_st_wxxrdb
3.创建job任务
variable jobno number;
variable instno number;
begin
select instance_number into :instno from v$instance@ stdby_link_st;
dbms_job.submit(:jobno, 'statspack_st_wxxrdb.snap;', trunc(sysdate+1/24,'hh'), 'trunc(sysdate+1/24,''hh'')', true, :instno);
commit;
end;
/
注:红字部分需要根据上一步查询出来的db_link和package_name的值,时间默认为1个小时,可以自行修改
4.删除job任务
sql>exec dbms_job.remove('job_id');
自动删除快照
执行脚本如下:
stdby_del_snap.sh
注:将此脚本添加到定时任务中即可,建议在系统空闲的时间段执行
脚本存放目录如下及删除规则:
/oracle/script/stdby_del_snap/bin
删除规则:快照保存时间为7天,每天凌晨1点执行一次脚本:
00 1 * * * /oracle/script/stdby_del_snap/bin/stdby_del_snap.sh >>/oracle/script/stdby_del_snap/log/stdby_del_snap.log 2>&1
上一篇: 模型创建