Oracle 9i配置Statspack工具(2)

本质上说,Statspack和AWR相同,都是一种基于采样Sampling的性能监控工具。在早期的版本中,Oracle已经推出了一系列的动态视图来反映数据库和系统“实时”性能情况。而所谓的Snapshot就是在某一个时间点,Oracle程序将这些实时数据保留下来,作为一个snapshot点记录在数据库表中。Statspack和AWR报告都是基于多个Snapshot的做差来形成的。
 
 

Statspack和AWR最明显的差异在于Statspack默认是不会自动进行Snapshot动作,而AWR默认是提供每一小时进行采样的功能的。

所以说,AWR便于进行故障时段分析,而Statspack需要故障中或者故障重演。默认执行statspack镜像的方法很简单。

SQL> conn perfstat/perfstat@ora9i

Connected to Oracle9i Enterprise Edition Release 9.2.0.1.0

Connected as perfstat

SQL> exec statspack.SNAP;

PL/SQL procedure successfully completed

调用statspack包的snap方法,可以直接收集snapshot。此时采用默认的收集策略。基础表stats$snapshot可以查看到保存的信息。

SQL> select snap_id, dbid, to_char(snap_time, 'yyyy-mm-dd hh24:mi:ss') snap_time, snap_level from stats$snapshot;
 
 

SNAP_ID      DBID SNAP_TIME          SNAP_LEVEL

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

1 2629872507 2014-02-07 10:51:30          5

注意:我们此处采用了Oracle的默认配置。snapshot方法镜像,我们有很多的选择余地。这些内容留待我们之后讨论。此处目标是创建出一个snapshot。

如果观察perfstat用户下的数据表,我们会发现很多以stats$作为前缀的数据表。这些表中保存的数据就是以snapshot为引领的性能数据。

同AWR一样,生成statspack报告最少要有两个snapshot形成,而且snapshot中间不允许关机启动动作。

SQL> exec statspack.SNAP;

PL/SQL procedure successfully completed

SQL> select snap_id, dbid, to_char(snap_time, 'yyyy-mm-dd hh24:mi:ss') snap_time, snap_level from stats$snapshot;
 
 

SNAP_ID      DBID SNAP_TIME          SNAP_LEVEL

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

1 2629872507 2014-02-07 10:51:30          5

2 2629872507 2014-02-07 11:05:00          5

在创建出两个报告的情况下,我们就可以生成报告了。注意:Statspack和AWR报告在生成过程中,有细微差别。Statspack是调用客户端脚本,而AWR核心程序在服务器端的程序包里面。所以,强烈推荐使用服务器端进行报告生成动作。
 
SQL> conn perfstat/perfstat@ora9i

已连接。

SQL>

SQL> @?/rdbms/admin/spreport  //生成脚本

Current Instance

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

DB Id    DB Name      Inst Num Instance

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

2629872507 ORA9I              1 ora9i

Instances in this Statspack schema

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

DB Id    Inst Num DB Name      Instance    Host

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

2629872507        1 ORA9I        ora9i        ACCA-8535F03

015

Using 2629872507 for database Id

Using          1 for instance number

Specify the number of days of snapshots to choose from

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

Entering the number of days (n) will result in the most recent

(n) days of snapshots being listed.  Pressing <return> without

specifying a number lists all completed snapshots.

Snap

Instance    DB Name        Snap Id  Snap Started    Level Comment

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

ora9i        ORA9I                1 07 2月  2014 10:5    5

1

2 07 2月  2014 11:0    5

5

Specify the Begin and End Snapshot Ids

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

输入 begin_snap 的值:  1

Begin Snapshot Id specified: 1

输入 end_snap 的值:  2

End  Snapshot Id specified: 2

Specify the Report Name

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

The default report file name is sp_1_2.  To use this name,

press <return> to continue, otherwise enter an alternative.

输入 report_name 的值:

Using the report name sp_1_2

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e3444cc863e33ebfd53fdeeb85f81116.html