澳门金沙vip 3

【澳门金沙vip】Win7 64环境下Oracle10g 64位版本安装教程_oracle_脚本之家

刚接触Oracle不久,安装部署链接Oracle的时候,出现很多问题,单从这点上来说,SQL
Server真是太友好了。

转载请注明出处

在 x64 的 Win7 上重新安装了 Oralce 后,通过 PL/SQL
连接数据库时,提示如下错误信息

1、如果之前安装过Oracle软件,建议完全卸载

 

澳门金沙vip 1

2、清理过旧版本的Oracle后,开始安装Oracle10g服务器端,首先得有一个安装包

1、如果之前安装过Oracle软件,建议完全卸载(究竟有没有必要_不知道_我是这么做的)

环境

windows7 64bit

Oracle win64 11gR2

PL/SQL v9.0

试一试搜索这个关键字:10204_vista_w2k8_x64_production_db

 

详细错误信息

[plain] view
plaincopy

  1. Initialization error  

  2. Could not initialize “C:\oracle\product\11.2.0\dbhome_1\bin\oci.dll”  
  3. Make sure you have the 32 bits Oracle Client installed.  
  4.   
  5. OCIDLL forced to C:\oracle\product\11.2.0\dbhome_1\bin\oci.dll  
  6. LoadLibrary(C:\oracle\product\11.2.0\dbhome_1\bin\oci.dll) returned 0  

安装这个版本是没有问题的。

2、清理过旧版本的Oracle后,开始安装Oracle10g服务器端,首先得有一个安装包

问题原因

安装完后Oracle的 oci.dll 是64位的,而32位应用程序 PLSQL Developer
无法加载。

3、服务器端下载完成以后,那么安装吧,安装图解,随手百度就可以了,比如这个:win7下oracle
10g安装图文教程

试一试搜索这个关键字:10204_vista_w2k8_x64_production_db

解决方案

1.
从  下载Oracle
Client Package。 我下载的是Instant Client for Microsoft Windows (32-bit)
【instantclient-basic-nt-11.2.0.2.0.zip】 

  1. 将 instantclient-basic-nt-11.2.0.2.0.zip 解压至 c:\oracle, oci.dll
    所在目录为:c:\oracle\instantclient_11_2\

  2. 设置环境变量

    TNS_ADMIN=c:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN

    NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
注:NLS_LANG前半部分必须是AMERICAN_AMERICA,因为instant
client不支持其他语言;而后半部分可以根据你数据库的字符集调整,如果数据库采用AL32UTF8,则可以设置AL32UTF8

4. 启动PL/SQL Developer ,点击“取消”不要登录,菜单 –> Tools –>
Perferences –> Connection 修改 Oracle_Home 和 OCI Library
的配置:
    OracleHome: OraDb11g_home1
    OCI library: C:\oracle\instantclient_11_2\oci.dll

澳门金沙vip 2

  1. 重新启动 PL/SQL并登录对应的数据库,连接正常,问题成功解决!


(因为版本的不同,上面下载的版本是不用修改兼容性之类操作的,这不正好吗)

安装这个版本是没有问题的。

此问题搞了我好久,为了加深理解,还可以参考下面这片文章:

1、安装了oracle11gR2的64位服务器版本并手工创建了实例及数据库,创建了监听。而且自带的slq-plus能登陆(就用本机),说明服务器端的监听等网络配置应该没问题。 

因为plsql是32位的,是9.0版中文的。也是不能加载64位的oci.dll(oracle的文件),需按网上的方法,下载instantclient-basic-win32-11.2.0.1.zip.或者,直接安装官网下载的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的一个调用接口)的路径,如::\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下是没有配置文件的。

4、如果按照上面的教程走不下去了,那么是不是出现了这个控制台窗口呢:

 

那么在安装包中搜索oraparam,找到其中一行 Windows=5.0,5.1,5.2,6.0

3、服务器端下载完成以后,那么安装吧,安装图解,随手百度就可以了,比如这个:

很明显你应该知道怎么改了,比如Windows=5.0,5.1,5.2,6.0,6.1

你会发现上面的未通过变成了,通过。于是可以安装了。

(因为版本的不同,上面下载的版本是不用修改兼容性之类操作的,这不正好吗)

中间的步骤,就略了,因为其他教程里有很多,就不多言了。

 

5、进入到安装界面以后,也点了下一步,在检测的时候又报这个错误,直接炸了好嘛。

4、如果按照上面的教程走不下去了,那么是不是出现了这个控制台窗口呢:

正在检查操作系统要求…要求的结果: 5.0,5.1,5.2,6.0 之一实际结果: 6.1

澳门金沙vip 3

稍微调整一下心情,同样在安装包中搜索 refhost.xml
,搜索到两个文件,都按照下面的方法修改

那么在安装包中搜索oraparam,找到其中一行     Windows=5.0,5.1,5.2,6.0

把这个6.0改为6.1(当前你自己不改,加一个6.1也没有任何问题)

很明显你应该知道怎么改了,比如Windows=5.0,5.1,5.2,6.0,6.1

好了,暂时应该不会有其他问题了,默认就好,让输密码的话就输入一下,并记住,没啥坏处。

你会发现上面的未通过变成了,通过。于是可以安装了。

可是,在创建数据库的时候,很有可能卡在85%的位置,怎么办,什么都不要做,安静的走开,过一会就好了。

 

没有意外的话,数据库已经安装完成了。

中间的步骤,就略了,因为其他教程里有很多,就不多言了。

6、但是有时候,我们是需要PL/SQL等工具链接Oracle服务器的。

 

这个时候,你很可能需要这个链接的帮忙:PL/SQL
Developer连接64位的Oracle图文教程

5、进入到安装界面以后,也点了下一步,在检测的时候又报这个错误,直接炸了好嘛。

下的是32位版本的客户端工具,我下载的是这个名字:instantclient-basic-win32-10.2.0.4

正在检查操作系统要求…
要求的结果: 5.0,5.1,5.2,6.0 之一
实际结果: 6.1

打开下载链接后,注意找对版本,究竟用其他版本链接有没有什么问题,我没有试过,你试过后,可以告诉懒惰的博主。

稍微调整一下心情,同样在安装包中搜索 refhost.xml ,搜索到两个文件,都按照下面的方法修改

上面的这个链接,第二步是修改tnsnames.ora,直接在Oracle安装目录中,搜索tnsnames即可,然后复制到客户端解压后的文件夹下

<!–Microsoft Windows 7–>
<OPERATING_SYSTEM>
<VERSION VALUE=”6.0″/>
</OPERATING_SYSTEM>