设为首页 收藏本站
查看: 428|回复: 0

[经验分享] (转载)Oracle Statspack 快速上手、使用手册

[复制链接]

尚未签到

发表于 2016-8-6 14:30:15 | 显示全部楼层 |阅读模式
Oracle Statspack 是什么就不多说了,下面只介绍快速启动此功能的方法,相信在启动之后,所有了解Oracle的DBA们都能迅速玩会它。

目录:

一. 系统参数
二. 安装 Statspack
三. 测试安装好的 Statspack
四. 规划自动任务
五. 生成分析报告
六. 移除定时任务

------------------------------------------------------------------------------------------------------------

一. 系统参数

1.job_queue_processes (建立自动任务,执行数据收集,该参数需要大于 0。)

    SQL> alter system set job_queue_processes = 6 scope=both;

    系统已更改。

2.timed_statistics (防止因从操作系统请求时间而引起的开销,请将该值设置为 False。)

    SQL> alter system set timed_statistics = true;

    System altered

    SQL>

二. 安装 Statspack

安装 Statspack 需要用sys用户以sysdba身份登陆。需要在 本地安装或者通过 telnet 登陆到服务器。
首先登陆到数据库,最好转到$ORACLE_HOME/RDBMS/ADMIN 目录,这样执行脚本就可以方便些。

    $ORACLE_HOME/rdbms\admin>sqlplus "/ as sysdba"
    SQL*Plus: Release 9.*.*.*.* - Production on 星期* * 月 ** **:**:** ****
    Copyright (c) ****, ****, Oracle Corporation. All rights reserved.

    连接到: Oracle9i Enterprise Edition Release *.*.*.*.* - Production
    With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining options
    JServer Release 9.*.*.*.* - Production

    SQL>
        检查数据文件路径及磁盘空间,以决定创建数据文件的位置:
    SQL> select file_name from dba_data_files;
    FILE_NAME
    --------------------------------------------------------------------------------
    D:\ORACLE\ORADATA\EYGLE\SYSTEM01.DBF
    D:\ORACLE\ORADATA\EYGLE\TEMP01.DBF
    ……
    D:\ORACLE\ORADATA\EYGLE\HH_AM01.ORA

    已选择24行。

    SQL>


    创建存储数据的表空间,如果采样间隔较短,周期较长,打算长期使用,那么你可能需要一个大一点的表
空间( <=100M ),如果每个半个小时采样一次,连续采样一周,数据量是很大的。本例创建一个 500M 的测试表空间。

    SQL> create tablespace perfstat
       2 datafile 'd:\oracle\oradata\eygle\perfstat.dbf'
       3 size 500M
       4 extent management local;

    表空间已创建。
    SQL>


    检查是否存在安装所需要的脚本文件(对于不同的版本,脚本有所不同)
<-----------------------------------------------------------------------------------------------------------
    E:\Oracle\ora92\rdbms\admin>dir /w sp*
     驱动器 E 中的卷没有标签。
     卷的序列号是 ACC3-4340
    E:\Oracle\ora92\rdbms\admin 的目录
       spauto.sql       spcpkg.sql        spcreate.sql     spctab.sql      spcusr.sql    spdoc.txt
    spdrop.sql       spdtab.sql        spdusr.sql        sppurge.sql    sprepins.sql spreport.sql
    sprepsql.sql    sptrunc.sql      spuexp.par         spup816.sql     spup817.sql    spup90.sql
                  18 个文件             510,296 字节
                   0 个目录 4,146,565,120 可用字节
----------------------------------------------------------------------------------------------------------->
    接下来我们就可以开始安装 Statspack 了。这期间会提示你输入缺省表空间和临时表空间的位置,输入我们
为 perfstat 用户创建的表空间和你的临时表空间。

    SQL> @spcreate
    .
    .
    Specify PERFSTAT user's default tablespace
    输入 default_tablespace 的值: perfstat
    Using perfstat for the default tablespace

    用户已更改。

    用户已更改。

    Specify PERFSTAT user's temporary tablespace
    输入 temporary_tablespace 的值: temp

    注意:在 statspack 创建过程中,当提示输入口令时,你可以输入一个明文口令,但是如果输入口令不符合
规范(如 123 或以数字开头的口令),创建会失败。
<-----------------------------------------------------------------------------------------------------------
    ... Creating PERFSTAT user ...

    Choose the PERFSTAT user's password.

    Not specifying a password will result in the installation FAILING
    Specify PERFSTAT password
    输入 perfstat_password 的值: 123

    123

    PL/SQL 过程已成功完成。

    create user perfstat identified by 123
          *
    ERROR 位于第 1 行:
    ORA-00988: 缺少或无效口令
----------------------------------------------------------------------------------------------------------->

如果安装成功,你可以看到如下的输出信息:
<-----------------------------------------------------------------------------------------------------------
    ….
    Creating Package STATSPACK...

    程序包已创建。

    没有错误。
    Creating Package Body STATSPACK...

    程序包主体已创建。

    没有错误。

    NOTE:
    SPCPKG complete. Please check spcpkg.lis for any errors.
----------------------------------------------------------------------------------------------------------->

    你可以查看.lis 文件查看安装时的错误信息。

   SQL> host dir *.lis
    SQL> host find "ORA-" *.lis
    SQL> host find "err" *.lis

    在 UNIX 上,你可以通过以下命令查看相应的错误信息
    $ ls *.lis
    $ grep ORA- *.lis
    $ grep err *.lis

    在这一步,如果出现错误,那么你可以运行 spdrop.sql 脚本来删除这些对象。然后重新运行 spcreate.sql 来
创建这些对象。运行 SQL*Plus, 以具有 SYSDBA 权限的用户登陆:

    SQL> @spdrop.sql

三. 测试安装好的 Statspack

    运行 statspack.snap 可以产生系统快照,运行两次,然后执行 spreport.sql 就可以生成一个基于两个时间点的报告。如果一切正常,说明安装成功。

SQL>execute statspack.snap
PL/SQL procedure successfully completed.
SQL>execute statspack.snap
PL/SQL procedure successfully completed.
SQL>@spreport.sql


四. 规划自动任务

    Statspack 正确安装以后,我们就可以设置定时任务,开始收集数据了。可以使用 spatuo.sql 来定义自动任务。spauto.sql 的关键内容:
    dbms_job.submit(:jobno, 'statspack.snap;',
     trunc(sysdate+1/24,'HH'), 'trunc(SYSDATE+1/24,''HH'')', TRUE, :instno);

    这个 job 任务定义了收集数据的时间间隔:
              一天有 24 个小时,1440 分钟,那么:
                     1/24 HH               每小时一次
                     1/48 HH               每半小时一次
                     1/144MI               每十分钟一次
                     1/288MI               每五分钟一次
    可以修改 spauto.sql 来更改执行间隔,如:

    dbms_job.submit(:jobno, 'statspack.snap;',
     trunc(sysdate+1/48,'MI'), 'trunc(SYSDATE+1/48,''MI'')', TRUE, :instno);

    然后执行 spauto,这样就建立了一个每 30 分钟执行一次的数据收集计划。可以查看 spauto.lis
来获得输出信息:
<-----------------------------------------------------------------------------------------------------------
    SQL> @spauto

    PL/SQL procedure successfully completed.

     ……
            ** **-*****-** **:**:**
----------------------------------------------------------------------------------------------------------->

    关于采样间隔,通常建议以 1 小时为时间间隔,特殊需要可设置半小时作为采样间隔,但是不推荐更短。因为 statspack 的执行本身需要消耗资源,对于繁忙的生产系统,太短的采样对系统的性能会产生较大的影响(甚至会使 statspack 的执行出现在采样数据中)。

五. 生成分析报告

    调用 spreport.sql 可以生成分析报告:
<-----------------------------------------------------------------------------------------------------------
    SQL> @spreport

    ……
    输入 report_name 的值: rep1205.txt

    Using the report name rep1205.txt
----------------------------------------------------------------------------------------------------------->

<-----------------------------------------------------------------------------------------------------------
    这样就生成了一个报告,可是如果中间停过机,那么你可能收到以下错误信息:

ERROR: Snapshots chosen span an instance shutdown: RESULTS ARE INVALID
STATSPACK report for

DB Name DB Id Instance Inst Num Release                                      OPS Host
------------ ----------- ------------ -------- ----------- --- ------------
----------------------------------------------------------------------------------------------------------->

    一个statspack 的报告不能跨越一次停机,但是之前或之后的连续区间,收集的信息依然有效。你可以选择之前或之后的采样生产report。

六. 移除定时任务

    移除一个定时任务,可以如下操作:
<-----------------------------------------------------------------------------------------------------------
    SQL> select job,log_user,priv_user,last_date,next_date,interval from user_jobs;

    JOB LOG_USER LAST_DATE NEXT_DATE INTERVAL

    ---------- ------------------------------ ------------------------------ ------------------------------
     22 PERFSTAT ****-**-*:**:**:** ****-**-* **:**:** trunc(SYSDATE+1/144,'MI')

    SQL> execute dbms_job.remove('22')

    PL/SQL procedure successfully completed
----------------------------------------------------------------------------------------------------------->

    当你完成了一个采样报告,你应该及时移除这个 job 任务,在生产环境中,遗漏一个无人照顾的 job 是非常危险的,如果 statspack 运行一个星期,采样的数据量是非常惊人的。


参考:http://hi.baidu.com/jackli00/blog/item/0fea4888be3ebcb90f2444c6.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-253733-1-1.html 上篇帖子: Oracle密码文件的创建、使用和维护 下篇帖子: 关于Window操作系统中对Oracle的性能监控
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表