修改spfile导致oracle无法启动

今天尝试着调整一下数据库的性能,由于疏忽没有做好备份(spfile.ora),直接修改了MEMORY_TARGET参数,
alter system set MEMORY_TARGET=4096m;
导致重启ORACLE时不能连接ORACLE时报:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
开始是以为数据库崩溃,因为无法登陆,也不能通过指定pfile启动,都恨不得重装数据库了,后来一想,既然报的是“服务名”,就从这里着手吧,发现未设置对服务名的监听(Oracle10g默认安装后不自动设置监听):

1. 打开<OracleHome>/network/admin/listener.ora文件,找到:
   SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
       (PROGRAM = extproc)
     )
   )

2. 添加:
   (SID_DESC =
     (GLOBAL_DBNAME = WLAN)
     (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)  
     (SID_NAME = WLAN)
    )

3. 最后变成:
   SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
       (PROGRAM = extproc)
     )
     (SID_DESC =
       (GLOBAL_DBNAME = CORCL)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)  
       (SID_NAME = CORCL)
      )
   )

4. 保存文件,重启服务中的TNSListener,登录成功!

从cmd窗口登录成功
conn sys/wlan@wlan as sysdba;

然后通过pfile启动数据库
startup pfile='D:\oracle\product\10.2.0\admin\dbs\pfile\init.ora';

成功启动,然后创建spfile
create spfile from pfile='D:\oracle\product\10.2.0\admin\dbs\pfile\init.ora';

重新启动数据库,OK,启动成功,登录成功!大功告成!

通过此事,得到教训,做任何事情都必须做好备份。
 
 
posted @ 2015-08-21 13:28  opps  阅读(1541)  评论(0编辑  收藏  举报