PostgreSQLからの差分連携(LSA)セットアップ手順【Syniti DR】


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 LSAWALログの情報を取得、バイナリログとして差分情報を保持するという流れです。これに伴い、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方式のセットアップが実施できます。

関連したトピックス

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください