问题描述:
当修改了参数文件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 ----必须填写pfile的完整路径或者sqlplus在当前pfile文件路径下直接写文件名
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文件,重新来修改相关的参数,从而达到数据库可以启动的目的。