プロが教える店舗&オフィスのセキュリティ対策術

 
お世話になります。

Oracle10g R2 には32bit版、64bit版が存在しますが現状稼動しているDBが
32bit版なのか、64bit版なのかを判断する方法(コマンド等)があるでしょうか?

もうひとつ質問があるのですが、

x64対応CPUのPCの仮想環境(VMware)上のSolaris10(64bit版)にOracle10g R2(64bit版)をインストールした環境があります。
これを x64未対応CPUのPCへフォルダごとコピーして動かそうとした場合、やはり正常には動かないのでしょうか?
つまり x64未対応のCPU上でOracle10g R2(64bit版)が正常に動くのかどうかという事です。
※普通に考えれば動かないとは思いますが・・・。

よろしくお願い致します。
 

A 回答 (1件)

お答えします



◆ 実際にやってみます

動いているオラクルの場合は、v$versionで確認します

32bit版で実行

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production
PL/SQL Release 11.1.0.7.0 - Production
CORE 11.1.0.7.0 Production
TNS for Linux: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production

64bit版で実行
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

64bitの場合のみ、64bitの文字が見えます。
32bitの場合は、bit情報は、なにもでません。

この方法で、 32bitと、64bitが識別できます。


◆ つづいて、停止している場合の確認方法です
これは、Unix系だけですが・・・

binフォルダの下にある、oracleというファイルを、
fileで確認します

32bit版
[oraprod@ebsdb 11.1.0]$ cd $ORACLE_HOME/bin
[oraprod@ebsdb bin]$ file oracle
oracle: setuid setgid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped

64bit版
[oracle@oralove bin]$ cd $ORACLE_HOME/bin
[oracle@oralove bin]$ file oracle
oracle: setuid setgid ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped

これで、64bitであることが分かります



◆ 続いて、お答えします

>x64未対応のCPU上でOracle10g R2(64bit版)が正常に動くのかどうか

結論  動きません

単純にファイル操作を行っているわけではなく、カーネルなどの
64bit, 32bitに関わりますので、動きません。

ただし、expdp/impdpであれば、別の環境に移行することは可能です

Your DBA MOTO:TAKER

この回答への補足

 
お世話になっております。
※返信が遅くなり申し訳ありません。

バージョン確認を実行してみました。結果は以下の通りです。

SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Solaris: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

"64bit"の表記がないので32bit版だというですね。

=========================================================================

> ◆ つづいて、停止している場合の確認方法です
> これは、Unix系だけですが・・・
> binフォルダの下にある、oracleというファイルを、
> fileで確認します

binフォルダの直下にはoracleというファイルが見つかりませんでした。
OSがSolarisだからなのか、オラクルのバージョンが違うからなのか・・・。


> >x64未対応のCPU上でOracle10g R2(64bit版)が正常に動くのかどうか
>
> 結論  動きません
> 単純にファイル操作を行っているわけではなく、カーネルなどの
> 64bit, 32bitに関わりますので、動きません。

やはりそうですよね。
x64用にチューニング(?)されているのだからそうですよね。

=========================================================================

オラクルのバージョンが32bit版だと判ったところで再度質問なのですが

x64対応CPUのPCの仮想環境(VMware)上のSolaris10(64bit版)に
Oracle10g R2(32bit版)をインストールした環境があります。
これを x64未対応CPUのPCへフォルダごとコピーしてOS(Solaris)を起動しました。
オラクルをstartupするために端末エミュレータからsqlplusを起動しようとしたところ
以下の様な文字化けを含むエラーが出ました。

$ sqlplus /nolog
sqlplus: sqlplus: @8^F@^Z^X^F^E@@@P^AP^A^C^D\302^A^W^A^E@E: ^?ELF^B^A^A^B: 見つ かりません。
見つかりません。
sqlplus: E: 見つかりません。
sqlplus: ^A^A^FH: 見つかりません。
sqlplus: H: 見つかりません。
sqlplus: A醇_^B醇_^B^A^B^F\302: 見つかりません。
sqlplus: \302: 見つかりません。
sqlplus: 構文エラー 行 10: `@^]\302^R^L' unexpected

なぜエラーが出るのかわかりません。何か情報があればよろしくお願い致します m(__)m

※試しにリスナーコントローラやisqlplusコントローラをスタートしてみたところ
 エラーなく起動しました。
 

補足日時:2009/09/28 09:55
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す