zoukankan      html  css  js  c++  java
  • Statspack安装配置及使用

    1.1 概念

    statspack,用于收集系统信息,诊断数据库故障,也方便第三方技术支持进行远程阅读和建议。它连续收集数据信息,能够提供趋势分析,同时也需要单独分配一个表空间来存储这些统计数据。即在安装的过程中需要指定一个表空间和临时表空间。

    从编程开发的角度来看,startspace就是一段PLSQL,分析查看相关数据字典及视图,并定时运行,并可生成相关报表提供给DBA。

    1.2 系统参数

    为了能够顺利安装和运行Statspack你可能需要设置以下系统参数:

    1. job_queue_processes
    为了能够建立自动任务,执行数据收集,该参数需要大于0。你可以在初试化参数文件中修改该参数。

    2. timed_statistics
    收集操作系统的计时信息,这些信息可被用来显示时间等统计信息、优化数据库和 SQL 语句。要防止因从操作系统请求时间而引起的开销,请将该值设置为False。

    使用statspack收集统计信息时建议将该值设置为 TRUE,否则收集的统计信息大约只能起到10%的作用,将timed_statistics设置为True所带来的性能影响与好处相比是微不足道的。

    该参数使收集的时间信息存储在在V$SESSTATS 和V$SYSSTATS 动态性能视图中。
    Timed_statistics参数可以在实例级进行更改

    SQL> alter system set timed_statistics = true;
    System altered
    SQL>

    1.3 安装statspack

    1.3.1 查看数据库实例信息

    SQL> select instance_name,host_name,version,startup_time from v$instance;

    INSTANCE_NAME HOST_NAME VERSION STARTUP_TIME

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

    orcl2 r8 11.2.0.4.0 2015/11/4 8:

    1.3.2 创建表空间

    查看现在磁盘空间

    # df -h

    Filesystem Size Used Avail Use% Mounted on

    /dev/sda3 56G 13G 40G 24% /

    tmpfs 1.3G 437M 881M 34% /dev/shm

    /dev/sda1 194M 28M 156M 16% /boot

    /dev/asm/app1-210 19G 11G 8.5G 56% /app

    查看数据库ASM磁盘空间

    SQL> select name, total_mb, free_mb from v$asm_diskgroup;

    NAME TOTAL_MB FREE_MB

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

    DATA_ASM 10275 9019

    DATA_DB 36875 34689

    查看表空间默认路径

    SQL> select file_name from dba_data_files where rownum < 3;

    FILE_NAME

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

    +DATA_DB/orcl/datafile/system.259.892839139

    +DATA_DB/orcl/datafile/sysaux.260.892839151

    创建表空间

    SQL> create tablespace perfstat datafile '+DATA_DB/orcl/datafile/ts_perfstat.dbf' size 1204M autoextend on next 10M maxsize 4096M extent management local autoallocate;

    1.3.3 执行脚本

    查看脚本

    [oracle@r7 ~]$ cd $ORACLE_HOME/rdbms/admin

    [oracle@r7 admin]$ ls | grep spcreate

    spcreate.sql

    执行脚本

    SQL> @$ORACLE_HOME/rdbms/admin/spcreate.sql

    有三个地方需要输入,密码、表空间及临时表空间

    Enter value for perfstat_password: orcl

    Enter value for default_tablespace: perfstat

    Enter value for temporary_tablespace: temp

    如果创建过程出现错误,可以执行spdrop.sql 脚本删除之前创建的对象,然后重新执行spcreate.sql脚本。

    1.3.4 测试

    执行一次“exec statspack.snap”可以生产一次快照,执行两次便可生成一份基于这两个快照的报告 。

    SQL> exec statspack.snap

    PL/SQL procedure successfully completed.

    SQL> /

    Package body created.

    SQL> @$ORACLE_HOME/rdbms/admin/spreport.sql

    1.3.5 设置自动任务Job

    spauto.sql脚本中有如何设置自动任务的例子,具体如下:

    -- Schedule a snapshot to be run on this instance every hour, on the hour

    variable jobno number;

    variable instno number;

    begin

    select instance_number into :instno from v$instance;

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

    commit;

    end;

    /

    1/24表示每隔一小时,1/(24*60)就是每隔一分钟,从这里可以看到这完全就是个自动任务Job,它的启动、停止自然也受自动任务的管理,这里不再描述。

    创建自动任务如下:

    SQL> variable jobno number;

    SQL> variable instno number;

    SQL> begin

    2 select instance_number into :instno from v$instance;

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

    4 commit;

    5 end;

    6 /

    PL/SQL procedure successfully completed

    instno

    ---------

    2

    jobno

    ---------

    21

    执行该自动任务

    begin

    dbms_job.run(21); --执行job

    end;

    1.3.6 生成分析报告

    执行spreport.sql可生成,具体步骤执行时会有提示,与awr报告生成方式差不多。生成时最好使用spool 将生成的内容写入到指定文件中,不然一屏幕不够显示。

    spool report.txt

    @spreport.sql

    spool off

    1.4 调整STATSPACK的收集门限

    Statspack有两种类型的收集选项:

    级别(level):控制收集数据的类型

    门限(threshold):设置收集的数据的阈值。

    1.4.1 级别(level)

    Statspack共有三种快照级别,默认值是5

    a.level 0: 一般性能统计。包括等待事件、系统事件、系统统计、回滚段统计、行缓存、SGA、会话、锁、缓冲池统计等等。

    b.level 5: 增加SQL语句。除了包括level0的所有内容,还包括SQL语句的收集,收集结果记录在stats$sql_summary中。

    c.level 10: 增加子锁存统计。包括level5的所有内容。并且还会将附加的子锁存存入stats$lathc_children中。在使用这个级别时需要慎重,建议在Oracle support的指导下进行。

    可以通过statspack包修改缺省的级别设置

    SQL>execute statspack.snap(i_snap_level=>0,i_modify_parameter=>’true’);

    通过这样的设置,以后的收集级别都将是0级。

    如果你只是想本次改变收集级别,可以忽略i_modify_parameter参数。

    SQL>execute statspack.snap(i_snap_level=>10);

    1.4.2 快照门限

    快照门限只应用于stats$sql_summary表中获取的SQL语句。

    因为每一个快照都会收集很多数据,每一行都代表获取快照时数据库中的一个SQL语句,所以stats$sql_summary很快就会成为Statspack中最大的表。

    门限存储在stats$statspack_parameter表中。

    clip_image002

    a. executions_th 这是SQL语句执行的数量(默认值是100)

    b. disk_reads_tn 这是SQL语句执行的磁盘读入数量(默认值是1000)

    c. parse_calls_th 这是SQL语句执行的解析调用的数量(默认值是1000)

    d. buffer_gets_th 这是SQL语句执行的缓冲区获取的数量(默认值是10000)

    任何一个门限值超过以上参数就会产生一条记录。

    通过调用statspack.modify_statspack_parameter函数我们可以改变门限的默认值。

    例如:

    SQL>execute statspack.modify_statspack_parameter(i_buffer_gets_th=>100000,i_disk_reads_th=>100000)

  • 相关阅读:
    Python经典的算法题【多测师】
    百度流氓驱动bd0001.sys【多测师】
    github上的前端面试题
    利用H5 FormData 实现表单中多图上传(可带其他如String类型数据)
    border-color的深入理解
    一个好玩的小制作,以及在<a/>中的标签href="javascript:;"/href="javascript:void(0);"/href="javascript:"的用法
    css进行网站布局
    Mybatis中的<trim>标签应用
    css居中小技巧
    css布局模型
  • 原文地址:https://www.cnblogs.com/perfei/p/4936067.html
Copyright © 2011-2022 走看看