本文主要是介绍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.
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.
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.
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..
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)
这篇关于windows2008安装oracle19c后监听无法启动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!