windows2008安装oracle19c后监听无法启动

window7和windows2008不支持oracle19c

原先在主机上安装了oracle10.2.0.5然后再安装oracle19c,注册表中能清理的都已经清理,能修改都已经修改,很是奇怪,还以为是冲突,折腾了半天,发现是oracle19c的监听在windows2008上根本不支持。

但依然报错如下:

D:\oracle19c\diag\tnslsnr\WIN-4GQNG01G4AR\listener\trace

以 pid=3164 开始
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-4GQNG01G4AR)(PORT=1521)))
监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12557: TNS: 协议适配器不可加载
 TNS-12560: TNS: 协议适配器错误
  TNS-00527: 协议适配器不可加载

不再监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-4GQNG01G4AR)(PORT=1521)))

以 pid=3164 开始
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-4GQNG01G4AR)(PORT=1521)))
监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12557: TNS: 协议适配器不可加载
 TNS-12560: TNS: 协议适配器错误
  TNS-00527: 协议适配器不可加载

不再监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-4GQNG01G4AR)(PORT=1521)))

以 pid=3164 开始
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-4GQNG01G4AR)(PORT=1521)))
监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12557: TNS: 协议适配器不可加载
 TNS-12560: TNS: 协议适配器错误
  TNS-00527: 协议适配器不可加载

不再监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WIN-4GQNG01G4AR)(PORT=1521)))

相关参考:

https://cloud.tencent.com/developer/article/1601516?from=information.detail.%E6%97%A0%E6%B3%95%E5%AE%9A%E4%BD%8D%E7%A8%8B%E5%BA%8F%E8%BE%93%E5%85%A5%E7%82%B9getoverlappedresultex

https://blog.csdn.net/lhshu2008/article/details/17529883

处理过程中遇到的其它问题:

 C:\Users\Administrator>netca

 

Oracle Net Services 配置:

配置监听程序:LISTENER

ServiceAliasException: 无法保存服务别名: TNS-04406: 对象已经存在

默认本地命名配置完成。

监听程序配置完成。

成功完成 Oracle Net Services 配置。退出代码是0

解决办法:设定TNS_ADMIN的环境变量。

Oracle Net Services - Version 10.2.0.5 to 11.2.0.3 [Release 10.2 to 11.2]
Information in this document applies to any platform.
This problem can occur on any platform.


 

SYMPTOMS

Attempting to use Net CA or Net Configuration Assistant to create or edit an existing configuration.  Upon pressing the finish button, the following error is thrown:  ServiceAliasException: Could not save Service Alias: TNS-04415: File I/O error.

CHANGES

It is likely that the $TNS_ADMIN variable was changed recently or the directory to which it pointed has been removed or made inaccessible.  It is likely that the Net Manager (Netmgr) tool will successfully create or edit a tnsnames.ora file in this same environment despite the NetCA failure.

CAUSE

The $TNS_ADMIN environment variable pointed to a directory that did not exist.  This caused the file I/O error.   A check of the $TNS_ADMIN variable:  echo $TNS_ADMIN or on Windows:  echo %TNS_ADMIN%.  If this failure is present, you would see TNS_ADMIN pointing to a non-existent directory location..

SOLUTION

Set the $TNS_ADMIN environment variable to point to the $ORACLE_HOME/network/admin directory or any other existing directory where NetCA can write a file.

Oracle Net Services - Version 8.1.7.0 to 11.2.0.3 [Release 8.1.7 to 11.2]
Information in this document applies to any platform.
***Checked for relevance on 23-AUG-2013***


 

SYMPTOMS

Listener start fails with the following errors:

On  Solaris:

LSNRCTL> start LISTDPRNRJ  
    Starting /oracle10g/product/10.2.0/bin/tnslsnr: please wait...  
      
    TNSLSNR for Solaris: Version 10.2.0.2.0 - Production  
    System parameter file is /oracle10g/product/10.2.0/network/admin/listener.ora  
    Log messages written to /oracle10g/product/10.2.0/network/log/listdprnrj.log  
    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=XX.X.XXX.XX)(PORT=1523)))  
    Error listening on: (ADDRESS=(PROTOCOL=tcp)(IP=LOOPBACK))  
    TNS-01191: Failed to initialize the local OS authentication subsystem  
     TNS-12545: Connect failed because target host or object does not exist  
      TNS-12560: TNS:protocol adapter error  
       TNS-00515: Connect failed because target host or object does not exist  
        Solaris Error: 126: Cannot assign requested address


 

On Linux : 
----------

[oracle@testnet shashi]$ lsnrctl start listener_105  

LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 12-AUG-2009 05:44:37  

Copyright (c) 1991, 2007, Oracle.  All rights reserved.  

Starting /home/oracle/oracle/product/10.2.0.4/db_1/bin/tnslsnr: please wait...  

TNSLSNR for Linux: Version 10.2.0.4.0 - Production  
System parameter file is /home/oracle/users/shashi/listener.ora  
Log messages written to /home/oracle/oracle/product/10.2.0.4/db_1/network/log/listener_105.log  
Trace information written to /tmp/list_105g.trc  
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myhostname.com)(PORT=1523)))  

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myhostname)(PORT=1523)))  
TNS-12532: TNS:invalid argument  
 TNS-12560: TNS:protocol adapter error  
  TNS-00502: Invalid argument  
   Linux Error: 22: Invalid argument 

 The listener trace shows the following :

[12-AUG-2009 05:44:38:309] nttbnd2addr: using host IP address: 127.0.0.1 
[12-AUG-2009 05:44:38:309] snlinFreeAddrInfo: entry 
[12-AUG-2009 05:44:38:309] snlinFreeAddrInfo: exit 
[12-AUG-2009 05:44:38:309] nttbnd2addr: exit 
[12-AUG-2009 05:44:38:309] nttcon: entry 
[12-AUG-2009 05:44:38:309] nttcon: toc = 2 
[12-AUG-2009 05:44:38:309] nttcnp: entry 
[12-AUG-2009 05:44:38:309] nttcnp: creating a socket. 
[12-AUG-2009 05:44:38:309] nttcnp: binding an address to a socket. 
[12-AUG-2009 05:44:38:309] ntt2err: entry 
[12-AUG-2009 05:44:38:309] ntt2err: soc 12 error - operation=1, ntresnt[0]=515, ntresnt[1]=99, ntresnt[2]=0

PS: The ntresnt[1]=126 on Solaris.  On linux ntresnt[1]=99

Though the netstat output shows the listener is listening ,

[oracle@testnet ~]$ netstat -an | grep 1523 
tcp        0      0 0.0.0.0:1523                0.0.0.0:*                   LISTEN

Local connections and remote connections to the database fail with ORA-12157 as shown below: 

Local connection: 
----------------

Local connection:  
---------------- 
[oracle@testnet ~]$ sqlplus /nolog  

SQL*Plus: Release 10.2.0.3.0 - Production on Wed Aug 12 06:25:11 2009  

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.  

SQL> conn sys as sysdba  
Enter password:  
ERROR:  
ORA-12157: TNS:internal network communication error

Remote Connection: 
-------------------

[oracle@testnet shashi]$ sqlplus scott/tiger@testnet  

SQL*Plus: Release 10.2.0.3.0 - Production on Wed Aug 12 06:30:56 2009  

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.  

ERROR:  
ORA-12157: TNS:internal network communication error

CAUSE

The  errors are caused by the operating system loopback interface not being started

On Solaris you may see the loopback interface not listed as shown below :

 $ ifconfig -a  
    lo0:1: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1  
            inet 10.1.0.19 netmask ff000000  
    ce0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2  
            inet 192.168.0.7 netmask ffffff00 broadcast 192.168.0.255  
    ce1:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3  
            inet 192.168.3.7 netmask ffffff00 broadcast 192.168.3.255

 

Please note that the loopback interface 'lo0' is not listed in the above ouput . The interface 'lo0:1' is the zone interface which had been plumbed .

On linux operating system , you may see the below output if the loopback interface is down :

#ifconfig -a 
lo        Link encap:Local Loopback 
          LOOPBACK  MTU:16436  Metric:1 
          RX packets:2339794 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:2339794 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:0 
          RX bytes:159193174 (151.8 MiB)  TX bytes:159193174 (151.8 MiB)

SOLUTION

Involve your system / network administrator and get the loopback interface up and running  and restart the listener.

1] Make sure you have the loopback IP address mapped to the localhost as below : 

$ cat /etc/hosts 
127.0.0.1 localhost 
....... 
......... 

2] On Solaris: 
     ----------- 
#ifconfig lo0 up (this brings up the loopback interface) 

Once the loopback interface is up , the ifconfig output should show as below : 

For example : 
------------

[celcsol3]/bin> /sbin/ifconfig -a 

lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 
        inet 127.0.0.1 netmask ff000000


3] On Linux : 
     ----------

#ifup lo  (this brings up the loopback interface)

For Example : 
--------------

[root@testnet ~]#ifconfig -a 

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0 
          inet6 addr: ::1/128 Scope:Host 
          UP LOOPBACK RUNNING  MTU:16436  Metric:1 
          RX packets:2413323 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:2413323 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:0 
          RX bytes:165596646 (157.9 MiB)  TX bytes:165596646 (157.9 MiB)

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值