问题描述:
当修改了参数文件spfile中的参数之后,数据库无法启动
解决方法:
一:利用sqlplus来创建pfile来重新启动数据库
- [oracle@kel sqlldr]$ sqlplus / as sysdba
-
- SQL*Plus: Release 10.2.0.1.0 - Production on Thu May 23 19:28:07 2013
-
- Copyright (c) 1982, 2005, Oracle. All rights reserved.
-
- Connected to an idle instance.
-
- SQL> create pfile from spfile;
-
- File created.
然后找到新创建的pfile文件,修改刚刚修改的参数,进行还原,然后再进入sqlplus使用:
- [oracle@kel sqlldr]$ sqlplus / as sysdba
-
- SQL*Plus: Release 10.2.0.1.0 - Production on Thu May 23 19:29:20 2013
-
- Copyright (c) 1982, 2005, Oracle. All rights reserved.
-
- Connected to an idle instance.
-
- SQL> startup pfile=$ORACLE_HOME/dbs/initorcl.ora <span style="color:#ff0000;"> ----必须填写pfile的完整路径或者sqlplus在当前pfile文件路径下直接写文件名</span>
- ORACLE instance started.
-
- Total System Global Area 176160768 bytes
- Fixed Size 2019384 bytes
- Variable Size 121638856 bytes
- Database Buffers 50331648 bytes
- Redo Buffers 2170880 bytes
- Database mounted.
- Database opened.
- SQL>
然后重新创建spfile文件,重新启动数据库
- SQL> create pfile from spfile;
-
- File created.
二:使用现在的spfile重新创建pfile
- [oracle@kel ~]$ cd $ORACLE_HOME/dbs
- [oracle@kel dbs]$ strings spfileorcl.ora
- orcl.__db_cache_size=50331648
- orcl.__java_pool_size=4194304
- orcl.__large_pool_size=4194304
- orcl.__shared_pool_size=113246208
- orcl.__streams_pool_size=0
- *.audit_file_dest='/home/oracle/admin/orcl/adump'
- *.audit_sys_operations=TRUE
- *.audit_trail='DB'
- *.background_dump_dest='/home/oracle/admin/orcl/bdump'
- *.compatible='10.2.0.1.0'
- *.control_files='/home/oracle/oradata/orcl/control01.ctl','/home/oracle/oradata/orcl/control02.ctl','/home/oracle/oradata/orcl/control03.ctl'
- *.core_dump_dest='/home/oracle/admin/orcl/cdump'
- *.db_block_size=8192
将这些显示的内容都拷贝进一个新文件中,命名为initorcl.ora,然后照着第一种方法来进行重新启动数据库即可。
三:利用alterlog中的信息重建spfile
找到alterlog文件,在每次数据库启动的时候,alterlog中均会写入数据库的初始化参数,然后将这些内容拷贝到一个新文件initorcl.ora文件中,然后进行重启即可
总结:
主要就是如何来新建一个pfile文件,将数据库进行启动,然后再创建spfile文件,重新来修改相关的参数,从而达到数据库可以启动的目的。