CREATE QSUB コマンド (単一方向レプリケーション)
CREATE QSUB コマンドを使用して、ソース表をターゲット表にマップする Q サブスクリプションを作成します。 クラシック・レプリケーションの場合、Q サブスクリプションは、クラシック・メタデータ・カタログ内のソース表またはソース・ビューを、ターゲット表にマップします。
構文
パラメーター
- SUBTYPE U
- 単一方向レプリケーションを指定します。
- USING REPLQMAP マップ名
- このコマンド内のすべての Q サブスクリプションによって使用されるレプリケーション・キュー・マップの名前を指定します。 これは、一括シナリオ、つまり各 Q サブスクリプションごとにレプリケーション・キュー・マップが括弧で指定されていない場合にすべての Q サブスクリプションによって使用されるレプリケーション・キュー・マップです。
subname-qmap-clause:
- SUBNAMEsubname
- Q サブスクリプションの名前を指定します。
- DESC 「説明」
- Q サブスクリプションの記述を指定します。
- REPLQMAPmapname
- Q サブスクリプションのレプリケーション・キュー・マップの名前を指定します。
src-clause:
- source_owner。source_name
- ソース表のスキーマと名前を指定します。
- SRC OWNER LIKE "predicate1"
- スキーマが LIKE ステートメント内の式と一致するすべての表を選択することを指定します。 LIKE ステートメントは、例えば次のようにします。
このオプションではスキーマ別名はサポートされていません。CREATE QSUB USING REPLQMAP ABCDPUBQMAP (SRC OWNER LIKE "ASN%"); CREATE QSUB USING REPLQMAP ABCDPUBQMAP (SRC OWNER LIKE "JDOE" SRC NAME LIKE "%TAB%"); - SRC NAME LIKE
- 名前が LIKE ステートメント内の式と一致するすべての表を選択することを指定します。 LIKE ステートメントは、例えば次のようにします。
このオプションでは、表の別名はサポートされていません。CREATE QSUB USING REPLQMAP ABCDPUBQMAP (SRC OWNER LIKE "ASN%"); CREATE QSUB USING REPLQMAP ABCDPUBQMAP (SRC OWNER LIKE "JDOE" SRC NAME LIKE "%TAB%"); - SRC ALL
- ソース・サーバー上に存在するすべての表を選択することを指定します。 Db2® ソースの場合、これはカタログ・ビューを除外します。
srcparts-clause:
- SRCPARTS
- Q サブスクリプションに組み込むパーティション番号を指定します。 1 つのパーティションを partnum 変数および partnum2 変数に指定するか、連続する 1 つ以上のパーティション番号の範囲を指定することができます。 例えば、
SRCPARTS (4)は、表パーティション 4 から変更を複製することを指定します。 または、SRCPARTS (1 TO 9)は、パーティション 1 から 9 までの変更を複製することを指定します。 複数のパーティション範囲を区切るには、コンマを使用します (例:SRCPARTS (1 TO 3,5 to 9))。 partnum 値は、表を作成するための DDL に示されている、物理パーティション番号を表している必要があります。 この番号は、SYSIBM.SYSTABLEPART システム・カタログ表の PARTITION 列に保管されています。
opt-clause:
- SEARCH CONDITION 「search_condition」
- 複製またはパブリッシュする変更をフィルター処理するための検索条件を指定します。 このパラメーターは、クラシック・レプリケーションでは使用できません。 述部が false の場合、変更は送信されません。 "search_condition" は注釈付き選択 WHERE 文節で、複製対象となる表の列名の前にはコロンが必要です。 WHERE 節は、例えば次のようにします。
CREATE QSUB USING REPLQMAP ASNMAP (SUBNAME mysubname ALLTYPE1 OPTIONS SEARCH CONDITION "WHERE :MYKEY > 1000") - ALL CHANGED ROWS
- データ送信オプションを指定します。
- N (default)
- ソース表のサブスクライブ列に変更があった場合のみ、行を送信します。
- Y
- ソース表のどの列に変更があっても行を送信します。
- HAS LOAD PHASE
- ソースのデータを使って Q サブスクリプションのターゲット表をロードするかどうかを指定します。
- I (default)
- 自動ロードを指定します。 Q アプライ・プログラムはターゲットをロードします。 ロード方法は、LOAD TYPE キーワードによって異なります。 Q サブスクリプションのターゲットとしてストアード・プロシージャーが指定されている場合、このパラメーターは無効です。
- E
- 手動ロードを指定します。 Q アプライ・プログラム以外のアプリケーションはターゲットをロードします。 この場合、LOADDONE コマンドを使用して、ロードが完了したことを示します。
- N
- ターゲットでのロード・フェーズはありません。
- CAPTURE_LOAD
- DB2 LOAD ユーティリティーを使用するロード操作がソース表で行われたことをリカバリー・ログが示しているときに Q キャプチャー・プログラムが取るアクションを指定します。
- W (default)
- Q キャプチャーは、ロード完了後に警告メッセージを発行します。
- R
- Q キャプチャーは、ソース表の Q サブスクリプションを停止してから開始し、Q サブスクリプションでロードが指定されていればターゲット表のロードを促すプロンプトを出します。
- SPILL_MODELQ 「名前」
- この Q サブスクリプションのスピル・キューとして使用されるモデル・キューの名前を指定します。 z/OS®では、モデル・キューのページ・セットがロード中に複数の Q サブスクリプションからのトランザクションを処理するのに十分な大きさでない場合に、Q サブスクリプション用に別個の予備キューを作成することができます。 キュー名は二重引用符で囲む必要があります。
- SUPPRESS DELETES
- ソース表から削除された行を送信するかどうかを指定します。
- N (default)
- 削除行を送信します。
- Y
- 削除行を送信しません。
- CCD_KEYUPD_AS_DELINS
- ソースのキー列値に対する更新を、整合変更データ (CCD) ターゲットでの削除および挿入に変更するかどうかを指定します。
- N (default)
- ソースでの更新によってキー列の値が変更されると、Q アプライ・プログラムはターゲット行を更新し、CCD 表の OPERATION 列を U に設定します。
- Y
- キー更新の後、Q アプライは更新されたキー値を持つ新しい行を挿入します。 詳しくは、 IBMQREP_TARGETS 表 を参照してください。
- REPLICATE ADD COLUMN
- ソース表に追加された新しい列を、Q サブスクリプションおよびターゲット表 (それらの列がまだ存在しない場合) に自動的に追加するかどうかを指定します。
- Y (default)
- ソース表の新しい列は、自動的に Q サブスクリプションに追加されます。
- N
- ソース表の新しい列は、自動的には Q サブスクリプションに追加されません。
- CHANGE CONDITION 「change_condition」
- 複製する変更のフィルター処理にログ・レコード変数を使用する述部を指定します。 このパラメーターは、クラシック・レプリケーションでは使用できません。
以下のログ・レコード変数を使用できます。
操作 ($OPERATION) DML 操作。 有効な値は、I (挿入)、U (更新)、および D (削除) です。 AUTHID トランザクションの許可 ID。 $AUTHTOKEN z/OS: トランザクションの許可トークン (ジョブ名) です。 $PLANNAME z/OS: トランザクションのプラン名です。 例えば次の述部は、ユーザー ASN によってコミットされなかったログ・レコードのみを Q キャプチャーが複製することを指定します。
SEARCH CONDITION キーワードを使用して別の述部が指定された場合、 その述部は CHANGE CONDITION 述部と AND 演算子を使用して結合され、単一の述部になります。 CHANGE CONDITIONのフォーマットについて詳しくは、 行をフィルターに掛けるためのログ・レコード変数を参照してください。"$AUTHID <> 'ASN'" - START AUTOMATICALLY
- Q サブスクリプションの開始方法を指定します。これは、IBMQREP_SUBS 表の State 列によって表されます。 State 列は、Q キャプチャー・プログラムの開始または再初期化後にサブスクリプションを自動的に開始するか (サブスクリプション状態 N)、IBMQREP_SIGNAL 表にコマンドを挿入することによってサブスクリプションを手動で開始する必要があるか (サブスクリプション状態 I) を制御します。
- YES
- Q サブスクリプションは自動的に開始されます (サブスクリプション状態の値が N)。 これがデフォルトです。
- NO
- Q サブスクリプションは手動で開始する必要があります (サブスクリプション状態の値が I)。
- IGNORE TRIGGERS
- ソース・データベースで AFTER トリガーによって生成された行を複製しないよう指定します。 ターゲット表ですでにマッチング・トリガーが使用されている場合に、重複した行を避けるためにこのオプションを使用します。 このオプションを Q サブスクリプションに使用すると、Q キャプチャーのインスタンス・レベルの igntrig パラメーターが N に設定されていても、トリガーされた変更は無視されます。
- IGNORE CASCADE DELETES
- ON DELETE CASCADE 規則によって行が子テーブルから削除される場合に、DELETE オペレーションを複製しないよう指定します。 ターゲット・データベースですでに ON DELETE CASCADE が使用されている場合に、DELETE オペレーションの重複を避けるためにこのオプションを使用します。 このオプションを Q サブスクリプションに使用すると、Q キャプチャーのインスタンス・レベルの igncasdel パラメーターが N に設定されていても、カスケード DELETE オペレーションは無視されます。
- IGNORE SET NULL
- ON DELETE SET NULL 規則によって子テーブルの外部キーが NULL に設定される場合に、UPDATE オペレーションを複製しないよう指定します。 ターゲット・データベースですでに ON DELETE SET NULL が使用されている場合に、UPDATE オペレーションの重複を避けるためにこのオプションを使用します。 このオプションを Q サブスクリプションに使用すると、Q キャプチャーのインスタンス・レベルの ignsetnull パラメーターが N に設定されていても、ON DELETE SET NULL オペレーションは無視されます。
z/OS: このオプションは z/OSではサポートされません。 z/OSでこのオプションを指定すると、ON DELETE SET NULL の結果の UPDATE 操作は複製されます。
- CAPTURE_TRUNCATE
- Q キャプチャー・プログラムがログ内のソース表に対する TRUNCATE 操作を検出したときに実行するアクションを指定します。
- W (default)
- Q キャプチャーは警告メッセージを発行しますが、TRUNCATE 操作は複製しません。
- T
- Q キャプチャーは TRUNCATE 操作を複製します。
制約事項: ターゲットが非コンプリート整合変更データ (CCD) 表 (CCD_COMPLETE = N) である場合、TRUNCATE 操作のレプリケーションはサポートされません。 このターゲット・タイプの場合、TRUNCATE 操作に対しては常に警告が出されます。
trg-clause:
- EXIST
- ターゲット表が存在することを指定します。
- EXIST を指定しても、ターゲット表の名前を提供しない場合には、ASNCLP プログラムはデフォルト表 TGT-SOURCE TABLE NAME を検索します。
- EXIST および単一の TARGET NAMEを指定し、かつ SOURCE ALL または SOURCE NAME LIKEを使用する場合、すべてのソース表は、指定された単一の既存のターゲット表にマップされます。
- EXISTを指定せず、 SOURCE ALL または SOURCE NAME LIKEを使用する場合、ソース表は、デフォルト名 TGT-SOURCE TABLE NAMEを使用するターゲット表とペアになります。
- TYPE
- USERTABLE
- 表をターゲットとして指定します。
- NICKNAME
- ニックネームをターゲットとして指定します。
- WITH LOGMARKER
- これらのキーワードを USERTABLE または NICKNAME キーワードと共に使用して、ポイント・イン・タイム・ターゲット表またはニックネームを指定します。 ターゲット表またはターゲット・ニックネームには、列 IBMSNAP_LOGMARKER (TIMESTAMP; デフォルトの NULL を指定した場合は NULL 可能) が
含まれていなければなりません。 ASNCLP でターゲット表またはターゲット・ニックネームを作成した場合は、この列が組み込まれます。 WITH LOGMARKER キーワードがサポートされるのは、Q アプライ・プログラムが Linux®、UNIX、および Windows 上のバージョン 9.7 フィックスパック 4 以降、または z/OS 上のバージョン 10.1 (ARCH_LEVEL 100Z) で、フィックスパック 4 に対応する PTF が適用されている場合のみです。注: ソース表に IBMSNAP_LOGMARKER 列がある場合、WITH LOGMARKER キーワードを使用することはできません。 各表に IBMSNAP_LOGMARKER 列が含まれる 3 層の構成を作成するには、TIER 1 から TIER 2 への Q サブスクリプションを作成するときに WITH LOGMARKER キーワードを使用します。 Tier 2 から Tier 3 への Q サブスクリプションの場合、通常の列マッピングを使用して、Tier 2 の IBMSNAP_LOGMARKER 列を Tier 3 の対応する列にマップします。 この方法により、Tier 1 のソース表で行が変更されたときのタイム・スタンプが、Tier 2 から Tier 3 に正しく伝搬されます。
WITH LOGMARKER オプションは、バイテンポラル表用にはサポートされません。
- STOREDPROC
- ストアード・プロシージャーをターゲットとして指定します。
- CCD
- 整合変更データ (CCD) 表をターゲットとして指定します。注: CCD 表で使用される IBMSNAP_COMMITSEQ 列、IBMSNAP_INTENTSEQ 列、IBMSNAP_LOGMARKER 列、または IBMSNAP_OPERATION 列がソース表にある場合、TYPE CCD キーワードは使用できません。 各表にこれらの列が含まれる 3 層構成を作成するには、Q サブスクリプションを層 1 から層 2 に作成するときに TYPE CCD キーワードを使用します。 Tier 2 から Tier 3 への Q サブスクリプションの場合、通常の列マッピングを使用して、Tier 2 の IBMSNAP_% 列を Tier 3 の対応する列にマップします。 この方法により、Tier 2 の CCD 表にデータを取り込むために使用される Tier 1 ソース・リカバリー・ログの値が、Tier 3 に正しく伝搬されます。
- KEYS
- レプリケーションが行の固有性を判別するために使用する 1 つ以上のキー列を指定します。 キーが指定されない場合、レプリケーションは、まず複製された列セット内にある主キー、次にユニーク制約、ユニーク索引の順に調べることにより、独自のキーを判別しようとします。 これらのいずれも存在しない場合、レプリケーションはサブスクライブされた有効なすべての列をレプリケーション用のキー列として使用します。 (サブスクライブされた列によっては (LOB 列など)、キーとして使用できないものがあります。)
- indexowner。indexname
- 索引の所有者と名前を指定します。
- NAMING PREFIXprefix
- 索引の名前に使用する接頭部を指定します。
- KeyName
- 索引に含まれる列の名前を指定します。
- +
- 昇順。
- -
- 降順。
- ZOS INDEX CREATE USING PROFILE PNAME
- z/OS 索引をカスタマイズするための索引プロファイルの名前を指定します。
- NICKNAME
- CURSOR ユーティリティーの LOAD を使って行をターゲット表にロードする際に使用される Q アプライ・プログラムのニックネームを指定します。 このキーワードは、ロード用のニックネームを指定する場合にのみ使用します。 このキーワードを使って指定したニックネームは、非 DB2 リレーショナル・データベースのターゲット表を参照する場合には使用されません。
バージョン 9.7 フィックスパック 4 以降: Q アプライ・プログラムがバージョン 9.7 フィックスパック 4 以降であり、ソース表に XML 列が含まれていない場合、LOAD FROM CURSOR を使用してターゲットをロードするために NICKNAME キーワードを指定する必要はありません。 この場合、Q アプライ・プログラムは、ニックネームではなくカタログされた Db2 別名を使用して LOAD FROM CURSOR を呼び出します。
- owner.ニックネーム
- ソースの所有者とニックネームを指定します。
- NAMING PREFIXprefix
- ニックネームに使用する接頭部を指定します。
- NEW NICKNAME RMT SERVERNAME SRVNAME
- ASNCLP プログラムがロード用のニックネームを作成する場合、リモート・サーバーの名前を指定します。
- CONFLICT RULE
- ターゲット表内の複製された行と既存の行との競合を Q アプライ・プログラムで検査する方法を指定します。
- K (default)
- キー値のみを検査します。
- C
- 変更された非キー値とキー値を検査します。
- A
- すべての値を検査し、更新の有無を調べます。
- CONFLICT ACTION
- 競合が発生した場合に取るアクションを指定します。
- I (default)
- 無視
- F
- 強制。このアクションを行う場合、送信オプション CHANGED COLS ONLY =N が必要です。
- D
- Q サブスクリプションを使用不可にします。
- S
- Q アプライを停止します。
- Q
- キューからの読み取りを停止します。
- ERROR ACTION
- エラーが発生した場合に取るアクションを指定します。
- S
- Q アプライ・プログラムを、競合行には適用しないが、トランザクション内の他の行には適用します。 これにより、Q サブスクリプションは使用不可になり、トランザクションのターゲットへのアプライが停止し、管理キューのある Q キャプチャー・プログラムにエラー報告を送信します。
- D
- Q サブスクリプションを使用不可にして、Q キャプチャー・プログラムまたはクラシック・キャプチャー・コンポーネントに通知します。
- Q
- 受信キューからの読み取りを停止します。
- B
- エラーが発生すると、 MODIFY または asnqacmd コマンドの resumesub パラメーターを使用して Q アプライにメッセージの適用を開始するように指示するまで、Q サブスクリプションの変更メッセージを一時予備キューにスピルします。
- OKSQLSTATES"sqlstates"
- この表への変更の適用時にエラーと見なされない SQL ステートメントのリストを、二重引用符で囲んで指定します。
- LOAD TYPE
- ソースからのデータをターゲット表にロードする方式を指定します。注: デフォルトでは、以下のすべてのロード・タイプについて、ソースからのデータで置き換える前にターゲット表内の既存のすべてのデータを削除するオプションを指定してロード・ユーティリティーが呼び出されます (これは置換オプションと呼ばれます)。 ターゲット表の内容を削除せずにソース・データをターゲット表に付加するオプションが設定されて、選択されたロード・ユーティリティーが呼び出されるように指定する場合は、EXIST DATA APPEND キーワードを使用できます。
- 0
- 最適なタイプを自動選択します。 クラシック・ソースには無効です。
- 1
- CURSOR からの LOAD だけを使用します。 ソース・サーバーとターゲット・サーバーが z/OS 上にある場合にこのオプションを指定します。 クラシック・ソースまたはフェデレーテッド・ターゲットには無効です。注: Q アプライ・プログラムがバージョン 9.7 フィックスパック 4 以降の場合、Q サブスクリプションに XML 列が含まれていない限り、このロード・オプションにニックネーム情報を指定する必要はありません。 Q アプライは、ニックネームを使用する代わりに、カタログされた DB2 別名をソース・データベースに対して指定する ことにより、LOAD FROM CURSOR を呼び出します。 asnpwd ユーティリティーによって作成されるパスワード・ファイルに DB2 別名を含める必要があります。
- 2
- EXPORT ユーティリティーと IMPORT ユーティリティーを使用します。 クラシック・ソースまたは Oracle ソースには無効です。
- 3
- EXPORT ユーティリティーと LOAD ユーティリティーを使用します。 クラシック・ソース、Oracle ソース、またはフェデレーテッド・ターゲットには無効です。
- 4
- レプリケーション ・ソースから選択し、 Db2 LOAD ユーティリティーを使用します。 Oracle ターゲットの場合は SQL* Loader ユーティリティーを使用します。Oracle ターゲット: SQL* Loader を使用するには、 apply_path パラメーターで指定されたディレクトリー、またはこれらのキーワードに以下の値を指定して Q アプライを呼び出すディレクトリーで、 asnpwd コマンドを使用してパスワード・ファイルを作成する必要があります。
- alias: Oracle サーバーを参照する Oracle tnsnames.ora 項目 (フェデレーションのセットアップで CREATE SERVER コマンドの NODE オプションに使用した名前と同じです)。
- id: Oracle に接続するためのリモート・ユーザー ID。
- password: Oracle に接続するためのパスワード。
$> sqlplus id/password@aliasというコマンドを使用して接続をテストする必要があります。 - 5
- Linux、UNIX、および Windows ターゲット: レプリケーション ・ソースから選択し、 Db2 IMPORT ユーティリティーを使用します。 REPLACE オプションがデフォルトで使用されます。 このロード・オプションは、ソース・コード・ページがターゲット・コード・ページと異なる場合に使用します。 Db2 IMPORT ユーティリティーは、このオプションを指定して呼び出されると、コード・ページを変換します。
- 6
- z/OS ターゲット: レプリケーション・ソースから選択し、REPLACE オプションを指定した LOAD ユーティリティーを使用します。 Q アプライ・プログラムは、 DB2 DSNUTILU ストアード・プロシージャーを呼び出して、ユーティリティーを呼び出します。 LOAD_TYPE 6 を使用するには、まず以下のことを行う必要があります。
- DB2 APAR PI67793 をインストールします。
- NUMTCB=1 で実行されるワークロード・マネージャー (WLM) を使用して SYSPROC.DSNUTILU ストアード・プロシージャーを作成します。
- DSNUTILU のバインド
- DSNUTILU のコレクション ID を Q アプライ・プランに追加します。
- EXIST DATA
- ロード・プロセスでターゲット表の既存データに対して置き換えるか付加するかを指定します。
- REPLACE (default)
- ターゲット表のデータをすべて削除した後にソースからのデータに置き換えるようにするオプションが設定されて、ロード・ユーティリティーが呼び出されます。
- APPEND
- ターゲット表の内容を削除せずにソース・データをターゲット表に付加するオプションが設定されて、ロード・ユーティリティーが呼び出されます。
- TARGET
- ターゲット表の所有者と名前のオプションを指定します。
- NAME target_owner.target_name
- ターゲット表の名前と、オプションで表スキーマを指定します。
- NAMING PREFIX
- ターゲット表の名前に使用する接頭部を指定します。 デフォルトは TGT です。 この他にも任意の接頭部を指定できます。例えば、接頭部に CLP を指定した場合、ソース表が T1 であればターゲット表は CLPT1 という名前になります。
- TABLE OWNER
- ターゲット表の所有者のオプションを指定します。
- TARGET_OWNER
- ターゲット表のスキーマを使用することを指定します。
- NAMING PREFIX
- ターゲット表所有者の名前に使用する接頭部を指定します。 デフォルトは TGT です。 この他にも任意の接頭部を指定できます。例えば、接頭部に CLP を指定した場合、ソース表が T1 であればターゲット表は CLPT1 という名前になります。
- SAME AS SOURCE
- 対応するソース表と同じ所有者を使用することを指定します。
- SAME AS USERID
- 現在のユーザー ID を使用することを指定します。
- TABLE NAME
- ターゲット表の名前のオプションを指定します。
- TARGET_NAME
- ターゲット表に使用する名前を指定します。
- NAMING PREFIX
- ターゲット表の名前に使用する接頭部を指定します。 例えば、接頭部に CLP を指定した場合、ソース表が T1 であればターゲット表は CLPT1 という名前になります。
- SAME AS SOURCE
- ターゲット表の名前を、対応するソース表と同じにすることを指定します。
- FEDERATED
- ターゲット表が DB2 以外のリレーショナル・データベースにあり、ターゲット表を参照する新しいニックネームをレプリケーションで作成することを指定します。 fed-clause を使用して、新しいニックネームおよび所有者を指定します。注: 既存のニックネームを使用してターゲット表を参照する場合は、このキーワードを使用しないでください。 代わりに、nickname-options 節を使用します。
- IN
- DBname
- 表スペースの論理データベースの名前を指定します ( z/OSの場合に必須)。
- tsname
- ターゲット表の表スペースの名前を指定します。フェデレーテッド・ターゲット:既存の表スペース (Oracle)、セグメント (Sybase)、DB 領域 (Informix®)、またはファイル・グループ (Microsoft SQL Server) を指定します。 このパラメーターは、Teradata ターゲットには適用されません。
- NAMING PREFIXprefix
- 表スペースに名前を付けるために使用する接頭部を指定します。
nickname-options-clause:
- NICKNAME
- DB2 以外のリレーショナル・ターゲット・データベースのターゲット表を参照する既存のニックネームを指定します。 nickname-options 節は、既存のニックネームを指定する場合にのみ使用します。 nickname-options 節と FEDERATED キーワードを同時に使用しないでください。それらは互いに排他的です。 FEDERATED キーワードは、レプリケーションでニックネームを作成する場合に使用します。
既存のニックネームを使用する場合、ニックネームのデータ・タイプが Q レプリケーションの要件に従ってソース表と互換性を持つことを確認してください。 詳しくは、 フェデレーテッド Q レプリケーションに必要なニックネーム・データ・タイプ を参照してください。
注: LOAD FROM CURSOR ユーティリティーを使用してターゲット表をロードするためのニックネームを指定する場合は、この NICKNAME キーワードを使用しないでください。
targparts-clause:
- TARGPARTS
- Q サブスクリプションに組み込むパーティション番号を指定します。 SRCPARTS オプションも指定する必要があります。 サブスクライブされたソース・パーティションとターゲット・パーティションに関して SYSIBM.SYSTABLEPART 表における LIMITKEY 値 (小さい値のキーまたは大きい値のキー) が一致する場合に、SRCPARTS と TARGPARTS で指定するパーティション範囲が異なる可能性があります (例: SRCPARTS (1 TO 5,6 TO 9) TARGPARTS (7 TO 9,11 TO 15))。
- なし
- Q サブスクリプションが範囲パーティション・ソース表用であってもターゲット表がパーティション化されていないことを指定します。
fed-clause:
- ニックネーム・ターゲット所有者
- フェデレーテッド・ターゲットを参照するためにレプリケーションで作成される新しいニックネームの所有者、または既存のニックネームの所有者を指定します。
- ニックネーム・ターゲット名
- フェデレーテッド・ターゲットを参照するためにレプリケーションで作成される新しいニックネーム、または既存のニックネームの所有者を指定します。
ccd-clause:
- CONDENSED
- 以下のいずれかの値を指定します。
- ON
- CCD 表がコンデンスされることを指定します。 コンデンス CCD 表にはソース表内のキー値ごとに 1 行が含められ、その行の最新の値のみが含まれます。
- オフ
- CCD 表が非コンデンスであることを指定します。 非コンデンス CCD 表には、同じキー値を持つ複数の行 (ソース表に発生するそれぞれの変更ごとに 1 行) が含まれます。
- COMPLETE
- 以下のいずれかの値を指定します。
- ON
- CCD 表がコンプリートであることを指定します。 コンプリート CCD 表には、ソース表の関連のあるすべての行が含まれ、初期状態でソース・データの完全なセットが入ります。
- オフ
- CCD 表が非コンプリートであることを指定します。 非コンプリート CCD 表にはソース表の変更点だけが含まれ、開始時にはデータがありません。
- WITH UOW COLS
- 以下のいずれかの値を指定します。
- すべて
- CCD 表に 4 つの作業単位 (UOW) 列 IBMSNAP_AUTHID、 IBMSNAP_AUTHTKN、IBMSNAP_PLANID、IBMSNAP_UOWID がすべて含まれることを指定します。
- colname
- CCD 表の作業単位 (UOW) 列を 1 つまたは複数指定します。
targetcolumns-clause:
- TRGCOLS
- ALL
- ソース表のすべての列を複製するには、これを指定します。
- INCLUDE
- ターゲット表にある複製された列を指定します。 ターゲット表が存在しない場合、ターゲット表内の列定義を指定します。
- trgcolname (trgcolname)
- 提供された名前、および同じ名前を持つソース列のプロパティーを使用する列定義をターゲット表列を定義するには、これを指定します。 以下の例では、ソース表とターゲット表の両方に列 one、two、および three が存在します。
CREATE QSUB SUBTYPE U USING REPLQMAP replqmap9 (SUBNAME sub9 dpropr64.srctable EXIST TARGET NAME dpropr64.trgtable TRGCOLS INCLUDE (one, two)) - srccolname (srccolname)
- 指定されたソース列のプロパティーを使用するターゲット表列を定義するが、ターゲット列の名前がソース列と異なっている場合には、これを指定します。 次の例では、ターゲット表は 2 つの列 target_one と target_two を、ソース表の対応する列 one と two のプロパティーに基づいて定義します。
CREATE QSUB SUBTYPE U USING REPLQMAP replqmap9 (SUBNAME sub9 dpropr64.srctable EXIST TARGET NAME dpropr64.trgtable TRGCOLS INCLUDE (target_one one, target_two two))
- EXCLUDE (trgcolnames )
- このキーワードの振る舞いは、ターゲット表が存在するかどうか、あるいは、
ユーザーが Q サブスクリプションを使用して新規ターゲット表を作成しているかどうかに応じて異なります。 以下の例では、ソース表の列は C1、C2、および C3 です。
- 新しいターゲット表
- ソース列をターゲット表定義および Q サブスクリプションから除外するには、これを指定します。 例えば、以下のコマンドでは、列 C3 が新規ターゲット表および Q サブスクリプションから除外されます。
新規ターゲット表をクラシック・レプリケーション・ソースで作成する場合は、このキーワードを使用できません。CREATE QSUB USING REPLQMAP replqmap10 (SUBNAME sub10 dpropr64.srctable TARGET NAME dpropr64.tgttable TRGCOLS EXCLUDE(C3)); - 既存のターゲット表
- ターゲット列を Q サブスクリプションから除外するには、これを指定します。 このキーワードを使用できるのは、ソース表とターゲット表に同じ列名がある場合に限ります。 ターゲット表は既に存在しており、この表には列 C1、C2、および C4 があります。 列 C4 は、Q サブスクリプションから除外されます。
CREATE QSUB USING REPLQMAP replqmap10 (SUBNAME sub10 dpropr64.srctable EXIST TARGET NAME dpropr64.tgttable TRGCOLS EXCLUDE(C4));
- EXPRESSION Exp
- ターゲット列がマップされる、DB2 がサポートする式を指定します。
- TARGET トルグコルネーム
- 式によってデータが取り込まれるターゲット列の名前を指定します。
TRGCOLS および EXPRESSION の使用法に関する注記
同じコマンドの中で TRGCOLS キーワードと EXPRESSION キーワードを使用するための構文は、ターゲット表が存在するかどうか、あるいは、 ユーザーが Q サブスクリプションを使用して新規ターゲット表を作成しているかどうかに応じて異なります。 TRGCOLS ALL と EXPRESSION、TRGCOLS INCLUDE と EXPRESSION、および TRGCOLS EXCLUDE と EXPRESSION を使用する場合には、 以下の指針に従ってください。 以下の例では、ソース表には C1、C2、および C3 の列があります。
- 新しいターゲット表
- 以下の注記は、新しいターゲット表を作成している際に TRGCOLS と EXPRESSION を使用する場合に適用されます。
- TRGCOLS ALL と EXPRESSION
- 新しいターゲット表と Q サブスクリプションには、ソース表からのすべての列と、EXPRESSION 節で指定されている列が組み込まれます。 この例では、C1、C2、C3、および EXPC3 の 4 つの列を持つターゲット表が作成されます。
CREATE QSUB USING REPLQMAP replqmap10 (SUBNAME sub10 dpropr64.srctable TARGET NAME dpropr64.tgttable TRGCOLS ALL EXPRESSION ("CHAR(:C3)" TARGET EXPC3)); - TRGCOLS INCLUDE と EXPRESSION
- 新しいターゲット表と Q サブスクリプションには、INCLUDE 節に指定されているソース列と、EXPRESSION 節で指定されている列が
組み込まれます。 この例では、C1、C2、および EXPC3 の 3 つの列を持つターゲット表が作成されます。
CREATE QSUB USING REPLQMAP replqmap10 (SUBNAME sub10 dpropr64.srctable TARGET NAME dpropr64.tgttable TRGCOLS INCLUDE (C1,C2) EXPRESSION ("CHAR(:C3)" TARGET EXPC3)); - TRGCOLS EXCLUDE と EXPRESSION
- EXCLUDE 節で指定されているソース列が、ターゲット表および Q サブスクリプションから除外されます。 ターゲット表には、EXPRESSION 節で指定されている列が組み込まれます。 この例では、C1 および EXPC3 の 2 つの列を持つターゲット表が作成されます。
CREATE QSUB USING REPLQMAP replqmap10 (SUBNAME sub10 dpropr64.srctable TARGET NAME dpropr64.tgttable TRGCOLS EXCLUDE(C2,C3) EXPRESSION ("CHAR(:C3)" TARGET EXPC3));
- 既存のターゲット表
- 以下の注記は、ターゲット表が存在するときに TRGCOLS と EXPRESSION を使用する場合に適用されます。
- TRGCOLS ALL と EXPRESSION
- サポートされていません。 TRGCOLS ALL は、ターゲット表のすべての列がソース表の列名に直接マップされることを意味しますので、 EXPRESSION を使用することはできません。
- TRGCOLS INCLUDE と EXPRESSION
- INCLUDE 節で指定されているターゲット列、および EXPRESSION 節で指定されているすべての式が Q サブスクリプションに
組み込まれます。 INCLUDE 節で指定されている列はどれも、EXPRESSION 節では指定できません。 この例では、ターゲット表には C1、C2、EXPC3、および C4 の列があります。 Q サブスクリプションには、C1、C2、および EXPC3 の列が組み込まれます。
CREATE QSUB USING REPLQMAP replqmap10 (SUBNAME sub10 dpropr64.srctable EXIST TARGET NAME dpropr64.tgttable TRGCOLS INCLUDE (C1,C2) EXPRESSION ("CHAR(:C3)" TARGET EXPC3)); - TRGCOLS EXCLUDE と EXPRESSION
- EXCLUDE 節で指定されているターゲット列は、Q サブスクリプションからは除外されます。 EXPRESSION 節で指定されている式はすべて Q サブスクリプションに組み込まれます。 EXPRESSION 節で指定されている列は、EXCLUDE 節を使用して除外する必要があります。 この例では、ターゲット表には C1、C2、EXPC3、および C4 の列があります。 Q サブスクリプションには、C1、C2、および EXPC3 の列が組み込まれます。
CREATE QSUB USING REPLQMAP replqmap10 (SUBNAME sub10 dpropr64.srctable EXIST TARGET NAME dpropr64.tgttable TRGCOLS EXCLUDE(C4,C3) EXPRESSION ("CHAR(:C3)" TARGET EXPC3));
- VALIDATE YES
- ASNCLP プログラムは、データの互換性を保証するために、マップ先のターゲット列に対して式を評価します。 これがデフォルトです。
- VALIDATE NO
- ASNCLP プログラムは式を検証しません。 このオプションを使用する場合は、マップされるターゲット列との互換性が式にあること、およびデータがターゲット列に収まることを確認する必要があります。
ccdoptions-clause
- BEFORE IMAGE COLUMNS
- それぞれの追加列の変更前イメージ値を複製することを指定します。
period-clause:
- PERIOD
- ソース表がテンポラル表であること、
および Q サブスクリプションに期間列の一部または全部を組み込む操作を指定します。
- ALL
- 期間列をすべて含めることを指定します。
- SYSTEM_TIME
- system-period 一時表で使用されるタイム・スタンプ列を含めることを指定します。
- BUSINESS_TIME
- application-period 一時表で使用されるタイム・スタンプ列または日付列を含めることを指定します。
history-table-clause:
- INCLUDE HISTORY
- ソース表がバージョン管理されるテンポラル表であること、 および履歴表用に、対応する Q サブスクリプションを作成する操作を指定します。
- EXIST
- 既存の履歴表用に Q サブスクリプションを作成する操作を指定します。 ASNCLP プログラムは基本表名から履歴表情報を取得します。
new-history-table-clause:
- HIST_TARGET NAME
- ASNCLP プログラムによって作成される新規のターゲット履歴表の名前を指定します。
tbspace-clause:
- IN
- DBname
- 表スペースの論理データベースの名前を指定します ( z/OSの場合に必須)。
- tsname
- ターゲット履歴表の表スペースの名前を指定します。 既存の表スペースを使用する場合は、ターゲット履歴表が表スペースを使用する唯一の表である必要があります。
- NAMING PREFIXprefix
- 表スペースに名前を付けるために使用する接頭部を指定します。
prof-clause:
- CREATE
- 表スペースを作成するには、これを指定します。 このキーワードを指定しない場合、表スペースは既存のものとして処理されます。
- USING PROFILE PNAME
- 表スペースの作成に使われるプロファイルの名前を指定します。
使用上の注意
- REPLQMAP キーワードは必須です。
CREATE QSUB USING REPLQMAP mapnameかまたはCREATE QSUB (SUBNAME subname REPLQMAP mapname)のいずれかを指定できます。 - ターゲット表が指定され、 SRC ALL または SRC NAME LIKE が指定された場合、すべてのソース表は同じ名前のターゲット表にサブスクライブしようとします。
- TABLE OWNER または TABLE NAME キーワードが指定されない場合、デフォルト所有者は対応するソース表の所有者に、デフォルト名は TGT-SOURCE TABLE NAME になります。
- 論理データベースの DB 値は、 z/OS 製品上のターゲット表では必須です。 プロファイルの中でこれを指定する必要があります。
- (例えば、SRC OWNER LIKE または SRC NAME LIKE 文節を使って) 一括サブスクリプションを使用する場合、ターゲット表が存在しなければ、指定された target_owner.target_name 文節は無効になります。 生成されるターゲット表には、デフォルトまたは命名接頭部だけが使用可能です。
- CCD ターゲット用に Q サブスクリプションを作成すると、CREATE QSUB コマンドは追加チェックを実行します。 SQL キャプチャー・スキーマを管理するように Q アプライを構成し、SQL 登録がこのスキーマ内のターゲット CCD 用に存在している場合、ASNCLP は、Q アプライがターゲット CCD を SQL レプリケーション・ソースとして自動的に管理するというメッセージを出します。
例: 基本的な Q サブスクリプション
この例では、Q サブスクリプションを作成するためのコマンドとともに Q サブスクリプションの作成のためにセットアップする必要がある環境コマンドを示します。 CREATE QSUB コマンドにより、EMPLOYEE 表をソースとして指定する EMPLOYEE0001 という名前の Q サブスクリプションを作成する ための SQL が生成されます。 デフォルトでは、ASNCLP プログラムが、TGTEMPLOYEE という名前のターゲット表を作成するための SQL を 生成します。 EMPLOYEE 表の 1 次キーである EMPNO 列は、レプリケーションのためのキーとして指定されます。 また、このコマンドは、Q アプライ・プログラムが LOAD FROM CURSOR ユーティリティー (LOAD TYPE 1) を使用して、ターゲット表を ロードする (LOAD PHASE I) ことを指定します。ASNCLP SESSION SET TO Q REPLICATION;
SET SERVER CAPTURE TO DBALIAS SAMPLE ID db2admin PASSWORD "passw0rd";
SET SERVER TARGET TO DBALIAS TARGETDB ID db2admin PASSWORD "passw0rd";
SET RUN SCRIPT NOW STOP ON SQL ERROR ON;
CREATE QSUB USING REPLQMAP SAMPLE_ASN_TO_TARGETDB_ASN
(SUBNAME EMPLOYEE0001 db2admin.EMPLOYEE OPTIONS HAS LOAD PHASE I
KEYS (EMPNO) LOAD TYPE 1);例: 自動ロードおよびニックネームを使用する Q サブスクリプション
この例では、自動ロード (LOAD TYPE 1) を指定する Q サブスクリプション SUB_T1 を作成し、CURSOR から LOAD ユーティリティーのために、新しいニックネーム REPLDBA.NICK_T1 を Q アプライ・サーバーで作成します。 RMTSAMPLE は、SAMPLE データベース (ニックネームのデータ・ソース) を指す TESTDB 上のリモート・サーバー定義です。ASNCLP SESSION SET TO Q REPLICATION;
SET OUTPUT CAPTURE SCRIPT "REPLCAP.SQL" TARGET SCRIPT "REPLAPP.SQL";
SET LOG "QSUB.LOG";
SET SERVER CAPTURE TO DB SAMPLE;
SET SERVER TARGET TO DB TESTDB;
SET APPLY SCHEMA ASN;
SET CAPTURE SCHEMA SOURCE ASN;
CREATE QSUB (SUBNAME "SUB_T1" REPLQMAP SAMPLE_ASN_TO_TESTDB_ASN REPLDBA.T_TEMP
OPTIONS HAS LOAD PHASE I TARGET NAME REPLDBA.T_TEMPNEWNEW TYPE USERTABLE
NEW NICKNAME RMT SERVERNAME RMTSAMPLE REPLDBA.NICK_T1 LOAD TYPE 1);例: LOAD FROM CURSOR のための既存のニックネームの使用
この例では、SUB_T2 Q サブスクリプションを作成し、CURSOR から LOAD ユーティリティーのために、Q アプライ・プログラムが既存のニックネーム REPLDBA.NICK_T2 を使用することを指定します。ASNCLP SESSION SET TO Q REPLICATION;
SET OUTPUT CAPTURE SCRIPT "REPLCAP.SQL" TARGET SCRIPT "REPLAPP.SQL";
SET LOG "QSUB.LOG";
SET SERVER CAPTURE TO DB SAMPLE;
SET SERVER TARGET TO DB TESTDB;
SET APPLY SCHEMA ASN;
SET CAPTURE SCHEMA SOURCE ASN;
CREATE QSUB (SUBNAME "SUB_T2" REPLQMAP SAMPLE_ASN_TO_TESTDB_ASN REPLDBA.T_TEMP
OPTIONS HAS LOAD PHASE I TARGET NAME REPLDBA.T_TEMPNEWNEW TYPE USERTABLE
NICKNAME REPLDBA.NICK_T2 LOAD TYPE 1);
例: ターゲット表の命名接頭部
この例は、ターゲット表の命名接頭部 (XNEW) およびターゲット表の表スペースの命名接頭部 (Y) を使用します。 また、この例では、"like" ステートメントを使って Q サブスクリプションのソース表を指定しています。CREATE QSUB USING REPLQMAP QDECODERQM (SRC OWNER LIKE "DSN8710%" SRC NAME LIKE
"%EMP%" TARGET TABLE NAME NAMING PREFIX XNEW IN DB D1CDG01 NAMING PREFIX Y);
例: 表スペース・プロファイルを使用した Q サブスクリプション
この例は、ターゲット表が存在しない場合に、ターゲット表の表スペース用に表スペース・プロファイル (USING PROFILE UTRGTS) を使用する方法を示しています。CREATE QSUB USING REPLQMAP QDECODERQM (SRC OWNER LIKE "DSN8710%" SRC NAME LIKE
"%EMP%" TARGET TABLE NAME NAMING PREFIX XNEW2 IN DB D1CDG01 EMPTBSP2 CREATE USING
PROFILE UTRGTS);
例: プロファイルを持つ DB2 for z/OS
この例は、 Db2 ソースからの単一方向レプリケーションの CREATE QSUB コマンドの環境およびプロファイルを設定するために必要なコマンドを示しています。 この例では、Q キャプチャー・プログラムと Q アプライ・プログラムの両方が同じ z/OS サブシステムで実行され、キュー・マネージャーを共有します。ASNCLP SESSION SET TO Q REPLICATION;
SET SERVER CAPTURE to dbALIAS EC06V71A DBNAME stlec1 ID ADMF001 password "xx";
SET SERVER TARGET to dbALIAS EC06V71A DBNAME stlec1 ID ADMF001 password "xxx";
SET CAPTURE SCHEMA SOURCE QDECODER;
SET APPLY SCHEMA QDECODER;
SET QMANAGER "CSQ1" FOR CAPTURE SCHEMA;
SET QMANAGER "CSQ1" FOR APPLY SCHEMA;
SET PROFILE "UITRGTS" FOR OBJECT TARGET INDEX OPTIONS ZOS
BUFFERPOOL BP1 STOGROUP "DPROSTGQ"
PRIQTY ABSOLUTE 100 SECQTY ABSOLUTE 50;
SET PROFILE "UTRGTS" FOR OBJECT TARGET TABLESPACE OPTIONS ZOS
DB "JUTRGDB"
BUFFERPOOL BP4
ENCODING UNICODE
STOGROUP "DPROSTG"
PRIQTY ABSOLUTE 100 SECQTY ABSOLUTE 50;
SET OUTPUT CAPTURE SCRIPT "capfile6.sql" TARGET SCRIPT "tgtfile.sql";
SET RUN SCRIPT NOW STOP ON SQL ERROR ON;
例: 既存のターゲット表
この例は、ターゲット表が存在する場合に IN 文節が必要ないことを示しています。CREATE QSUB USING REPLQMAP QDECODERQM (SRC OWNER LIKE "DSN8710%" SRC NAME LIKE
"%EMP%" EXIST TARGET TABLE OWNER NAMING PREFIX X);例: 同一のソース所有者名とターゲット所有者名
この例では、ソースとターゲットの所有者名が同じです。 ソースおよびターゲットの所有者名が同じであるためには、ターゲットがソースとは異なるデータベースまたはサブシステムに存在しなければなりません。CREATE QSUB USING REPLQMAP QDECODERQM (SRC OWNER LIKE "DSN8710%" SRC NAME LIKE
"%EMP%" TARGET TABLE OWNER SAME AS SOURCE TABLE NAME SAME AS SOURCE );
例: EXPORT および IMPORT を使用したロード
この例では、レプリケーション・キュー・マップ SAMPLE_ASN1_TO_TARGETDB_ASN1 を使用する Db2 ソースから単一方向レプリケーションの Q サブスクリプションを作成し、Q アプライ・プログラムが EXPORT ユーティリティーおよび IMPORT ユーティリティーを使用してターゲット表をロードすることを指定します。 さらに、列 EMPNO がレプリケーションのキーとして使用されることを指定します。CREATE QSUB USING REPLQMAP SAMPLE_ASN1_TO_TARGETDB_ASN1
(SUBNAME EMPLOYEE0001 EMPLOYEE OPTIONS HAS LOAD PHASE I
TARGET NAME TGTEMPLOYEE KEYS (EMPNO) LOAD TYPE 2);例: Sybase 上のターゲット表
この例では、 Db2 表 EMPLOYEE から Sybase 表 TGT_EMPLOYEE への Q サブスクリプションを作成します。 表は、SAMPLE_ASN_TO_FEDDB_ASN レプリケーション・キュー・マップを使用して、既存の Sybase セグメント SEG_EMPLOYEE に作成されます。 表には EMPNICKNAME というニックネームが付けられます。CREATE QSUB USING REPLQMAP SAMPLE_ASN_TO_FEDDB_ASN (SUBNAME FEDQSUB
EMPLOYEE TARGET NAME TGTEMPLOYEE FEDERATED EMPNICKNAME);例: ターゲットの整合変更データ (CCD) 表
この例は、新規ターゲット CCD 表を持つ Q サブスクリプションを作成します。 ソース表の列はすべて Q サブスクリプションに含まれます。 また、コマンドではキー列の変更前イメージ列および変更前イメージの接頭部 Y を指定します。ASNCLP SESSION SET TO Q REPLICATION;
SET RUN SCRIPT NOW STOP ON SQL ERROR ON;
SET SERVER CAPTURE TO DB SAMPLW;
SET SERVER TARGET TO DB SAMPLE;
SET CAPTURE SCHEMA SOURCE ASNAPP1;
SET APPLY SCHEMA ASNAPP1;
CREATE QSUB USING REPLQMAP SAMPLE_ASNAPP1_TO_SAMPLE_ASNAPP1
(SUBNAME TESTCCCDNEW DATA.EMPLOYEE TARGET NAME DATA.TGTEMPLOYEE
TYPE CCD CONDENSED ON COMPLETE ON WITH UOW COLS ALL
TRGCOLS ALL BEFORE IMAGE COLUMNS PREFIX "Y" FOR KEYS COLS ONLY);
例: ターゲット列式
この例では、式CONCAT(:C1,:C2) に一致するすべての列をターゲット列 CEXP にマップするターゲット列式を使用して、Q サブスクリプションを作成します。ASNCLP SESSION SET TO Q REPLICATION;
SET RUN SCRIPT NOW STOP ON SQL ERROR ON;
SET SERVER CAPTURE TO DB SAMPLE;
SET SERVER TARGET TO DB SAMPLE;
SET CAPTURE SCHEMA SOURCE ASNAPP1;
SET APPLY SCHEMA ASNAPP1;
CREATE QSUB USING REPLQMAP SAMPLE_ASNAPP1_TO_SAMPLE_ASNAPP1
(SUBNAME TESTEXPRESSTION DATA.EMPLOYEE TARGET NAME DATA.TGTEMPLOYEE
TRGCOLS ALL EXPRESSION ("CONCAT(:C1,:C2)" TARGET CEXP));
例: クラシック・レプリケーション
この例は、クラシック・レプリケーション用の Q サブスクリプション CLASSIC0001 を作成します。 CREATE QSUB コマンドは、CLASSICTABLE というソース表を指定し、さらに Q アプライ・プログラムが同じ名前のターゲット表をロードすることを指定します。ASNCLP SESSION SET TO Q REPLICATION;
SET SERVER CAPTURE TO CONFIG SERVER classic1 FILE "asnservers.ini"
ID CLASSICADMIN PASSWORD "passw0rd";
SET SERVER TARGET TO DB TARGET ID DB2ADMIN PASSWORD "passw0rd";
SET RUN SCRIPT NOW STOP ON SQL ERROR ON;
SET APPLY SCHEMA ASN1;
CREATE QSUB USING REPLQMAP CLASSIC_ASN1_TO_TARGET_ASN1 (SUBNAME CLASSIC0001
CLASSICTABLE OPTIONS HAS LOAD PHASE I TARGET NAME CLASSICTABLE LOAD TYPE 4);例: Oracle ターゲット
この例は、Oracle ターゲット表 HR.EMPLOYEE の Q サブスクリプションを作成します。 ターゲット表 HR.EMPNICK を参照するニックネームが既に Q アプライ・サーバーに存在します。
ASNCLP SESSION SET TO Q REPLICATION;
SET SERVER CAPTURE TO DB SAMPLE;
SET SERVER TARGET TO DB FEDORA NONIBM SERVER V10ORA;
CREATE QSUB USING REPLQMAP REPQMAP1
(SUBNAME SUB1 EMPLOYEE EXIST NICKNAME HR.EMPNICK TYPE NICKNAME);例: PERIOD ALL を使用したテンポラル表
以下のコマンドは、環境を設定し、テンポラル表 (OEUSR01.SRC_TABLE1) に対して Q サブスクリプションを作成します。 PERIOD ALL キーワードは、すべての期間列 (row-begin、row-end、および transaction-start-ID) が 1 つの Q サブスクリプションに含まれる必要があることを指定します。 INCLUDE HISTORY キーワードは、ソース履歴表に対応して別の Q サブスクリプションを作成する必要があることを指定します。 EXIST キーワードは指定されないので、ASNCLP プログラムはターゲット・テンポラル表とその関連の履歴表を作成するスクリプトを生成します。ASNCLP SESSION SET TO Q REPLICATION;
SET SERVER CAPTURE TO DB SRC;
SET SERVER TARGET TO DB TGT;
CREATE REPLQMAP QMAP1;
CREATE QSUB USING REPLQMAP QMAP1
(SUBNAME EMPLOYEE001 OEUSR01.SRC_TABLE1
OPTIONS ALL CHANGED ROWS N HAS LOAD PHASE I SUPPRESS DELETES N
TARGET NAME OEUSR01.TGT_TABLE1 TYPE USERTABLE
TRGCOLS ALL PERIOD ALL INCLUDE HISTORY);例: ストアード・プロシージャー・ターゲット
以下の例は、ストアード・プロシージャー・ターゲットに対する Q サブスクリプション DEPT001 を作成します。 ソース表は db2admin.DEPARTMENT で、既存のターゲット表の 4 つの列 (DEPTNO、DEPTNAME、MGRNO、ADMRDEPT) には、複製されたソース・データを受け取った後でストアード・プロシージャーによってデータが取り込まれます。
CREATE QSUB SUBTYPE U (SUBNAME "DEPT001" REPLQMAP SOURCE_ASN_TO_TARGET_ASN
db2admin.DEPARTMENT OPTIONS HAS LOAD PHASE N EXIST TYPE STOREDPROC
TRGCOLS INCLUDE (DEPTNO, DEPTNAME, MGRNO, ADMRDEPT)
KEYS (DEPTNO, DEPTNAME, MGRNO) 例: 範囲パーティション表
次の例では、範囲パーティション表 DEPARTMENT の Q サブスクリプション QSUBPART を作成します。 連続するパーティション 1 から 10、パーティション 12、および連続するパーティション 20 から 25 を複製することを指定しています。
CREATE QSUB USING REPLQMAP QMAP1 (SUBNAME QSUBPART DEPARTMENT
SRCPARTS (1 TO 10,12,20 TO 25)
EXIST TARGET NAME TGT_DEPARTMENT TARGPARTS (1 TO 10,12,20 TO 25));
