Solaris上安装了Oracle 9i。
通过脚本创建表空间的时候提示db_files达到最大值。
要怎么修改这个db_files,然后怎么应用?我试过找到home/oracle/oracle/product/9.2.0/dbs/init.ora文件,修改其中的db_files然后重新启动服务没有效果。
通过脚本创建表空间的时候提示db_files达到最大值。
要怎么修改这个db_files,然后怎么应用?我试过找到home/oracle/oracle/product/9.2.0/dbs/init.ora文件,修改其中的db_files然后重新启动服务没有效果。
未意识到对其修改,而使用其默认值(往往比需要值要小)。但随着数据量的增多,需要不断
地往表空间内增加数据文件,但是maxd atafiles的值限定了数据文件的最大个数,数据文件个
数增加到最大值后,若再继续追加,就会导致“数据文件个数超过了最大值”的错误,以至后
数据文件的最大个数因操作系统的不同而不同,但是,现在运行着的ORACLE7数据库
中,数据文件的最大个数可以达到1000个以上,即maxdatafiles的参数值可设为1000或更大,
远远大于其安装时的默认值(本系统安装时的默认值为30),如果遇到了“数据文件个数超过
了最大值”的问题时,可通过修改maxdatafiles参数来解决,下面就介绍一下具体的修改方法
1.实验环境
ALPHA8200服务器,操作系统Digial UNIX V3.2C,Oracle7.2数据库。
2.准备工作
启动ORACLE数据库,进行下列操作:
$sqldba mode=line(回车)
SQLDBA>connect internal(回车) SQLDBA>alter database backup controlfile to trace;( 回车) SQLDBA>show parameter user_dump_dest(回车)
可以看到trace文件“ora_3044.trc”在/volora/oracle/rdbms/log目录下。
将trace文件/volora/oracle/rdbms/log/ora_3044.trc拷贝成 df ileadd.sql。
用vi编辑dfileadd.sql文件,修改maxdatafiles参数(由原来的30改为300)。
Dfileadd.sql文件如下:
Dump file/volora/oracle/rdbms/log/ora_3044.trc
Oracle7 Server Release7.2.2.3.0 with the64-bit opti on- Production Release
With the distributed and parallel query options
PL/SQL Release2.2.2.3.0- Production
ORACLE_HOME=/volora/oracle
ORACLE_SID= ora72
Oracle process number:8 Unix process id:3044 System name: OSF1
Node name: slserver.sl.cnpc.co.cn
Release: V3.2
Version:148
Machine: alpha
Wed Apr2315:54:281997
Wed Apr2315:54:281997
*** SESSION ID:(9.1455)1997.04.23.15.54.28.359
# The following commands will create a new control file and use it
# to open the database.
# No data other than log history will be lost. Addi tional logs may
# be required for media recovery of offline data fi les. Use this
# only if the current version of all online logs ar e available.
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE"ORA72" NORESETLOG S NOARCHIVELOG
MAXLOGFILES32
MAXLOGMEMBERS2
MAXDATAFILES300
MAXINSTANCES8
MAXLOGHISTORY800
LOGFILE
GROUP1'/volora/oracle/dbs/log1ora72.dbf' SIZE500K,
GROUP2'/volora/oracle/dbs/log2ora72.dbf' SIZE500K,
GROUP3'/volora/oracle/dbs/log3ora72.dbf' SIZE500K
DATAFILE
'/volora/oracle/dbs/systora72.dbf',
'/volora/oracle/dbs/rbsora72.dbf',
'/volora/oracle/dbs/tempora72.dbf',
'/volora/oracle/dbs/toolora72.dbf',
'/volora/oracle/dbs/usrora72.dbf',
'/volora/oracle/dbs/jhc.dbf',
'/volora/oracle/dbs/useradd.dbf'
;
# Recovery is required if any of the datafiles are restored backups,
# or if the last shutdown was not normal or immedia te.
RECOVER DATABASE
# Database can now be opened normally. ALTER DATABASE OPEN;
将以上dfileadd.sql文件中横线上没用的斜体部分行删掉,存盘。
最后关闭数据库,并做好数据库的备份,包括数据和控制文件的备份,起码要用export
将数据全部卸出。有条件的话,尽量做全备份,预防在数据库重建失败后瘫痪,因为下一步工
作牵扯到对数据库的破坏和重新生成工作。
3.修改maxdatafiles参数的过程
3.1删除/volora/oracle/dbs目录下面所有的控制文件(共3个):
$rm*.ctl(回车)
3.2重新生成数据库(生成新的控制文件、数据文件等)
$sqldba mode=line(回车)
SQLDBA>connect internal(回车)
运行dfileadd.sql:
SQLDBA>@dfileadd.sql(回车)
ORACLE instance started.
Statement processed.
Media recovery complete.
Statement processed.
SQLDBA>alter database open noresetlogs;(回车)
至此,数据库的刷新工作已完成,可以投入正常运行了
问题已经解决了,用脚本重新建了数据库,在create database的时候指定了DB_FILES参数,并按照 NinGoo(宁哥)的方法重建了控制文件。
感谢俩位的帮助,如果有人遇到类似问题欢迎与我交流,请邮件联系。[email protected]