昨天在做生产监控的时候发现有个库的表空间不够了,就发邮件给客户的dba去处理,但是得到的反馈是尝试添加的时候发现已经超过了数据文件的最大数限制。这个错误毫无疑问就是"ORA-00059: Maximum Number Of db_files Exceeded"
一看到这个问题,一下子感觉就头大了。这个参数是在创建数据库的时候就应该考虑到的。竟然没有考虑周全,如果控制文件中的maxdatafiles没有值太小,只能重建控制文件了。如果本身数据文件的数量超过了最大限制,甚至还需要考虑重建数据库,如果碰到这种事就太郁闷了。
查看oracle的文档,赫然可以看到以下的参数是需要在创建数据库(尤其是RAC)中需要考虑的。
ACTIVE_INSTANCE_COUNT
ARCHIVE_LAG_TARGET
CLUSTER_DATABASE
CLUSTER_DATABASE_INSTANCES
CONTROL_FILES
DB_BLOCK_SIZE
DB_DOMAIN
DB_FILES
DB_NAME
DB_RECOVERY_FILE_DEST
DB_RECOVERY_FILE_DEST_SIZE
DB_UNIQUE_NAME
UNDO_MANAGEMENT
对于参数db_files的解释如下:
Property
Description
Parameter
type
Integer
Default
value
200
Modifiable
No
Range of
values
Minimum: the largest among the
absolute file numbers of the datafiles in the database
Maximum: operating system-dependent
Basic
Real Application
Clusters
Multiple instances must have the same
value.
当前库是11gR2版本,默认值是200。
在其它版本中的情况关于maxdatafiles的情况如下: