这个案例发生的时候,我在外地,项目经理通过操作解决了。我整理出来分享给大家。问题现象我们需要对OracleDB下的一个表空间进行扩容,但是在执行扩容命令时,Oracle报如下错误:ORA-00059:maximumnumberofDB_FILESexceeded错误解释:DB_FILES定义了oracle数据中的数据文件时数据文件个数超过该参数设置的值,会报ORA-00059错误。排错既然知道了错误的原因,那么从这里开始,先检查现有的DB_FILES的大小:以sys用户登录数据库服务器,执行showparameterdb_files;结果是300,跟实际相比,文件刚好300,没办法再扩容了。继续执行altersystemsetdb_files=1000scope=spfile;修改这里的参数为1000说明:这个参数设置的值的大小不会影响效率,但是单纯控制数据文件个数会产生新的问题$sqlplus/assysdbaSQL>shutdownimmediate;ORA-24324:服务句柄未初始化ORA-24323:不允许值ORA-01089:正在进行立即关闭-不允许任何操作SQL>shutdownabort;ORA-01031:权限不足SQL>startup097ano:/shutdownoperationofthisinstanceinprogressORA-09968:unabletolock文件HPUX-ia64Error:13:Permissiondenied补充信息:23564当我们重新启动库的运行时,发现无法停止。从报错来看,好像权限还是被deniedWegotlost了。解决方案1.重新授权文件夹rx8640a#[/]chown-Roracle:oinstall/u01/app/oracle2,清除内存$ipcs-pmbTIDKEYMODEOWNERGROUPSEGSZCPIDLPIDSharedMemory:m00x411c09d7--rw-rw-rw-rootroot348943943m10x4e240002--rw-rw-rw-rootroot617609438401m20x412080da--rw-rw-rw-root根8192943945m30x00a5c581--rw--------sfmdbusers1046937624072410m40x411c05e8--rw-------rootroot409626803291m50x06347849--rw-rw-rw-rootroot6554428562883m217907260-0000w----oracleoinstall592661708810146263m70x0c6629c9--rw-r-----rootroot17880696289411235m327760x01200452--rw-rw-r--rootroot4192323832383238m11235m--rw-r90rootroot419229242924100x01200450--rw-rw-r--根根419229382938m110x4918031b--rw-r--r--根根2291229762972??m120x01200448--rw-rw-r--根根41922991xa19242----------rootroot132303232m983180x00000000D-rw-r-----oracleoinstall593913446410146263m983190x00000000D-rw-r----oracle6oinstall827426280263983200x00000000D-rw-r-----oracleoinstall4505610146263$ipcrm-m98318$ipcrm-m98319$ipcrm-m983203.正常启动数据库:SQL>startup;ORACLEinstancestarted.TotalSystemGlobalArea2.0552E+10字节固定大小2128632字节可变大小9439184136字节数据库缓冲区1.1107E+10字节重做缓冲区4259840字节数据库已安装。数据库已打开。查看调整后的参数值,已经到1000了,这下扩表空间就没问题了,呵呵这里有一篇文章:http://www.linuxidc.com/Linux...本案例的关键环节是执行ipcs查看当前系统资源占用情况。上面有3个oracle进程,所以需要在系统级别清除才能正常启动数据库。
