PowerReplicationは、レプリケーションの対象とするテーブルの主従関係を定義して、データベース間の整合性を保ちます。
各システム間のテーブルの一致状態のことを「データベース間の整合性」と言います。整合性が保たれている状態とは、各システム間のテーブルのデータが一致した状態を言い、整合性が保たれていない状態とは、各システム間のテーブルのデータが一致していない状態を言います。
元のテーブルを「マスタ」と呼びます。マスタに対し、相手側のテーブルを「レプリカ」と呼びます。PowerReplicationでは、マスタとレプリカの関連を定義することで、マスタとレプリカの間で整合性を保ちます。
以下に、PowerReplicationの機能概要を示します。
同期
PowerReplicationは、マスタとレプリカ間でデータを反映し合う「同期」機能を提供します。同期により、データベース間の整合性を保つことが可能です。
PowerReplicationには、「一括方式」と「差分方式」の2種類の同期方式があります。
すべてのデータまたは指定した抽出条件に一致するすべてのデータを反映する方式です。なお、データベース間の整合性を保つため、以下の場合にも使用します。
レプリケーションの環境構築後、最初の同期処理
ネットワークトラブルなどで、データベース間のデータの整合性が失われた場合の復旧処理
前回の同期以降に変更されたデータのみを反映する方式です。
一括方式と差分方式の詳細は、"2.2.1 運用形態"および"2.2.2 同期方式"を参照してください。また、マスタとレプリカの関係についての詳細は、"2.1.4 処理データの構成"を参照してください。
競合検出と解消
PowerReplicationは、同期方式が「差分方式」の場合、同期の実行時に競合を検出します。
競合を検出した場合、競合解消ルールに従って自動的に競合を解消します。
マスタとレプリカで同じキー値のデータを更新、追加、または削除しようとした状態を「競合」と言います。
PowerReplicationが競合を検出した場合、マスタまたはレプリカのどちらか一方のデータだけを反映することで、競合を解消します。競合解消のときに、マスタとレプリカのどちらのデータの反映を優先するかは、PowerReplicationの動作環境で定義できます。
競合と競合の解消についての詳細は、"2.2.5 競合検出"を参照してください。
スケジュール実行
PowerReplicationは、自動的に同期を実行するためのスケジュール機能を提供しています。 スケジュール機能を利用すると、同期処理の実行タイミングを月、週、曜日、日、時間(分)などの単位で設定できます。同期に失敗した場合、設定された再試行回数および間隔に従って自動的に再試行します。
PowerReplicationの同期は、設定されたスケジュールに従って実行されます。
利用者プログラムのデータ更新を相手システムに対し、即時に反映することはできません。
スケジュール機能の詳細は、"2.2.4 スケジュール実行"を参照してください。
運用管理ツール
PowerReplicationは、運用管理ツールであるレプリケーションマネージャを提供しています。レプリケーションマネージャのGUIにより、マスタとレプリカの定義、スケジュールの設定、および同期実行状態の確認ができます。
レプリケーションマネージャの詳細は、"2.4 レプリケーションマネージャ"を参照してください。
構成定義の移出入
レプリケーションマネージャで定義したマスタとレプリカの構成情報を、テキストファイルに変換して移出できます。移出したテキストファイルは、エディタなどを使用することで直接編集できます。また、PowerReplicationをインストールした別のシステムに移入することが可能です。
同じ定義内容の構成情報を、複数システムに展開する場合に利用できます。
構成情報の移出入機能の詳細は、"2.6 構成定義の移出入機能"を参照してください。
退避/復元
動作環境および構成情報を退避/復元する機能を提供します。
動作環境および構成情報を退避しておくことで、PowerReplicationの動作環境に異常が発生したときに、簡単に復元することができます。
動作環境および構成情報の退避や復元方法の詳細は、"7.7 動作環境情報/構成情報の退避コマンド"および"7.8 動作環境情報/構成情報の復元コマンド"を参照してください。
コマンド
PowerReplicationを運用するためのコマンドを提供します。
レプリケーションマネージャの一部の機能は、コマンドで操作できます。また、運用を自動化する場合にコマンドを利用できます。
PowerReplicationが提供するコマンドの詳細は、"2.7 コマンド"を参照してください。