はじめに
Db2のバックアップは、データベースサイズが大きくなるほど時間がかかり、運用への影響も大きくなります。
こうした課題に対して有効なのが、ストレージの高速コピー機能(FlashCopy / Snapshot / Image Copy)を利用したバックアップです。
Db2ではこの仕組みを利用し、スプリットミラー(Split Mirror)として高速にバックアップを取得できます。
本記事では、その基本的な仕組みと設計時のポイントを整理します。
詳細な手順については、最後に紹介するIBM資料を参照してください。
なお、バックアップ全体については以下の記事でまとめています。
Db2のバックアップとリカバリーとは?取得方式と運用設計の基本を解説
スプリットミラー(Split Mirror)とは何か
スプリットミラーとは、ストレージ側の機能を使ってディスク単位で瞬時にコピーを取得する仕組みです。
通常のDb2バックアップとの違いは以下です。
| 項目 | 通常バックアップ | スプリットミラー |
|---|---|---|
| 処理主体 | Db2エンジン | ストレージ |
| 所要時間 | 長い(DBサイズ依存) | 非常に短い |
| 負荷 | DBサーバに負荷あり | 低負荷 |
| 取得単位 | 論理バックアップ | 物理コピー |
ポイントは、Db2がデータをコピーするのではなく、ストレージがコピーするという点です。
オンライン取得のポイント(WRITE SUSPEND)
オンラインでスプリットミラーを取得する場合、整合性を保つために重要なのが以下の制御です。
SET WRITE SUSPENDSET WRITE RESUME
なぜ必要か
FlashCopy取得中に以下が発生すると整合性が崩れます。
- Db2からの書き込み
- OSキャッシュからの遅延書き込み
そのため、
- WRITE SUSPENDで書き込みを停止
- ストレージでFlashCopy取得
- WRITE RESUMEで再開
という流れで実行します。
短時間とはいえアプリケーション停止に近い状態になるため、実行タイミングの設計が重要です。
FlashCopy対象領域と非対象領域
取得したFlashCopyイメージの整合性を保障するためには、以下を保障する必要があります。
・論理コピー中にデータベースからの書き込みが発生しないこと
・OSファイルキャッシュからの非同期的な書き込みが発生しないこと
対象とすべき領域
以下はFlashCopy対象に含める必要がある領域です。
| 領域 | 理由 |
|---|---|
| アクティブログ | db2inidb as SNAPSHOT のみ必要 |
| データベースパス | DB定義が格納される |
| ユーザー表スペース | 業務データ |
| システムカタログ表スペース | メタ情報 |
| 一時表スペース(条件付き) | 処理整合性に影響 |
特に重要なのは、「DBとして成立する最小構成を丸ごとコピーする」ことです。
対象外とすべき領域
| 領域 | 理由 |
|---|---|
| アーカイブログ | 再生成・別管理が前提 |
| インスタンスホーム | OS依存・再構築可能 |
アーカイブログは通常FlashCopy対象外ですが、これはログのアーカイブ処理が非同期であるためです。
ファイルっシステムのアンマウントができる場合は、FlashCopyが可能となりますが運用上の注意が必要です。
db2inidbによるミラーの利用
取得したスプリットミラーは、そのままではDb2として利用できません。
そこで使用するのが db2inidb コマンドです。
主なモード
| モード | 用途 |
|---|---|
| SNAPSHOT | データベース・イメージのスナップショットを他のノードで再利用 |
| STANDBY | ウォーム・スタンバイ・データベースの作成 |
| MIRROR | データベースのバックアップ・イメージとして使用 |
障害が発生し、コピーバック(戻し)をするときは MIRRORモード を使用します。
db2inidb <DB名> as MIRROR
これにより、Write Suspend状態が解除されますが、クラッシュ・リカバリーは実行されず、データベースをロールフォワード保留状態にします。
Split mirrorイメージに含まれるログではなく、プライマリーDBで作成された最新のログを使ってROLLFORWARDを実行することで、障害直前のDBまで復元することが可能です。
スプリットミラーのメリットと注意点
メリット
- 大規模DBでもほぼ瞬時にバックアップ取得
- DB負荷が低い
- リストアも高速
注意点
設計を間違えると逆に危険なので、ここは重要です。
① WRITE SUSPEND時間の影響
長時間になると業務停止に近くなる
② 対象領域の漏れ
一部でも欠けるとリストア不可
③ OSキャッシュの影響
非同期書き込みによる不整合リスクあり(ファイルシステムレベルの書き込み停止も要検討)
④ ストレージ依存
ストレージ機能に強く依存する
まとめ
スプリットミラーは、Db2の大規模環境において非常に有効なバックアップ手法です。
特に以下のようなケースで効果を発揮します。
- TBクラスの大規模DB
- バックアップ時間を短縮したい
- 業務影響を最小化したい
一方で、
- WRITE SUSPENDの扱い
- 対象領域の設計
- db2inidbの理解
といったポイントを正しく押さえる必要があります。
詳細な構成例やコマンド手順については、以下のIBM技術資料が非常に参考になります。


コメント