在现实生活中存在着由于突然断电等情况会导致Oracle异常关闭,这种情况很可能对导致生产数据库无法正常启动起来,这是就需要重新启动数据库实例,现将本次遇到的情况记录如下,如有不足之处请见谅!
记一次数据库实例重启过程:
在使用数据库工具连接数据库时,提示ora-12514、ora-12560,现恢复过程如下:
1、查看监听:
打开命令窗口,输入LSNRCTL,结果提示lsnrctl不是内部或外部命令(如果可以正常运行,请跳到1.2);
此时需要设置环境变量。
1.1、将数据库bin目录添加到环境变量中
1.1.1、打开“计算机”->“属性”->“高级系统设置”
1.1.2、打开环境变量,找到Path,点击编辑将Oracle的bin目录添加到Path中【该路径一定要放到客户端路径的前面,否则会出现ora-12560,创建的监听无法启动等问题,如果不确定客户端的路径,可以将该路径放到第一位】。
1.2、继续执行LSNRCTL
在命令窗口中输入lsnrctl,进入lsnrctl窗口,继续输入status,结果展示如下:
如图显示,其中并没有用于之前正在使用的实例名,所以需要进行实例恢复。
2、实例恢复
2.1、打开命令窗口,输入如下命令
sqlplus / as sysdba --以dba管理员登陆数据库
如果不按照1.1.2中设置Path,此处会出现ora-12560错误提示;
2.2、查看实例状态
select status from v$instance;
2.3、需要重启数据库实例
startup
如果出现“ORACLE 例程已经启动”,则说明数据库实例启动完成,数据库已经可以正常使用;
如果仍然报错,则需要使用pfile文件进行实例恢复,需要继续以下操作
2.4、关闭例程【关闭数据库异常关闭时没有正常结束的事务】
shutdown abort
结果如下:
2.5、使用pfile文件启动实例
pfile文件一般在实例所在的文件夹中,我的是在如下路径
startup pfile=D:\app\Administrator\admin\ORCL\pfile\init.ora.092019111349 force
结果如下:
此时数据库实例已恢复。
3、重新检查监听状态
重新进入LSNRCTL,执行status,结果如下:
这代表数据库实例以及对应的监听都已加载完毕,可以正常使用。