ALTER EXTRACT

ALTER EXTRACTは、次の目的で使用します。

このコマンドを使用する前に、STOP EXTRACT group_nameコマンドを使用してExtractを停止します。

構文

ALTER EXTRACT group-name
         [, BEGIN {NOW | yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]} |
|            [, EXTRBA archive-offset-number]
|            [, ADD_EXTRACT_attribute  | SCN value]
|            [, LSN
|            [, EOL
|            [, DESC
|            [ CRITICAL    [ YES | NO ]     ]
|            [ ENCRYPTIONPROFILE     encryption-profile-name]
|            [ PROFILE
|                [ AUTOSTART   [ YES | NO ]
|                  [ DELAY     delay-number   ] ]
|                  [ AUTORESTART [ YES | NO ]
|                       [ RETRIES          retries-number ]
|                       [ WAITSECONDS      wait-number    ]
|                       [ RESETSECONDS     reset-number   ]
|                       [ DISABLEONFAILURE [ YES | NO ] ] ] ]
|             [ LOGNUM lognum]
|             [ LOGPOS logpos

次のALTER EXTRACTオプションは、指定されたジャーナルにExtractを配置するためにDb2 for iでサポートされます:

ALTER EXTRACT {BEGIN {NOW | yyyy-mm-ddT[ hh:mi:[ss[.cccccc]]Z]}
[JOURNAL journal_library/journal_name [JRNRCV receiver_library/
  receiver_name]] |
, EOL [JOURNAL journal_library/journal_name
  [JRNRCV receiver_library/receiver_name]] |
, SEQNO sequence_number [JOURNAL journal_library/journal_name
  [JRNRCV receiver_library/receiver_name]]}

BEGIN {NOW | yyyy-mm-ddT[ hh:mi:[ss[.cccccc]]]Z} [JOURNAL journal_library/journal_name [JRNRCV receiver_library/ receiver_name]] | , EOL [JOURNAL journal_library/journal_name [JRNRCV receiver_library/receiver_name]] | , SEQNO sequence_number [JOURNAL journal_library/journal_name [JRNRCV receiver_library/receiver_name]]

これらのIBM for iオプションによって、グローバル開始ポイントがADD EXTRACTで発行された後にジャーナル固有のExtractの位置付けが可能になります。ALTER EXTRACTで設定された特定のジャーナル位置は、「ADD EXTRACT」または「ALTER EXTRACT」で以前に設定したグローバル位置に影響しません。ただし、「ALTER EXTRACT」で設定されたグローバル位置は、「同じExtract」構成で以前に設定されていた特定のジャーナル位置よりも優先されます。

ノート: SEQNO (`ALTER'でジャーナルとともに使用する場合)

          EXTRACT`, is the journal sequence number that is relative to that specific journal, not the system sequence number that is global across journals.
          {: .infoboxnote}

group-name

変更するExtractグループの名前。

{BEGIN {NOW Tyyyy-mm-dd[ hh:mi:[ss[.cccccc]]]Z}

NOW

Db2 LUW以外のすべてのデータベースで、NOWはALTER EXTRACTコマンドが発行される時刻を指定します。

NOWは、ALTER EXTRACTコマンドが発行される時刻を指定します。

Db2 LUWでは、コミットおよび終了トランザクション・レコードにのみタイムスタンプが含まれるため、Extractの開始位置を計算するには、それらのタイムスタンプを基準とする必要があります。これは、Oracle GoldenGateによって使用されるAPIの制限です。タイムスタンプによる配置は不正確で、時間がかかる可能性もあることに注意してください。可能な場合には、LRIまたはEOLオプションを使用することをお薦めします。

YYYY-MM-DDThh:mm:ssZ

指定された形式の日時(タイムスタンプ)。たとえば、2017-07-14T14:54:45Zです。

yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]

指定された形式の日時(タイムスタンプ)。統合モードのOracle Extractでは、タイムスタンプ値は、Extractがデータベースに登録された時点のタイムスタンプより大きくする必要があります。

SQL Serverトランザクション・ログのタイムスタンプによる配置は、SQL Serverの次の特性によって影響を受けます:

LSNに対する配置は正確です。

PostgreSQLのタイムスタンプによる配置には、次のシナリオがあります:

START

PostgreSQLで有効です。

BEGIN NOWまたはLSNを指定せずにExtractを追加します。Extractは、レプリケーション・スロットの再開位置から自動的に起動します。

ADD_EXTRACT_attribute

ALTER EXTRACTコマンドで指定したどの属性でも変更できますが、次を除きます:

これらの例外については、Extractグループを削除してから再度追加します。

BEGINオプションを使用している場合は、同じ文に他のオプションを指定しないでください。次の例のように個別に文を発行します:

ALTER EXTRACT exte, BEGIN 2019-01-01
ALTER EXTRACT exte, ETROLLOVER
ALTER EXTRACT exte, SCN 789000

統合Extractに対してSCNまたはBEGINオプションを使用する場合は、DBLOGINが必要であり、指定されたSCNまたはタイムスタンプ値はアウトバウンド・サーバーの先頭SCNまたはタイムスタンプを下回ることはできません。アウトバウンド・サーバーの先頭SCNを検索するには、次のコマンドを発行します:

INFO EXTRACT group_name, SHOWCH DETAIL

先頭SCN値は、次の例のようにリストされます:

Integrated Extract outbound server first scn: 0.665884 (665884)

EXTRBA offset_number

Db2 z/OSで有効です。

データの取得を開始するトランザクション・ログ内の相対バイト・アドレスを指定します。

必要な書式は0Xnnnで、nnnは1 - 20桁の15進数(最初の文字は桁0で、2番目の文字は大文字または小文字x)です。

EOL

Db2 for i、Db2 LUW、MySQL、PostgreSQLおよびSQL Serverで有効です。

次のレコードの書込み先となるログ・ファイル(またはジャーナル)の終端から開始するように処理を構成します。アクティブ・トランザクションは何も取得されません。

Db2 LUWでは、ログ・ファイルのアクティブなLRI値から開始するように処理を構成します。アクティブなLRIは、次のレコードの書込み先となるログ・ファイルの終端の位置を示します。アクティブ・トランザクションは何も取得されません。

PostgreSQLの場合、EOLによる位置にはDBLOGINが必要です。

MySQLでは、ファイルの末尾に対応する位置が検出され、そこからトランザクションの読取りが開始されます。データがバイナリ・ログに継続的に書き込まれている場合、EOLの位置は正確ではありません。

TRANLOG LRI LRI_number

(Db2 LUW)このオプションは、Db2 LUWシステムでチェックポイント・トランザクション・ログのLRIレコード値の指定に使用できます。

PostgreSQLの場合、EOLによる位置にはDBLOGINが必要です。

REPORT file_name

Oracle GoldenGateディレクトリ内のdirrptのデフォルト以外の場所にあるExtractレポート・ファイルのフルパス名を指定します。

SCN value

Oracleで有効です。

指定したOracleシステム変更番号(SCN)を持つREDOログのトランザクションでExtractを起動します。Extractでは、SCN値を、Extractがデータベースに登録された時点のSCNより大きくする必要があります。SCNまたはBEGINオプションの場合、DBLOGINが必要であり、指定されたSCNまたはタイムスタンプ値はアウトバウンド・サーバーの先頭SCNまたはタイムスタンプを下回ることはできません。

LSN value

Db2 z/OS、PostgreSQLおよびSQL Serverで有効です。

データ取得を開始するトランザクションLSNを指定します。このオプションの別名はEXTLSNです。

Db2 z/OSの場合、LSN値は一連の16進数または一連の10進数にすることができます。16進形式の場合は、0Xまたは0xの後に1から20の16進数(0-9、a-gまたはA-G)が続く必要があります。10進数形式の場合は、接頭辞なしの1から25の10進数(0-9)です。

PostgreSQLの場合、LSN値はhiまたはloです。ログ・ファイルのエントリ・ポイントで値をhiに設定します。Loは、ログ・ファイル内のオフセットです。LSN位置は、レプリケーション・スロットの再開位置と先行書込みログの現在の場所との間にある必要があります。指定された位置自体が、示された範囲間に存在する場合、Extractによってエラーがスローされます。

SQL Serverの場合、LSNは、データ取得を開始するトランザクションLSNを指定します。このオプションの別名はEXTLSNです。

指定されたLSNは、cdc.lsn_time_mappingシステム表内に存在する有効なtran_begin_lsnとして存在する必要があります。存在しない場合、Extractは、指定されたLSN値の後に配置しようとします。

SQL Serverの有効なLSN指定には、次のものが含まれます:

次の問合せを行うと、使用可能な最小LSNを検索できます:

SELECT min([tran_begin_lsn]) FROM [cdc].[lsn_time_mapping] with (nolock) where tran_id <> 0x00

次の例は、Db2 z/OSのLSN値の使用を示しています。

例1:

ALTER EXTRACT extn TRANLOG, LSN 0xDEE40E4F27A3245400

例2:

ALTER EXTRACT extn TRANLOG, LSN 22216433159121980904448

次の例は、SQL ServerのLSN値を示しています:

ALTER EXTRACT extn TRANLOG, LSN 0X00000d7e:0000036b:0001

LOGNUM

MySQLで有効です。

これは、ログ・ファイル番号です。たとえば、必要なログ・ファイルの名前がtest.000034である場合、LOGNUM値は34です。Extractでは、このログ・ファイルが検索されます。ノート: Microservices Architectureでは、LOGNUM値で値より前にゼロが含まれる場合、ALTER EXTRACTが失敗します。たとえば、ALTER EXTRACT ext1, TRANLOG, LOGNUM 000001, LOGPOS 0は失敗します。かわりに、LOGNUMを1に設定すると、この例は正常に実行されます。

LOGPOS

MySQLで有効です。

これはログ・ファイル内のイベント・オフセット値で、特定のトランザクション・レコードを識別します。イベント・オフセット値は、ログ・レコードのヘッダー・セクションに格納されます。binlogファイルの先頭に配置するには、LOGPOSを0に設定します。

ETROLLOVER

プライマリExtractのトレイル・ファイルを再配置および再生成する必要のある手動リカバリの場合と、以前のバージョンからOracle GoldenGateをアップグレードする場合に使用します。

Extractは、トレイル・ファイルの新しいインカネーションを作成して、再起動時にトレイル・シーケンスの次のファイルに増分します。ポンプやReplicatなどのリーダーは、新しいトレイル順序番号に手動で再配置する必要があります。

ETROLLOVERを指定した場合は、Extractは、Extractが開始された指定SCNの後のすべてのレコードを、すでにキャプチャされて証跡に書き込まれたかどうかに関係なくキャプチャされます。ETROLLOVERが指定されていないと、Extractは、すでにキャプチャされて証跡に書き込まれたレコードのキャプチャをスキップできます。

19c以降では、分散サービスの処理中に次のことが行われます:

DESC ‘description’

グループの説明('Extracts account_tab on Serv1'など)を指定します。説明は一重引用符で囲みます。短縮キーワードDESCまたは完全なキーワードDESCRIPTIONを使用できます。

ENCRYPTIONPROFILE

Extractの暗号化プロファイルの名前を指定します。この名前は大/小文字が区別されるため、ADD EXTRACTで入力した名前と完全に一致する名前を使用する必要があります。

GTIDSET gtidset

MySQLで有効です。

MySQL向けGTIDベース取得のGTIDセットの位置タイプ・オプションを使用して、Extractの初期位置を指定します。GTIDセットでサポートされているMySQLソースは、MySQL Server 8.0、MySQL Server 5.7、MySQL Database Service (MDS)です。サポートされている最大GTIDセット・サイズは64KBです。

構文:

ALTER EXTRACT extract_name, TRANLOG, GTIDSET gtidset

次の例には、GTIDセットの有効な形式のすべての組合せが含まれています。

例1:

ALTER EXTRACT exte, TRANLOG, GTIDSET "E11FA47-71CA-11E1-9E33-C80AA9429562:4"

例2:

ALTER EXTRACT exts, TRANLOG, GTIDSET "3E11FA47-71CA-11E1-9E33-C80AA9429562:1-10"

例3:

ALTER EXTRACT extn, TRANLOG, GTIDSET "3E11FA47-71CA-11E1-9E33-C80AA9429562:1-3:11:47-49"

例4:

ALTER EXTRACT extw, TRANLOG, GTIDSET "2174B383-5441-11E8-B90A-C80AA9429562:1-3,24DA167-0C0C-11E8-8442-00059A3C7B00:1-19"

ノート:例4に示すように、GTIDセットに複数のUUIDが含まれている場合、REST APIリクエストを形成するために、このGTIDセットはカンマ区切りを使用して複数のGTIDセットに分割されます。

CRITICAL

プロセスがデプロイメントにとってクリティカルかどうかを示します。

PROFILE

自動起動プロファイルの名前。この名前は大/小文字が区別されるため、ALTER EXTRACTで入力した名前と完全に一致する名前を使用する必要があります。

AUTOSTART

管理サービスの開始時に、管理対象プロセスを自動的に開始するかどうかを指定します。デフォルト値はYESです。

RETRIES

再試行を中止するまでにタスクを再開する最大試行数。これはオプションです。

WAITSECONDS

再試行をカウントする期間(秒)。

RESETSECONDS

再試行をカウントする期間をリセットします。

DISABLEONFAILURE

TRUEに設定すると、再試行回数の上限に達した時点でタスクは無効になります。

INFO EXTRACT group-name, SHOWCH DETAIL

先頭SCN値は、次の例のようにリストされます:

Integrated Extract outbound server first scn: 0.665884 (665884)

例


次では、2019年1月1日からデータの処理を開始するようExtractを変更します。

ALTER EXTRACT exte, BEGIN 2019-01-01

次では、トレイルの特定の場所から処理を開始するようにExtractを変更します。

ALTER EXTRACT exte, EXTSEQNO 26, EXTRBA 338

次では、特定のLSNから開始するようにSQL Server環境のExtractを変更します。

ALTER EXTRACT exte, LSN 0Xd7e:36b:1

次では、トレイル・シーケンスの次のファイルに増分するようにExtractを変更します。

ALTER EXTRACT exte, ETROLLOVER

次では、統合取得にアップグレードするようにExtractを変更します。

ALTER EXTRACT exte, UPGRADE INTEGRATED TRANLOG

The following command uses ETROLLOVER to prevent filtering of duplicate records with backward SCN 778899.

ALTER EXTRACT exte, SCN 778899
ALTER EXTRACT exte ETROLLOVER
START EXTRACT exte

ETROLLOVERを使用しない場合、Extractを以前のSCN値に変更すると、重複レコードは処理されません。重複レコードをフィルタ処理するようにExtractを変更するコマンドは、次のとおりです。

ALTER EXTRACT exte, SCN 778899
START EXTRACT exte

次の例は、IBM for iジャーナル開始位置のALTER EXTRACTを示します。

ALTER EXTRACT exte, SEQNO 1234  JOURNAL accts/acctsjrn

次の例は、IBM for iジャーナルおよび受信者開始位置のALTER EXTRACTを示します。

ALTER EXTRACT exte, SEQNO 1234 JOURNAL accts/acctsjrn JRNRCV accts/jrnrcv0005

次の例では、Db2 LUWシステム上のExtractを変更します。

ALTER EXTRACT exte, TRANLOG LRI 8066.322711

次の例は、PostgreSQLで使用されるALTER EXTRACTオプションを示しています。

ALTER EXTRACT exte, EOL
ALTER EXTRACT POSTEXT, LSN 0/156784
ALTER EXTRACT POSTEXT, BEGIN 2022-02-18T14:50:43.4230Z