`
gongmingwind
  • 浏览: 592400 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

(转载)Oracle Statspack 快速上手、使用手册

阅读更多


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
分享到:
评论

相关推荐

    oracle statspack安装配置

    Oracle Statspack是一个强大的数据库性能分析...总的来说,Oracle Statspack是一个强大而全面的性能分析工具,通过合理的配置和使用,能够有效地提升数据库的运行效率,降低故障发生率,从而保障企业的业务顺畅运行。

    oracle statspack

    在IT领域,尤其是在数据库管理与优化方面,Oracle Statspack是一个不可或缺的工具,它为Oracle数据库的性能监控与问题诊断提供了强有力的支持。以下是对"Oracle Statspack报告分析"这一主题的深入探讨,涵盖其功能、...

    Oracle STATSPACK高性能调整技术

    总的来说,Oracle STATSPACK是一个强大且实用的工具,它为DBA提供了深入洞察数据库性能的机会,通过正确使用和分析其报告,可以有效地提升Oracle数据库的运行效率。不过,随着技术的发展,对于新的Oracle版本,建议...

    ORACLE STATSPACK

    - **性能监控**:Statspack能够监控Oracle数据库的各种性能指标,包括但不限于CPU使用率、I/O操作、等待事件等。 - **性能诊断**:通过收集的性能数据,Statspack能够帮助DBA诊断数据库的性能问题,比如找出慢查询、...

    oracle+statspack+高性能调整技术

    本文将详细探讨Oracle Statspack的使用、功能以及如何利用它进行高性能数据库调整。 首先,Oracle Statspack是一种历史性能数据收集工具,它可以记录数据库在运行时的详细信息,包括SQL语句执行情况、等待事件、...

    oracle statspack 安装使用分析

    Oracle StatsPack是一款强大的性能分析工具,专为Oracle数据库设计,用于收集、存储和报告数据库的性能数据。...正确安装、使用和分析StatsPack数据,对于任何希望优化Oracle数据库性能的人来说都是至关重要的。

    详解oracle9i Statspack安装&使用

    以下是关于Oracle 9i Statspack的详细安装和使用步骤: 1. **Statspack的安装** 在安装Statspack之前,你需要以sysdba角色登录到SQL*Plus。首先,创建一个专门用于Statspack的表空间,确保它具有足够的空间。例如...

    oracle statspack 高性能调整技术

    Oracle StatsPack 是Oracle数据库系统中一个强大的性能分析工具,它为DBA提供了深入的数据库性能监控和诊断功能。本主题将详细阐述Oracle StatsPack在高性能调整中的应用和技术要点。 一、Oracle StatsPack简介 ...

    Oracle STATSPACK高性能调整

    总的来说,Oracle STATSPACK是数据库性能调优的重要工具,通过合理使用它可以显著提升数据库的运行效率,降低系统延迟,提高用户满意度。掌握并熟练运用STATSPACK,是每个Oracle DBA必备的技能之一。

    细化解析oracle 10g statspack

    ### 细化解析Oracle 10g Statspack #### 引言 随着Oracle数据库技术的不断进步和发展,...因此,在使用Oracle 10g的过程中,DBA和开发人员不应忽视Statspack的价值,合理利用这些工具将大大提升数据库管理的效率。

    Oracle STATSPACK 高性能调整技术

    Oracle STATSPACK 是一款强大的性能分析工具,专为Oracle数据库设计,用于收集和...尽管现代Oracle版本中有了更先进的AWR,但STATSPACK依然是一份宝贵的资源,尤其对于那些仍在使用较旧版本Oracle数据库的组织来说。

    Oracle Statspack 高性能调整技术

    Oracle Statspack 高性能调整技术

    Oracle9i STATSPACK 高性能调整

    Oracle9i STATSPACK 是一个强大的性能分析工具,专为Oracle数据库系统提供高效能的调优支持。在Oracle 9i版本中,STATSPACK扮演了至关重要的角色,帮助DBAs(数据库管理员)识别和解决性能瓶颈,确保系统的稳定运行...

    oracle statspack 高性能调整技术1-13

    oracle statspack 高性能调整技术

    oracle statspack 高性能调整技术14_15

    oracle statspack 高性能调整技术14_15

Global site tag (gtag.js) - Google Analytics