技術ブログ
目次
本記事では、CData Sync を用いて、SQL Server から PostgreSQL へのニアリアルタイム データ連携(論理レプリケーション)を構成する手順についてご説明します。
なお、弊社コーソルはCData パートナーであり、CData Syncの販売および導入、運用やトライアルの支援が可能です。
CData Syncは、非常に多くのデータベース製品、SaaS、アプリケーション、APIに対応したデータ連携ツールです。
以下の特徴を持ちます。
弊社からCData Syncを見積/購入いただくと、以下のサービスを無償でご提供いたします。
以下の記事でご紹介しているため、こちらをご覧ください。
CDCに、SQL Serverの変更データキャプチャ機能を使用するため、このための設定を行います。
C:\Users\Administrator>sqlcmd -S localhost -U u1 -P Pass123- -d db1
1> SELECT @@VERSION;
2> go
-------------------------------------------------------------------------------------------------------------
Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64)
Sep 24 2019 13:48:23
Copyright (C) 2019 Microsoft Corporation
Standard Edition (64-bit) on Windows Server 2019 Standard 10.0 <X64> (Build 17763: ) (Hypervisor)
(1 行処理されました)
1> CREATE TABLE t9 (n integer primary key, s varchar(10));
2> go
1>
2> INSERT INTO t9 VALUES(1, 'AAA');
3> INSERT INTO t9 VALUES(2, 'BBB');
4> INSERT INTO t9 VALUES(3, 'CCC');
5> go
(1 行処理されました)
(1 行処理されました)
(1 行処理されました)
1> SELECT * FROM t9;
2> go
n s
----------- ----------
1 AAA
2 BBB
3 CCC
(3 行処理されました)
1>
C:\Users\Administrator>sqlcmd -S localhost -U sa -P cosol -d db1
1> EXEC sys.sp_cdc_enable_db;
2> GO
1> SELECT name, is_cdc_enabled FROM sys.databases
2> GO
name is_cdc_enabled
---------- --------------
master 0
tempdb 0
model 0
msdb 0
db1 1
(5 行処理されました)
1>
1> EXEC sys.sp_cdc_enable_table
2> @source_schema = dbo,
3> @source_name = t9,
4> @role_name = NULL
5> GO
ジョブ 'cdc.db1_capture' が正常に開始しました。
ジョブ 'cdc.db1_cleanup' が正常に開始しました。
1>
ここでは、ユーザーsaで接続し、データベースに対する変更をキャプチャすることにしています。
ターゲットデータベース側で、データの連携先となるデータベースとユーザーを準備します。 ここでは、データベースdb1およびユーザーu1を作成しています。以下の手順に従います。
CData Syncの管理コンソールで、ターゲットPostgreSQLへの接続「tgt_pg」を構成します。以下の手順に従います。
弊社からCData Syncを見積/購入いただくと、以下のサービスを無償でご提供いたします。
CData Syncの管理コンソールで、でジョブ(レプリケーションジョブ)とタスクを作成します。
作成したジョブを実行します。
初回実行であるため、ターゲットPostgreSQLに対してテーブルが作成され、ソースSQL Serverのデータが連携されます(レプリケーションされます)。
[postgres@l8rep3db2 ~]$ psql -U u1 -d db1 -h localhost
Password for user u1:
psql (16.3)
Type "help" for help.
db1=> SELECT * FROM t9;
n | s | _cdatasync_deleted
---+-----+--------------------
1 | AAA | f
2 | BBB | f
3 | CCC | f
(3 rows)
db1=>
なお、_cdatasync_deleted列は、ソースデータベースにおけるデータの削除状況を示すフラグのような役割をする列です。
ソースSQL Serverにデータを追加してから、ジョブを実行します。 ジョブの実行手順は初回実行と同じです。 2回目の実行であるため、前回のジョブ実行からの差分だけがデータ連携(レプリケーション)されます。
ソースSQL Serverにデータを追加
C:\Users\Administrator>sqlcmd -S localhost -U u1 -d db1
パスワード:
1> INSERT INTO t9 VALUES(4, 'DDD');
2> INSERT INTO t9 VALUES(5, 'EEE');
3> GO
(1 行処理されました)
(1 行処理されました)
1> SELECT * FROM t9;
2> GO
n s
----------- ----------
1 AAA
2 BBB
3 CCC
4 DDD
5 EEE
(5 行処理されました)
1>
ジョブ実行後、ターゲットPostgreSQLでデータを確認
db1=> SELECT * FROM t9;
n | s | _cdatasync_deleted
---+-----+--------------------
1 | AAA | f
2 | BBB | f
3 | CCC | f
4 | DDD | f
5 | EEE | f
(5 rows)
db1=>
スケジュールを設定して、ジョブ実行を自動化することも可能です。
弊社コーソルはCData パートナーであり、CData Syncの製品販売を行います。加えて、コーソルが得意とするデータベース技術領域を含めたCData Syncの導入、技術支援、サポートを行います。
CData Syncを用いたデータ連携をご検討されている場合は、ぜひコーソルへご相談いただければとと思います。
データベースのレプリケーションにおいては、データベース製品およびレプリケーション製品の両方の知識が必要です。このような知識を持つエンジニアの確保は一般に困難です。弊社のサービスがこの問題のお役に立てると考えております。
また、弊社からCData Syncを見積/購入いただくと、以下のサービスを無償でご提供いたします。
コーソルからデータベース関連製品をご購入いただくと、ORACLE MASTER Platinum 単年取得者数7年連続No.1、2016年6月以降 累計保持者数No.1という指標に裏付けされた高い技術力により、安心して製品を導入/利用いただけます。
ORACLE MASTER Platinumとは、2日間にわたる実技試験により認定されるOracle Database最高難度の資格です。 グローバルで有効な資格であり、海外では"Oracle Certified Master"と呼ばれます。
ORACLE MASTER Platinumとは何か / コーソルはPlatinum取得者数No.1!
Oracle Databaseについても製品販売、製品サポート、製品の導入を行います。また、リモート回線経由でスポット的なDBA実務を行うリモートDBAサービス、コンサルティングやベンダコントロールを含めたOracle Databaseプロフェッショナルサービスを時間制で提供する時間制コンサルサービスも提供しています。
データベース運用保守なら常駐しないリモートDBA
基幹系DB運用支援および製品サポートについては、3拠点体制による24時間365日対応が可能です。
コーソルは、Oracle Databaseをはじめとするデータベース製品に関する深い知識を活かし、多数のデータベース関連製品を取り扱っております。
これらの製品について、販売・導入・運用を様々な形でご支援します。お困りの際はぜひ弊社にお声がけくださいませ。