@GETENV
@GETENVファンクションでは、Oracle GoldenGate環境に関する情報を返します。この情報は、次への入力として使用できます。
-
ストアド・プロシージャまたは問合せ(
SQLEXECを使用) -
列マップ(
TABLEまたはMAPのCOLMAPオプションを使用) -
ユーザー・トークン(
TABLEのTOKENSオプションとして定義され、@TOKENファンクションによってターゲット列にマッピング済) -
GET_ENV_VALUEユーザー・イグジット・ファンクション(「GET_ENV_VALUE」を参照)ノート: 構文オプションは、構文の説明に示されているとおり、すべて引用符で囲む必要があります。
-
ファンクションを実行するプロセス(ExtractおよびReplicat)に応じて、ソース・データベースまたはターゲット・データベースの
DB_UNIQUE_NAMEパラメータの値を取得します。
構文
@GETENV (
'LAG' , '<unit>' |
'LASTERR' , '<error_info>' |
'JULIANTIMESTAMP' |
'JULIANTIMESTAMP_PRECISE' |
'RECSOUTPUT' |
{'STATS'|'DELTASTATS'}, ['TABLE', '<table>'], '<statistic>' |
'GGENVIRONMENT', '<environment_info>' |
'GGFILEHEADER', '<header_info>'|
'GGHEADER', '<header_info>' |
'RECORD', '<location_info>' |
'DBENVIRONMENT', '*<database_info>,*',
'TRANSACTION', '<transaction_info>' |
'OSVARIABLE', '<variable>' |
'TLFKEY', SYSKEY, <unique_key>
'USERNAME',
'OSUSERNAME',
'MACHINENAME',
'PROGRAMNAME',
'CLIENTIDENTIFIER',
'SOURCEDATABASEINFO'
)
'LAG' , '<unit>'
ExtractおよびReplicatに有効です。
@GETENVのLAGオプションでは、ラグ情報を返します。ラグは、ExtractまたはReplicatがレコードを処理した時間と、データ・ソースのそのレコードのタイムスタンプとの差異です。
構文
SEC
‘SEC’
ラグ(秒)を返します。LAGに対して単位が明示的に指定されていないときは、これがデフォルトです。
‘MSEC’
ラグ(ミリ秒)を返します。
‘MIN’
ラグ(分)を返します。
'LASTERR' , '<error_info>'
Replicatに有効です。
@GETENVのLASTERRオプションでは、Replicatが最後に失敗した操作の情報を返します。
構文
@GETENV ('LASTERR', {'DBERRNUM'|'DBERRMSG'|'OPTYPE'|'ERRTYPE'})
‘DBERRNUM’
失敗した操作に関連するデータベース・エラー番号を返します。
‘DBERRMSG’
失敗した操作に関連するデータベース・エラー・メッセージを返します。
‘OPTYPE’
試行した操作タイプを返します。
‘ERRTYPE’
エラーのタイプを返します。結果は次のようになります。
-
DB(データベース・エラーの場合) -
MAP(マッピング・エラーの場合)
'JULIANTIMESTAMP'|'JULIANTIMESTAMP_PRECISE'
ExtractおよびReplicatに有効です。
@GETENVのJULIANTIMESTAMPオプションでは、現在の時刻をユリウス形式で返します。単位はマイクロ秒(百万分の1秒)です。Windowsのタイムスタンプはミリ秒(1000分の1秒)の粒度を使用するので、Windowsマシンでは値にゼロが埋め込まれます。たとえば、下記は一般的な列マッピングです:
MAP dbo.tab8451, Target targ.tabjts, COLMAP (USEDEFAULTS, &
JTSS = @GETENV ('JULIANTIMESTAMP')
JTSFFFFFF = @date ('yyyy-mm-dd hh:mi:ss.ffffff', 'JTS', &
@getenv ('JULIANTIMESTAMP') ) )
;
JTSSおよびJTSFFFFFF列は、次のような値になります。
212096320960773000 2010-12-17:16:42:
40.773000
212096321536540000 2010-12-17:16:52:16.540000
212096322856385000 2010-12-17:17:14:16.385000
212096323062919000 2010-12-17:17:17:42.919000
212096380852787000 2010-12-18:09:20:52.787000
数字の最後の3桁(マイクロ秒)はすべて、埋め込まれたゼロが含まれています。
必要に応じて、'JULIANTIMESTAMP_PRECISE'オプションを使用して精度の高いタイムスタンプを取得できますが、パフォーマンスに影響が出る可能性があります。ノート: 順序付け操作にはこれらの値は使用しないでください。かわりに、値@COMPUTE(@COMPUTE(@NUMSTR(@GETENV ("RECORD", "FILESEQNO")*100000000000)+@NUMSTR(@GETENV ("RECORD", "FILERBA")))"を使用します
構文
@GETENV ('JULIANTIMESTAMP')
@GETENV ('JULIANTIMESTAMP_PRECISE')
'再出力'
Extractで有効です。
@GETENVのRECSOUTPUTオプションでは、起動後にExtractがトレイル・ファイルに書き込んだレコード数の現在のカウントを取得します。返される値は、表またはトランザクションではなく、Extractセッション自体に固有の値です。Extractが停止して再起動されると、カウントは1にリセットされます。
構文
@GETENV ('RECSOUTPUT')
{'STATS'|'DELTASTATS'}, ['TABLE', '<table>'], '<statistic>'
ExtractおよびReplicatに有効です。
@GETENVのSTATSおよびDELTASTATSオプションでは、次のいずれかまたはすべてについて、表ごとに処理した操作数を返します。
-
INSERT操作 -
UPDATE操作 -
DELETE操作 -
TRUNCATE操作 -
合計
DML操作 -
合計
DDL操作 -
競合の検出および解決(CDR)機能を使用する場合、発生した競合の数。
-
成功したCDR解決の数
-
失敗したCDR解決の数
解決されていない表エントリや不適切な構文など、このファンクションの処理中にエラーが発生した場合、リクエストされた統計値にゼロ(0)を返します。
表の指定の繰返しが操作数に与える影響について
同じソース表を複数の出力トレイルに処理しているExtractは、@GETENVにリンクした表が書き込まれるローカライズされた各出力トレイルに基づいて、統計を返します。たとえば、Extractが表ABCへの100件の挿入を取得し、表ABCを3つのトレイルに書き込む場合、@GETENVの結果は300になります。
EXTRACT ABC
...
EXTTRAIL c:\north\aa;
TABLE TEST.ABC;
EXTTRAIL c:\north\bb;
TABLE TEST.ABC;
TABLE EMI, TOKENS (TOKEN-CNT = @GETENV ('STATS', 'TABLE', 'ABC', 'DML'));
EXTTRAIL c:\north\cc;
TABLE TEST.ABC;
ソース表を単一の出力トレイルに複数回書き込むExtractの場合、または同じTARGET表に対して複数のMAP文があるReplicatの場合、統計の結果は、一致するすべてのTARGETエントリに基づいています。たとえば、Replicatが、REGION 'WEST'の20行、REGION 'EAST'の10行、REGION 'NORTH'の5行、REGION 'SOUTH'の2行の3行(すべて表ABC)に対してフィルタした場合、@GETENVの結果は37になる。
REPLICAT ABC
...
MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'WEST'));
MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'EAST'));
MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'NORTH'));
MAP TEST.ABC, TARGET TEST.ABC, FILTER (@STREQ (REGION, 'SOUTH'));
MAP TEST.EMI, TARGET TEST.EMI, &
COLMAP (CNT = @GETENV ('STATS', 'TABLE', 'ABC', 'DML'));
複数の統計の取得
@GETENVの複数のインスタンスを実行して、異なる操作タイプの数を取得できます。
次の例では、INSERTおよびUPDATEの操作のみの統計を返します。
REPLICAT TEST
..
..
MAP TEST.ABC, TARGET TEST.ABC, COLMAP (USEDEFAULTS, IU = @COMPUTE (@GETENV &
('STATS', 'TABLE', 'ABC', 'DML') - (@GETENV ('STATS', 'TABLE', &
'ABC', 'DELETE'));
次の例では、DDLおよびTRUNCATEの操作の統計を返します。
REPLICAT TEST2
..
..
MAP TEST.ABC, TARGET TEST.ABC, COLMAP (USEDEFAULTS, DDL = @COMPUTE &
(@GETENV ('STATS', 'DDL') + (@GETENV ('STATS', 'TRUNCATE'));
ユースケースの例
In the following use case, if all DML from the source is applied successfully to the target, Replicat suspends by means of EVENTACTIONS with SUSPEND, until resumed from GGSCI with SEND REPLICAT with RESUME.
Extractパラメータ・ファイルで使用されるGETENVは次のとおりです。
TABLE HR1.HR*;
TABLE HR1.STAT, TOKENS ('env_stats' = @GETENV ('STATS', 'TABLE', &
'HR1.HR*', 'DML'));
Replicatパラメータ・ファイルで使用されるGETENVは次のとおりです。
MAP HR1.HR*, TARGET HR2.*;
MAP HR1.STAT, TARGET HR2.STAT, filter (
@if (
@token ('stats') =
@getenv ('STATS', 'TABLE', 'TSSCAT.TCUSTORD', 'DML'), 1, 0 )
),
eventactions (suspend);
FILTER句での統計の使用
STATSおよびDELTASTATSによって返される統計は動的な値で、マッピングの実行後に増分されます。したがって、複数のMAP文それぞれのFILTER句でCDR統計を使用する際、MAP文を統計値の降順で順序付けする必要があります。順序が正しくない場合、Oracle GoldenGateではエラーOGG-01921が返されます。この要件の詳細は、My Oracle Support (https://support.oracle.com)のナレッジ・ベースでドキュメント1556241.1を参照してください
例4-1 FILTER句の統計が含まれるMAP文
次の例では、CDR_CONFLICTS統計のフィルタが含まれるMAP文が、統計の降順(>3、=3、<3の順番)で順序付けされます。
MAP TEST.GG_HEARTBEAT_TABLE, TARGET TEST.GG_HEARTBEAT_TABLE COMPARECOLS (ON UPDATE ALL),RESOLVECONFLICT(UPDATEROWEXISTS,(DEFAULT, OVERWRITE)),FILTER (@GETENV ("STATS", "CDR_CONFLICTS") > 3),EVENTACTIONS (LOG INFO);MAP TEST.GG_HEARTBEAT_TABLE, TARGET TEST.GG_HEARTBEAT_TABLE COMPARECOLS (ON UPDATE ALL),RESOLVECONFLICT(UPDATEROWEXISTS,(DEFAULT, OVERWRITE)),FILTER (@GETENV ("STATS", "CDR_CONFLICTS") = 3),EVENTACTIONS (LOG WARNING);MAP TEST.GG_HEARTBEAT_TABLE, TARGET TEST.GG_HEARTBEAT_TABLE COMPARECOLS (ON UPDATE ALL),RESOLVECONFLICT(UPDATEROWEXISTS,(DEFAULT, OVERWRITE)),FILTER (@GETENV ("STATS", "CDR_CONFLICTS") < 3),EVENTACTIONS (LOG WARNING);
構文
@GETENV ({'STATS' | 'DELTASTATS'}, ['TABLE', '<table>'], '<statistic>')
{‘STATS’ |
‘DELTASTATS’} |
STATSはプロセス起動以降の数を返しますが、DELTASTATSは最後のDELTASTATSの実行以降の数を返します。
実行ロジックは次のようになります。
-
Extractが
STATSまたはDELTASTATSで@GETENVを満たすトランザクション・レコードを処理すると、表名はTABLE文内の解決済ソース表との照合されます。 -
Replicatが
STATSまたはDELTASTATSで@GETENVを満たすトレイル・レコードを処理すると、表名はMAP文のTARGET句内の解決されたターゲット表と照合されます。
‘TABLE’, ‘<table>’
指定した表に対してのみSTATSまたはDELTASTATSを実行します。このオプションを使用しないと、パラメータ・ファイルでTABLE (Extract)またはMAP (Replicat)パラメータに指定したすべての表に対するカウントが返されます。
有効な<table_name>値は次のとおりです。
-
'
<schema.table>'は表を指定します。 -
<'table'>はデフォルト・スキーマの表を指定します。 -
'*schema'.はスキーマ内のすべての表を示します。
-
'*'はデフォルト・スキーマのすべての表を指定します。
たとえば、次の場合は、hrスキーマの表のDML操作のみを数えます。
MAP fin.*, TARGET fin.*;
MAP hr.*, TARGET hr.*;
MAP hq.rpt, TARGET hq.rpt, COLMAP (USEDEFAULTS, CNT = @GETENV ('STATS', 'TABLE', 'hr.*', 'DML'));
同様に、次の場合はhrスキーマのemp表のDML操作のみを数えます。
MAP fin.*, TARGET fin.*;
MAP hr.*, TARGET hr.*;
MAP hq.rpt, TARGET hq.rpt, COLMAP (USEDEFAULTS, CNT = @GETENV ('STATS', 'TABLE', 'hr.emp', 'DML'));
これに対して、次の例では、STATSに特定の表を指定していないため、MAP文のTARGET句内にあるすべてのスキーマのすべての表の、すべてのINSERT、UPDATEおよびDELETE操作を数えます。
MAP fin.*, TARGET fin.*;
MAP hr.*, TARGET hr.*;
MAP hq.rpt, TARGET hq.rpt, COLMAP (USEDEFAULTS, CNT = &
@GETENV ('STATS', 'DML'));
<'statistic>’
返される統計のタイプ。複数のTABLE文またはMAP文のFILTER句で統計を使用する際の重要な情報については、「FILTER句における統計の使用」を参照してください。
‘INSERT’
処理されたINSERT操作の数を返します。
‘UPDATE’
処理されたUPDATE操作の数を返します。
‘DELETE’
処理されたDELETE操作の数を返します。
‘DML’
処理されたINSERT、UPDATEおよびDELETE操作の合計を返します。
‘TRUNCATE’
処理されたTRUNCATE操作の数を返します。この変数は、Oracle GoldenGateのDDLレプリケーションを使用していない場合のみ、数を返します。DDLレプリケーションが使用されている場合、この変数はゼロを返します。
‘DDL’
Returns the number of DDL operations that were processed, including TRUNCATEs and DDL specified in INCLUDE and EXCLUDE clauses of the DDL parameter, all scopes (MAPPED, UNMAPPED, OTHER). この変数は、Oracle GoldenGateのDDLレプリケーションを使用している場合にのみ、数を返します。この変数は、'DELTASTATS'には無効です。
‘CDR_CONFLICTS’
競合の検出および解決(CDR)機能の実行時にReplicatで検出された競合の数を返します。
特定の<table>の例:
@GETENV ('STATS','TABLE','HR.EMP','CDR_CONFLICTS')
Replicatで処理されるすべての表に対する例:
@GETENV ('STATS','CDR_CONFLICTS')
‘CDR_RESOLUTIONS_SUCCEEDED’
競合の検出および解決(CDR)機能の実行時にReplicatで解決した競合の数を返します。
特定の<table>の例:
@GETENV ('STATS','TABLE','HR.EMP', 'CDR_RESOLUTIONS_SUCCEEDED')
Replicatで処理されるすべての表に対する例:
@GETENV ('STATS','CDR_RESOLUTIONS_SUCCEEDED')
‘CDR_RESOLUTIONS_FAILED’
競合の検出および解決(CDR)機能の実行時にReplicatで解決できなかった競合の数を返します。
特定の<table>の例:
@GETENV ('STATS','TABLE','HR.EMP', 'CDR_RESOLUTIONS_FAILED')
Replicatで処理されるすべての表に対する例:
@GETENV ('STATS','CDR_RESOLUTIONS_FAILED')
'GGENVIRONMENT' , '<environment_info>'
ExtractおよびReplicatに有効です。
@GETENVのGGENVIRONMENTオプションでは、Oracle GoldenGate環境に関する情報を返します。
構文
@GETENV ('GGENVIRONMENT', {'DOMAINNAME'|'GROUPDESCRIPTION'|'GROUPNAME'|
'GROUPTYPE'|'HOSTNAME'|'OSUSERNAME'|'PROCESSID')
‘DOMAINNAME’
(Windowsのみ)プロセスを開始したユーザーに関連付けられているドメイン名を返します。
‘GROUPDESCRIPTION’
チェックポイント・ファイルから取得したグループの説明を返します。グループがADDコマンドで作成されている場合、説明はDESCRIPTIONパラメータで指定されている必要があります。
‘GROUPNAME’
プロセス・グループ名を返します。
‘GROUPTYPE’
プロセスのタイプ(EXTRACTまたはREPLICAT)を返します。
‘HOSTNAME’
ExtractまたはReplicatプロセスが実行されているシステムの名前を返します。
‘OSUSERNAME’
プロセスを起動したオペレーティング・システムのユーザー名を返します。
‘PROCESSID’
オペレーティング・システムによってプロセスに割り当てられているプロセスIDを返します。
'GGHEADER' , '<header_info>'
ExtractおよびReplicatに有効です。
@GETENVのGGHEADERオプションでは、Oracle GoldenGateトレイル・レコードのヘッダー部分の情報を返します。ヘッダーには、レコードのトランザクション環境が記述されています。レコード・ヘッダーおよびレコード・タイプの詳細は、トレイル・レコード・フォーマットを参照してください。
構文
@GETENV ('GGHEADER', {'BEFOREAFTERINDICATOR'|'COMMITTIMESTAMP'|'LOGPOSITION'|
'LOGRBA'|'OBJECTNAME'|'TABLENAME'|'OPTYPE'|'RECORDLENGTH'|
'TRANSACTIONINDICATOR'})
ノート: 順序付け操作にTIMESTAMP_PRECISEを使用しないでください。かわりに、値@COMPUTE`(`@COMPUTE`(`@NUMSTR`(`@GETENV` ("RECORD``"、を使用します
"`FILESEQNO`"))*100000000000)+`@NUMSTR`(`@GETENV` ("`RECORD`",
"`FILERBA`")))`
{: .infoboxnote}
‘BEFOREAFTERINDICATOR’
レコードがビフォア・イメージかアフター・イメージかを示すビフォアまたはアフター・インジケータを返します。結果は次のようになります。
-
BEFORE(ビフォア・イメージ) -
AFTER(アフター・イメージ)
‘COMMITTIMESTAMP’
YYYY-MM-DD HH:MI:SS.FFFFFF形式で表現されたトランザクション・タイムスタンプ(トランザクションがコミットされた時間)を返します。たとえば:
2011-01-24 17:08:
59.000000
‘LOGPOSITION’
データ・ソース内のExtractプロセスの位置を返します。(LOGRBAオプションを参照してください。)
‘LOGRBA’
LOGRBAおよびLOGPOSITIONは、データ・ソース内のレコードの詳細な位置を保持します。トランザクション・ログベースの製品では、LOGRBAは順序番号、LOGPOSITIONは相対バイト・アドレスです。ただしこれらの値は、取得方法とデータベースのタイプによって異なります。
‘OBJECTNAME’ |
‘TABLENAME’ |
表名または(表以外のオブジェクトの場合)オブジェクト名を返します。
‘OPTYPE’
操作のタイプを返します。結果は次のようになります。
INSERT
UPDATE
DELETE
SQL COMPUPDATE
PK UPDATE
TRUNCATE
操作が前述のいずれのタイプでもない場合、このファンクションは単語TYPEおよびタイプに割り当てられている数字を返します。
‘RECORDLENGTH’
レコード長(バイト)を返します。
‘TRANSACTIONINDICATOR’
トランザクション・インジケータを返します。この値は、Logdumpユーティリティを使用して表示できる、レコード・ヘッダーのTransIndフィールドに相当します。
結果は次のようになります。
-
BEGIN(TransInDが0、トランザクションの最初のレコードを示します) -
MIDDLE(TransInDが1、トランザクションの中間のレコードを示します) -
END(TransInDが2、トランザクションの最後のレコードを示します) -
WHOLE(TransInDが3、トランザクションの唯一のレコードを示します)
'GGFILEHEADER' , 'header_info'
Replicatにのみ有効です。
@GETENVのGGFILEHEADERオプションでは、Oracle GoldenGateの抽出ファイルまたは証跡ファイルの属性を取得します。これらの属性は、ファイル・ヘッダーにトークンとして保持されます。ノート: 特定のデータベース、オペレーティング・システム、またはOracle GoldenGateリリースが特定のトークンに関する情報を提供しない場合は、NULL値が返されます。
構文
@GETENV ('GGFILEHEADER', {'COMPATIBILITY'|'CHARSET'|'CREATETIMESTAMP'|
'FILENAME'|'FILETYPE'|'FILESEQNO'|'FILESIZE'|'FIRSTRECCSN'|
'LASTRECCSN'|'FIRSTRECIOTIME'|'LASTRECIOTIME'|'URI'|'URIHISTORY'|
'GROUPNAME'|'DATASOURCE'|'GGMAJORVERSION'|'GGMINORVERSION'|
'GGVERSIONSTRING'|'GGMAINTENANCELEVEL'|'GGBUGFIXLEVEL'|'GGBUILDNUMBER'|
'HOSTNAME'|'OSVERSION'|'OSRELEASE'|'OSTYPE'|'HARDWARETYPE'|
'DBNAME'| 'DBUNIQUENAME'|'DBINSTANCE'|'DBTYPE'|'DBCHARSET'|'DBMAJORVERSION'|
'DBMINORVERSION'|'DBVERSIONSTRING'|'DBCLIENTCHARSET'|'DBCLIENTVERSIONSTRING'|
'LASTCOMPLETECSN'|'LASTCOMPLETEXIDS'|'LASTCSN'|'LASTXID'|
'LASTCSNTS'|'RECOVERYMODE'})
‘COMPATIBILITY’
トレイル・ファイルの互換性レベルを返します。トレイル・ファイルのデータ・レコードを読み取るためには、現在のOracle GoldenGateリリースの互換性レベルがトレイル・ファイルの互換性レベル以上である必要があります。現在有効な値は0または6です。
-
1は、トレイル・ファイルがOracle GoldenGateリリース10.0以上(ファイル・バージョニング情報を含むファイル・ヘッダーをサポート)であることを示します。
-
0は、トレイル・ファイルがOracle GoldenGateリリース10.0よりも古いことを示します。これらのリリースでは、ファイル・ヘッダーはサポートされていません。値0は、これらのOracle GoldenGateリリースとの下位互換性を維持するために使用されます。
-
5は、トレイル・ファイルがOracle GoldenGateバージョン12.2以上であることを意味します。
-
6は、トレイル・ファイルがOracle GoldenGateバージョン12.3.0.1であることを意味しています。
この値はトレイル・ファイルのバージョンに応じて、Oracle GoldenGateのバージョンごとに増加し続けます。
‘CHARSET’
トレイル・ファイルのグローバル文字セットを返します。たとえば:
WCP1252-1
‘CREATETIMESTAMP’
トレイルが作成された時間をINT64のローカルGMTユリウス時間で返します。
‘FILENAME’
トレイル・ファイル名を返します。ファイル・システムに応じて、フォワード・スラッシュまたはバックワード・スラッシュを使用した絶対パスまたは相対パスの場合があります。
‘FILETYPE’
トレイル・ファイルが単一のファイル(バッチ実行で作成されたファイルなど)か、オンライン継続処理用トレイルの順序番号付けされたファイルかを示す数価を返します。有効な値は次のとおりです。
-
0 - EXTFILE -
1 - EXTTRAIL -
2 - UNIFIED and EXTFILE -
3 - UNIFIED and EXTTRAIL
‘FILESEQNO’
トレイル・ファイルの順序番号(先行ゼロを除く)を返します。たとえば、ファイルの順序番号がaa000026の場合、FILESEQNOは26を返します。
‘FILESIZE’
トレイル・ファイルのサイズを返します。アクティブ・ファイルの場合はNULLを返し、ファイルが一杯になりトレイルがロール・オーバーされているときはサイズ値を返します。
‘FIRSTRECCSN’
トレイル・ファイルの最初のレコードのコミット順序番号(CSN)を返します。トレイル・ファイルが完成するまで、値はNULLです。
‘LASTRECCSN’
トレイル・ファイルの最後のレコードのコミット順序番号(CSN)を返します。トレイル・ファイルが完成するまで、値はNULLです。
‘FIRSTRECIOTIME’
最初のレコードがトレイル・ファイルに書き込まれた時間を返します。トレイル・ファイルが完成するまで、値はNULLです。
‘LASTRECIOTIME’
最後のレコードがトレイル・ファイルに書き込まれた時間を返します。トレイル・ファイルが完成するまで、値はNULLです。
‘RECOVERYMODE’
内部でOracle GoldenGateに使用されるリカバリ情報を返します。通常、これはAPPENDMODEに設定されます。
‘URI’
トレイル・ファイルを作成したプロセスのユニバーサル・リソース識別子を次の形式で返します。
<host_name>:<dir>:[:<dir>][:<dir_n>]<group_name>
説明:
-
host_nameは、プロセスをホストするサーバー名です。 -
dirは、Oracle GoldenGateインストール・パスのサブディレクトリです。 -
group_nameは、プロセスにリンクされているプロセス・グループ名です。
次の例は、トレイルがどこでどのプロセスに処理されたかを示します。以前の実行の履歴も含まれます。
sys1:home:oracle:v9.5:extora
‘URIHISTORY’
現在のプロセスの前にトレイル・ファイルに書き込んだプロセスのURIリストを返します。
-
プライマリExtractの場合、このフィールドは空です。
-
データ・ポンプの場合は、このフィールドは
URIHistory+ 入力トレイル・ファイルのURIです。
‘GROUPNAME’
トレイルを作成したExtractグループに関連付けられているグループ名を返します。グループ名は、ADD EXTRACTコマンドの発行時に指定した名前です。
‘DATASOURCE’
プロセスによって読み取られたデータ・ソースを数値として返します。この戻り値は、次のいずれかになります。
-
DS_EXTRACT_TRAILS: ソースは、変更データが移入されたOracle GoldenGate抽出ファイルです。戻り値は0です。 -
DS_DATABASE:ソースはSOURCEISTABLE主導の初期ロードで使用され、直接選択されてトレイルに書き込まれたデータベース表です。戻り値は2です。 -
DS_TRAN_LOGS: ソースはデータベース・トランザクション・ログです。戻り値は3です。 -
DS_INITIAL_DATA_LOAD: ソースは初期ロードで直接選択されたデータベース表です。戻り値は4です。 -
DS_VAM_EXTRACT:ソースはVendor Access Module (VAM)です。戻り値は5です。 -
DS_VAM_TWO_PHASE_COMMIT:ソースはVAMトレイルです。戻り値は6です。
‘GGMAJORVERSION’
トレイルを作成したExtractプロセスのメジャー・バージョン(整数で表現)を返します。たとえば、バージョン1.2.3の場合は1を返します。
‘GGMINORVERSION’
トレイルを作成したExtractプロセスのマイナー・バージョン(整数で表現)を返します。たとえば、バージョン1.2.3の場合は2を返します。
‘GGVERSIONSTRING’
トレイルを作成したExtractプロセスのメンテナンス(またはパッチ)レベル(整数で表現)を返します。たとえば、バージョン1.2.3の場合は3を返します。
‘GGMAINTENANCELEVEL’
プロセスのメンテナンス・バージョン(xx.xx.xx))を返します。
‘GGBUGFIXLEVEL’
プロセスのパッチ・バージョン(xx.xx.xx.xx))を返します。
‘GGBUILDNUMBER’
プロセスのビルド番号を返します。
‘HOSTNAME’
トレイルに書き込んだExtractが実行されているマシンのDNS名を返します。たとえば:
-
sysa -
sysb -
paris -
hq25
‘OSVERSION’
トレイルに書き込んだExtractが実行されているマシンのオペレーティング・システムのメジャー・バージョンを返します。たとえば:
-
Version s10_69 -
#1 SMP Fri Feb 24 16:56:28 EST 2006 -
5.00.2195 Service Pack 4
‘OSRELEASE’
トレイルに書き込んだExtractが実行されているマシンのオペレーティング・システムのリリース・バージョンを返します。たとえば、OSVERSIONで示した例のリリース・バージョンは次のようになることがあります。
-
5.10 -
2.6.9-34.ELsmp
‘OSTYPE’
トレイルに書き込んだExtractが実行されているマシンのオペレーティング・システムのタイプを返します。たとえば:
-
SunOS -
Linux -
Microsoft Windows
‘HARDWARETYPE’
トレイルに書き込んだExtractが実行されているマシンのハードウェアのタイプを返します。たとえば:
-
sun4u -
x86_64 -
x86
‘DBNAME’
データベース名(findbなど)を返します。
‘DBUNIQUENAME’
ソース証跡ファイルのヘッダーから読み取られたDB_UNIQUE_NAMEトークンの値を返します。この値は、ソース・データベースのDB_UNIQUE_NAMEパラメータと一致します。
‘DBINSTANCE’
データベース・タイプに適切な場合、データベース・インスタンス名(ORA1022Aなど)を返します。
‘DBTYPE’
トレイル・ファイルのデータを生成したデータベースのタイプを返します。次のいずれかを指定できます:
DB2 UDB
DB2 ZOS
MSSQL
MYSQL
ORACLE
TERADATA
ODBC
‘DBCHARSET’
トレイル・ファイルのデータを生成したデータベースで使用されている文字セットを返します。(一部のデータベースでは、これは空になります。)
‘DBMAJORVERSION’
トレイル・ファイルのデータを生成したデータベースのメジャー・バージョンを返します。
‘DBMINORVERSION’
トレイル・ファイルのデータを生成したデータベースのマイナー・バージョンを返します。
‘DBVERSIONSTRING’
トレイル・ファイルのデータを生成したデータベースのメンテナンス(パッチ)・レベルを返します。
‘DBCLIENTCHARSET’
データベース・クライアントに使用されている文字セットを返します。
‘DBCLIENTVERSIONSTRING’
データベース・クライアントのメンテナンス(パッチ)・レベルを返します。(一部のデータベースでは、これは空になります。)
‘LASTCOMPLETECSN’
内部でOracle GoldenGateに使用されるリカバリ情報を返します。
‘LASTCOMPLETEXIDS’
内部でOracle GoldenGateに使用されるリカバリ情報を返します。
‘LASTCSN’
内部でOracle GoldenGateに使用されるリカバリ情報を返します。
‘LASTXID’
内部でOracle GoldenGateに使用されるリカバリ情報を返します。
‘LASTCSNTS’
内部でOracle GoldenGateに使用されるリカバリ情報を返します。
'RECORD' , '<location_info>'
データ・ポンプExtractまたはReplicatで有効です。
@GETENVのRECORDオプションでは、Oracle GoldenGateトレイル・ファイルのレコードの場所またはOracle ROWIDを返します。
構文
@GETENV ('RECORD', {'TIMESTAMP_PRECISE'|'FILESEQNO'|'FILERBA'|'ROWID'|'RSN'|'TIMESTAMP'})
‘TIMESTAMP_PRECISE’
ExtractまたはReplicatで有効です。
TIMESTAMP_PRECISE オプションは、年からマイクロ秒のタイムスタンプを返します。ただし、データベースによっては、値がミリ秒(マイクロ秒が0)になることもあります。
‘FILESEQNO’
トレイル・ファイルの順序番号(先行ゼロを除く)を返します。
‘FILERBA’
FILESEQNOファイル内のレコードの相対バイト・アドレスを返します。
‘ROWID’
(Oracleに有効)レコードの行IDを返します。
‘RSN’
トランザクション内のレコード順序番号を返します。この値は、一意に増加した値を生成しないことがあるので、操作の順序付けには使用しないでください。トランザクションまたはトランザクション内のDML操作の順序付けについては、MOS 2036276.1の概要情報を使用してください。
‘TIMESTAMP’
レコードのタイムゾーンを返します。
例:
REC-TIMESTAMP: 2017-10-31 06:21:07 REC-TIMESTAMP-PRECISE: 2017-10-31 06:21:07.478064
'DBENVIRONMENT' , '<database_info>'
ExtractおよびReplicatに有効です。
@GETENVのDBENVIRONMENTオプションでは、データベースのグローバル環境情報を返します。
構文
@GETENV ('DBENVIRONMENT', {'DBNAME'|'DBUNIQUENAME'|'DBVERSION'|'DBUSER'|'SERVERNAME'})
‘DBNAME’
データベース名を返します。
‘DBUNIQUENAME’
プロセスが接続しているデータベースのDB_UNIQUE_NAMEパラメータの値を戻します。Extractの場合はソース・データベース、Replicatの場合はターゲット・データベース。この値は、Oracleデータベースにのみ設定されます。
‘DBVERSION’
データベース・バージョンを返します。
‘DBUSER’
データベース・ログイン・ユーザーを返します。SQL ServerではユーザーIDは記録されないことに注意してください。
‘SERVERNAME’
サーバーの名前を返します。
'TRANSACTION' , '<transaction_info>'
Extractで有効です。
@GETENVのTRANSACTIONオプションでは、ソース・トランザクションに関する情報を返します。このオプションは、Extractプロセスに有効ですが、ポンプExtractとReplicatには有効ではありません。
構文
@GETENV ('TRANSACTION', {'TIMESTAMP_PRECISE'|'TRANSACTIONID'|'XID'|'CSN'|'TIMESTAMP'|'NAME'|
'USERNAME'|'PLANNAME' | 'LOGBSN' | 'REDOTHREAD' | 'PROGRAMNAME' | 'CLIENTIDENTIFIER' | 'MACHINENAME' | 'USERNAME')
ノート: 順序付け操作にはTIMETSAMP_PRECISEまたはTIMESTAMPを使用しないでください。かわりに、@COMPUTE(@COMPUTE(@NUMSTR(@GETENV ("RECORD", "FILESEQNO"))*100000000000)+@NUMSTR(@GETENV ("RECORD", "FILERBA")))を使用します
‘TIMESTAMP_PRECISE’
このオプションはExtractに有効です。TIMESTAMP_PRECISEを使用すると、年からマイクロ秒のタイムスタンプが返されます。ただし、データベースによっては、値がミリ秒(マイクロ秒が0)になることもあります。
‘TRANSACTIONID’ |
‘XID’ |
トランザクションのID番号を返します。TRANSACTIONIDまたはXIDを使用できます。トランザクションIDおよびCSNは、各トランザクションの最初のレコードに関連付けられており、トレイル・レコードにトークンとして保存されています。各トランザクションIDには、CSNが関連付けられています。トランザクションIDトークンは、相対値として評価されることはないため、どのプラットフォームでもゼロが埋め込まれます。これらは、一致するかしないかのみの評価が行われます。トレイルでは、トランザクションIDトークンはTRANIDとして表示されることに注意してください。
‘CSN’
コミット順序番号(CSN)を返します。CSNは、Oracle、Db2 LUW、およびDb2 z/OSデータベースに対して返されるときは、ゼロが埋め込まれません。サポートされている他のすべてのデータベースの場合は、CSNにゼロが埋め込まれます。
トレイルでは、CSNトークンはLOGCSNとして表示されることに注意してください。CSNトークンの詳細は、TRANSACTIONID | XID環境値を参照してください。
CSNの詳細は、「コミット順序番号(CSN)」を参照してください。
‘TIMESTAMP’
トランザクションのコミット・タイムスタンプを返します。
‘NAME’
使用可能な場合、トランザクション名を返します。
‘USERNAME’
(Oracle)最後のトランザクションをコミットしたデータベース・ユーザーのOracleユーザー名を返します。これはポンプExtractとReplicatには有効ではありません。
‘PLANNAME’
(Db2 z/OS)現在のトランザクションを最初に実行した計画名を返します。計画名は、リカバリ・ログ・レコードの開始ユニットに含まれています。
‘LOGBSN’
トランザクション・ログの開始順序番号(BSN)を返します。BSNは、Extractメモリー内に保持されている最も古い未コミット・トランザクションの開始点を識別するネイティブな順序番号です。たとえば、Oracleデータベースの場合、BSNはシステム変更番号(SCN)として表されます。BSNは、Extractの現在のI/Oチェックポイント値に対応します。この値は、@GETENV ('TRANSACTION' , 'LOGBSN' )の使用時にReplicatによってトレイルから取得されます。この値は、DETAILオプション付きでINFO REPLICATコマンドを使用しても取得できます。ReplicatからBSNを取得する目的は、システム障害またはファイル・システムの破損によってExtractチェックポイント・ファイルが使用できなくなった場合に、Extractのリカバリ・ポイントを取得することです。
‘REDOTHREAD’
RACノード抽出のスレッド番号を返し、非RACノード抽出では、値は常に1です。データ・ポンプおよびReplicatでは、RACノードのExtractキャプチャによって使用されるスレッドIDが返され、非RACでは、@GETENV()でエラーが返されます。Logdumpでは、トランザクションはRACノードのExtractによってキャプチャされる場合、トークンORATHREADIDがトークンのセクションに表示されます。
‘PROGRAMNAME’
トランザクションまたはセッションを開始したプログラムまたはアプリケーションの名前。
‘CLIENTIDENTIFIER’
DBMS_SESSION_.set_identifier()を使用して設定される値。
‘MACHINENAME’
データベースが稼働しているホスト、マシンまたはサーバーの名前
‘USERNAME’
データベースのログイン・ユーザー名。
例:
DB2 zOS:
TRANS-TIMESTAMP: 2017-10-31 06:21:07
TRANS-TIMESTAMP-PRECISE: 2017-10-31 06:21:07.485792
'OSVARIABLE' , '<variable>'
ExtractおよびReplicatに有効です。
@GETENVのOSVARIABLEオプションでは、指定されたオペレーティング・システム環境変数の文字列値を返します。
構文
@GETENV ('OSVARIABLE', '<variable>')
<'variable'>
変数の名前。指定された変数と正確に一致するものが検索されます。たとえば、UNIXのgrepコマンドでは次のすべての変数が返されますが、@GETENV ('OSVARIABLE', 'HOME')ではHOMEの値のみが返されます。
ANT_HOME=/usr/local/ant
JAVA_HOME=/usr/java/j2sdk1.4.2_10
HOME=/home/judyd
ORACLE_HOME=/rdbms/oracle/ora1022i/64
オペレーティング・システムが大/小文字区別をサポートしている場合、検索では大/小文字が区別されます。
'TLFKEY' , SYSKEY, '<unique_key>'
ExtractおよびReplicatに有効です。
@GETENVのTLFKEYオプションでは、一意キーとACiのBase24アプリケーションのTLF/PTLFレコードを関連付けます。64ビット・キーは、次のアイテムが連結されて構成されます。
-
2000年以降の秒数。
-
TLF/PTLFブロックのレコードのブロック数に10を掛けた値。
-
ユーザーによって指定されたノード(0から255である必要があります)。
構文
@GETENV ('TLFKEY', SYSKEY, <unique_key>)
SYSKEY, <unique_key>
ソースTLF/PTLFファイルのNonStopノード番号。この構文要素は引用符で囲みません。
例:
GETENV ('TLFKEY', SYSKEY, 27)
'SOURCEDATABASEINFO'
このオプションには、DBUNIQUENAMEおよびDBNAMEフィールドがあります。SOURCEDATABASEINFOのフィールドはGGFILEHEADERフィールドとは異なります。まず、GGFILEHEADERのフィールドに比べてパフォーマンスが向上します。そのため、パフォーマンスが重要なシナリオでは、SOURCEDATABASEINFOを使用する方が適しています。次に、証跡ファイルが古いバージョンのOracle GoldenGateによって生成されたため、またはデータベースがOracleでないため、DBUNIQUENAMEトークンが証跡ヘッダーで使用できない場合、@GETENVはDBUNIQUENAMEをDBNAMEのシノニムとして扱います。この場合、トークンのないヘッダーが初めて読み取られたときに、警告メッセージがレポート・ファイルに書き込まれます。