ADD EXTRACT
では、Extractグループを作成します。SOURCEISTABLE
タスクまたは別名Extractが指定されている場合を除き、ADD EXTRACT
は実行間の処理の継続性を維持するためにチェックポイントを使用するオンライン・グループを作成します。
DB2 for iの場合、このコマンドはすべてのジャーナルのグローバル開始位置を設定し、最初の手順に必要です。ADD EXTRACT
コマンドの発行後、オプションで適切なジャーナル・オプションを指定したALTER EXTRACT
コマンドを使用して特定のジャーナル・シーケンス番号に特定のジャーナルを配置できます。
Informixの場合、このコマンドはCDCレコードを取得するためのInformix論理ログ内の位置を初期化します。最初のDMLが処理される際、Informix CDCレコードは論理ログに含まれています。ログ内の各レコードは、LSN(ログ・シーケンス番号)と呼ばれる位置に関連付けられています。LSNに基づいた位置設定を行えるのは、初期化の完了後のみです。Extractを初めて追加する場合、INFO EXTRACTコマンドを使用して初期化が完了していることを確認する必要があります
(時間はExtractパラメータ・ファイル内の表の数によって異なります)。次に、表示されるLSN番号が、Extractレポート・ファイル内に処理される最初のレコードとして表示されているLSNと一致することを確認します。たとえば、INFO EXTRACT
によって返されるLSN番号がLSN: 892:0X1235018
の場合、レポート・ファイル内のメッセージは、Position of first record processed LSN: 892:0X1235018, Apr 16, 2014 2:56:58 AM
である必要があります。最初のExtractログの位置設定の完了後は、stopまたはkillコマンドを発行できますが、完了前はできません。完了前に行った場合、取得の再開は常にデータベース・ログのEOF位置から開始されることになります。
Oracle GoldenGateは、Oracle GoldenGate Managerインスタンス当たり、最大で5,000の同時ExtractおよびReplicatグループをサポートします。サポートされているレベルで、INFO
、STATUS
などのGGSCIコマンドですべてのグループを完全に制御および表示できます。Oracle GoldenGateは、環境を効果的に管理するためにExtractグループとReplicatグループを組み合せた数を300以下のデフォルト・レベルに維持します。
このコマンドでは、DESC
オプションに入力するテキストを含む、すべてのキーワードおよび入力のサイズは、500バイトを超えることはできません。
標準、パッシブまたはデータ・ポンプExtractの構文
ADD EXTRACT group_name {, SOURCEISTABLE | , TRANLOG [bsds_name | LRI_number
] | , INTEGRATED TRANLOG | , VAM | , EXTFILESOURCE file_name | , EXTTRAILSOURCE trail_name | , VAMTRAILSOURCE VAM_trail_name} [, BEGIN {NOW |yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]
} | [, EXTSEQNO sequence_number, EXTRBA relative_byte_address | [, EOF | [, LSN value | [, EXTRBA relative_byte_address | [, EOF | LSN value | [, PAGE data_page, ROW row_ID | [, SEQNO sequence_number [, SCNvalue
] [, THREADS n] [, PASSIVE] [, PARAMS file_name] [, REPORT file_name] [, DESC 'description'] [, CPU number] [, PRI number] [, HOMETERM device_name] [, PROCESSNAME process_name] [, SOCKSPROXY {host_name | IP_address}[:port] [PROXYCSALIAS credential_store_alias [PROXYCSDOMAIN credential_store_domain]]] [, RMTNAME passive_Extract_name] [, DESC 'description']
group_name
Extractグループ名。Extractグループ名は最大8文字まで使用できます。グループの命名規則については、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
SOURCEISTABLE
Oracle GoldenGateダイレクト・ロード・メソッド、またはSQL*Loaderへのダイレクト・バルク・ロード方式を使用して、初期ロードのためにデータベースからレコード全体を抽出するExtractタスクを作成します。SOURCEISTABLE
を指定しない場合、ADD EXTRACT
はオンライン変更同期プロセスを作成します。この場合は、他のデータ・ソース・オプションを1つ指定する必要があります。SOURCEISTABLE
を使用するときは、サービス・オプションを指定しないでください。タスク・パラメータは、パラメータ・ファイルに指定する必要があります。
初期ロード方式の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
TRANLOG [
bsds_name
| LRI_
NUMBER
]データ・ソースとしてトランザクション・ログを指定します。このオプションは、InformixおよびTeradata以外のすべてのデータベースで使用します。TRANLOG
を指定するときは、BEGIN
オプションを指定する必要があります。
(z/OS上のDB2) z/OSシステム上のDB2では、bsds_name
オプションを使用して、トランザクション・ログのブートストラップ・データ・セット・ファイル名を指定できますが、これは必要なく、使用されません。既存のTRANLOG
パラメータを変更する必要はありません。
(DB2 LUW) LRI_
NUMBER
オプションをDB2 LUWシステムに使用して、LRIレコード値をチェックポイント・トランザクション・ログに指定できます。
(Oracle) Oracle StandardまたはEnterprise Edition 11.2.0.3以降では、このモードはクラシック・キャプチャ・モードと呼ばれます。ExtractはOracle REDOログを直接読み取ります。代替構成については、INTEGRATED TRANLOG
も参照してください。
INTEGRATED TRANLOG
統合キャプチャ・モードで、このExtractを追加します。このモードでは、Extractは、論理変更レコード(LCR)をExtractに直接渡すデータベース・ログマイニング・サーバーと統合します。ExtractはREDOログを読み取りません。INTEGRATED TRANLOG
を使用する前に、REGISTER EXTRACT
コマンドを使用します。統合キャプチャの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。
VAM
(InformixおよびTeradata) Vendor Access Module (VAM)と呼ばれるExtract APIが、Extractへの変更データの転送に使用されるように指定します。
EXTFILESOURCE
file_name
データ・ソースとして抽出ファイルを指定します。このオプションは、プライマリExtractグループとターゲット・システム間の仲介の役割を果すセカンダリExtractグループ(データ・ポンプ)に使用します。
file_name
には、ファイルの相対パス名または完全修飾パス名を指定します(例: dirdat\extfileまたは
c:\ggs\dirdat\extfile
)。
EXTTRAILSOURCE
trail_name
データ・ソースとしてトレイルを指定します。このオプションは、プライマリExtractグループとターゲット・システム間の仲介の役割を果すセカンダリExtractグループ(データ・ポンプ)に使用します。
trail_name
には、トレイルの相対パス名または完全修飾パス名を指定します(例: dirdat\aa
またはc:\ggs\dirdat\aa
)。
VAMTRAILSOURCE
VAM_trail_nam
e(Teradata)VAMトレイルを指定します。このオプションは、Teradata最大保護モードを使用しているときに使用します。
VAM_trail_name
には、プライマリExtractグループの書込み先VAMトレイルの相対パス名または完全修飾パス名を指定します。VAMトレイルの読取り、およびターゲット・システムへのデータの送信には、VAMソートExtractグループを使用します。
BEGIN {NOW |
yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]
}データ・ソース内の処理開始位置のタイムスタンプを指定します。
NOW
DB2 LUW以外のすべてのデータベースの場合、NOW
ではADD EXTRACT
コマンドの発行時刻を指定します。
DB2 LUWの場合、NOW
ではSTART EXTRACT
を有効にする時刻を指定します。この日時にほぼ一致する最初のレコードが開始位置になります。これは、トランザクションのコミットおよびアボート・レコードがタイムスタンプを含む唯一のログ・レコードで、これらのタイムスタンプとの比較しか開始位置を計算する方法がないためです。これは、Oracle GoldenGateが使用するAPIの制限によるものです。
データ・ポンプExtractでは、ADD EXTRACT
文より前にトレイルに取得されたデータをバイパスするときを除き、NOW
を使用しないでください。
yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]
指定された形式の日付と時刻(タイムスタンプ)。統合モードのOracle Extractでは、タイムスタンプ値はExtractがデータベースに登録された時点のタイムスタンプよりも大きい必要があります。
SQL Serverトランザクション・ログのタイムスタンプで位置を決定する場合、SQL Serverの次の特性によって影響を受けます。
SQL Serverトランザクション・ログに記録されているタイムスタンプは、3.3333マイクロ秒(ms)の粒度を使用します。このレベルの粒度では、2つのトランザクションが同じ3.333ミリ秒の時間間隔で開始する場合、2つのトランザクションの時間差に基づいて開始位置を決定できないことがあります。
タイムスタンプは、すべてのSQL Serverログ・レコードではなく、トランザクションを開始してコミットしたレコード、およびデータが含まれないその他の一部のレコードのみに記録されます。
SQL Serverのタイムスタンプは、システム・クロックではなく、使用中の各プロセッサ固有の内部クロックに基づいています。このクロックは1秒間に数回更新されますが、更新から更新までの間にシステム・クロックとの同期が外れることがあります。その場合、時刻で決定する開始位置の正確さがさらに低下します。
ログ・バックアップ・ファイルに記録されるタイムスタンプは、バックアップ内に記録された時刻と正確に一致しない可能性があります(ただし、不正確さは1秒未満です)。
LSNを使用した位置決めのほうが正確です。LSN
value
を参照してください。
Sybaseトランザクション・ログのタイムスタンプで位置を決定する場合、Sybaseの次の特性によって影響を受けます。
Sybaseのみ、BEGIN
およびCOMMIT
レコードにタイムスタンプが記録されます。指定した実際のタイムスタンプに関係なく、開始位置は、指定したタイムスタンプに最も近い位置、またはその位置から開始するトランザクションの最初のレコードになります。Extractレポートには、次の位置が表示されます。
Positioning To: 指定した開始時刻です。たとえば、次のようになります。
Positioning to begin time Jan 1, 2011 12:13:33 PM.
Positioned To: 指定したタイムスタンプが、BEGIN
またはCOMMIT
レコードを含むトランザクション・ログのタイムスタンプ以前である場合、次の例のようにPositioned To Page
が表示されます。
2011-01-01 12:13:39 INFO OGG-01516 Positioned to Page #: 0004460243 Row #: 00111, Jan 1, 2011 12:13:38 PM.
First Record Position: 次の例のように、Positioned To
の位置またはそれ以降の位置で見つかった最初の有効なレコードの位置です。
2011-01-01 12:13:39 INFO OGG-01517 Position of first record processed Page #: 0004460243 Row #: 00111, Jan 1, 2011 12:13:38 PM.
EXTSEQNO
sequence_number
, EXTRBA
relative_byte_address
Oracleのクラシック・キャプチャ・モードのプライマリExtract、NonStop SQL/MXのプライマリExtract、およびデータ・ポンプExtractに有効です。統合モードのOracle Extractではサポートされません。次のいずれかを指定します。
Oracle REDOログの順序番号と、そのログ内のデータ取得開始位置のRBA。
NonStop SQL/MX TMF監査証跡の順序番号と、そのファイル内のデータ取得開始位置の相対バイト・アドレス。この2つの要素によって、TMFマスター監査証跡(MAT)の位置を指定します。
(データ・ポンプの場合)トレイル内のデータ取得開始ファイル。順序番号を指定しますが、埋込みのために0を使用しないでください。たとえば、トレイル・ファイルがc:\ggs\dirdat\aa000026
の場合は、EXTSEQNO 26
と指定します。このオプションを使用しない場合、処理はデフォルトでトレイルの最初から開始されます。
このオプションを使用する前に、Oracleサポートに連絡してください。詳細は、http://support.oracle.com
を参照してください。
EXTRBA
relative_byte_address
z/OS上のDB2に有効です。トランザクション・ログ内のデータ取得開始位置の相対バイト・アドレスを指定します。必要な書式は0X
nnn
で、nnn
は1 - 20桁の16進数(最初の文字は桁を表すゼロで、2番目の文字は大文字または小文字x
)です。
EOF
SQL ServerおよびDB2 for iに有効です。ログ・ファイル(またはジャーナル)の末尾(次のレコードの書込み位置)から処理を開始するように構成します。アクティブなトランザクションは取得されません。
LSN
value
InformixおよびSQL Serverに有効です。トランザクション・ログ内のデータ取得開始位置のLSNを指定します。ログ・バックアップまたはオンライン・ログ内に存在するLSNを指定する必要があります。このオプションの別名はEXTLSN
です。
SQL Serverでは、データベースが返す方法に応じて、LSNは次のいずれかで構成されます。
0X00000d7e:0000036b:01bd
のように、先行ゼロと接頭辞0X
を付けたコロン区切り16進数文字列(8:8:4
)
000003454:0000000875:00445
のように、先行ゼロを付けたコロン区切り10進数文字列(10:10:5
)
0Xd7e:36b:1bd
のように、接頭辞0X
を付けた先行ゼロなしのコロン区切り16進数文字列
3454:875:445
のように、先行ゼロなしのコロン区切り10進数文字列
3454000000087500445
のような10進数文字列
前述で、最初の値は仮想ログ・ファイル番号、2番目の値は仮想ログ内のセグメント番号、3番目の値はエントリ番号です。
次のような問合せを使用すると、名前付きトランザクションのLSNを検索できます。
select [Current LSN], [Transaction Name], [Begin Time]
from fn_dblog(null, null)
where Operation = 'LOP_BEGIN_XACT'
and [Begin Time] >= time
特定のトランザクションの開始時刻を確認した後、関連するLSNを検索し、開始時刻が同じ2つのトランザクションの間に開始位置を指定できます。
EOF | LSN
value
DB2 LUWおよびSQL Serverに有効です。Extract起動時のトランザクション・ログ内のデータ取得開始位置を指定します。
EOF
ログ・ファイル内のアクティブLSNから処理を開始するように構成します。アクティブLSNは、ログ・ファイルの末尾位置(次のレコードの書込み位置)です。アクティブなトランザクションは取得されません。
LSN
value
指定したLSNに有効なログ・レコードが存在する場合に、そこから処理を開始するように構成します。存在しない場合、Extractは異常終了します。Extractは指定したLSNに配置されますが、ExtractがそのLSNを最初に処理するとはかぎらないことに注意してください。これは、ログ・ファイル内に、DB2内部ログ・レコードなどExtractが無視する多数のタイプのレコードが存在するためです。Extractは、実際に最初に処理したLSNをExtractレポート・ファイルにレポートします。
PAGE
data_page
, ROW
row_ID
Sybaseに有効です。Sybaseトランザクション・ログ内の開始位置を定義するデータ・ページと行を指定します。開始位置は、指定したPAGE
およびROW
に最も近い位置、またはその位置から開始するトランザクションの最初のレコードである必要があるため、Extractレポートには、次の位置が表示されます。
Positioning To: PAGE
およびROW
で指定されたレコードの位置。
Positioned To: Positioning To
の位置またはそれ以降の位置で見つかった最初のBEGIN
レコードの位置。
First Record Position: Positioning To
の位置またはそれ以降の位置で見つかった最初の有効なレコードの位置。
SEQNO
sequence_number
DB2 for iに有効です。最大20桁の長さの小数であるシステム順序番号またはその直後の位置からキャプチャを開始します。
SCN
value
Oracleに有効です。指定されたOracleシステム変更番号(SCN)を持つREDOログ内のトランザクションからExtractを開始します。このオプションはクラシック・キャプチャおよび統合モードのExtractに有効です。統合モードのExtractでは、SCN値はExtractがデータベースに登録された時点のSCNよりも大きい必要があります。詳細は、REGISTER EXTRACTを参照してください。
PARAMS
file_name
Extractパラメータ・ファイルの保管場所の完全パス名を、Oracle GoldenGateディレクトリ内のデフォルトのdirprm
以外に指定します。
REPORT
file_name
Extractレポート・ファイルの保管場所の完全パス名を、Oracle GoldenGateディレクトリ内のデフォルトのdirrpt
以外に指定します。
THREADS
n
クラシック・キャプチャ・モードに有効です。REDOログを読み取るためにExtractが保持するプロデューサ・スレッド数を指定します。
プロデューサ・スレッドの数を指定するためにOracle RAC構成で必要です。これらは、様々なRACノードで異なるREDOログを読み取るExtractスレッドです。この値は、REDOデータの取得元のノードの数と同じである必要があります。
PASSIVE
このExtractグループをパッシブ・モードで実行し、ターゲット・システム上の別名Extractグループを起動または停止することによってのみ起動および停止できるように指定します。ソースおよびターゲット間の接続は、このグループではなく、ターゲットの別名Extractグループによって確立されます。
このオプションは、標準Extractグループまたはデータ・ポンプExtractグループに対して使用できます。これは、ネットワークを介してターゲット上のリモート・トレイルにデータを送信するソース・システム上のExtractに対してのみ使用する必要があります。
パッシブおよび別名Extractグループの構成方法は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
DESC '
description
'
グループの説明('Extracts account_tab on Serv1'
など)を指定します。説明を一重引用符で囲みます。短縮キーワードDESC
または完全なキーワードDESCRIPTION
を使用できます。
CPU
number
SQL/MXに有効です。プロセスに使用するCPUの数を指定します。有効な値は、1
- 15
の番号で、-1
がデフォルトです(起動した最後のManagerよりも1高い値が割り当てられます)。
PRI
number
SQL/MXに有効です。Extractプロセス優先度を指定します。有効な値は、1
- 199
の番号で、-1
がデフォルトです(Managerプロセス優先度と同じ)。
HOMETERM
device_name
SQL/MXに有効です。使用するデバイスの名前を指定し、ターミナルまたはプロセスにする必要があります。Guardian $
またはOSS /G/
xxxxx
のいずれかの書式で入力できます。デフォルトは$zhome
または現在のセッションHOMETERM
($zhome
が定義されていない場合)です。
PROCESSNAME
process_name
SQL/MXに有効です。プロセスの名前を最大5文字の英数字の文字列として指定できます(Guardian $
またはOSS /G/
xxxxx
のいずれかの書式で入力できます)。デフォルトは、システム生成のプロセス名です。
host_name
| IP_address
}[:port
] [PROXYCSALIAS credential_store_alias
[PROXYCSDOMAIN credential_store_domain
]別名Extractに対して使用します。プロキシ・サーバーのDNSホスト名またはIPアドレスを指定します。DNSサーバーに接続できない場合は、IPアドレスを使用する必要がありますが、いずれか1つを使用してホストを定義できます。IPアドレスを使用している場合、宛先システムのスタックに応じて、IPv6またはIPv4のいずれかのマップ・アドレスを使用します。PROXYCSALIAS
を指定する必要があります。また、使用するポートと、資格証明ストアのドメインを指定できます。詳細は、SOCKSPROXYを参照してください。
RMTNAME
passive_extract_name
別名Extractに対して使用します。別名Extractの名前と異なる場合に、パッシブExtractの名前を指定します。
例
次の例では、トランザクション・ログからデータベースの変更を抽出する、finance
という名前のExtractグループを作成します。抽出は、ADD EXTRACT
によってこのグループが作成された時刻に生成されたレコードから開始されます。
ADD EXTRACT finance, TRANLOG, BEGIN NOW
次の例では、Oracle RACログからデータベースの変更を抽出する、finance
という名前のExtractグループを作成します。抽出は、このグループが作成された時刻に生成されたレコードから開始されます。RACインスタンスが4つあるので、Extractスレッド数は4になります。
ADD EXTRACT finance, TRANLOG, BEGIN NOW, THREADS 4
次の例では、トランザクション・ログからデータベースの変更を抽出する、finance
という名前のExtractグループを作成します。抽出は、2011年1月21日8時に生成されたレコードから開始されます。
ADD EXTRACT finance, TRANLOG, BEGIN 2011-01-21 08:00
次の例では、統合キャプチャのExtractグループを作成します。
ADD EXTRACT finance, INTEGRATED TRANLOG, BEGIN NOW
次の例では、最大パフォーマンス・モードまたは最大保護モードのTeradata TAMとインタフェースを取る、finance
という名前のExtractグループを作成します。Teradataソースには、BEGIN
ポイントを使用しません。
ADD EXTRACT finance, VAM
次の例では、finance
という名前のVAMソートExtractグループを作成します。プロセスは、VAMトレイル/ggs/dirdat/vt
から読み取ります。
ADD EXTRACT finance, VAMTRAILSOURCE dirdat/vt
次の例では、finance
という名前のデータ・ポンプExtractグループを作成します。Oracle GoldenGateトレイルc:\ggs\dirdat\lt
から読み取ります。
ADD EXTRACT finance, EXTTRAILSOURCE dirdat\lt
次の例では、load
という名前の初期ロードExtractを作成します。
ADD EXTRACT load, SOURCEISTABLE
次の例では、トランザクション・ログからデータベースの変更を抽出する、finance
という名前のパッシブExtractグループを作成します。
ADD EXTRACT finance, TRANLOG, BEGIN NOW, PASSIVE
次の例では、financeA
という名前の別名Extractグループを作成します。別名Extractは、ソース・システムsysA
上のfinance
という名前のパッシブExtractに関連付けられています。このシステム上のManagerは、ポート7800を使用しています。
ADD EXTRACT financeA, RMTHOST sysA, MGRPORT 7800, RMTNAME finance
次の例は、REDOログ内の特定のOracleシステム変更番号(SCN)でExtractを開始します。
ADD EXTRACT finance TRANLOG SCN 123456 ADD EXTRACT finance INTEGRATED TRANLOG SCN 123456
次の例では、使用するホストを指定する別名Extractを作成します。
ADD EXTRACT apmp desc "alias extract" RMTHOST lc01abc MGRPORT 7813 RMTNAME ppmp SOCKSPROXY lc02def:3128 PROXYCSALIAS proxyAlias
次の例では、SQL/MXシステム上にExtractを作成します。
ADD EXTRACT ext exttcp, CPU 3, PRI 148, HOMETERM $ZTN0.#PTHBP32, PROCESSNAME $ext1
次の例では、DB2 LUWシステム上にExtractを作成します。
ADD EXTRACT extcust, TRANLOG LRI 8066.322711