ALTER EXTRACT
ALTER EXTRACTは、次の目的で使用します。
-
ADD EXTRACTコマンドで作成したExtractグループの属性を変更する -
トレイルをシーケンスの次のファイルに増分するため。
-
統合取得構成にアップグレードするため。
-
統合取得構成からダウングレードするため。
-
指定されたDb2 for iジャーナルを特定のジャーナル順序番号に配置するため。
このコマンドを使用する前に、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の次の特性によって影響を受けます:
-
SQL Serverトランザクション・ログで記録されるタイムスタンプは、3.3333マイクロ秒(ms)の粒度を使用します。このレベルの粒度では、トランザクションが同じ3.3333 msの時間間隔で開始した場合、2つのトランザクション間の時間によっては配置できないことがあります。
-
タイムスタンプは、すべてのSQL Serverログ・レコードで記録されるわけではなく、データを含まない一部のものと同様に、トランザクションを開始およびコミットするレコードでのみ記録されます。
-
SQL Serverのタイムスタンプは、システム・クロックではなく、使用中の個々のプロセッサに固有の内部クロックに基づきます。このクロックは1秒間に数回更新されますが、各更新の間にシステム・クロックとの同期を失う可能性があります。これにより、時間による配置の精度はさらに低下します。
-
ログ・バックアップ・ファイルで記録されたタイムスタンプは、バックアップ内で記録された時間と正確に対応しないことがあります(ただし、この誤差は1秒未満です)。
LSNに対する配置は正確です。
PostgreSQLのタイムスタンプによる配置には、次のシナリオがあります:
-
シナリオ1
track_commit_timestampがoffの場合、Extractプロセスが開始されると、使用する位置指定方法に関係なく、次の出力が表示されます。2020-04-29 02:15:54 INFO OGG-01517 Position of first record processed LSN: 0/2222C20, Jan 1, 1970 12:00:00 PM. -
シナリオ2
Extractの登録前に
track_commit_timestampが有効になる場合、ソース・データベースでレコードがプッシュされると、次の例のように正確なタイムスタンプが表示されます:2020-04-29 02:19:07 INFO OGG-01515 Positioning to begin time Apr 29,2020 2:18:38 AM. -
シナリオ3
Extractの登録後に
track_commit_timestampが有効になっている場合、コミット・タイムスタンプが関連付けられたtransaction IDで構築されていないログで古いレコードを使用できる可能性があります。その場合、Extractでタイムスタンプが取得されないと、シナリオ1に記載されたデフォルト・タイムスタンプを使用してフォールバックされます。出力は、次のようになります。020-04-29 01:55:07 INFO OGG-01517 Position of first record processed LSN: 0/221D028, Jan 1, 1970 12:00:00 PM. -
レプリケーション・スロットが移動している場合、過去のタイムスタンプを指定することはできません。
START
PostgreSQLで有効です。
BEGIN NOWまたはLSNを指定せずにExtractを追加します。Extractは、レプリケーション・スロットの再開位置から自動的に起動します。
ADD_EXTRACT_attribute
ALTER EXTRACTコマンドで指定したどの属性でも変更できますが、次を除きます:
-
EXTTRAILSOURCEオプションで指定したExtractの変更。 -
THREADSオプションで指定したRACスレッド数の変更。
これらの例外については、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指定には、次のものが含まれます:
-
0X接頭辞を持ち、先頭がゼロで埋められたコロン区切りの16進文字列(8:8:4) (0X00000d7e:0000036b:0001など)
-
0X接頭辞を持ち、先頭にゼロがないコロン区切りの16進文字列(0Xd7e:36b:1など)
次の問合せを行うと、使用可能な最小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以降では、分散サービスの処理中に次のことが行われます:
-
ソース・デプロイメント上のプライマリExtractは、ターゲット証跡ファイル
ETROLLOVERでアップグレードされる場合、theDistributionサービスにより、ソース証跡ファイルETROLLOVERが自動的に検出され、次の入力証跡ファイルから読取りが開始されます。このコマンドは、データ・ポンプALTER EXTRACT groupname EXTSEQNO seqno+1 EXTRBA 0と同じです。 -
分散サービスがアップグレードされると、再起動時に出力証跡ファイルの
ETROLLOVERが自動的に実行され、次の証跡ファイルに適切に書き込まれます。これは、データ・ポンプALTER EXTRACT groupname ETROLLOVERと同じです。
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