分类: Oracle
2010-06-15 08:43:34
oracle中在创建表空间的时候经常会遇到数据文件超过就大数的限制,如何解决 这个问题呢?
这个问题受两个参数的限制一个是maxdatafiles,一个是db_files。maxdatafiles在控制文件中指定,db_files在参数文件中指定,一般db_files<=maxdatafiles:
select count(*) from dba_data_files;
当查询已经达到db_files时,需要修改db_files,把这个值调大。修改方法是,在8i中,在init$ORACLE_SID.ora指定这个值即可,如在文件末尾添加 db_files=xxx,然后重启数据库即可,在9i中如果是使用spfile参数文件的话,使用下面的sql:lter system set db_files=xxx scope=both; 即可。
当db_files达到maxdatafiles的值时,就要修改maxdatafiles,把这个值调大,因为这个参数值在控制文件中指定,要修改的话,就要 重建控制文件,方法如下:
sqlplus "/ as sysdba"
alter database backup controlfile to trace;
show parameter user_dump_dest;
到user_dump_dest参数指定的目录查看刚才生成的trace文件,把它改名为 create_control.sql,用vi修改这个文件,把注释以及无关的文件描述删除后保存。修改maxdatafiles参数的值,把它调大到你所要的值。
sqlplus "/ nolog"
connect internal
@create_control.sql
脚本会启动数据库,到这一步,修改即可成功。