Oracle数据库statspack的创建等若干问题

在创建Oracle数据库statspack时遇到问题,执行statspack.snap语句报错PLS-00201。通过分析,发现可能是由于表空间初始化大小设置不当导致。解决方案包括删除并重新创建perfstat用户和表空间,调整表空间创建语句,确保initial大小设置正确。按照修正后的步骤,成功创建statspack。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sqlplus客户端中执行语句“sqlplus perfstat/perfstat @%binPath%/setSnap.txt

 

setSnap.txt里面的内容为

EXECUTE statspack.snap;

select snap_id from stats$snapshot;

quit

可是没有创建statspack,当执行这条语句时,抛出以下异常:

BEGIN statspack.snap; END;

      *

ERROR at line 1:

ORA-06550: line 1, column 7:

PLS-00201: identifier 'STATSPACK.SNAP' must be declared

ORA-06550: line 1, column 7:

PL/SQL: Statement ignored

 

很明显,'STATSPACK.SNAP'没有创建起来,于是,上网查找创建STATSPACK.SNAP的过程。网上资料一大堆。比如:

http://blog.youkuaiyun.com/lejuo/archive/2008/12/18/3552211.aspx

http://piaoling.javaeye.com/blog/294119

 

但是,在照搬网上说法,要求在sqlplus中执行@ spcreate.sql时候,过程中有可能出错,spcreate.sql脚本执行过程中,如果有任何错误,则会中断执行。于是又执行@spdrop.sqlspdrop.sql脚本执行过程中,如果有些错误,不会中断执行,继续执行下面的语句。

 

对于执行spcreate.sql脚本时,在创建用户perfstat或者创建表空间perfstat之后,如果会出错,有可能要删除用户perfstat,或者删除表空间perfstat

 

我的创建表空间的脚本是:

CREATE TABLESPACE perfstat

DATAFILE 'F:/oracle/product/10.2.0/oradata/g10/perfstat01.dbf' SIZE 100m

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 100k;

创建完之后,成功了。可是执行spcreate.sql脚本时,出错了,报出:‘…initial…’等错误。

 

分析问题,可能是在创建表空间过程中,初始表空间没有指定大小抑或太小了。

 

于是,修正步骤如下:

1.删除原有的perfstat用户和perfstat空间。

sysdba身份用sqlplus连接oracle

sqlplus system/manager

 

执行语句:

drop user perfstat cascade;

drop tablespace perfstat;

同时删除原有的表空间文件:

F:/oracle/product/10.2.0/oradata/g10/PERFSTAT01.DBF

 

 

2.重新创建statspack.snap

按照的说法:http://piaoling.javaeye.com/blog/294119

只是,创建表空间的语句变成了:

 

create tablespace PERFSTAT

datafile'F:/oracle/product/10.2.0/oradata/g10/perfstat01.dbf' size 500M

autoextend on next 500M maxsize unlimited

minimum extent 5M

default storage( initial 5M

next 5M

minextents 1

maxextents unlimited

pctincrease 0);

 

这样的创建过程经过验证无误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机场信息系统研究员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值