Oracle无监听程序报错修复

如上 很多人安装数据库的时候 采用默认安装方式 安装后不能重启服务器,重启后就报错 再也连不上数据库了,

经过我19分钟的简单检查后发现是因为安装时候数据库用的主机名云服务器一般是ser_123456类似的数字,也有部分用户用的system

通过改这些的方式去第一次连接数据库 后面系统有更新 或者重启 变动就连不上,解决方法如下

打开默认安装目录

如果你安装在D盘 那么请自己查找

C:appAdministratorproduct11.2.0dbhome_1NETWORKADMIN

打开 listener.ora

用notepad++编辑

在里面找到代码

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = ser00xxxxxxx)(PORT = 1521))
    )
  )

这一段 把HOST = xxx 改为 127.0.0.1 如下代码

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
  )

# 把HOST改成127.0.0.1或新计算机名 建议用127 这样子随便怎么折腾都能连上数据 ) )

 

2 重要修改同目录里tnsnames.ora

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ser004298xxxxxx )(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

同样把system 或者 主机名改为127.0.0.1 如下代码

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

这样子就彻底摆脱了主机名 变成了本地连接

 

上面两个步骤改了 部分ok

然后去启动

回到「服务」界面,先停止OracleOraDb11g_home1TNSListener和OracleServiceORCL,再重新启动。

如果启动报如下错误

原因是数据库实例没注册到监听。解决步骤如下:

步骤 1:修改listener.ora,添加 ORCL 实例的注册配置

打开listener.ora,在SID_LIST_LISTENER里新增 ORCL 的配置(之前只有 CLRExtProc),添加以下代码
#新增ORCL实例注册
(SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = C:appAdministratorproduct11.2.0dbhome_1)
      (SID_NAME = ORCL)
    )
 
到这个位置 如图
然后再去启动 回到 Windows 服务,停止→启动OracleOraDb11g_home1TNSListener。
 
假如如果出现以下报错
说明你复制的格式错了 添加的代码编码不对导致
 
建议直接下载这两份系统文件直接替换到如下目录里
 
下载地址:(脚本请联系在线客服获取)
 
C:appAdministratorproduct11.2.0dbhome_1NETWORKADMIN
 
 
 

相关阅读

全天候售后服务 7x24小时专业工程师品质服务
极速服务应答 秒级应答为业务保驾护航
客户价值为先 从服务价值到创造客户价值
全方位安全保障 打造一朵“透明可信”的云