Syniti DR (旧DBMoto)では、PostgreSQLからの差分レプリケーションが実施できます。これにより、PostgreSQLからOracleやSQL Server、AS/400といった異種データベースへの差分連携や、Amazon RDSやAzure SQL Databaseなどのクラウド環境へのレプリケーションも実施可能です。
PostgreSQLからの差分レプリケーション実施時は、Log Server Agent(LSA)方式とTrigger(トリガー)方式のいずれかから選択できます。
レプリケーション方式の違いの詳細は、こちらのブログに記載しておりますが、PostgreSQLの場合、LSA方式は低負荷で実施できる点が、トリガー方式は双方向連携(シンクロナイゼーション)に対応している点が、それぞれのメリットとなります。
今回のブログでは、LSA方式を使用した場合のセットアップ手順について記載します。
LSA方式では、レプリケーションスロットというPostgreSQLの機能を使用して実施します。レプリケーショスロットを介して Syniti LSAが WALログの情報を取得、バイナリログとして差分情報を保持するという流れです。これに伴い、PostgreSQLからの差分連携をLSA方式で実施する場合は、下記の要件を満たす必要があります。
————————————–
<Syniti DR(DBMoto)の要件>
・Syniti DR or DBMoto 9.5以降
・バイナリログファイルを保存する領域
<PostgreSQL DBの要件>
・PostgreSQL 9.5以降
・スーパーユーザー権限を持ったPostgreSQLユーザ
・レプリケーション対象テーブルへの物理的なPK設定
・PostgreSQLサーバのWALログレベル等の設定変更
<注意点>
・LSA方式では片方向差分連携(ミラーリング)のみ対応しています。
※双方向(シンクロナイゼーション)実施にはトリガー方式を使用してください。
————————————–
以下、実際のセットアップ手順となります。
■デフォルトのPostgreSQLプラグイン(test_decoding)を使用したセットアップ手順
基本的には、本デフォルトのPostgreSQLプラグインを使用する手順でLSA方式のセットアップが実施できます。
1.まずは、WALログレベル等のPostgreSQL側の設定変更を行います。レプリケーション対象PostgreSQLのpostgresql.confファイルを編集し、下記設定に変更します。変更後は設定を反映させるため、PostgreSQLデータベースサービスを再起動します。
———————–
・wal_level = logical
・max_replication_slots = 3
・track_commit_timestamp = on
———————–
2.SynitiをインストールしたWindowsマシンから接続できるパスに、ログフォルダ(バイナリログを保存するフォルダ)を新規に任意のフォルダ名で作成します。
3.Syniti管理画面を開き、ソースDB接続作成ウィザードからPostgreSQLの接続設定を行います。この際PostgreSQLのユーザには、スーパーユーザー権限を持ったユーザ情報を入力します。
4.次にトランザクションログのセットアップウィザードから差分連携設定を行います。今回はLSA方式のセットアップを行うので、Log Server Agentを選択します。
5.次の画面では、デコードプラグインとして「test_decoding(default)」を選択したままとし、レプリケーションスロットでは「新しいスロットを追加する」を選択、スロットの新規作成も行うようにします。
6.次にLSAの設定を行います。ログフォルダ設定では、手順2で作成したフォルダを指定し、接頭語やサービス名のフィールドに、任意の名前を指定します。
その後、ウィザードを進め、終了することで、LSA方式のセットアップが完了です。
■Synitiライブラリファイルを使用したセットアップ手順
以下のセットアップ手順は、デフォルトのPostgreSQLプラグイン(test_decoding)を使用できる場合は不要です。
このデフォルトプラグインがPostgreSQL側に存在しない場合などには、Synitiライブラリファイルを配置することでも実施できます。必要となるSynitiライブラリファイルは、ご使用のPostgreSQLのバージョンやOSによって異なります。必要な場合は、PostgreSQLのバージョン(10.3など)と、使用しているOSの情報と共に、弊社サポートまでお問い合わせください。
Synitiライブラリファイルは下記のように「XXX_dbm_decoding_」という形で命名されているので、PostgreSQLのOSがWindowsの場合は「XXX_dbm_decoding.dll」、Linuxの場合は「XXX_dbm_decoding.so」にファイル名を変更してから、PostgreSQLのlibフォルダに配置します。
以降は、上記「デフォルトのPostgreSQLプラグイン(test_decoding)を使用したセットアップ手順 」と同様に、PostgreSQLのWALログレベル等を変更し、Syniti画面からPostgreSQLの接続設定を行っていきます。
その後、トランザクションログのセットアップウィザードのデコードプラグインを選択する画面で、「dbm_decoding」を選択します。これにより Synitiライブラリファイルを使用したLSA方式のセットアップが実施できます。
関連したトピックス
- RDS PostgreSQLからの差分セットアップ【Syniti DR 9.6】
- レプリケーション対象テーブル構成変更後のSyniti Data Replication (旧DBMoto) マッピング対応について
- DBMotoからSyniti Data Replicationへのアップグレード方法
- Syniti Data Replication (DBMoto) の監視方法について
- Syniti DR(DBMoto)でメール通知を行うアラート設定
- DBMoto[Syniti]の技術お問合せ時に必要な情報
- 進化するクエリと PostgreSQLの台頭:そのデータベー スパフォーマンス重要性
- Log Server Agent for IBM for i (AS/400)の設定手順
- データレプリケーションソリューションに求められる9つのポイント
- Syniti Data Replication 新機能ブログ Apache Kafkaへのレプリケーション対応!