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_processestimed_statistics 要开启
SQL> show parameter timed_statisticsstatistics_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.sqlbegin
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$snapshotSQL> 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 --结束快照