これは、Qレプリケーション・チュートリアル ASNCLP版の1番目の記事です。
| 次の記事(2)→
(1) | (2) | (3) | (4) | (5)
はじめに
IBM InfoSphere Data Replication のQレプリケーションは、IBM Db2から、Db2あるいはOracleやSQL Serverへ、大量のデータを短い待ち時間で複製することができます。
Qレプリケーションそのものをまず知りたいという場合は、こちらの概要の資料を最初にご覧になるのが良いかと思います。
IBM Support :【SIL】【IM】Qレプリケーション概要
Qレプリケーションは、データの送受信にMQのキューを利用する、LUW(Linux,Unix,Windows)環境だけでなくz/OSでも同じアーキテクチャーで動くレプリケーション製品ですが、このQレプリケーションを試しに動かしてみようとした場合、こちら↓のチュートリアルを参考にすることも多いかと思います。
Q レプリケーション・チュートリアル - IBM Documentation
https://www.ibm.com/docs/ja/idr/11.4.0?topic=tutorials-q-replication-tutorial
このチュートリアルではレプリケーション・センターというGUIを使った方法でレプリケーションの定義を行っています。GUIは分かりやすいですが、実際のシステムでレプリケーション環境を構築する場合、対象の表数が多い場合などGUIでいちいち定義するのは逆に面倒とも言えます。
ASNCLP
実はQレプリケーションは、ASNCLPというコマンドレベルのツールを使って定義することもできます。
ASNCLPを利用すると、多くの定義をバッチ的にまとめて行うことが可能になります。
また、レプリケーション・センターを使用するためにはWindowsやLinuxマシンが必要ですが、ASNCLPはWindows、Linux、AIX、またz/OSでも使用することができ、実際の構築ではこちらの方法が多く利用されています。
そこでこの投稿では、このQレプリケーション・チュートリアルの内容をASNCLPをつかって行ったらどうなるかということで、その具体的内容や実行結果を含めて紹介したいと思います。
またMQ関連の定義も、チュートリアルでは1コマンドずつ実行していますが、そちらに関してもバッチ的にまとめて実行する方法をご紹介しています。
シナリオについて
シナリオは、チュートリアルの概要の記載内容に添って行います。
ここではLUW環境に2つのDb2データベース、そして2つのMQマネージャーを作成してレプリケーションを行うシナリオになっており、以下の3つのモジュールに分かれています
・モジュール 1: MQ のセットアップ
・モジュール 2: Q レプリケーションのセットアップ
・モジュール 3: Q レプリケーションの開始
この投稿の手順も、実行する内容は基本的にはそれぞれのモジュールで行う作業に準じていますが、チュートリアルには含まれていないことや、別の方法や順番で実行している箇所もありますことを、ご了承ください。
元のチュートリアルとこの投稿の内容との違い
モジュール1:MQのセットアップ
チュートリアルでは、キューなどのMQオブジェクトの作成を、runmqsc セッションを利用して1つずつ作成していますが、ファイルにまとめて記載して実行する方法を紹介します。
モジュール 2: Q レプリケーションのセットアップ
チュートリアルでは、レプリケーション・センターを使って、制御表の作成やレプリケーション定義を行っていますが、これらをASNCLPで行う方法を紹介します。
モジュール 3: Q レプリケーションの開始
チュートリアルでは、Q キャプチャー・プログラムやQ アプライ・プログラムの開始や状況確認を、レプリケーション・センターを使って実行していますが、コマンドによる開始、状況確認、さらに停止をする方法を紹介します。
使用している製品のレベルと環境
ここでは、Windows版のMQ V9とDb2 V11.5で実行したコマンドや結果を掲載しています。
実行する内容はLinux,AIXでも基本的には同じです。
異なる箇所がある場合は、適宜コメントを入れてあります。
Qレプリケーションの導入について
Qレプリケーションの製品コードは、Db2のサーバーのコードに含まれているので、Db2を導入すれば、Qレプリケーションの製品コードの導入という作業は不要です。
ただし、チュートリアルでは明確に記載されていませんが、使用されるDb2が V11.5以上の場合は、Qレプリケーションを動かすためのライセンスの登録が必須になっています。
(Db2 V11.1まではQレプリケーションのライセンスが含まれているDb2のサーバー・エディションがありますが、V11.5からは全てのエディションで、専用のライセンスが必要です。)
ライセンス・ファイル(iidr.lic)は、InfoSphere® Data Replicationのアクティベーション・キットに含まれています。
参考.ライセンスの登録
■ライセンスの登録方法
db2licm -a iidr.lic
ライセンス登録 結果例
LIC1402I ライセンスが正常に追加されました。
■ライセンス登録の確認
db2licm -l
ライセンス登録の確認 結果例
製品名: "InfoSphere Data Replication"
ライセンス・タイプ: "CPU"
有効期限: "永続"
製品 ID: "iidr"
バージョン情報: "11.5"
並行コネクター・ポリシー: "無効"
制約ポリシー: "ソフト・ストップ"
シナリオの作業に入る前の準備
データベースの作成
Q レプリケーション・チュートリアルの概要に前提条件として記載されているように、データベースを2つ作成します。
Linux,AIX,Windowsいずれでも構いませんので、DB2コマンド・ウィンドが使える環境に入ってください。
1.SAMPLEデータベースの作成(Windowsの例)
db2sampl
db2samplコマンドの場所や使用方法は以下を参考にしてください
SAMPLE データベースの作成
https://www.ibm.com/docs/ja/db2/11.5?topic=database-creating-sample
1. SAMPLEデータベースの作成 結果例
Creating database "SAMPLE"...
Connecting to database "SAMPLE"...
Creating tables and data in schema "DB2ADMIN"...
Creating tables with XML columns and XML data in schema "DB2ADMIN"...
'db2sampl' processing complete.
2.SAMPLEデータベース接続・切断の確認
db2 connect to sample
2. SAMPLEデータベースの接続確認 結果例
データベース接続情報
データベース・サーバー = DB2/NT64 11.5.8.0
SQL 許可 ID = DB2ADMIN
ローカル・データベース別名 = SAMPLE
db2 terminate
2. SAMPLEデータベースの切断確認 結果例
DB20000I TERMINATE コマンドが正常に完了しました。
3.SAMPLEデータベースの構成の確認
db2 get db cfg for sample | more
3. SAMPLEデータベースの構成の確認 結果例
データベースのデータベース構成 sample
データベース構成リリース・レベル = 0x1500
データベース・リリース・レベル = 0x1500
データベース・レベルの更新ペンディング = NO (0x0)
データベース・テリトリー = JP
データベース・コード・ページ = 1208
データベース・コード・セット = UTF-8
データベース国/地域コード = 81
データベース照合順序 = IDENTITY
(以下省略)
上記で確認したように、SAMPLEデータベースはコードセットがUTF-8(Unicode)、テリトリーはJP、照合順序はIDENTITYなので、TARGETDBも同様に作成します。
4.TARGETDBデータベースの作成
db2 create database TARGETDB using codeset UTF-8 territory JP collate using identity
4. TARGETDBデータベースの作成 結果例
DB20000I CREATE DATABASE コマンドが正常に完了しました。
5.TARGETDBデータベースの接続・切断の確認
db2 connect to targetdb
5. TARGETDBデータベースの接続確認 結果例
データベース接続情報
データベース・サーバー = DB2/NT64 11.5.8.0
SQL 許可 ID = DB2ADMIN
ローカル・データベース別名 = TARGETDB
db2 terminate
5. TARGETDBデータベースの切断確認 結果例
DB20000I TERMINATE コマンドが正常に完了しました。
6.TARGETDBデータベースの構成の確認
db2 get db cfg for targetdb | more
6. TARGETDBデータベースの構成の確認 結果例
データベースのデータベース構成
データベース構成リリース・レベル = 0x1500
データベース・リリース・レベル = 0x1500
データベース・レベルの更新ペンディング = NO (0x0)
データベース・テリトリー = JP
データベース・コード・ページ = 1208
データベース・コード・セット = UTF-8
データベース国/地域コード = 81
データベース照合順序 = IDENTITY
(以下省略)
以上で、チュートリアルに記載されている準備作業はOKです。
では、各モジュールの作業に入ります。
次のステップ モジュール 1 MQ のセットアップ
→ Qレプリケーション・チュートリアル ASNCLP版(2)