本地ORACLE数据库使用了很久了,一直没问题,但是,昨天突然就无法登陆。
报错信息为:ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exis。
百度了好久,都没有查到有效的解决方案,不过在这个过程中也还是对某些文件配置有了更多的了解。

首先建议熟悉以下四个CMD命令,可以方便有效的启动/停止数据库服务和监听服务,毕竟调试过程中会多次地启动/关闭服务和监听。

--启动数据库实例服务(其中oracleserviceorcl为你的数据库实例服务名,可以通过cmd-service.msc查看你的数据库服务名)
net start oracleserviceorcl
--停止数据库实例服务
net start oracleserviceorcl
--启动数据库监听
lsnrctl start
--停止数据库监听
lsnrctl stop

关于这个问题的答案,网上的说辞很多,我大部分都一一尝试了,但是还是没有解决问题。其中,有个方法是查看系统用户和组,但我自身是win10家庭中文版的,所以没有那个功能,网上给出的处理方法是升级系统,但直觉告诉我这种涉及到变更系统或者注册表配置的做法,大多数都不可行,所以决定另辟蹊径。

在D:\app\44972\admin\orcl\pfile(44972为本地用户名)目录下
有名为init.ora的文件,我第一次打开这个目录时,里面有两个文件,并且后面都是跟着一串数字的。网上有方法说把这串数组去掉,但我测试过后,这个方法并不奏效。

在D:\app\44972\product\11.2.0\dbhome_1\NETWORK\ADMIN(44972为本地用户名)目录下
有三个特别重要的ora文件,分别是listener.ora、sqlnet.ora、tnsnames.org,跟网上的方法修改了很多地方,都没有奏效。
打开init.ora文件中注意到一下这段

###########################################
# Network Registration
###########################################
local_listener=LISTENER_ORCL

然后下面是tnsnames.ora的部分

# tnsnames.ora Network Configuration File: D:\app\44972\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
#ORACLR_CONNECTION_DATA =
#  (DESCRIPTION =
#    (ADDRESS_LIST =
#      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
#    )
#    (CONNECT_DATA =
#      (SID = CLRExtProc)
#      (PRESENTATION = RO)
#    )
#  )#LISTENER_ORCL =
#(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))#本机数据库
ORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = wuwl)(PORT = 1521)))(CONNECT_DATA =(SID = ORCL)))

在tnsnames.ora文件中关于listener_orcl的信息被注释掉了,将前面的#号去掉,重启服务和监听,居然一下子就可以连接了。

tnsnames.ora这个文件确实修改过几次,来配置数据库别名信息。隐约记得那条注释信息是自己注释掉的,但是注释过后又用了好久才出现这次的连接异常。也有可能一直都没有注释掉,是自己记错了。但是出现异常前,plsql异常关闭了好几次,多半这与本次连接异常有直接关联。

记录一次ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exis故障【已解决】相关推荐

  1. “ORA-01034 - Oracle not available”和“ORA-27101 - shared memory realm does not exist”

      今天打开虚拟机中Oracle数据库,显示如下错误:"ORA-01034 - Oracle not available"和"ORA-27101 - shared mem ...

  2. oracle not exist报错,oracle连接异常shared memory realm does not exist

    1. 先描述一个连接Oracle 10g的错误:"shared memory realm does not exist" 如图所示Sqlplus连接时出现这个错误: 2. Orac ...

  3. 解决oracle11g连接失败 ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist

    今天在使用ORACLE数据库时出现这样一个错误,登录时连接失败. 服务器提示: ORA-01034: ORACLE not available ORA-27101: shared memory rea ...

  4. ORA-27101: shared memory realm does not exist 错误的处理(ORA-01034 - Oracle not available )

    ORA-27101: shared memory realm does not exist 错误的处理 试图连接数据库时的ORA-01034 和 ORA-27101错误信息,它总是显示这样的信息, & ...

  5. Oracle在Windows系统中出现的ORA-27100: shared memory realm already exists 的奇怪现象

    整理这篇文章的原因是前段时间帮网友远程解决一个问题时,用startup pfile='d:/1.ora';时总是报错ORA-27100,最后是用oradim删除了服务后再创建服务后解决. 一直比较郁闷 ...

  6. sqlplus 登录oracle 报ERROR: ORA-01034:ORACLE not available ORA-27101:shared memory realm does not exit

    1 先看oracle的监听和oracle的服务是否都启动了.启动oracle监听: cmd的命令行窗口下,输入lsnrctl start,回车即启动监听. 2 查看oracle的sid叫什么,比如创建 ...

  7. error: ora-01034:oracle not available ora-27101:shared memory realm does not exist

    解决方法: 1 .先看oracle的监听和oracle的服务是否都启动了.启动oracle监听: cmd的命令行窗口下,输入lsnrctl start,回车即启动监听. 2 .查看oracle的sid ...

  8. Oracle错误:ORA-27101: shared memory realm does not exist问题解决

    初学Oracle,第二天就这种遇到错误 ,查找好久的信息,终于找到了一种实用的解决办法,给同样遇到错误的人一种思路. 错误: ORA-01034:ORACLE not available ORA-27 ...

  9. oracle创建ora文件,ORACLE配置tnsnames.ora文件实例

    ORACLE配置tnsnames.ora文件实例 客户机为了和服务器连接,必须先和服务器上的监听进程联络.ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息.一般tnsnames ...

最新文章

  1. 翻译java_翻译示例代码
  2. linu怎么启动oracle,请问该如何在LINUX下启动ORACLE?
  3. de casteljau算法_泊松分布算法的应用:开一家4S店
  4. windows server 2008解决无法PING通问题
  5. 音视频技术开发周刊 | 240
  6. 报错显示从客户端检测到有潜在危险的Request.Form 值
  7. Windows 中自定义Error Codes
  8. 实验3 编程、编译、链接、跟踪
  9. 为啥月饼也能变成期货?
  10. 三维空间中判断射线与平面是否相交
  11. Linux命令之snmpwalk命令
  12. onpropertychange
  13. 为什么你在互联网上搞不到钱?
  14. JavaScript 生成弹性透明的图片放大代码
  15. #Ubuntu# #机械键盘# 功能键/多媒体键切换无效
  16. 利用requests库和Xpath爬取猫眼电影榜单【Python】
  17. loaders之val-loader
  18. Markdown里面的序列图
  19. # Linux学习笔记
  20. 区块链如何分析这些涨涨跌跌

热门文章

  1. 如何在Python中表示一个无限数?
  2. java左右值_为什么C/C++等少数编程语言要区分左右值?
  3. List集合中数据用set集合去重复,用set集合去重复数据重写了equals还是没成功!
  4. php和fastapi,FastAPI快速开始
  5. 比较版本号大小c语言,比较两个版本字符串version1和version2
  6. msyql之解决mysql出现ERROR 1698 (28000): Access denied的问题
  7. java串口发送十六进制数,本文实例为大家分享了Java实现串口通信的具体代码,供大家参考,具体内容如下1.介绍使用Java实现的串口通信程序,支持十六进制数据的发送与接收。 源码:...
  8. perf script 执行时间_在Python中准确地测量代码执行时间
  9. 如何调试程序的 Release 版本
  10. MySQL——优化ORDER BY语句