欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle11g ADG staspack安装文档

程序员文章站 2022-03-10 19:13:26
本文档主要是用来解决物理备库的性能监控问题。我们都知道,当物理备库出现问题的时候,由于备库是只读模式的,所以无法在备库上使用AWR/Statspack/ash/addm等性能报告来分析。因此,在故障分析和调优应用的时候,只能手动收集相关的统计数据信息,这样给我们的工作带来了巨大的不变。随着Oracl ......

 

本文档主要是用来解决物理备库的性能监控问题。我们都知道,当物理备库出现问题的时候,由于备库是只读模式的,所以无法在备库上使用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