Statspack是Oracle 8i时代就有的工具,Oracle 10g以后,AWR凭着其强大的功能使statspack备受冷落;大家知道,由于ADG(Active Data Guard)的只读特性,AWR的主备库信息是一致的,监控ADG上的查询业务的功能,又变成了使用脚本和crontab等的手工作坊式管理;Oracle为此给statspack增加了新的功能:监控备库性能。
Statspack脚本目录下($ORACLE_HOME/rdbms/admin/),有两类statspack文件:
[oracle@pdgnodeadmin]$ ls sp*
spadvrpt.sql spawrrac.sql spctab.sql spdrop.sql sppurge.sql spreport.sql sptrunc.sql spup10.sql spup816.sql spup92.sql
spauto.sql spcpkg.sql spcusr.sql spdtab.sql sprepcon.sql sprepsql.sql spuexp.par spup1101.sql spup817.sql
spawrio.sql spcreate.sql spdoc.txt spdusr.sql sprepins.sql sprsqins.sql spup102.sql spup11201.sql spup90.sql
[oracle@pdgnodeadmin]$ ls sb*
sbaddins.sql sbctab.sql sbdoc.txt sbdusr.sql sbrepcon.sql sbrepsql.sql sbup11201.sql
sbcpkg.sql sbcusr.sql sbdrop.sql sblisins.sql sbrepins.sql sbrsqins.sql
sbcreate.sql sbdelins.sql sbdtab.sql sbpurge.sql sbreport.sql sbup1101.sql
前面的sp开头的大家应该都不陌生:
spcreate用于创建perfstat用户和对象
spdrop用于删除perfstat用户和对象
sptrunc用于truncate掉perfstat对象的内容,但保留对象和用户
spreport是打statspack报告的脚本
……
后面sb开头的是ADG中在备库上使用的一套脚本(sb,也就是standby):
sbcreate用于创建stdbyperf用户和对象
sbdrop用于删除stdbyperf用户和对象
sbtrunc用于truncate掉stdbyperf的对象的内容,但保留对象和用户
sbreport是打standby statspack报告的脚本
……
Standbystatspack的安装方法如下(以下操作都是在主库进行):
1.安装Statspack,创建用户perfstat:
sqlplus assysdba
SQL>@?/rdbms/admin/spcreate.sql
2.安装standby statspack,创建用户stdbyperf:
SQL>@?/rdbms/admin/sbcreate
3.添加备库实例
SQL>@?/rdbms/admin/sbaddins
4.收集ADG性能信息(从主库端获取备库信息):
SQL>connect stdbyperf/your_password
SQL> execstatspack_<db_unique_name>_<instance_name>.snap
5.获取备库端统计信息报表:
SQL>@?/rdbms/admin/sbreport
6.历史快照删除:
@?/rdbms/admin/sbpurge
7.删除配置的实例:
@?/rdbms/admin/sbdelins
8.删除staspack schema(stdbyperf):
@?/rdbms/admin/sbdrop
9.删除staspack schema(perfstat):
@?/rdbms/admin/sbdrop
生成的Standby statspack 除了多了备库的同步应用信息外,其他收集的项目同主库statspack:
over
参考:Installing and Using Standby Statspack in 11g (文档 ID 454848.1)