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

posted @ 2020-03-16 14:58  南腔北调人  阅读(302)  评论(0编辑  收藏  举报