电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

Statspack的安装使用说明


发布日期:2021/9/11
 

在数据库管理中Oracle提供的statspack是一个很强大的工具通过Statspack可以收集系统信息诊断数据库故障也方便第三方技术支持进行远程阅读和建议

看到很多人还不太了解这个工具的使用论坛上同样的问题很多所以写了一下一个说明文档主要涉及安装配置和数据收集

关于参数说明和性能部分还在继续进行中

先帖一部分写完的出来希望通过这些文字可以使不了解的朋友学会怎样配置和使用Statspack!

下面是正文

Oracle Statspack 从Oracle开始被引入Oracle并马上成为DBA和Oracle专家用来诊断数据库性能的强有力的工具通过Statspack我们可以很容易的确定Oracle数据库的瓶颈所

记录数据库性能状态因此了解和使用Statspack对于DBA来说至关重要

在数据库中Statspack的脚本位于$ORACLE_HOME/RDBMS/ADMIN目录下对于ORACLE是一组以stat开头的文件对于ORACLE是一组以sp开头的文件

在OracleStatspack第一次发布但是你也可以在以下链接找到可用于Oracle~Oracle的版本

以前的版本使用Statspack你需要使用statscbpssql脚本建立一个v$buffer_pool_statistics视图该脚本包含在以上链接下载的tar文件中

访问该链接你可能需要一个OTN帐号申请该帐号是免费的

在Statspack发布之前我们通常能够使用诊断数据库的工具是两个脚本UTLBSTATSQL和UTLESTATSQLBSTAT/ESTAT是一个非常简单的性能诊断工具UTLBSTAT获得开始时很多

V$视图的快照UTLESTAT通过先前的快照和当前视图生成一个报表实际上通过这个报表我们很难读出或者解释系统性能方面的问题Statspack改变了这一切通过连续的数据收集

Statspack能给我们提供至关重要的趋势分析这是一个巨大的进步

下面我们来讲一讲Statspack的安装配置使用解读

系统参数

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

job_queue_processes

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

timed_statistics

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

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

该参数使收集的时间信息存储在在V$SESSTATS 和V$SYSSTATS 动态性能视图中

Timed_statistics参数可以在实例级进行更改

SQL> alter system set timed_statistics = true;

System altered

SQL>

安装Statspack

安装Statspack需要用internal身份登陆或者拥有SYSDBA(connect / as sysdba)权限的用户登陆需要在本地安装或者通过telnet登陆到服务器

在Oracle版本中运行statscresql;在Oracle版本中运行spcreatesql

首先登陆到数据库最好转到$ORACLE_HOME/RDBMS/ADMIN目录这样我们执行脚本就可以方便些

D:\>cd oracle\ora\rdbms\admin

D:\oracle\ora\RDBMS\ADMIN>sqlplus internal

SQL*Plus: Release Production on 星期二 ::

(c) Copyright Oracle Corporation All rights reserved

请输入口令:

连接到:

Oraclei Enterprise Edition Release Production

With the Partitioning option

JServer Release Production

SQL> select instance_namehost_nameversionstartup_time from v$instance;

INSTANCE_NAME

HOST_NAME

VERSION STARTUP_TI

eygle

AMSERVER

SQL>

检查数据文件路径及磁盘空间以决定创建数据文件的位置

SQL> select file_name from dba_data_files;

FILE_NAME

D:\ORACLE\ORADATA\EYGLE\SYSTEMDBF

D:\ORACLE\ORADATA\EYGLE\RBSDBF

D:\ORACLE\ORADATA\EYGLE\USERSDBF

D:\ORACLE\ORADATA\EYGLE\TEMPDBF

D:\ORACLE\ORADATA\EYGLE\TOOLSDBF

D:\ORACLE\ORADATA\EYGLE\INDXDBF

D:\ORACLE\ORADATA\EYGLE\DRDBF

D:\ORACLE\ORADATA\EYGLE\GGQIANGDBF

D:\ORACLE\ORADATA\EYGLE\EQSPDBF

D:\ORACLE\ORA\DATABASE\MP_DATADBF

D:\ORACLE\ORA\DATABASE\MP_INDXDBF

D:\ORACLE\ORA\DATABASE\MP_TEMPDBF

D:\ORACLE\ORA\DATABASE\MP_IDNXDBF

D:\ORACLE\ORADATA\EYGLE\HRMDBF

D:\ORACLE\ORADATA\EYGLE\TIBDBF

D:\ORACLE\ORADATA\EYGLE\EQSPDBF

D:\ORACLE\ORADATA\EYGLE\RMAN_TSDBF

D:\ORACLE\ORADATA\EYGLE\EQSPDBF

D:\ORACLE\ORADATA\EYGLE\EAPPDBF

D:\ORACLE\ORADATA\EYGLE\EQSPDBF

D:\ORACLE\ORADATA\EYGLE\AMDBF

D:\ORACLE\ORADATA\EYGLE\SYSTEMDBF

D:\ORACLE\ORADATA\EYGLE\FNCDBF

D:\ORACLE\ORADATA\EYGLE\HH_AMORA

已选择

SQL>

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

M的测试表空间

SQL> create tablespace perfstat

datafile d:\oracle\oradata\eygle\perfstatdbf

size M;

表空间已创建

SQL>

检查是否存在安装所需要的脚本文件

SQL> host dir sp*

驱动器 D 中的卷没有标签

卷的序列号是

D:\oracle\ora\RDBMS\ADMIN 的目录

: spautosql

: spcpkgsql

: spcreatesql

: spctabsql

: spcusrsql

: spdoctxt

: spdropsql

: spdtabsql

: spdusrsql

: sppurgesql

: spreportsql

: sptruncsql

: spuexppar

: spupsql

个文件 字节

个目录 可用字节

接下来我们就可以开始安装Statspack了这期间会提示你输入缺省表空间和临时表空间的位置输入我们为perfstat用户创建的表空间和你的临时表空间

SQL> @spcreate

Specify PERFSTAT users default tablespace

输入 default_tablespace 的值: perfstat

Using perfstat for the default tablespace

用户已更改

用户已更改

Specify PERFSTAT users temporary tablespace

输入 temporary_tablespace 的值: temp

如果安装成功你可以看到如下的输出信息

SQL> host type spcpkglis

Creating Package STATSPACK

程序包已创建

没有错误

Creating Package Body STATSPACK

程序包主体已创建

没有错误

NOTE:

SPCPKG complete Please check spcpkglis for any errors

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

SQL> host dir *lis

驱动器 D 中的卷没有标签

卷的序列号是

D:\oracle\ora\RDBMS\ADMIN 的目录

: spcpkglis

: spctablis

: spcusrlis

: spdtablis

: spdusrlis

个文件 字节

个目录 可用字节

SQL> host find ORA *lis

SQL> host find err *lis

SPAUTOLIS

SPCPKGLIS

SPCPKG complete Please check spcpkglis for any errors

SPCTABLI

上一篇:AIX 5L上安装RAC的遭遇

下一篇:临时表更适合做插入和查询操作