oracle数据库⽆法登陆的问题
今天开启oracle服务登陆oracle数据库输⼊⽤户名和密码莫名其妙的报错:
ORA_01034:ORACLE not available
ORA_27101:shared memory realm does not exist
如图所⽰Sqlplus连接时出现这个错误;在⽹上查了⼀下出现ORA-01034和ORA-27101的原因是多⽅⾯的:主要是oracle当前的服务不可⽤,shared memory realm does not exist,是因为oracle没有启动或没有正常启动,共享内存并没有分配给当前实例.所以,通过设置实例名,再⽤操作系统⾝份验证的⽅式,启动数据库。这样数据库就正常启动了,就不会报ORA-01034和ORA-27101两个启动异常了。
还有就是可能是登录数据库后,不正常的退出,⽐如直接关掉窗⼝,⽽这时数据库⾥有未完成的动作,再次登录时就会提⽰“insufficient privileges”的报错,SQL>shutdown immediate;  SQL>startup;就恢复正常了。
⽐较⼀下启动和没启动的内存⼤⼩:查看任务管理器下所占内存,正常所占内存如下:
当所占内存为⼏⼗兆说明Oracle数据库没有启动:
解决步骤:
1.先看oracle的监听和oracle的服务是否都启动了。启动oracle监听:cmd命令⾏窗⼝下,输⼊lsnrctl start,回车即启动监听。
2 查看oracle的sid叫什么,⽐如创建数据库的时候,实例名叫“orcl”,那么先⼿⼯设置⼀下oralce的orcl,cmd命令窗⼝
中,set ORACLE_SID=orcl.
3.进⼊SQL:输⼊sqlplus  /nolog 回车或者输⼊ conn / as sysdba;回车
提⽰:SQL> conn sys/123456 as sysdba
已连接到空闲例程。
4.再输⼊startup,回车.这步是启动oracle服务。如果startup启动被告知已经启动了,可以先输⼊shutdown immediate;等shutdown结束之后,再输⼊startup。
到这⾥之后⼜报错:
SQL> startup
ORA-00119: invalid specification for system parameter LOCAL_LISTENE
ORA-00132: syntax error or unresolved network name 'LISTENER_ORCL'
alert log 中的错误如下:
USER (ospid: 17619): terminating the instance due to error 119
Instance terminated by USER, pid = 17619
5.这个报错是因为检查$ORACLE_HOME/network/a中的network name,发现没有LISTENER_ORC的监听名。
将本机的a中的network name修改为LISTENER_ORCL,重启解决。
LISTENER_ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)oracle登录命令
(SERVICE_NAME = orcl)
)
)
6.成功:
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 2566914048 bytes Fixed Size 3048920 bytes
Variable Size 671091240 bytes Database Buffers 1879048192 bytes
Redo Buffers 13725696 bytes
数据库装载完毕。
数据库已经打开。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。