64位win7系统下安装64位oracle11g经验分享

    技术2022-05-20  47

    环境:64bit win 7旗舰版 sp1补丁

             win64 oracle11g ---- win64_11gR1_database_1013.zip

     

     

    1、安装过程中出现的一个问题:即系统自检提升系统环境不符合要求

     

     

     

    解决办法:

     

    首先找到路径:

    "E:/Oracle Enterprise_Standard Edition_11.1.0.6/database/stage/prereq/db/refhost.xml“。

    在找到”refhost.xml“文件后,如果你没有安装XML软件,就以记事本的方式打开该文件,在打开之后我们找到如下节点:

    {

      <!--Microsoft Windows Vista-->     <OPERATING_SYSTEM>      <VERSION VALUE="6.0"/>

    }

    把上述节点替换为以下节点:

    {

        <!--Microsoft Windows 7-->    <OPERATING_SYSTEM>      <VERSION VALUE="6.1"/>    </OPERATING_SYSTEM>

    }

     

    2、安装完成后的访问问题,  PLSQL无法访问本机64位Oracle

    问题描述:无法找到oci.dll错误

    问题原因:Oracle是64位的,oci.dll自然也是,而PLSQL_Developer是32位的,无法加载64位的DLL。

    解决方法:

    1. 下载32位Oracle InstantClient,并展开到某目录,例如D:/oracleclient/instantclient_11_2;

     

     

     

     

     

    2. 将系统的tnsnames.ora拷贝到该目录下;3. 在PLSQL Developer中设置Oracle_Home和OCI Library,如下图所示:4. 在PLSQL Developer目录下编辑如下bat文件,替换其快捷方式,启动PLSQL Developer:

     

    @echo offset path=C:/oracle/instantclient_10_2set ORACLE_HOME=C:/oracle/instantclient_10_2set TNS_ADMIN=C:/oracle/instantclient_10_2sset NLS_LANG=AMERICAN_AMERICA.ZHS16GBKstart plsqldev.exe

     

     

    3、在进行后续的asp.net开发时,在进行数据库访问时,发生错误。

     

    为了发布时调用部分32位的DLL,在IIS 应用进程池中配置-常规-启用32位应用程序-True

    错误描述:"尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。"

     

    解决方法如下: 

     

       实际上,System.Data.OracleClient所指向的是PATH环境变量下的oci.dll。因此,我们只要让程序能够找到64位的oci.dll就可以了。方法如下:

    1. 下载instantclient-basic-win-x86-64-11.1.0.6.0.zip,并解压,如C:/instantclient-basic-win-x86-64-11.1。

    2. 在系统的环境变量PATH中加入以上路径。

    之后重启操作系统,程序会依照PATH路径寻找oci.dll,如果遇到32位的oci.dll会自动略过,找到64位的oci.dll就能连接上数据库了。


    最新回复(0)