oracle性能监控主要是通过statspack 或 awk 报告来实现的
statspack 10G之前主要用它,需要手工安装
AWK 内容更丰富,自动已经装好
statspack涉及的脚本:
spcreate.sql 安装脚本
spauto.sql 定时采样设置脚本
spreport.sql 报取报告脚本
spdrop.sql 删除脚本
安装statpack 之前要设置一些参数:
job_queue_processes 不要为0
SQL> show parameter job_queue_processes
timed_statistics 要开启
SQL> show parameter timed_statistics
statistics_level 不能为BASIC
SQL> show parameter statistics_level
安装前最好为statpack创建一个独立的表空间
SQL> create tablespace perfstat
datafile '/u02/perfstat01.dbf' size 500m;
安装过程:
SQL> @?/rdbms/admin/spcreate.sql;
输入perfstat 的密码
选择statpack使用的表空间
选择statpack使用的临时表空间
脚本运行完后,自动切到用户 perfstat
SQL> show user;
USER is "PERFSTAT"
statpack 管理
1、生成快照
手工生成
SQL> exec statspack.snap;
自动生成
vim $ORACLE_HOME/rdbms/admin/spauto.sql
begin
select instance_number into :instno from v$instance;
dbms_job.submit(:jobno, 'statspack.snap;', trunc(sysdate+1/48,'HH'), 'trunc(SYSDATE+1/48,''HH'')', TRUE, :instno);
--修改时间间隔即可
commit;
end;
/
改完后,在sql>下运行该脚本
SQL> @?/rdbms/admin/spauto.sql;
2、查看快照
stats$snapshot
SQL> select SNAP_ID,SNAP_TIME,STARTUP_TIME from stats$snapshot;
3、生成报告
生成报告的前提必须要有快照
SQL> @?/rdbms/admin/spreport.sql;
Enter value for begin_snap: 1 --输入起始快照
Enter value for end_snap: 3 --输入结束快照
Enter value for report_name: myreport --报告名字
AWR报告
AWR自动安装的,快照采集也是自动进行的,每小时自动采集一次,快照默认保留7天
如果没有快照可以手工生成
SQL> exec dbms_workload_repository.CREATE_SNAPSHOT();
生成报告:
SQL> @?/rdbms/admin/awrrpt.sql;
Type Specified: html
Enter value for num_days: 1
Begin Snapshot Id specified: 44 --起始快照
Enter value for end_snap: 49 --结束快照