oracle连接数据库报错:ORA-01034: ORACLE not available(Oracle 不存在),ORA-27101: shared memory realm does not exist
花一天半的时间解决客户端连接服务端的oracle数据库,无法连接问题。ORA-01034: ORACLE not available(Oracle 不存在),ORA-27101: shared memory realm does not exist 分析:
前几天还可以连接数据库,但是昨天开始,本地无缘无故的不能连接服务端数据库。网上很多人说造成这个问题的原因是异常关机
,数据库没有在关机之前关闭。我公司人说在前几天确实有人重启过电脑,就当是这个原因吧,有时间一定要把真正原因找出来。
下面主要的任务还是解决问题先。遇到问题的详细过程:
通过plsql访问数据报错:ORA-01034: ORACLE not available(Oracle 不存在),ORA-27101: shared memory realm does not
exist(共享内存领域不存在);通过程序登录同样报这个错误。
遇到这种问题,大部分人第一步想到的是检查服务端配置文件是否有问题,所以打开你的Oracle安装路径(这里必须是服务端的,
因为服务端才有监听文件listener.ora,客户端只有sqlnet.ora和tnsnames.ora两个文件)主目录下面的Admin文件夹有三个文件(
我的服务端安装路径是:E:\opt\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN) ,分别是:listener.ora和sqlnet.ora和
tnsnames.ora。打开sqlnet.ora和tnsnames.ora 匹配本地(就是你本地的Oracle客户端主目录)的两个文件sqlnet.ora和
tnsnames.ora,检查两个tnsnames.ora的ip和prot是否一致,必须要相同。下面本人分享下本人能正常访问的,服务端和客户端两
个文件全部的参数配置 分别是本地:sqlnet.ora本地:tnsnames.ora 服务端:sqlnet.ora 服务端:tnsnames.ora 如下:
本地客户端sqlnet.ora 配置文件全部copy如下:
SQLNET.AUTHENTICATION_SERVICES= (NTS)
服务端sqlnet.ora 配置文件全部copy如下:
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
ADR_BASE = E:\opt\oracle\product\11.2.0\dbhome_1\log
本地客户端tnsnames.ora和服务端tnsnames.ora也是一样的:tnsnames.ora配置文件全部copy如下:
# tnsnames.ora Network Configuration File: C:\instantclient_12_1\tnsnames.ora
# Generated by Oracle configuration tools.
CCNF2008 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 180.166.155.134)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ccnf_2008)
)
)
前面打星号的可以忽略。CCNF2008是本地客户连接数据库的别名,plsql登录的入口的,数据库输入框就是填写它了。prot=1521不
用多说。SERVICE_NAME的值就是ccnf_2008 是你在服务端实例化出来的数据库名称。其他参数照搬。
服务端的listener.ora文件全部copy下面如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ccnf_2008)
(ORACLE_HOME = E:\opt\oracle\product\11.2.0\dbhome_1)
(SID_NAME = ccnf_2008)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =180.166.155.134)(PORT = 1521))
)
ADR_BASE_LISTENER = E:\opt\oracle\product\11.2.0\dbhome_1\log
检查完上面三个文件ip,端口,和其他参数都匹配就可以排除不是配置文件原因。
排除配置文件原因后,需要用netmanager管理器使用用户测试连接是否成功,如果用户登录测试成功,在外网telnet ip+端口命令
连接失败,说明是网络端口没有对外开放,需要建立端口1521的出入站规则。如果还不行,进入cmd,命令:lsnrctl stop 停止监
听,再次重启监听:lsnrctl start; 再进入sql操作:sqlplus /nolog执行,在执行 conn / as sysdba 以管理员身份连接数据
库 startup 启动数据库,如果已经启动先 卸载数据shutdowm immediate 关闭数据库,再startup。再次在外网telnet ip +端口,
如果还不行就:来源网络查找:http://blog.csdn.net/inthirties/article/details/4558769最后面的方法
1. 打开注册表
2. 找到[HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_OraDb10g_home1]这个目录
在其下加入一个字符串值
键:USE_SHARED_SOCKET
值: TRUE
3. 重启监听服务
如果上面步骤还不行,估计最有可能的原因就是ip和机器名和127.0.0.1这个区别问题。所以请在C:\Windows\System32\drivers
\etc ,打开hosts文件,添加一个映射。 127.0.0.1 ip地址。设置完成映射后,重启监听、startup数据库。本人就是通过这个
步骤解决问题的。
oracle连接数据库报错:ORA-01034: ORACLE not available(Oracle 不存在),ORA-27101: shared memory realm does not exist的更多相关文章
- 参数SID写错,ERROR OGG-00664 ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist
添加进程,启动进程报错 1.0添加进程 GGSCI (t2) > add ext exta,tranlog,begin now EXTRACT added. --添加exta(ext标准命名规则 ...
- Oracle:shared memory realm does not exist
1. 先描述一个连接Oracle 10g的错误:“shared memory realm does not exist” 如图所示Sqlplus连接时出现这个错误: 2. Oracle 服务器主要组件 ...
- Oracle数据库使用出现错误-状态: 失败 ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist
Oracle数据库使用出现错误-状态: 失败 ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist ...
- Oracle重启 error: ora-01034:oracle not available ora-27101:shared memory realm does not exist
error: ora-01034:oracle not available ora-27101:shared memory realm does not exist 苦咖啡 他的博客中一篇文章完美的解 ...
- ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist
Oracle 设置默认数据库 如果我们的服务器上或者电脑上安装了多个数据库,当我们使用sqlplus时如果为指定数据库时登录到的是哪一个数据库呢?今天遇到了一个老问题: ORA-01034: ORAC ...
- oracle链接报错shared memory realm does not exist
问题描述: 前两天能够正常链接,今天来了突然不能链接,原因不详. 处理方法: 连接linux进行如下操作: 1.sqlplus /nolog 2.conn / as sysdba 3.startup ...
- Linux Oracle碰到错误:ORA-27101: shared memory realm does not exist
从ITPUB上摘抄并已验证 1.实例没有启动 sqlplus /nologconnect / as sysdbastartup
- oracle登录时shared memory realm does not exist的解决方法
解决办法:1.用CMD进入命令行2.sqlplus /nolog 3.conn / as sysdba4.startup 然后用sqlplus进入命令
- ORA-01034:ORACLE not available ORA-27101:shared memory realm does not exit
ORA-01034:ORACLE not available ORA-27101:shared memory realm does not exit ERROR: ORA-01034:ORACLE ...
随机推荐
- day10<面向对象+>
面向对象(package关键字的概述及作用) 面向对象(包的定义及注意事项) 面向对象(带包的类编译和运行) 面向对象(不同包下类之间的访问) 面向对象(import关键字的概述和使用) 面向对象(四 ...
- 使用keytool生成密钥对
1.首先要用KeyTool工具来生成私匙库:(-alias别名 –validity 3650表示10年有效) keytool -genkey -alias privatekey -keystore p ...
- ActiveMQ伪集群部署
本文借鉴http://www.cnblogs.com/guozhen/p/5984915.html,在此基础上进行了完善,使之成为一个完整版的伪分布式部署说明,在此记录一下! 一.本文目的 介绍如何在 ...
- Python 调用外部命令
python 可以使用 os 模块来调用外部的 Linux Shell 命令,常用的方法如下: os.system():结果输出在终端上,捕获不到os.popen() : 结果返回一个对象,即标准输出 ...
- Python 扩展知识:编程习惯
1. 使用四个空格作为缩进而不是Tab键2. 函数名定义时第二个单词首字母大写,如 getNum,类名定义时所有单词首字母大写,如 GetNum
- NUC970设备驱动
安装完WinUSB4NuVCOM_NUC970.exe后 USB0要配置成DEVICE 才可以在设备管理器中显示.
- NUC972学习历程之NUWRITER使用说明以及烧录模式的说明
3.1 簡介Nu-Writer 工具能幫助使用者透過 USB ISP模式, 將Image檔案放入儲存體中, 例如:SPI Flash設備或 NAND Flash設備.3.2 驅動程式安裝Nu-Writ ...
- cocos2dx游戏--欢欢英雄传说--添加动作
添加完人物之后接着给人物添加上动作.我们为hero添加4个动作:attack(由3张图片构成),walk(由2张图片构成),hit(由1张图片构成),dead(由1张图片构成):同样,为enemy添加 ...
- Android 使用ProgressBar实现进度条
ProgressBar简介ProgressBar是进度条组件,通常用于向用户展示某个耗时操作完成的进度,而不让用户感觉是程序失去了响应,从而更好地提升用户界面的友好型. 课程目标(1)制定Progre ...
- Oracle 12C卸载图文教程
第一步:找到自己的Oracle安装目录.我的目录是:D:\app\u01\product\12.1.0\dbhome_1\deinstall ,然后点击bat文件.出现如下等待画面. 第二步:耐心 ...