PostgreSQLからの差分連携セットアップ【DBMoto9.5】


DBMoto v9.5より、PostgreSQLからも差分レプリケーションを実施できるようになりました。もちろんOracleSQL ServerAS/400といった異種データベースへの差分連携や、Amazon RDSAzure SQL Databaseなどのクラウド環境へのレプリケーションも実施可能です。


PostgreSQLからの差分レプリケーションではレプリケーションスロットというPostgreSQLの機能を使用して実施します。レプリケーショスロットを介してDBMoto Log Server Agent WALログの情報を取得し、バイナリログとして差分情報を保持する流れです。このため、DBMotoPostgreSQLからの差分連携を実施するにあたり、下記の要件を満たす必要があります。

————————————–

<DBMoto>

DBMoro ver9.5以降

<PostgreSQL DB>

PostgreSQL 9.5以降

・スーパーユーザー権限を持ったユーザが必要

・レプリケーション対象テーブルへのPK設定

PostgreSQLサーバへのライブラリファイルの配置

PostgreSQLサーバのWALログレベル等の設定変更

・片方向差分連携(ミラーリング)のみ対応


※双方向差分連携(シンクロナイゼーション)は未対応

<Log Server Agent 使用領域>

・バイナリログファイルを保存する領域

————————————–

 

以下は、実際のセットアップ手順となります。

PostgreSQL側での事前準備

1.まずはPostgreSQL上に配置するライブラリファイルを確認します。

複数ありますが、これはOSの種類とバージョン、そしてPostgreSQLのバージョンによって使用するファイルが変わります。

ファイル名は「OS種類およびバージョン)_dbm_decoding _」という形で命名されているので、お使いの環境に対応するファイル名のものを選択してください。
万が一存在していない場合は、弊社までお問い合わせください。ご用意いたします。


2.手順1で選択したファイルをPostgreSQLlibフォルダに配置します。この際ファイル名をWindowsの場合はdbm_decoding.dllLinuxの場合はdbm_decoding.soに変更してから配置します。


3.最後にWALログレベル等のPostgreSQL側の設定変更を行います。postgresql.confファイルを編集し、下記設定へと変更します。変更後は設定を反映させるため、PostgreSQLデータベースサービスの再起動を行います。

wal_level = logical

max_replication_slots = 3

track_commit_timestamp = on


以上で、PostgreSQL側の事前準備は完了です。以降はDBMotoサーバで一元的にレプリケーション設定や、管理を行えます。

DBMotoサーバで差分連携設定

4.DBMotoをインストールしたマシンから接続できるパスに、下記フォルダを新規に作成します。

・ログフォルダ : バイナリログファイルを保存するフォルダです。


5.DBMotoを起動し、ソースDB接続作成ウィザードからPostgreSQLの接続設定を行います。この際スーパーユーザー権限を持ったユーザ情報を入力します。


6.次にトランザクションログのセットアップウィザードから差分連携設定を行います。このウィザード上で、レプリケーションスロットの新規作成を実施することも可能です。ログフォルダ設定では手順4で作成したフォルダを指定します。

7.完了後、同様の手順でターゲットDBへの接続設定を行い、レプリケーションを作成、DBMoto Data Replicatorを起動することでPostgreSQLからの差分レプリケーションを実行できます。

関連したトピックス

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

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