Home >Database >Mysql Tutorial >Oracle Statspack安装使用攻略

Oracle Statspack安装使用攻略

WBOY
WBOYOriginal
2016-06-07 17:26:49855browse

oracle Statspack从Oracle8.1.6被引入,马上成为DBA和Oracle专家用来诊断数据库性能的强有力工具。通过Statspack我们可以很容易的

介绍:
---
Oracle Statspack从Oracle8.1.6被引入,马上成为DBA和Oracle专家用来诊断数据库性能的强有力工具。通过Statspack我们可以很容易的确定Oracle数据库的瓶颈所有,记录数据库性能状态,也可以使远程技术人员迅速了解的的数据库运行状况。所以,了解和使用Statspack对于DBA来说至关重要。


在Statspack发布之前,我们经常用来诊断数据库的工具是两个脚本utlbstat.sql和utlestat.sql。BSTAT/ESTAT是一个非常简单的性能诊断工具。UTLBSTAT获得开始时很多V$视图的快照,UTLESTST通过先前的快照和当前视图生成一个报表。实际上此报表相当于statspack的两个采样点。
Statspack通过连续的采样,能够给我们提供很重要的趋势分析数据,这是一个巨大的进步。


所以,能够使用Statspack的环境,就尽量不使用BSTAT/ESTAT方式来诊断数据库问题。
(Oracle816以前的版本使用Statspack,需要使用statscbps.sql脚本建立一个V$buffer_pool_statistics视图。可以到oracle网站上下载。)


+++
原理:
---
1,运行oracle自带脚本,生成一系列的统计表。
2,生成快照,采样(运行statspack.snap可生成快照,一般通过自动任务生成快照)
3,,根据快照生成报告


+++
一,准备
---


1,检查部分参数值
--job_queue_process:为了能够建立自动任务,执行数据收集,此参数必须大于0
alter system set job_queue_processess=6;


---timed_statistics,设置为true,使收集的时间信息存储在V$sessstats和V$sysstats等动态性能视图中,但会消耗资源,可以在使用Satspack之前设为true,采样过后,把该参数动态修改为false.
alter system set timed_statistics=true;
2,脚本
使用此功能,需要运行oracle自带脚本,在数据库中生成一系列的表和视图,用于收集各种信息。
脚本位于%oracle_home%\rdbms\admin目录下,oracle816下是一组以stat开头的文件,以后的版本是一组以sp开头的文件。


+++
二,安装
---


1,以sysdba身份登录。
8i可以用internal用户登录:sqlplus internal
9i及以后版本,可以用sys用户以sysdba身份登录:sqlplus / as sysdba
(最好转到脚本所有目录%oracle_home%\rdbms\admin,便于执行脚本)


2,创建表空间,用于保存采样数据
create tablespace perfstat datafile 'e:\hs01\dat\perstat.ora'
size 100m
extent management local;
Statspack的报表数据还是相当占空间的,特别是在多次连续采样的情况下,所以不能太小,最小100M,否则创建对象会失败。


3,运行脚本,安装statspack
Oracle816:%oracle_home%\rdbms\admin\statscre.sql
816以后:%oracle_home%\rdbms\admin\spcreate.sql


--脚本会创建用户perfstat,需要指定此用户密码。
输入 perfstat_password 的值:  perfstat


--需要输入用户perfstat使用的表空间:指定新建的表空间即可。
输入 default_tablespace 的值:  perfstat


--需要指定用户perfstat使用的临时表空间。
输入 temporary_tablespace 的值:  tmp10


--安装成功,可以看到如下信息:
Creating Package STATSPACK...


程序包已创建。


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


程序包体已创建。


没有错误。


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


--查看错误信息
NT下:
host find "ORA-" *.LIS
host find "err-" *.LIS


Unix下:
grep ORA- *.lis
grep err *.lis


如果出现错误,可以运行脚本删除相关内容:@%oracle_home%\rdbms\admin\spdrop.sql
(注意:也要在sysdba下运行脚本删除相关对象)
然后再重新运行脚本安装。


这个安装过程创建了一系列的表,用于存入采样数据。
查看新建表:
select dt.table_name from dba_tables dt where dt.owner='PERFSTAT'
conn perfstat/perfstat
select table_name from user_tables;


+++

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn