Oracle11g DataGuard新機能 その2
<Oracle 11g検証 第4弾 新機能:Oracle11g DataGuard その2>
ペンネーム: オレンジみかん
先週に引き続き、「Oracle11g DataGuard新機能」について検証します。
今週は 「Oracle 11g DataGuardを構築しよう」です
1.検証の目的
Oracle11gからハードウェア及び、OS要件の縛りが緩くなったと前回紹介しま
したが、本当にそうなのか検証します。
そこで、この構築検証では以下の内容をポイントに検証します
■検証ポイント
・ マルチプラットフォームでプライマリDBとスタンバイDBの整合性が取れて
いるか?
・ マルチプラットフォームでの構築の注意点
■Oracle11g DataGuardのハードウェア要件
Oracle11gのフィジカル・データベースの構築マニュアルには以下の様な記述
があります。
[マニュアル:Oracle DataGuard 概要および管理 11g リリース1(11.1)
2.3.1 ハードウェアおよびオペレーティング・システムの要件]より抜粋
“Oracle Database 11g現在、DataGuard構成に対するDataGuardの柔軟性が増
し、プライマリ・システムおよびスタンバイ・システムに、異なるCPUアーキ
テクチャ、オペレーティング・システム(WindowsやLinuxなど)、オペレーテ
ィング・システムのバイナリ(32ビット/64ビット)およびOracleデータベー
スのバイナリ(32ビット/64ビット)が存在してもかまいません。”
このマニュアルを読むとマルチプラットフォームでDataGuardが構築出来るよ
うになったと読み取れます。実際にはどうなんでしょう。
では、早速検証してみましょう。
2.商用UNIXとLinuxで構築してみよう
■検証環境
(Primary) (Standby) OS:Solaris5.10(64bit)SPARC OS:Linux (32bit)x86 Oracleバージョン:11.1.0.0.0 Oracleバージョン:11.1.0.0.0 Oracle_sid:ora111d Oracle_sid:ora111
【DataGuard構築方法:RMANでバックアップピースを介してスタンバイDBを構築】
[構築手順]
今回の手順は以下手順で作成します。 1)プライマリDBの作成(OS:Solaris) (1)初期化パラメータの作成 (2)リスナー設定 (3)TNSNAMES.ORAの設定 2)プライマリDBのバックアップ(OS:Solaris) (1)RMANでのプライマリDBのバックアップ (2)スタンバイDB用DB制御ファイルの作成 (3)RMANバックアップピースのコピー(OS:Solaris⇒OS:Linux) 3)スタンバイDBの作成(OS:Linux) (1)初期化パラメータの作成 (2)REDO認証の設定 (3)RMANでのリストア 4)スタンバイDBにアーカイブログファイルを適用 (1)アーカイブログの情報をスタンバイデータベースに適用
[構築開始]
今回の手順は以下手順で作成します。 1)プライマリDBの作成(OS:Solaris) (1)初期化パラメータの作成 (2)リスナー設定 (3)TNSNAMES.ORAの設定 2)プライマリDBのバックアップ(OS:Solaris) (1)RMANでのプライマリDBのバックアップ (2)スタンバイDB用DB制御ファイルの作成 (3)RMANバックアップピースのコピー(OS:Solaris⇒OS:Linux) 3)スタンバイDBの作成(OS:Linux) (1)初期化パラメータの作成 (2)REDO認証の設定 (3)RMANでのリストア 4)スタンバイDBにアーカイブログファイルを適用 (1)アーカイブログの情報をスタンバイデータベースに適用
構築したら以下のところでエラーが発生
>3)スタンバイDBの作成(OS:Linux)
>(3)RMANでのリストア
(エラー内容)=========== RMAN-00571: ========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ============== RMAN-00571: ========================================================== RMAN-03002: Duplicate Dbコマンドが04/01/2008 16:08:33で失敗しました RMAN-03015: ストアド・スクリプトMemory Scriptにエラーが発生しました RMAN-00600: internal error, arguments [3045] [] [] [] [] ORA-19625: ファイル/tmp/rmansby_control01.ctlの識別中にエラーが発生し ORA-27048: skgfifi: ファイルのヘッダー情報が無効です。 ORA-19600: 入力ファイルはcontrol fileです(/tmp/rmansby_control01.ctl)。 ORA-19601: 出力ファイルはcontrol fileです(/app/Oracle/oradata/ora111/co
むむ、Solarisから転送してきた /tmp/rmansby_control01.ctl のファイルヘ
ッダーがLinuxでは読み込めないようです・・・。
そうでした!。Solaris (64bit)SPARC(メジャーな商用UNIX)とLinux(32bit)
x86ではファイル形式に違いがあります。そのため読み込みが出来無かったよ
うです。
[商用UNIXとLinuxの違い]
・商用UNIX(メジャーな商用UNIX)⇒ Big Endian (Solaris/SPARC) (AIX/POWER)など ・メジャーなLinux,Windows ⇒ Little Endian (Linux 32bit/64bit x86) (Linux 32bit/64bit AMD) (Windows 32bit/64bit x86) (Windows 32bit/64bit AMD)など
[解説]
●Big Endian
例えば16進数で 0x1234ABCD という4バイトのデータを、データの上位バイト
からメモリに「12 34 AB CD」と並べる方式をビッグエンディアン 。
IBM系のメインフレーム/汎用機、SunのSPARC、MotorolaのMC68000等は「ビッ
グエンディアン」を採用
●Little Endian
データの下位バイトから「CD AB 34 12」と並べる方式をリトルエンディアン 。
インテルのx86系などは「リトルエンディアン」を採用
●Bi-Endian
ARMアーキテクチャのCPU、Transmeta社のCrusoe、Hewlett-Packard社の
PA-RISC、PowerPCなど、エンディアンを切り替えられるバイエンディアンの
ものも存在
※出展:Wikipedia
Oracleサポートサイトを見ても対処する方法が無い。
これは困った!。プラットフォームがサポートされていないのか・・
そこで、Oracle11gについての記述をMETALINKで見てみると、METALINK NOTE:
413484.1 に Oracle社がサポートするDataGuardの構成の記述がありました。
サポートする構成表を見ると、Solaris(64bit)(SPARC)⇔Linux x86(32bit)の
DataGuardの組合せがありません。
どうやら、この組合せはサポート対象外のようです。
またさらに構成パターンを見ると
あっ!商用UNIXとLinuxの組合せパターンが無い!!
DataGuardの構成表からは以下のような特徴が読み取れます。
/----------------------------------------------------- ・OSのワードサイズに違いがあっても良い組合せ (e.g. 32bit and 64bit) ・プロセッサーの違いががあっても良い組合せ (e.g HP-UX PA-RISC と HP-UX Itanium などが一例) ・DataGuard 11gからLinuxとWindowsの混在した組合せ ------------------------------------------------------/
3.今回の検証結果
・「Big Endian」と「Litle Endian」を混在させたDataGuardの構成はまだ
出来ない。
・ 同じEndianであってもOS、プロセッサの違いにより構成できない組合せが
ある。マニュアルの要件だけでなく、サポートサイトにてDataGuard構成の
組合せを確認することが必要。
商用UNIXとLinuxの組合せを期待された読者の方々ごめんなさい!!
次回は、引き続き Oracle社がサポートする構成で検証します。
[Oracle社がサポートする構成]
「Linux x86(32bit)⇔ MicroSoft Windows x86(32bit)
今回はここまで!!
何故かハワイアンレストランが多い恵比寿にて