最近需要用oracle数据库最项目,但是我64位win7,,死活plsql不能连接数据库,,,顿时就毛了。。。
64位的win7旗舰版sp1系统:
1、安装了oracle11gR2的64位服务器版本(按东软给的方法),并手工创建了实例及数据库,创建了监听。。而且自带的slq-plus能登陆(就用本机),说明服务器端的监听等网络配置应该没问题。
因为plsql是32位的,是9.0版中文的。也是不能加载64位的oci.dll(oracle的文件),需按网上的方法,下载instantclient-basic-win32-11.2.0.1.zip......(见uc浏览器的收藏网页)
或者,直接安装官网下载的32位客户端11gR1版本,win32_11gR1_client_32bit.zip,安装时,只选择安装instantclient(150多m大小),,,比如,安装路径位D:\app\dsd\win32\product\11.1.0\client_1
备注:客户端的连接配置文件tnsnames.ora及oci.dll就在D:\app\dsd\win32\product\11.1.0\client_1下
2、这步其实可以不做:plsql的选项-oracle连接中,要选择32位oracle客户端的主目录,(就是安装oracle时的主目录,如D:\app\dsd\win32\product\11.1.0\client_1”。)
和oci库(oci.dll,是oracle的一个调用接口)的路径,如:D:\app\dsd\win32\product\11.1.0\client_1\oci.dll
3、环境变量中的系统变量,也按网上方法改了下:确保path变量,含有D:\app\dsd\win32\product\11.1.0\client_1 ,这个path变量可以不加入oracle的32位客户端安装路径,且这变量已经自动含有了oracle的32位的客户端路径及64位的服务器安装路径。(因为本机先装了服务器版本,又装了客户端版本)
新建“TNS_ADMIN”变量,值为:D:\app\dsd\win32\product\11.1.0\client_1 ,这个变量必须建,否则仍然plsql仍然连不上,报同样错误。
新建“NLS_LANG”变量,值为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK ,这个变量建立了,能把plsql登陆时报的英文错误变成了中文错误。zhs16gbk其实就是当oracle11g装好后,手工创建数据库时默认的数据字符集。
但此时,仍然是报错“ORA-12154: TNS: 无法解析指定的连接标识符”,本机的sqlplus能登陆,怀疑是oracle客户端的tnsnames.ora有问题,
然后,看下服务器中的监听配置文件listener.ora中的连接串:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dsd-PC5)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
发现host是计算机名,如上,是dsd-pc5,那么,客户机的oracle的client安装路径内的配置文件tnsnames.ora中的连接串中的host成服务器主机名(原来是127.0.0.1),如下:
DSD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dsd-PC5)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = lmsdsd)
再用plsql登陆,成功。。。
而且很奇怪,此时,再把tnsnames.ora中的host名改成127.0.0.1,plsql也能正常连接了。。
-------------------------------------------------------------------------
关键小结:问题的关键在于TNS_ADMIN变量,它的路径是哪个,就会导致开始菜单中的oracle下的Net Manager(本来是服务器端带的,instantclient客户端不带这个)指向哪个,对应修改的就是那个路径下的配置文件tnsnames.ora和listener.ora(监听配置文件)(客户端不需要监听),而且,也会导致plsql调用的oci.dll,tnsnames.ora就是那个路径下的。
而且,plsql登陆时,输入的数据库名,其实是网络服务名,即Net Manager配置的网络名(tnsnames.ora中连接串的第一行)。
或者说,在客户端,无Net Manager工具也不影响?关键是tns_admin变量值要指定32位的oracle客户端,还有就是tnsnames.ora中连接串参数要对。当然,前提是服务器端的端口已经监听,即服务器上的listener.ora内容要对。
备注:Net Configuration Assistant实际就是带向导模式的Net Manager,也是受tns_admin变量决定其修改哪个路径下的tnsnames.ora和listener.ora
Net Configuration Assistant中的“监听程序配置”,影响listener.ora文件和创建监听服务,其“本地网络服务名配置”,影响tnsnames.ora,其实,数据库服务器上不用配置“本地网络服务名配置”,除非你要在服务器本机上用plsql,但直接改服务器上的tnsnames.ora更方便?而且,前面已经说明,64位的服务器上必须装32位的oracle客户端,32位的plsq才能用(还得改tns_admin变量)
注意oracle服务端有个监听服务,在操作系统的服务管理中能看到。。如果监听服务被停,本机上用plsq,会提示无监听,网络上其他机子用plsql,会提示连接超时。服务器的监听服务是要添加一个监听后才有(安装好oracle11g服务器时没有监听服务),即Net Configuration Assistant进行添加一次监听即可(网络服务名无需添加)添加监听服务后,E:\app\dsd64\product\11.2.0\dbhome_1\NETWORK\ADMIN下仍然未生成listener.ora配置文件?生在了D:\app\dsd\win32\product\11.1.0\client_1下,因为tns_admin变量决定的,tns_admin变量路径下的listener.ora如果被删,会导致监听服务停止后,无法启动,报启动后停止。
tnsnames.ora中如果有多个相同的连接字符串,plsql启动时,可选的网络服务名就有多个。plsql调用的其实就是tns_admin变量指定路径下的tnsnames.ora和oci.dll
比如tnsnames.ora中有如下2个连接串,plsql登陆时,就会有dsd1和dsd2这两个网络服务名可选。
DSD1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dsd-PC5)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = lmsdsd)
DSD2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dsd-PC5)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = lmsdsd)
用虚拟机-32位xp证明,只需装oracle客户端11g的instantclient组件,然后设置tns_admin变量即可,plsql就能读取tnsnames.ora和调用oci.dll
在DBCA 建库(手工建库向导时),有提示让我们选择连接类型,这里有两种类型:Dedicated server 和 Shared server(专用模式 和 共享模式) ,
在tnsnames.ora中的连接串中,如果声明了(SERVER = DEDICATED),则连接服务器时就是专用模式(独占模式)
如连接串中还有(LOAD_BALANCE = yes),即负载平衡,则很可能使用了rac: Oracle RAC 集群示意图,RAC,全称real application clusters,译为“实时应用集群”
在安装oracle的数据库管理系统服务器版时,会提示是安装“单实例”还是rac:real application clusters
oracle基目录,比如:e:\app\dsd64 所有oracle产品的目录
oracle主目录,比如:e:\app\dsd64\product\11.2.0\dbhome_1 指oracle软件文件的位置
经试验,仅安装oracle的数据库管理系统服务器版,安装时,选只安装数据库软件,安装成功后,是没有监听服务的。(操作系统的服务列表中。)
服务器没配置监听时,E:\app\dsd64\product\11.2.0\dbhome_1\NETWORK\ADMIN下是没有配置文件的。
分享到:
相关推荐
本文将深入探讨如何在Win7-64位环境下使用PL/SQL Developer(简称PLSQL)这款强大的Oracle数据库管理工具,以及安装必要的Oracle Instant Client组件来实现这一目标。 首先,PL/SQL Developer是由Allround ...
Oracle客户端11.2 64位则是用于连接到Oracle数据库服务器的软件组件,允许用户在本地计算机上执行各种数据库操作。 PLSQL Developer的功能主要包括: 1. **源代码编辑**:提供语法高亮、自动完成、代码折叠、错误...
2. **选择合适的Oracle客户端版本**:对于使用PL/SQL Developer的情况,建议安装32位版本的Oracle客户端,因为64位版本可能无法正确配置OCI(Oracle Call Interface),导致PL/SQL Developer连接失败。尽管Windows 7...
在64位Windows系统中,由于Oracle官方未提供完全免费的64位PL/SQL Developer,用户往往需要安装完整的Oracle客户端来使用PL/SQL连接Oracle数据库。然而,这会占用大量磁盘空间,并且安装过程相对复杂。实际上,有一...
尽管你可能在运行64位的Windows系统上安装了64位的Oracle数据库服务器,但PL/SQL Developer作为一个开发工具,可能需要使用到32位的Oracle客户端来连接到64位的数据库。因此,你需要下载并解压`instantclient-basic-...
在这个过程中,"win7+64位+Oracle+11g+64位下使用PLSQL+Developer+的解决办法.doc"文档应该提供了详细的步骤和可能遇到的问题解决方案。这份文档可能包括了如何创建TNSNames.ora文件、配置注册表项以及解决可能出现...
win7+64位+Oracle+11g+64位下使用PLSQL+Developer+的解决法1)安装Oracle11g64位2)安装32位的Oracle客户端(instantclient-basic-win32-11.2.0.1.0)下载instantclient-basic-win32-11.2.0.1.0.zip(一定得是32位的...
综上所述,本文详细介绍了在64位Windows 7系统上安装并配置32位PLSQL Developer客户端以连接Oracle 11g 64位数据库的过程,并特别指出了处理中文乱码的方法。通过设置环境变量和修改注册表的方法来确保字符编码的...
该文适用于希望在Win7-64位环境中使用Oracle数据库及其开发工具的用户。 #### 安装与配置步骤 ##### 1. 安装Oracle 11g 64位 在Windows 7 64位系统中安装Oracle 11g 64位是一项基本且重要的工作,具体步骤如下: ...
在Windows 7 64位操作系统上,使用PLSQL Developer连接Oracle数据库可能遇到兼容性问题,因为PLSQL Developer本身没有官方的64位版本。本文将详细介绍如何在这样的环境下安装和配置PLSQL Developer,以便成功连接到...
标题"支持64位的客户端PLSQL"指的是在64位系统上运行的Oracle客户端,特别是配合PL/SQL Developer工具进行数据库交互的情况。PL/SQL Developer是一款专门针对Oracle数据库的集成开发环境(IDE),它提供了编写、调试...
标题 "PLSQL developer 连接不上64位Oracle 的解决方法" 描述的场景是用户在Windows 8操作系统上遇到了PLSQL Developer无法连接64位Oracle数据库的问题。这个问题的根源在于PLSQL Developer不支持直接与64位Oracle...
在Windows 7 64位系统...通过以上步骤,你应该能够在64位Win7系统上成功配置PLSQL Developer,使其与64位Oracle数据库无缝连接,并处理中文字符。在遇到问题时,不要沮丧,理解技术原理并逐步排查,是解决问题的关键。
Oracle轻量客户端是数据库开发者和管理员在Windows平台上与Oracle数据库进行交互的重要工具。这个18.03版本的客户端尤其适合那些不需完整客户端功能,只需要基础连接和查询能力的用户。以下是对这个压缩包中包含的...
本文将详细介绍在 Windows 7 64 位系统上安装 Oracle11g 的步骤,并实现 PLSQL 连接数据库的方法。 一、系统环境 本文的安装环境为 Windows 7 旗舰版 64 位系统,Oracle11g 64 位版本。由于 Oracle11g 的安装需要...
### PL/SQL关联64位Oracle数据库连接指南 在IT领域中,数据库管理与开发工具的应用至关重要。PL/SQL Developer是一款强大的集成开发环境,专为提高PL/SQL的生产力而设计。本文将详细介绍如何通过PL/SQL Developer...