Qレプリケーションは、ソース側で動くQキャプチャーとターゲット側で動くQアプライがあります。それぞれ制御表を持ち、レプリケーション定義情報が格納されています。
制御表はASNCLPコマンドや、レプリケーションセンター(GUI)を使って作成することができます。
※Db2/zの場合には、制御表作成のサンプルJCLが提供されています。
1. 準備
1-1. DBをカタログする
asnclpコマンドの実行環境から、ソースDBとターゲットDBの両方にアクセスできる必要があるためカタログします。
--ソースDBへのカタログ(例)
db2 catalog tcpip node snode remote 192.168.1.1 server 50000
db2 catalog db SRCDB at node snode
--ターゲットDBへのカタログ(例)
db2 catalog tcpip node tnode remote 192.168.1.2 server 50000
db2 catalog db TGTDB at node tnode
1-2. Qマネージャー、およびMQオブジェクトを作成
ASNCLPコマンドで制御表を作成したり、定義を作成する際に、QマネージャーやMQオブジェクト名を指定します。
ただし、ASNCLPコマンド実行時に存在チェックなどはしないため、必ずしも定義前に作成しておく必要はありませんが、どういう構成、名前にするのかは決めておく必要があります。
2. ASNCLPスクリプトを作成する
ASNCLPコマンドは、コマンドプロンプトから1つ1つ実行する事もできますが、スクリプト・ファイルに保存してバッチ実行も可能です。スクリプトは定義のバックアップにもなるため通常はバッチ実行をします。
コメントアウトは#です。
ASNCLP SESSION SET TO Q REPLICATION;
SET RUN SCRIPT NOW STOP ON SQL ERROR ON;
# 生成されたSQLを任意のファイルに保管
SET OUTPUT CAPTURE SCRIPT "CrtQCap.sql";
SET OUTPUT TARGET SCRIPT "CrtQApp.sql";
# ソースDB、ターゲットDBへ接続するユーザー情報
SET SERVER CAPTURE TO DB SRCDB ID db2inst1 PASSWORD "xxxxxxx";
SET SERVER TARGET TO DB TGTDB ID db2inst1 PASSWORD "xxxxxxx";
# それぞれの制御表のスキーマ名を指定 (デフォルトはASN)
SET CAPTURE SCHEMA SOURCE QREP;
SET APPLY SCHEMA QREP;
# ソースシステム、ターゲットシステムで稼働するQマネージャーを指定
SET QMANAGER TQMGR FOR APPLY SCHEMA;
SET QMANAGER SQMGR FOR CAPTURE SCHEMA;
# 制御表をDROPする場合は # を外す
#DROP CONTROL TABLES ON APPLY SERVER;
#DROP CONTROL TABLES ON CAPTURE SERVER;
# Qアプライ制御表の作成
CREATE CONTROL TABLES FOR APPLY SERVER;
# Qキャプチャー制御表の作成
CREATE CONTROL TABLES FOR CAPTURE SERVER
USING RESTARTQ "QREP.RESTARTQ" ADMINQ "QREP.ADMINQ" ;
3. ASNCLPスクリプトを実行して制御表を作成する
下記のコマンドで実行します。
asnclp -f ファイル名
==> asnclp -f CreateControl.in
====
CMD: ASNCLP SESSION SET TO Q REPLICATION;
====
====
CMD: SET RUN SCRIPT NOW STOP ON SQL ERROR ON;
====
~ 省略 ~
ASN1956I ASNCLP : Generating SQL script files for action: "CREATE CONTROL TABLES".
ASN1955I ASNCLP : Using the following files: "CrtQCap.sql" for the Capture SQL script, "replctl.sql" for the control SQL script, "CrtQApp.sql" for the target SQL script, and "qreplmsg.log" for the log file.
--- ASNCLP Version 11.5 Build date 2022-09-20 20:05:06
<ClpInfo2Log:: Preparing to run script.>
<ClpInfo2Log:: Now running SQL...>
ASN1514I The replication action ended at "2022年12月17日 (土曜日) 2時32分33秒 JST" with "1" successes, "0" errors, and "0" warnings.
<ClpInfo2Log:: The SQL command completed successfully.>
ASN1953I ASNCLP : Command completed.
実行ディレクトリには、CrtQCap.sql
とCrtQApp.sql
が生成されます。
上記の例では、スクリプトを生成し即時実行しています。
SET RUN SCRIPT LATER;
# SET RUN SCRIPT NOW STOP ON SQL ERROR ON;
とすることで、スクリプトのみ生成し実行しない事も可能です。
4. 作成された制御表を確認する
作成される制御表は、バージョンや環境 (LUW、z/OS、Native Oracle QApply)によって違います。
Q キャプチャー・サーバーのコントロール表
Q アプライ・サーバーのコントロール表
==> db2 connect to srcdb
Database Connection Information
Database server = DB2/AIX64 11.5.8.0
SQL authorization ID = DB2INST1
Local database alias = SRCDB
==> db2 list tables for schema QREP
Table/View Schema Type Creation time
------------------------------- --------------- ----- --------------------------
IBMQREP_ADMINMSG QREP T 2022-12-17-04.49.09.073646
IBMQREP_CAPCMD QREP T 2022-12-17-04.49.13.133822
IBMQREP_CAPCMDOUT QREP T 2022-12-17-04.49.14.309921
IBMQREP_CAPENQ QREP T 2022-12-17-04.49.08.476645
IBMQREP_CAPENVINFO QREP T 2022-12-17-04.49.12.491702
IBMQREP_CAPMON QREP T 2022-12-17-04.49.06.204295
IBMQREP_CAPPARMS QREP T 2022-12-17-04.48.58.310026
IBMQREP_CAPQMON QREP T 2022-12-17-04.49.07.399963
IBMQREP_CAPTRACE QREP T 2022-12-17-04.49.05.125617
IBMQREP_COLVERSION QREP T 2022-12-17-04.49.24.638999
IBMQREP_EXCLSCHEMA QREP T 2022-12-17-04.49.22.652205
IBMQREP_FILE_SENDERS QREP T 2022-12-17-04.49.15.551253
IBMQREP_FILES_SENT QREP T 2022-12-17-04.49.16.601550
IBMQREP_FILESEND_MON QREP T 2022-12-17-04.49.17.844066
IBMQREP_IGNTRAN QREP T 2022-12-17-04.49.10.166633
IBMQREP_IGNTRANTRC QREP T 2022-12-17-04.49.11.403926
IBMQREP_PART_HIST QREP T 2022-12-17-04.49.18.925095
IBMQREP_SCHEMASUBS QREP T 2022-12-17-04.49.21.438628
IBMQREP_SENDQUEUES QREP T 2022-12-17-04.48.59.566870
IBMQREP_SIGNAL QREP T 2022-12-17-04.49.03.960311
IBMQREP_SRC_COLS QREP T 2022-12-17-04.49.02.090490
IBMQREP_SRCH_COND QREP T 2022-12-17-04.49.03.340000
IBMQREP_SUBS QREP T 2022-12-17-04.49.00.893647
IBMQREP_SUBS_PROF QREP T 2022-12-17-04.49.20.279249
IBMQREP_TABVERSION QREP T 2022-12-17-04.49.23.159657
25 record(s) selected.
==> db2 connect to tgtdb
Database Connection Information
Database server = DB2/AIX64 11.5.8.0
SQL authorization ID = DB2INST1
Local database alias = TGTDB
==> db2 list tables for schema QREP
Table/View Schema Type Creation time
------------------------------- --------------- ----- --------------------------
IBMQREP_APPENVINFO QREP T 2022-12-17-04.48.42.095393
IBMQREP_APPEVENTS QREP T 2022-12-17-04.48.46.960457
IBMQREP_APPEVTDEFS QREP T 2022-12-17-04.48.45.841477
IBMQREP_APPLYCMD QREP T 2022-12-17-04.48.49.120711
IBMQREP_APPLYCMDOUT QREP T 2022-12-17-04.48.27.036200
IBMQREP_APPLYENQ QREP T 2022-12-17-04.48.41.507032
IBMQREP_APPLYMON QREP T 2022-12-17-04.48.38.383603
IBMQREP_APPLYPARMS QREP T 2022-12-17-04.48.28.953270
IBMQREP_APPLYTRACE QREP T 2022-12-17-04.48.37.222988
IBMQREP_DONEMSG QREP T 2022-12-17-04.48.55.276237
IBMQREP_EXCEPTIONS QREP T 2022-12-17-04.48.35.180977
IBMQREP_FILE_RECEIVERS QREP T 2022-12-17-04.48.50.273030
IBMQREP_FILERECV_MON QREP T 2022-12-17-04.48.52.582282
IBMQREP_FILES_RECEIVED QREP T 2022-12-17-04.48.51.401040
IBMQREP_MCGMON QREP T 2022-12-17-04.48.48.016785
IBMQREP_RECVQUEUES QREP T 2022-12-17-04.48.30.161648
IBMQREP_ROLLBACK_R QREP T 2022-12-17-04.48.43.740777
IBMQREP_ROLLBACK_T QREP T 2022-12-17-04.48.42.594257
IBMQREP_SAVERI QREP T 2022-12-17-04.48.41.016161
IBMQREP_SPILLEDROW QREP T 2022-12-17-04.48.39.815154
IBMQREP_SPILLQS QREP T 2022-12-17-04.48.34.030135
IBMQREP_TAB_PROF QREP T 2022-12-17-04.48.53.716090
IBMQREP_TARGETS QREP T 2022-12-17-04.48.31.506124
IBMQREP_TRG_COLS QREP T 2022-12-17-04.48.32.872472
24 record(s) selected.