主コンテンツへ
Oracle® Fusion Middleware Oracle GoldenGateリファレンスfor Windows and UNIX
12c (12.2.0.1)
E70112-04
目次へ移動
目次

前
次

1.7 ADD EXTRACT

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グループをサポートします。サポートされているレベルで、INFOSTATUSなどの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
[, SCN value]
[, 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

(Oracle) 統合キャプチャ・モードで、このExtractを追加します。このモードでは、Extractは、論理変更レコード(LCR)をExtractに直接渡すデータベース・ログマイニング・サーバーと統合します。ExtractはREDOログを読み取りません。INTEGRATED TRANLOGを使用する前に、REGISTER EXTRACTコマンドを使用します。統合キャプチャの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

VAM

(Informix、MySQLおよび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_name

(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.3333ミリ秒の時間間隔で開始する場合、2つのトランザクションの時間差に基づいて開始位置を決定できないことがあります。

    • タイムスタンプは、すべてのSQL Serverログ・レコードではなく、トランザクションを開始してコミットしたレコード、およびデータが含まれないその他の一部のレコードのみに記録されます。

    • SQL Serverのタイムスタンプは、システム・クロックではなく、使用中の各プロセッサ固有の内部クロックに基づいています。このクロックは1秒間に数回更新されますが、更新から更新までの間にシステム・クロックとの同期が外れることがあります。その場合、時刻で決定する開始位置の正確さがさらに低下します。

    • ログ・バックアップ・ファイルに記録されるタイムスタンプは、バックアップ内に記録された時刻と正確に一致しない可能性があります(ただし、不正確さは1秒未満です)。

    LSNを使用した位置決めのほうが正確です。

  • 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に有効です。トランザクション・ログ内のデータ取得開始位置の相対バイト・アドレスを指定します。必要な書式は0Xnnnで、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)

  • 0000003454: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'

問合せで使用する時間書式は、'2015-01-30 12:00:00.000'ではなく、'2015/01/30 12:00:00.000'のようにする必要があります。

特定のトランザクションの開始時刻を確認した後、関連するLSNを検索し、開始時刻が同じ2つのトランザクションの間に開始位置を指定できます。

EOF | LSN value

DB2 LUWに有効です。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

Oracleクラシック・キャプチャ・モードに有効です。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の数を指定します。有効な値は、0 - 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のいずれかの書式で入力できます)。デフォルトは、システム生成のプロセス名です。

SOCKSPROXY {host_name | IP_address}[:port] [PROXYCSALIAS credential_store_alias [PROXYCSDOMAIN credential_store_domain]

別名Extractに対して使用します。プロキシ・サーバーのDNSホスト名またはIPアドレスを指定します。DNSサーバーに接続できない場合は、IPアドレスを使用する必要がありますが、いずれか1つを使用してホストを定義できます。IPアドレスを使用している場合、宛先システムのスタックに応じて、IPv6またはIPv4のいずれかのマップ・アドレスを使用します。PROXYCSALIASを指定する必要があります。また、使用するポートと、資格証明ストアのドメインを指定できます。

RMTNAME passive_extract_name

別名Extractに対して使用します。別名Extractの名前と異なる場合に、パッシブExtractの名前を指定します。

例1   

次の例では、トランザクション・ログからデータベースの変更を抽出する、financeという名前のExtractグループを作成します。抽出は、ADD EXTRACTによってこのグループが作成された時刻に生成されたレコードから開始されます。

ADD EXTRACT finance, TRANLOG, BEGIN NOW
例2   

次の例では、Oracle RACログからデータベースの変更を抽出する、financeという名前のExtractグループを作成します。抽出は、このグループが作成された時刻に生成されたレコードから開始されます。RACインスタンスが4つあるので、Extractスレッド数は4になります。

ADD EXTRACT finance, TRANLOG, BEGIN NOW, THREADS 4
例3   

次の例では、トランザクション・ログからデータベースの変更を抽出する、financeという名前のExtractグループを作成します。 抽出は、2011年1月21日8時に生成されたレコードから開始されます。

ADD EXTRACT finance, TRANLOG, BEGIN 2011-01-21 08:00
例4   

次の例では、統合キャプチャのExtractグループを作成します。

ADD EXTRACT finance, INTEGRATED TRANLOG, BEGIN NOW
例5   

次の例では、最大パフォーマンス・モードまたは最大保護モードのTeradata TAMとインタフェースを取る、financeという名前のExtractグループを作成します。Teradataソースには、BEGINポイントを使用しません。

ADD EXTRACT finance, VAM
例6   

次の例では、financeという名前のVAMソートExtractグループを作成します。プロセスは、VAMトレイル/ggs/dirdat/vtから読み取ります。

ADD EXTRACT finance, VAMTRAILSOURCE dirdat/vt
例7   

次の例では、financeという名前のデータ・ポンプExtractグループを作成します。Oracle GoldenGateトレイルc:\ggs\dirdat\ltから読み取ります。

ADD EXTRACT finance, EXTTRAILSOURCE dirdat\lt
例8   

次の例では、loadという名前の初期ロードExtractを作成します。

ADD EXTRACT load, SOURCEISTABLE
例9   

次の例では、トランザクション・ログからデータベースの変更を抽出する、financeという名前のパッシブExtractグループを作成します。

ADD EXTRACT finance, TRANLOG, BEGIN NOW, PASSIVE
例10   

次の例では、financeAという名前の別名Extractグループを作成します。別名Extractは、ソース・システムsysA上のfinanceという名前のパッシブExtractに関連付けられています。このシステム上のManagerは、ポート7800を使用しています。

ADD EXTRACT financeA, RMTHOST sysA, MGRPORT 7800, RMTNAME finance
例11   

次の例は、REDOログ内の特定のOracleシステム変更番号(SCN)でExtractを作成および配置します。

ADD EXTRACT finance TRANLOG SCN 123456
ADD EXTRACT finance INTEGRATED TRANLOG SCN 123456
例12   

次の例では、使用するホストを指定する別名Extractを作成します。

ADD EXTRACT apmp desc "alias extract" RMTHOST lc01abc MGRPORT 7813 RMTNAME 
ppmp SOCKSPROXY lc02def:3128 PROXYCSALIAS proxyAlias 
例13   

次の例では、SQL/MXシステム上にExtractを作成します。

ADD EXTRACT ext exttcp, CPU 3, PRI 148, HOMETERM $ZTN0.#PTHBP32,  PROCESSNAME $ext1
例14   

次の例では、DB2 LUWシステム上にExtractを作成します。

ADD EXTRACT extcust, TRANLOG LRI 8066.322711