解决Oracle启动失败

今天突然要使用本机安装的oracle,可是toad连接始终报tns解析失败。于是使用sqlplus连接,报错如下:

解决Oracle启动失败
请输入用户名:  system
输入口令:
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
进程 ID: 0
会话 ID: 0 序列号: 0
解决Oracle启动失败

我很是奇怪,数据库居然还没启动,于是开始上网查找资料。

第一步,使用 sqlplus /nolog进入sqlplus环境,使用conn /as sysdba连接oracle,又报错如下:

SQL> conn /as sysdba
ERROR:
ORA-01031: insufficient privileges

这个问题原来是windows 下用户权限不足造成的,将当前用户添加到ora_dba组中即可。使用conn /as sysdba可以连接进入oracle了。

第二步,使用startup启动数据库,报错如下:

解决Oracle启动失败
SQL> startup
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name ‘LISTENER_ORCL‘
解决Oracle启动失败

经过查找资料与反复尝试,原来是我的tnsnames.ora这个文件缺少“LISTENER_ORCL”这个参数,将

LISTENER_ORCL = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

添加到tnsnames.ora文件,再尝试使用startup启动数据库,OK。

解决Oracle启动失败
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 1686925312 bytes
Fixed Size                  2176368 bytes
Variable Size            1023412880 bytes
Database Buffers          654311424 bytes
Redo Buffers                7024640 bytes
数据库装载完毕。
数据库已经打开。
解决Oracle启动失败

问题解决了,我反思了一下为什么会出现这个问题。

我这台计算机是不久前重装系统,再安装了oracle11.2,tnsnames.ora这个文件是从原来机器上备份后直接复制过来的,安装后,还用toad测试连接,一点问题没有。之后就一直没再用过,这期间由内网连接到外网,修改了IP。网上的资料显示,如果修改了oracle数据库服务器的IP地址,可能会引起oracle启动异常。

想来可能有两方面的原因,第一,也是主要原因,就是我修改了计算机的IP(由内网连接到外网,可是没办法,查资料方便嘛)。

第二,我复制过来的tnsnames.ora这个文件缺少“LISTENER_ORCL”这个参数。

 

不管怎么说,这个问题算是圆满解决了,心情大好。

解决Oracle启动失败

上一篇:MacOS上的包管理工具


下一篇:mysql创建临时表