oracle的ubixodbc,Oracle表空间添加数据文件报:ORA-00059

在尝试为Oracle数据库的表空间增加数据文件时,遇到了ORA-59错误。问题源于数据库参数db_files的值限制了数据文件的数量。通过检查发现db_files和控制文件的maxdatafiles参数都设置为200,超过了这个限制导致操作失败。解决方案是调整db_files参数值到999,然后重启数据库。在完成这些步骤后,可以顺利添加数据文件。
摘要由CSDN通过智能技术生成

客户要求给经分库的几个表空间中增加数据文件,于是把脚本写好之后,就开始执行...,在进行的一半时,数据库报ORA-59错误,见下:

Fri Apr 29 00:08:13 2011

ORA-59 signalled during: alter tablespace TBS_UBI_DW add

datafile '/dev/rv05_data043' size 4090M autoextend off...

Fri Apr 29 00:24:18 2011

alter tablespace TBS_UBI_DW add datafile '/dev/rv05_data043'

size 4090M autoextend off

Fri Apr 29 00:24:32 2011

ORA-59 signalled during: alter tablespace TBS_UBI_DW add

datafile '/dev/rv05_data043' size 4090M autoextend off...

很明显,是由于datafile超出了数据库参数db_files参数值了。

查看当前数据库已有的数据文件数:

SQL> select count(*) from v$datafile;

COUNT(*)

----------

200

查看数据库的参数设置:

SQL> show parameter db_files;

NAMETYPEVALUE

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

db_filesinteger200

trace下控制文件,检查下控制文件MAXDATAFILES参数设置:

SQL> alter database backup controlfile to trace;

Database altered.

***/udump>more haibi_ora_901226.trc

----省略----

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "HAIBI"

NORESETLOGSNOARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 200

MAXINSTANCES 8

MAXLOGHISTORY 18688

----省略----

可以看出db_files和控制文件中的maxdatafiles值均为200,所以添加数据文件失败也就情有可原了...

不过,需要说明的是,自Oracle 9i及之后,db_files是硬限制,控制文件中的maxdatafiles是软限制(主要为了尽可能减小控制文件大小),也就是说,当数据库中的数据文件数超过了控制文件中的参数maxdatafiles值时,控制文件中的maxdatafiles是会自动增加的,但是db_files是静态参数,若需修改,需要重启DB。

处理过程:

1、调整参数db_files:

SQL> alter system set db_files=999 scope=spfile;

System altered.

2、停止数据库

SQL>!lsnrctl stop

SQL>shutdown immediate

3、启动数据库

SQL>!lsrnctl start

SQL>startup

4、确认修改的参数db_files

SQL> show parameter db_files;

NAMETYPEVALUE

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

db_filesinteger999

5、继续添加数据文件就不会有问题了

[@more@]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值