Oracle11.2.0 ORA-01034及 ORA-27101错误排查记录

1个月没登录,自己的搭建的测试库就访问不了了,首先使用PLSQL登陆,提示“无监听程序”,通过服务管理,看到TNSListener服务未启动,手工启动报出“本地计算机上的XXX服务启动后停止,某些服务在未由其它服务或程序使用时将自动停止” 。

经搜索资料,排查Tnsnames.ora文件,查看ADDRESS_LIST列表中是否有失效或者访问不到的IP地址,确实有旧的内网IP失效了,还写在文件中,删除无效条目后,再次启动服务成功,PLSQL可以登录了。

使用大约1小时,由于电脑连接手机热点,期间外出,网路重连过后又无法登陆了,报“ORA-12154: TNS: 无法解析指定的连接标识符”,崩溃。。。。

检查Tnsnames.ora文件,没有格式错误,检查空格和换行,没有多余的。重新通过oracle11.2.0带的Net Manager和Net Configuration删除监听和服务命名重新新建,报错依旧。无语。。。。感觉是修改完全没生效。

期间通过windows管理重启服务,手动停止了一个oracle remxxx的服务,之后使用PLSQL登陆,报错如下:

之后不论重启过多少次服务,报错依旧。

通过搜索,有人说是数据库未启动,于是按网上教程,直接命令行登录后启动:

sqlplus /nolog

conn sys/123456 as sysdba

注意命令格式和空格:conn 用户名/你的密码 as sysdba

之后startup,报错:

查看报错的网络名,“LISTENER_TF”是很早之前配置的,早已不用,本次在排查tnsnames.ora文件时,我通过文本编辑删除了,但是还存在,经分析应该是配置未生效,查询资料,网上有大神说,尽量不要通过文本编辑器去修改ora文件,最好通过官方的配置程序。(配置程序也就是在修改ADMIN下的3个配置文件而已,但是应该有其他操作,暂不明确)

经过搜索,这是著名的01034-27101错误,于是使用重建spfile方法,首先生成pfile,注意,要登录到目标数据库后,在SQL>提示符后输入:

create pfile from spfile;   

在你的oracle home文件夹下生成了这么一个文件:

通过文本编辑器,修改*.local_listener='addr' 其中addr是你Tnsnames.ora文件里的ADDRESS_LIST条目,一般来说,自己的本地库,都是本地127的地址(注意有单引号啊)

修改完毕后,保存,用这个pfile生成spfile,图上是我的地址

create spfile from pfile='C:\app\User\product\11.2.0\dbhome_1\database\INITtf.ORA';

再次使用命令行startup,成功

再次使用PLSQL,可以登录了,后多次测试断网重新联网和重启服务,再也没有发现类似问题。

猜你喜欢

转载自blog.csdn.net/k99sam/article/details/81102072