Db2 Mirror for i の概要
- 2台のDb2 for i を10Gb N/で接続しマイクロコード層以下のレイヤーでリアルタイムで複製する技術
- アプリ層への改変影響が少ない、2台のDb2 for i はアクティブ/アクティブ、アクティブ/スタンバイの構成が可能
- ローカルサイトにおけるDb2 for i の冗長化・HAが目的、遠隔DR用途ではない
Db2 Mirror for i と Oracle RACの構成比較
DB2 Mirror for i はときどきOracle RACと比較されますが、下図のように実際には差異があります。Db2 Mirror for i の前提条件
Db2 Mirror for i の前提条件は以下のとおりです。- POWER8以降、IBM i 7.4以降のシステム *H/W型式、OSバージョンは異なっていても可
- 外部ストレージが必須(2020/03現在)
- RoCE接続用の10Gbまたは100Gb NICアダプター
- 5770-DBM IBM Db2 Mirror for i とその前提ライセンスプログラム
Db2 Mirror for i の機能解説
Db2 Mirror for i では一方のDb2 for i の更新がRoCE経由で他方に同期されます。他方のメモリアクセスをミラーペアのシステムに同期複製する動作で、この処理はマイクロコード層以下の機能で実行されるためアプリケーション層などのロジック追加は基本的には不要です。アクティブ・アクティブの場合、双方向での更新同期がなされます。また、アクティブ・アクティブの場合、副次的効果としてDBサーバーの負荷分散メリットもあります。
DBサーバーが計画停止、非計画停止した際のアプリケーションのアクセス先の切替は、JDBCアクセスの場合は代替フェイルオーバーをサポートするJDBCドライバーが用意されており切り替えが可能です。ODBCやREST/SOAPなどでの外部アプリケーションからのアクセスの場合はそれぞれのアプリケーションレベルやN/Wレベルでの切替方法を検討しておく必要があります。また、RPGやCOBOLなどのDBサーバーローカルで実行されるアプリケーションについては切替時の再実行の方法等を検討しておく必要があります。機能の一例としてDb2 Mirror for i専用の出口点が用意されています。Db2 Mirror for iの同期開始時、終了時、ノードがスイッチした場合などいくつかの条件が用意されており其々に合致した際のユーザーロジックを実装できます。例えばアクティブ・スタンバイの構成でDBサーバーローカルで実行されるRPG, COBOLを障害発生時にスタンバイ側に切り替わった際起動させたい場合には出口点 QIBM_QMRDB_ROLE_CHG を使用してノードの役割変更をキャッチしそれをトリガーにRPG,COBOLプログラムを投入することが考えられます。
出口点 | 出口点形式 | 説明 |
---|---|---|
QIBM_QMRDB_PRECLONE | PREC0100 | 登録された出口プログラムがDb2 Mirrorの複製開始前に呼び出される。ソースノードに登録されており、複製先ノードがアクセス可能かつ出口プログラムが登録されている場合、コピー先でも実行される。 SYSBASの場合複製前の検証ステップ中に呼び出される。IASPの場合,IASP複製前に呼び出される。 |
QIBM_QMRDB_POSTCLONE | PSTC0100 | Db2 Mirror の複製終了後に呼び出される。ソースノードの登録が複製されるため、必ずコピー元、コピー先の両方で実行される。 |
QIBM_QMRDB_ROLE_CHG | RCHG0100 | Db2 Mirror GUI または QSYS2.SWAP_MIRROR_ROLES プロシージャーのどちらかを使用して Db2 Mirror ノードの役割が変更されるたびに、出口プログラムが呼び出されます。 |
QIBM_QMRDB_STATE_CHG | SCHG0100 | 出口プログラムは、SYSBAS またはデータベース独立補助記憶域プール (IASP) の状態が変更されるたびに呼び出されます。システム・イベントによって、SYSBAS および複数のデータベース IASP に影響する状態変更が生じた場合、出口プログラムが複数回呼び出されることがあります。 |
Db2 Mirror for i の応用分野
- IBM i (Db2 for i)のバージョンアップ時の停止時間無しでのローリングアップグレード
- PowerHAやGlobal Mirror、ベンダー製レプリケーションS/Wと組み合わせたHA/DR構成
Db2 Mirror for i はデータベースサーバーの非常に高度なHA構成を実現することに主眼が置かれていますが、IBM i (Db2 for i)のバージョンアップ時の停止時間無しでシステム移行をしたい(ローリングアップグレードしたい)場合にも応用が可能です。現行システムをアクティブ、移行先システムをスタンバイとしたDb2 Mirror for i構成を作り、データの同期処理を行い、データ同期できた時点をもってDBサーバーの切替を行うことでほぼシステム停止無しでの切替が可能になります。
また、Db2 Mirror for i単体では遠隔DR構成は撮れませんが、他のソリューション(例えばGlobal Mirrorなどのストレージ複製機能やベンダー製のレプリケーションソリューションなど)を組み合わせれば遠隔地へのDR構成も可能です。
Db2 Mirror for i の制約事項
- 外部ストレージ構成必須 (*注)
- Db2 Mirror for i での複製対象オブジェクトはDB関連オブジェクトに制限されている
Db2 Mirror for iはまだ1stバージョンでもありいくつかの制約事項が存在します。最もインパクトのある制約事項としては、現状ストレージ構成としてPower Systemsの内蔵ディスク構成がサポートされていないことが挙げられます。RoCEを経由したデータベース更新情報の同期処理の観点では内蔵ディスクがサポートされない決定的な要因はあまりないと筆者個人は考えており将来的には何らかの機能拡張を期待したいと思います。二番目の制約事項としては2つのシステム間での複製対象オブジェクトタイプがPF, LF,やトリガーなどDB関連オブジェクトとプログラムオブジェクトやOUTQ、スプール等、一部のセキュリティ権限やシステム値などに限定されていることです。これらも筆者個人としては今後継続的な機能拡張を期待したいと思います。現状ではPower HAやベンダー製HA/DRソリューションと組み合わせた方がシステム全体のHAやDR構成の構築は容易であるといえます。
*注:(編集部追記)
この情報は原稿執筆時(2020年3月時点)の機能に基づくものです。
IBMは4月15日にIBM i 7.4の新しいTechnology Refresh 2を発表しました。最新のTRでは、内蔵ストレージがサポートされるようになりましたが、サポートデバイスはSAS経由のSSDないしNVMeに限定されます。
筆者
日本アイ・ビー・エム株式会社 多数の執筆記事を、iWorldに寄稿中。 |