在局域网中远程连接oracle时,一直提示拒绝连接,在确定防火墙关闭,oracle服务器监听端口开启的情况下,可能的错误就是oracle的监听IP地址不是预设的那样,而是本地的127.0.0.1。
排错过程不再细说,这里只分享由于主机名不正确而导致oracle拒绝连接的解决办法。
一、修改hosts文件
打开cmd,输入hostname,记下主机名 用记事本打开c:\windows\system32\drivers\etc\hosts 文件,添加主机名。
<codeclass="hljsvala">#Copyright(c)1993-2009MicrosoftCorp. #ThisisasampleHOSTSfileusedbyMicrosoftTCP/IPforWindows. #ThisfilecontainsthemappingsofIPaddressestohostnames.Each #entryshouldbekeptonanindividualline.TheIPaddressshould #beplacedinthefirstcolumnfollowedbythecorrespondinghostname. #TheIPaddressandthehostnameshouldbeseparatedbyatleastone #space. # #Additionally,comments(suchasthese)maybeinsertedonindividual #linesorfollowingthemachinenamedenotedbya'#'symbol. #Forexample: #102.54.94.97rhino.acme.com#sourceserver #38.25.63.10x.acme.com#xclienthost #localhostnameresolutionishandledwithinDNSitself. #127.0.0.1localhost #::1localhost [主机IP][主机名]</code>
二、修改oracle监听文件
1、打开listener.ora
文件在F:\app\young\product\11.2.0\dbhome_1\NETWORK\ADMIN 目录下,将里面的localhost换为自己的主机名。
<codeclass="hljsvala"><codeclass="hljstex">#listener.oraNetworkConfigurationFile:F:\app\young\product\11.2.0\dbhome_1\network\admin\listener.ora #GeneratedbyOracleconfigurationtools. SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (SID_NAME=CLRExtProc) (ORACLE_HOME=F:\app\young\product\11.2.0\dbhome_1) (PROGRAM=extproc) (ENVS="EXTPROC_DLLS=ONLY:F:\app\young\product\11.2.0\dbhome_1\bin\oraclr11.dll") ) ) LISTENER= (DESCRIPTION_LIST= (DESCRIPTION= (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=Young-PC)(PORT=1521))//Young-PC原为localhost ))ADR_BASE_LISTENER=F:\app\young</code></code>
2、修改tnsnames.ora
目录同上,也将localhost更改为主机名。
<codeclass="hljsvala"><codeclass="hljstex"><codeclass="hljstex">#tnsnames.oraNetworkConfigurationFile:F:\app\young\product\11.2.0\dbhome_1\network\admin\tnsnames.ora #GeneratedbyOracleconfigurationtools. LISTENER_ORCL= (ADDRESS=(PROTOCOL=TCP)(HOST=Young-PC)(PORT=1521))//Young-PC原为localhost ORACLR_CONNECTION_DATA= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)) ) (CONNECT_DATA= (SID=CLRExtProc) (PRESENTATION=RO) ) ) ORCL= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=Young-PC)(PORT=1521))//Young-PC原为localhost (CONNECT_DATA= (SERVER=DEDICATED) (SERVICE_NAME=orcl) ) )</code></code></code>
3、重启tnslsnr。
打开cmd,输入以下命令。
<codeclass="hljsvala"><codeclass="hljstex"><codeclass="hljstex"><codeclass="hljssql">lsnrctlstop lsnrctlstart lsnrctlstat</code></code></code></code>
再次远程连接,已经可以连上了,成功。
相关文章
标签:数据库运维