PLSQL连接远程Oracle出现ORA-12541: 无监听程序

解决过程 :
1. 修改了PLSQL的Tools->Preferences->Oracle->Connection的Oracle Home和OCI library,不行
2. 重新配置了监听器,不行
3. 按照以下的过程卸载和重装oracle后还是不行
http://blog.csdn.net/machinecat0898/article/details/7792471
http://lovesoo.org/oracle-11g-r2-installation-configuration-uninstall-completely-manual.html
http://www.cnblogs.com/bluepoint2009/p/oracle-11g-R2-win7-64bit.html
4. 网上再搜索一番看到http://976924.blog.51cto.com/966924/645469,
然后发现要修改服务器端的 : 在oracle安装目录下查找listener.ora和tnsnames.ora文件(
D:\app\Administrator\product\11.2.0\dbhome_2\NETWORK\ADMIN
),然后打开,将host改为机器名,然后在C盘执行执行命令:lsnrctl stop,再执行lsnrctl start。然后重启oracle服务.(后面如果还不行,就得配置成ip和客户端的一致了)
5. 客户端配置情况 : 先查看服务器的oracle版本,在它的源文件里有个stage文件夹,可以看到有类似oracle.server.11_2_0_1_0.xml的文件,然后在http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html?ssSourceSiteId=ocomen找相应的客户端版本,windows 7都下载32位的,下载后得到instantclient-basic-win32-11.2.0.1.0.zip这个文件,解压后得到名称为instantclient_11_2的文件夹,在这个文件夹下新建2级目录NETWORK\ADMIN,然后新建2个文件,第一个是sqlnet.ora,内容为:
SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
第二个是tnsnames.ora内容为:
PLMDEMO =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.1.27)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = PLMDEMO)
)
)
其中PLMDEMO是服务器端的服务名在Net Manager里面建或在tnsnames.ora里配置,一般来说,不区分大小写.
6. 打开PLSQL的Tools->Preferences->Oracle->Connection的Oracle Home和OCI library,
Oracle Home=D:\MyDownloads\Oracle\instantclient_11_2\NETWORK\ADMIN
OCI library=D:\MyDownloads\Oracle\instantclient_11_2\oci.dll
7. 如此,就可以用PLSQL连接上远程服务器的Oracle数据库了.(PS : 本机是不用装Oracle的)

你可能感兴趣的:(oracle,plsql,ora-12541)