前言:
转载请附上连接,本帖原创请勿照抄。
出现ORA-01034和ORA-27101的原因是多方面的:
1.主要是oracle当前的服务不可用,shared memory realm does not exist,是因为oracle没有启动或没有正常启动,共享内存并没有分配给当前实例.所以,通过设置实例名,再用操作系统身份验证的方式,启动数据库。这样数据库就正常启动了,就不会报ORA-01034和ORA-27101两个启动异常了。
2. ....\dbhome_1\database\INITorcl.ORA、....\dbhome_1\NETWORK\ADMIN\listener.ora、....\dbhome_1\NETWORK\ADMIN\sqlnet.ora、....\dbhome_1\NETWORK\ADMIN\tnsnames.ora 配置出错
3.监听器异常启动不了(主要问题在 2. 配置文件异常所以才会导致监听无法启动)
4.检查环境变量配置是否正确(一般发生在重新卸载安装数据库后路径问题 自行百度查找具体方法)
解决方案
1.一般情况按照一下配置即可解决
1.1 打开cmd 输入 lsnrctl start
1.2 填写自己的实例名 set ORACLE_SID=orcl //一般为orcl
1.3 再输入 sqlplus /nolog
//--------会出现一些系统信息
1.4 再输入 conn / as sysdba
--------会出现已连接
1.5 输入 start
1.6 输入 startup
//--------这里一般会出现LISTENER
//--------ORA-00132: syntax error or unresolved network name 'LISTENER_ORCL'
1.7 修改文件配置属性(....\dbhome_1\database\INITorcl.ORA)
*.local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))'
注意配置过程中出现空格或者符号没注意打错了也会出现,需要注意细节。
1.8 startup pfile='E:\app\product\11.2.0\dbhome_1\database\INITorcl.ORA'
出现数据库已经打开 则关闭现有的PLSQL SQLPLUS等 重新打开一个数据库连接工具重新连接就可以了
2.如果以上重新连接还是报错请往下看(下面主要配置的是ora文件)(HOST值可以试计算机名、localhosr、127.0.0.1这三种)
直接复制粘贴请注意文件路径,路径不同注意更改!配置完记得重启Oracle服务!
2.1 将1.7中的(HOST = 127.0.0.1)修改为(HOST = 自己的计算机名)(我的电脑右键属性可以看到自己电脑的名字)
2.2 修改tnsnames.ora文件 HOST 值
2.2.1 将 HOST 值改为计算机名(注意属性配置路径)
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 自己的计算机名)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
2.3 修改listener.ora文件 HOST 值
2.3.1 将 HOST 值改为计算机名(注意属性配置的路径)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\app\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:E:\app\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = E:\app\product\11.2.0\dbhome_1)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 自己的计算机名)(PORT = 1521))
)
)
ADR_BASE_LISTENER = E:\app\
2.4 重启oracle服务并尝试重新连接
3.如果还没能成功请尝试重启监听看能不能连接成功
3.1 打开....\dbhome_1\BIN\LSNRCTL.EXE
3.2 先输入stop关闭监听
3.3 在输入start打开监听
3.4 连接SQL plus 或者PL SQL查看是否解决问题