谁控制数据文件最大数限制是 db_files还是控制文件中的maxdatafiles??

今天朋友问我数据库的数据数据文件已经到达最大限制了。
数据有两个参数db_files和控制文件中的maxdatafiles,
想测试一下如果参数这个db_files的限制会如何,而且controlfile中有个maxdatafiles的限制,不知道这两个限制到底谁是真正生效的

SQL> show parameter db_files;


NAME                             TYPE        VALUE

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

db_files                             integer     200

 

[root@test ~]# vi /app/test.sh


# !/bin/bash

# echo "add tablespace"

for ((i=1;i<200;i++))

do

echo "alter tablespace users add datafile '/app/oradata/orcl/user${i}.dbf' size 1m;">>/tmp/test.txt

done

~

[root@test ~]# sh /app/test.sh

用生成的test.txt文件在server端批量加载datafile,达到db_files的限制后出现:

alter tablespace users add datafile '/app/oradata/orcl/user197.dbf' size 1m


ORA-00059: 超出 DB_FILES 的最大值

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


  COUNT(*)

----------

       200


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


System altered


重启数据库后

SQL> show parameter db_files;


NAME                                 TYPE        VALUE

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

db_files                             integer     300


SQL> alter tablespace users add datafile 'f:\app\oradata\xiaoyu\user197.dbf' size 1m;


Tablespace altered

只要db_files够,每当超过maxdatafiles,maxdatafiles会翻倍增加。
比如原来最大文件数是100,当创建101个文件时,最大文件数会变成200,当创建201个文件时,最大文件数变成400,然后是800、1600,等

真正起主导地位的是parameter的参数db_files,并不是controlfile中的maxdatafiles参数,
而网络上有文章提到需要重建controlfile重置maxdatafiles大于db_files,而后修改db_files的方法是不可取的,
也提醒大家对于网络上的文章还是需要用辨别的眼光去看,官方文档都可能有错误,套用某位大师的认知,
不轻易相信任何人任何书籍的论点,必须要自己测试 推敲认知这个论点。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12798004/viewspace-1969028/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12798004/viewspace-1969028/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值