web-dev-qa-db-ja.com

64ビットOracleデータベースサーバーを既に実行しているWindowsサーバーへのOracle 32ビットクライアントのインストール

64ビットのOracleデータベースサーバー(11.2.0.3)をWindows 2008 R2にインストールしていますが、当然、64ビットのクライアントが自動的にインストールされます。このサーバーには、32ビットで32ビットのOracleクライアントを必要とするアプリケーションをインストールする必要があります。 (質問はありません-このアプリの64ビットバージョンをインストールできません。64ビットクライアントでは動作せず、別のサーバーにインストールすることもできません。)

今、私は32ビットクライアントを別の物理フォルダにインストールしてみて、インストール時にOracleベースとソフトウェアの場所に別の値を選択しましたが、うまくインストールされました。そして、32ビットクライアントインストールのBINフォルダーをPATH statemtnの先頭に配置します。

ただし、32ビットバージョンで「SQLplusシステム/システム」を実行しようとすると、「ORA-12560:TNS:プロトコルアダプターエラー」が表示されます。 64ビットのsqlplus.exeが含まれているフォルダーに移動して(PATHを介さずに)直接実行したところ、「system/system」資格情報は正常に機能しました。

TNSNamesフォルダーをOracleサーバーのNETWORK/adminフォルダーからOracleクライアントのNETWORK/adminフォルダーにコピーし、サーバーを再起動しました。同じ結果。

これは、Oracleのトラブルシューティングに関する知識の範囲です。

32ビットクライアントを64ビットOracleサーバーと同じサーバーで実行するにはどうすればよいですか?私はlinux/Unixで知っています。64ビットクライアントフォルダーにlib32フォルダーを入れて、いくつかの環境変数を設定するだけですが、Windowsではそれほど簡単ではありません。

これを行う方法がある場合は、ステップバイステップの手順が必要になるので、答えを説明するようにしてください。

前もって感謝します。

8
BeekerC

32ビットと64ビットのOracleクライアントを1台のマシンにインストールする方法を次に示します。指示に従ってください、それで動作するはずです。

前提条件:OracleホームはOraClient11g_home1と呼ばれ、クライアントバージョンは11gR2です

  • Oracle _86クライアントをダウンロードして、たとえばC:\Oracle\11.2\Client_x86にインストールします。

  • Oracle x64 Clientをダウンロードして、別のフォルダに、たとえばC:\Oracle\11.2\Client_x64にインストールします。

  • コマンドラインツールを開き、フォルダー%WINDIR%\ System32に移動します。通常はC:\Windows\System32で、フォルダーora112へのシンボリックリンクC:\Oracle\11.2\Client_x64を作成します(以下のコマンドセクションを参照)。

  • フォルダー%WINDIR%\ SysWOW64に変更します。通常はC:\Windows\SysWOW64で、フォルダーora112へのシンボリックリンクC:\Oracle\11.2\Client_x86を作成します(下記参照)。

  • PATH環境変数を変更し、C:\Oracle\11.2\Client_x86C:\Oracle\11.2\Client_x64などのすべてのエントリをC:\Windows\System32\ora112で置き換え、それぞれの\binサブフォルダーを置き換えます。注:C:\Windows\SysWOW64\ora112をPATH環境に含めることはできません。

  • 必要に応じて、Oracle_HOME環境変数をC:\Windows\System32\ora112に設定します

  • レジストリエディタを開きます。レジストリ値HKLM\Software\Oracle\KEY_OraClient11g_home1\Oracle_HOMEC:\Windows\System32\ora112に設定します。 C:\Oracle\11.2\Client_x64を使用することもできます。

  • レジストリ値HKLM\Software\Wow6432Node\Oracle\KEY_OraClient11g_home1\Oracle_HOMEC:\Windows\System32\ora112に設定します(C:\Windows\SysWOW64\ora112ではありません)。 C:\Oracle\11.2\Client_x86を使用することもできます。

  • 完了です!これで、x86とx64 Oracleクライアントをシームレスに使用できるようになりました。つまり、x86アプリケーションはx86ライブラリをロードし、x64アプリケーションはシステムをさらに変更することなくx64ライブラリをロードします。

  • おそらく、TNS_ADMIN環境変数(レジストリのTNS_ADMINエントリ)を、TNS_ADMIN=C:\Oracle\Common\network\adminなどの共通の場所に設定するのが賢明です。

シンボリックリンクを作成するコマンド:

cd C:\Windows\System32 mklink /d ora112 C:\Oracle\11.2\Client_x64 cd C:\Windows\SysWOW64 mklink /d ora112 C:\Oracle\11.2\Client_x86

ノート:

両方のシンボリックリンクは同じ名前である必要があります。 ora112

名前にかかわらず、C:\Windows\System32にはx64ライブラリが含まれていますが、C:\Windows\SysWOW64にはx86(32ビット)ライブラリが含まれています。混乱しないでください。

24