Oracle11g DataGuard新機能 その2

投稿日: 2008年4月02日

<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)

今回はここまで!!
何故かハワイアンレストランが多い恵比寿にて