知识大全 ZT-Statspack安装配置使用说明二

Posted 语句

篇首语:怀抱观古今,寝食展戏谑。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ZT-Statspack安装配置使用说明二相关的知识,希望对你有一定的参考价值。

ZT-Statspack安装配置使用说明二  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  spcusr lis:SPCUSR plete Please check spcusr lis for any errors

  spdtab lis:SPDTAB plete Please check spdtab lis for any errors

  spdusr lis:SPDUSR plete Please check spdusr lis for any errors

    

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

    

  SQL> @spdrop sql

  

  

  

  同义词已丢弃 off;

    

  视图已丢掉

    

  同义词已丢弃

    

  视图已丢掉

    

  同义词已丢弃

    

  用户已丢弃

    

  NOTE:

    

  SPDUSR plete Please check spdusr lis for any errors

    

  SQL>

    

  三 测试安装好的Statspack

    

  运行statspack snap可以产生系统快照 运行两次 然后执行spreport sql就可以生成一个基于两个时间点的报告

    

  如果一切正常 说明安装成功

    

  SQL>execute statspack snap

  PL/SQL procedure successfully pleted

  SQL>execute statspack snap

  PL/SQL procedure successfully pleted

  SQL>@spreport sql

  …

    

  可是有可能你会得到以下错误

    

  SQL> exec statspack snap;

  BEGIN statspack snap; END;

    

  *

  ERROR at line :

  ORA : inserted value too large for column

  ORA : at PERFSTAT STATSPACK line

  ORA : at PERFSTAT STATSPACK line

  ORA : at PERFSTAT STATSPACK line

  ORA : at line

    

  这是Oracle的一个Bug Bug号

    

  该Bug自 后修正

    

  这个问题只会出现在多位的字符集 需要修改spcpkg sql脚本 $ORACLE_HOME/rdbms/admin/spcpkg sql 将 substr 修改为 substrb 然后重新运行该脚本

    

  该脚本错误部分

    

  select l_snap_id

   p_dbid

   p_instance_number

   substr(sql_text )

  ...........

    

  substr 会将多位的字符 当作一个byte substrb 则会当作多个byte 在收集数据时 statpack 会将 top 的 sql 前 个字节 存入数据表中 若在SQL的前 个字有中文 就会出现此错误

    

  四 规划自动任务

    

  Statspack正确安装以后 我们就可以设置定时任务 开始收集数据了 可以使用spatuo sql来定义自动任务

    

  先来看看spauto sql的关键内容

    

  dbms_job submit(:jobno statspack snap; trunc(sysdate+ / HH ) trunc(SYSDATE+ / HH ) TRUE :instno);

    

  这个job任务定义了收集数据的时间间隔

    

  一天有 个小时 分钟 那么

    

   / HH 每小时一次

    

   / MI 每半小时一次

    

   / MI 每十分钟一次

    

   / MI 每五分钟一次

    

  我们可以修改spauto sql来更改执行间隔 如

    

  dbms_job submit(:jobno statspack snap; trunc(sysdate+ / MI ) trunc(SYSDATE+ / HH ) TRUE :instno);

    

  然后我们执行spauto 这样我们就建立了一个每 分钟执行一次的数据收集计划 你可以查看spauto lis来获得输出信息

    

  SQL>

  SQL>

  SQL> Schedule a snapshot to be run on this instance every hour on the hour

  SQL>

  SQL> variable jobno number;

  SQL> variable instno number;

  SQL> begin

   select instance_number into :instno from v$instance;

   dbms_job submit(:jobno statspack snap; trunc(sysdate+ / MI ) trunc(SYSDATE+ / MI ) TRUE :instno);

   mit;

   end;

   /

    

  PL/SQL 过程已成功完成

    

  SQL>

  Job number for automated statistics collection for this instance

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Note that this job number is needed when modifying or removing

  the job:

  JOBNO

  

  

    

  Job queue process

  ~~~~~~~~~~~~~~~~~

  Below is the current setting of the job_queue_processes init ora

  parameter the value for this parameter must be greater

  than to use automatic statistics gathering:

  SQL> show parameter job_queue_processes

    

  NAME TYPE VALUE

  

  job_queue_processes integer

    

  Next scheduled run

  ~~~~~~~~~~~~~~~~~~

  The next scheduled run for this job is:

  SQL> select job next_date next_sec

   from user_jobs

   where job = :jobno;

    

  JOB NEXT_DATE NEXT_SEC

  

   月 : :

    

  SQL>

    

  五 生成分析报告

    

  调用spreport sql可以生成分析报告

    

  SQL> @spreport

    

  DB Id DB Name Inst Num Instance

  

   EYGLE eygle

    

  Completed Snapshots

    

  Snap Snap

  Instance DB Name Id Snap Started Level Comment

  

  eygle EYGLE 月 :

  

   月 :

  

   月 :

  

   月 :

  

  ………………

    

   月 :

  

   月 :

  

   月 :

  

   月 :

  

   月 :

  

   月 :

  

   月 :

  

   月 :

  

   月 :

  

   月 :

  

   月 :

  

   月 :

  

  eygle EYGLE 月 :

  

   月 :

  

    

  Specify the Begin and End Snapshot Ids

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  输入 begin_snap 的值:

  Begin Snapshot Id specified:

    

  输入 end_snap 的值:

  End Snapshot Id specified:

    

  Specify the Report Name

  ~~~~~~~~~~~~~~~~~~~~~~~

  The default report file name is sp_ _ To use this name

  press <return> to continue otherwise enter an alternative

  输入 report_name 的值: rep txt

    

  Using the report name rep txt

    

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

    

  ERROR: Snapshots chosen span an instance shutdown: RESULTS ARE INVALID

  STATSPACK report for

    

  DB Name DB Id Instance Inst Num Release OPS Host

  

  EYGLE eygle NO AM SERVER

  :ela := ;

  *

  ERROR 位于第 行:

  ORA : 第 行 第 列:

  PLS : 出现符号 ; 在需要下列之一时

  ( +modnotnull<an identifier>

  <a double quoted delimited identifier><a bind variable>avg

  countcurrentexistsmaxminpriorsqlstddevsumvarianceexecute

  foralltimetimestampintervaldate

  <a string literal with character set specification>

  <a number><a single quoted SQL string>

  符号 null 被替换为 ; 后继续

  ORA : 第 行 第 列:

  PLS : 出现符号 ; 在需要下列之一时

  ( +modnotnull<an identifier>

  <a double quoted delimited identifier><a bind variable>avg

  countcurrentexistsmaxminpriorsqlstddevsumvarianceexecute

  foralltimetimestampintervaldate

  <a stri

    

  六 移除定时任务

    

  移除一个定时任务 可以如下操作:

    

  SQL> select job log_user priv_user last_date next_date interval from user_jobs;

  JOB LOG_USER LAST_DATE NEXT_DATE INTERVAL

   PERFSTAT : : : : : trunc(SYSDATE+ / MI )

  SQL> execute dbms_job remove( )

    

  PL/SQL procedure successfully pleted

    

  七 删除历史数据

    

  删除stats$snapshot数据表中的相应数据 其他表中的数据会相应的级连删除

    

  SQL> select max(snap_id) from stats$snapshot;

    

  MAX(SNAP_ID)

  

  

    

  SQL> delete from stats$snapshot where snap_id < = ;

    

   rows deleted

    

  你可以更改snap_id的范围以保留你需要的数据

    

  在以上删除过程中 你可以看到所有相关的表都被锁定

    

  SQL> select a object_id a oracle_username b object_name

  from v$locked_object a dba_objects b

  where a object_id = b object_id

  /

    

  OBJECT_ID ORACLE_USERNAME OBJECT_NAME

  

   PERFSTAT SNAP$

   PERFSTAT STATS$LIBRARYCACHE

   PERFSTAT STATS$ROLLSTAT

   PERFSTAT STATS$SGA

   PERFSTAT STATS$PARAMETER

   PERFSTAT STATS$SQL_STATISTICS

   PERFSTAT STATS$SQL_SUMMARY

   PERFSTAT STATS$ENQUEUESTAT

   PERFSTAT STATS$WAITSTAT

   PERFSTAT STATS$BG_EVENT_SUMMARY

   PERFSTAT STATS$SYSTEM_EVENT

   PERFSTAT STATS$SYSSTAT

   PERFSTAT STATS$SGASTAT

   PERFSTAT STATS$ROWCACHE_SUMMARY

   PERFSTAT STATS$BUFFER_POOL_STATISTICS

   PERFSTAT STATS$LATCH_MISSES_SUMMARY

   PERFSTAT STATS$SNAPSHOT

   PERFSTAT STATS$FILESTATXS

   PERFSTAT STATS$LATCH

   PERFSTAT JOB$

    

   rows selected

    

  八 调整STATSPACK的收集门限

    

  Statspack有两种类型的收集选项

    

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

    

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

    

   .级别(level)

    

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

    

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

    

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

    

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

    

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

    

  SQL>execute statspack snap(i_snap_level=> i_modify_parameter=> true );

    

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

    

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

    

  SQL>execute statspack snap(i_snap_level=> );

    

   .快照门限

    

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

    

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

    

  门限存储在stats$statspack_parameter表中 让我们了结一下各种门限

    

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

    

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

    

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

    

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

    

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

    

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

    

  例如

    

  SQL>execute statspack modify_statspack_parameter(i_buffer_gets_th=> i_disk_reads_th=> ;

    

  一一 在 上的安装配置

    

  a 数据库状况

    

  SQL> select * from v$version;

    

  BANNER

  

  Oracle i Enterprise Edition Release bit Producti

  PL/SQL Release Production

  CORE Version Production

  TNS for HPUX: Version Production

  NLSRTL Version Production

    

  b 运行statscbps sql

    

  SQL> @statscbps sql

    

  View created

    

  Synonym created

    

  Grant succeeded

    

  SQL>

    

cha138/Article/program/Oracle/201311/18787

相关参考

知识大全 ORACLE性能诊断―学习statspack笔记(二)

ORACLE性能诊断―学习statspack笔记(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 mac下配置nginx+php+mysql方法说明

本文章来给各位同学介绍mac下配置nginx+php+mysql方法有需要了解的同学可进入参考额本来以为mac下可以用lnmp一键安装包的但是使用后才发现竟然不行后来使用了大家都推荐的homebrew

知识大全 测试安装好的Statspack以及使statspack自动收集

测试安装好的Statspack以及使statspack自动收集  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 现在3000元能配一个什么配置的电脑,要求越详细越好。

现在3000元能配一个什么配置的电脑,要求越详细越好。CPUIntel酷睿i32120/盒装¥760(INTEL高性能双核)主板索泰ZT-H61D3白金版¥399硬盘希捷250G¥360内存金士顿DD

知识大全 学习Oracle--Statspack分析

学习Oracle--Statspack分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ~~~

知识大全 ORACLE性能诊断―学习statspack笔记(一)

ORACLE性能诊断―学习statspack笔记(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 Motorola(摩托罗拉) 面试记zt

Motorola(摩托罗拉)面试记zt  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!面试还可以把我

800G臭氧发生器配置技术方案

设备技术性能、参数的描述气源部分一、基本配置方案流程图:①无油空压机②储气罐③前过滤器④干燥器⑤后过滤器⑥精过滤器二、配置说明两台或多台空压机合用一套后处理设备时,可根据实际用气量来选配后处理设备的规

800G臭氧发生器配置技术方案

设备技术性能、参数的描述气源部分一、基本配置方案流程图:①无油空压机②储气罐③前过滤器④干燥器⑤后过滤器⑥精过滤器二、配置说明两台或多台空压机合用一套后处理设备时,可根据实际用气量来选配后处理设备的规

800G臭氧发生器配置技术方案

设备技术性能、参数的描述气源部分一、基本配置方案流程图:①无油空压机②储气罐③前过滤器④干燥器⑤后过滤器⑥精过滤器二、配置说明两台或多台空压机合用一套后处理设备时,可根据实际用气量来选配后处理设备的规