Oracle® Fusion Middleware

Oracle GoldenGateリファレンスfor Windows and UNIX

12c (12.2.0.1)

E70112-04(原本部品番号:E66350-04)

Oracle GoldenGateのコマンド、パラメータおよびファンクションの使用方法が記載されています。

Oracle Fusion Middleware Oracle GoldenGateリファレンスfor Windows and UNIX, 12c (12.2.0.1)

E70112-04

Copyright © 2013, 2016, Oracle and/or its affiliates.  All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは、互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があり、また誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社まで書面でご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXはThe Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社との間で該当する取決めにて別途規定しないかぎり、オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社との間で該当する取決めにて別途規定する場合を除き、オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連情報

- 表記規則

1 Oracle GoldenGate GGSCIコマンド

- 1.1 Oracle GoldenGateコマンドの概要

- 1.1.1 Managerコマンドの概要

- 1.1.2 Extractコマンドの概要

- 1.1.3 Replicatコマンドの概要

- 1.1.4 ERコマンドの概要

- 1.1.5 ウォレット・コマンドの概要

- 1.1.6 資格証明ストア・コマンドの概要

- 1.1.7 トレイル・コマンドの概要

- 1.1.8 パラメータ・コマンドの概要

- 1.1.9 データベース・コマンドの概要

- 1.1.10 Trandataコマンドの概要

- 1.1.11 チェックポイント表コマンドの概要

- 1.1.12 Oracleトレース表コマンドの概要

- 1.1.13 Oracle GoldenGateデータ・ストア・コマンドの概要

- 1.1.14 Oracle GoldenGate Monitor JAgentコマンドの概要

- 1.1.15 Oracle GoldenGate自動ハートビート・コマンドの概要

- 1.1.16 その他のOracle GoldenGateコマンドの概要

- 1.2 INFO MANAGER

- 1.3 SEND MANAGER

- 1.4 START MANAGER

- 1.5 STATUS MANAGER

- 1.6 STOP MANAGER

- 1.7 ADD EXTRACT

- 1.8 ALTER EXTRACT

- 1.9 CLEANUP EXTRACT

- 1.10 DELETE EXTRACT

- 1.11 INFO EXTRACT

- 1.12 KILL EXTRACT

- 1.13 LAG EXTRACT

- 1.14 REGISTER EXTRACT

- 1.15 SEND EXTRACT

- 1.16 START EXTRACT

- 1.17 STATS EXTRACT

- 1.18 STATUS EXTRACT

- 1.19 STOP EXTRACT

- 1.20 UNREGISTER EXTRACT

- 1.21 ADD REPLICAT

- 1.22 ALTER REPLICAT

- 1.23 CLEANUP REPLICAT

- 1.24 DELETE REPLICAT

- 1.25 INFO REPLICAT

- 1.26 KILL REPLICAT

- 1.27 LAG REPLICAT

- 1.28 REGISTER REPLICAT

- 1.29 SEND REPLICAT

- 1.30 START REPLICAT

- 1.31 STATS REPLICAT

- 1.32 STATUS REPLICAT

- 1.33 STOP REPLICAT

- 1.34 SYNCHRONIZE REPLICAT

- 1.35 UNREGISTER REPLICAT

- 1.36 ER

- 1.37 CREATE WALLET

- 1.38 OPEN WALLET

- 1.39 PURGE WALLET

- 1.40 ADD MASTERKEY

- 1.41 INFO MASTERKEY

- 1.42 RENEW MASTERKEY

- 1.43 DELETE MASTERKEY

- 1.44 UNDELETE MASTERKEY

- 1.45 ADD CREDENTIALSTORE

- 1.46 ALTER CREDENTIALSTORE

- 1.47 INFO CREDENTIALSTORE

- 1.48 DELETE CREDENTIALSTORE

- 1.49 ADD EXTTRAIL

- 1.50 ADD RMTTRAIL

- 1.51 ALTER EXTTRAIL

- 1.52 ALTER RMTTRAIL

- 1.53 DELETE EXTTRAIL

- 1.54 DELETE RMTTRAIL

- 1.55 INFO EXTTRAIL

- 1.56 INFO RMTTRAIL

- 1.57 VIEW PARAMS

- 1.58 EDIT PARAMS

- 1.59 SET EDITOR

- 1.60 INFO PARAM

- 1.61 GETPARAMINFO

- 1.62 DBLOGIN

- 1.63 ENCRYPT PASSWORD

- 1.64 DUMPDDL

- 1.65 FLUSH SEQUENCE

- 1.66 LIST TABLES

- 1.67 MININGDBLOGIN

- 1.68 SET NAMECCSID

- 1.69 ADD SCHEMATRANDATA

- 1.70 ADD TRANDATA

- 1.71 DELETE SCHEMATRANDATA

- 1.72 DELETE TRANDATA

- 1.73 INFO SCHEMATRANDATA

- 1.74 INFO TRANDATA

- 1.75 SET_INSTANTIATION_CSN

- 1.76 CLEAR_INSTANTIATION_CSN

- 1.77 CLEANUP CHECKPOINTTABLE

- 1.78 DELETE CHECKPOINTTABLE

- 1.79 INFO CHECKPOINTTABLE

- 1.80 UPGRADE CHECKPOINTTABLE

- 1.81 ADD TRACETABLE

- 1.82 DELETE TRACETABLE

- 1.83 INFO TRACETABLE

- 1.84 ALTER DATASTORE

- 1.85 CREATE DATASTORE

- 1.86 DELETE DATASTORE

- 1.87 INFO DATASTORE

- 1.88 REPAIR DATASTORE

- 1.89 INFO JAGENT

- 1.90 START JAGENT

- 1.91 STATUS JAGENT

- 1.92 STOP JAGENT

- 1.93 ADD HEARTBEATTABLE

- 1.94 ALTER HEARTBEATTABLE

- 1.95 DELETE HEARTBEATTABLE

- 1.96 DELETE HEARTBEATENTRY

- 1.97 INFO HEARTBEATTABLE

- 1.98 !

- 1.99 ALLOWNESTED | NOALLOWNESTED

- 1.100 CREATE SUBDIRS

- 1.101 DEFAULTJOURNAL

- 1.102 FC

- 1.103 HELP

- 1.104 HISTORY

- 1.105 INFO ALL

- 1.106 INFO MARKER

- 1.107 OBEY

- 1.108 SHELL

- 1.109 SHOW

- 1.110 VERSIONS

- 1.111 VIEW GGSEVT

- 1.112 VIEW REPORT

- 1.113 ADD CHECKPOINTTABLE

2 Oracle GoldenGateのネイティブ・コマンド

- 2.1 Oracle GoldenGateのネイティブ・コマンドの概要

- 2.2 checkprm

- 2.3 convchk

- 2.4 defgen

- 2.5 extract

- 2.6 ggsci

- 2.7 keygen

- 2.8 logdump

- 2.9 mgr

- 2.10 replicat

3 Oracle GoldenGateパラメータ

- 3.1 Oracle GoldenGateパラメータの概要

- 3.1.1 GLOBALSパラメータの概要

- 3.1.2 Managerパラメータの概要

- 3.1.3 ExtractとReplicatに共通のパラメータの概要

- 3.1.4 Extractパラメータの概要

- 3.1.5 Replicatパラメータの概要

- 3.1.6 ワイルドカード除外パラメータの概要

- 3.1.7 DEFGENパラメータの概要

- 3.1.8 DDLパラメータの概要

- 3.2 ABORTDISCARDRECS

- 3.3 ACCESSRULE

- 3.4 ALLOCFILES

- 3.5 ALLOWDUPTARGETMAP | NOALLOWDUPTARGETMAP

- 3.6 ALLOWINVISIBLEINDEXKEYS

- 3.7 ALLOWNONVALIDATEDKEYS

- 3.8 ALLOWNOOPUPDATES | NOALLOWNOOPUPDATES

- 3.9 ALLOWOUTPUTDIR

- 3.10 APPLYNOOPUPDATES | NOAPPLYNOOPUPDATES

- 3.11 ASCIITOEBCDIC

- 3.12 ASSUMETARGETDEFS

- 3.13 AUTORESTART

- 3.14 AUTOSTART

- 3.15 BATCHSQL

- 3.16 BEGIN

- 3.17 BLOBMEMORY

- 3.18 BOOTDELAYMINUTES

- 3.19 BR

- 3.20 BULKLOAD

- 3.21 CACHEMGR

- 3.22 CATALOGEXCLUDE

- 3.23 CHARMAP

- 3.24 CHARSET

- 3.25 CHECKMINUTES

- 3.26 CHECKPARAMS

- 3.27 CHECKPOINTSECS

- 3.28 CHECKPOINTTABLE

- 3.29 CMDTRACE

- 3.30 COLCHARSET

- 3.31 COLMATCH

- 3.32 COMMENT | --

- 3.33 COMPRESSDELETES | NOCOMPRESSDELETES

- 3.34 COMPRESSUPDATES | NOCOMPRESSUPDATES

- 3.35 COORDSTATINTERVAL

- 3.36 COORDTIMER

- 3.37 CREDENTIALSTORELOCATION

- 3.38 CRYPTOENGINE

- 3.39 CUSEREXIT

- 3.40 DBOPTIONS

- 3.41 DDL

- 3.42 DDLERROR

- 3.43 DDLOPTIONS

- 3.44 DDLSUBST

- 3.45 DDLRULEHINT

- 3.46 DDLTABLE

- 3.47 DECRYPTTRAIL

- 3.48 DEFERAPPLYINTERVAL

- 3.49 DEFSFILE

- 3.50 DISCARDFILE | NODISCARDFILE

- 3.51 DISCARDROLLOVER

- 3.52 DOWNREPORT

- 3.53 DSOPTIONS

- 3.54 DYNAMICPORTLIST

- 3.55 DYNAMICRESOLUTION | NODYNAMICRESOLUTION

- 3.56 EBCDICTOASCII

- 3.57 ENABLECATALOGNAMES

- 3.58 ENABLEMONITORING

- 3.59 ENABLE_HEARTBEAT_TABLE | DISABLE_HEARTBEAT_TABLE

- 3.60 ENCRYPTTRAIL | NOENCRYPTTRAIL

- 3.61 END

- 3.62 EOFDELAY | EOFDELAYCSECS

- 3.63 EXCLUDETAG

- 3.64 EXCLUDEWILDCARDOBJECTSONLY

- 3.65 EXTFILE

- 3.66 EXTRACT

- 3.67 EXTTRAIL

- 3.68 FETCHOPTIONS

- 3.69 FETCHUSERID

- 3.70 FETCHUSERIDALIAS

- 3.71 FILTERDUPS | NOFILTERDUPS

- 3.72 FLUSHSECS | FLUSHCSECS

- 3.73 FORMATASCII

- 3.74 FORMATSQL

- 3.75 FORMATXML

- 3.76 FUNCTIONSTACKSIZE

- 3.77 GENLOADFILES

- 3.78 GETAPPLOPS | IGNOREAPPLOPS

- 3.79 GETDELETES | IGNOREDELETES

- 3.80 GETENV

- 3.81 GETINSERTS | IGNOREINSERTS

- 3.82 GETREPLICATES | IGNOREREPLICATES

- 3.83 GETTRUNCATES | IGNORETRUNCATES

- 3.84 GETUPDATEAFTERS | IGNOREUPDATEAFTERS

- 3.85 GETUPDATEBEFORES | IGNOREUPDATEBEFORES

- 3.86 GETUPDATES | IGNOREUPDATES

- 3.87 GGSCHEMA

- 3.88 GROUPTRANSOPS

- 3.89 HANDLECOLLISIONS | NOHANDLECOLLISIONS

- 3.90 HANDLETPKUPDATE

- 3.91 HAVEUDTWITHNCHAR

- 3.92 HEARTBEATTABLE

- 3.93 INCLUDE

- 3.94 INSERTALLRECORDS

- 3.95 INSERTAPPEND | NOINSERTAPPEND

- 3.96 INSERTDELETES | NOINSERTDELETES

- 3.97 INSERTMISSINGUPDATES | NOINSERTMISSINGUPDATES

- 3.98 INSERTUPDATES | NOINSERTUPDATES

- 3.99 LAGCRITICAL

- 3.100 LAGINFO

- 3.101 LAGREPORT

- 3.102 LIST | NOLIST

- 3.103 LOBMEMORY

- 3.104 LOGALLSUPCOLS

- 3.105 MACRO

- 3.106 MACROCHAR

- 3.107 Extract用MAP

- 3.108 MAP

- 3.109 MAPEXCLUDE

- 3.110 MAPINVISIBLECOLUMNS | NOMAPINVISIBLECOLUMNS

- 3.111 MARKERTABLE

- 3.112 MAXDISCARDRECS

- 3.113 MAXGROUPS

- 3.114 MAXSQLSTATEMENTS

- 3.115 MAXTRANSOPS

- 3.116 MGRSERVNAME

- 3.117 MONITORING_HEARTBEAT_TIMEOUT

- 3.118 NAMECCSID

- 3.119 NAMEMATCHパラメータ

- 3.120 NOCATALOG

- 3.121 NODUPMSGSUPPRESSION

- 3.122 NUMFILES

- 3.123 OBEY

- 3.124 OUTPUTFILEUMASK

- 3.125 OVERRIDEDUPS | NOOVERRIDEDUPS

- 3.126 PTKCAPTUREPROCSTATS

- 3.127 PTKMONITORFREQUENCY

- 3.128 PORT

- 3.129 PRESERVETARGETTIMEZONE

- 3.130 PURGEDDLHISTORY | PURGEDDLHISTORYALT

- 3.131 PURGEMARKERHISTORY

- 3.132 ExtractおよびReplicat用PURGEOLDEXTRACTS

- 3.133 Manager用PURGEOLDEXTRACTS

- 3.134 PURGEOLDTASKS

- 3.135 RECOVERYOPTIONS

- 3.136 REPERROR

- 3.137 REPFETCHEDCOLOPTIONS

- 3.138 REPLACEBADCHAR

- 3.139 REPLACEBADNUM

- 3.140 REPLICAT

- 3.141 REPORT

- 3.142 REPORTCOUNT

- 3.143 REPORTROLLOVER

- 3.144 RESTARTCOLLISIONS | NORESTARTCOLLISIONS

- 3.145 RMTFILE

- 3.146 RMTHOST

- 3.147 RMTHOSTOPTIONS

- 3.148 RMTTASK

- 3.149 RMTTRAIL

- 3.150 ROLLOVER

- 3.151 SCHEMAEXCLUDE

- 3.152 SEQUENCE

- 3.153 SESSIONCHARSET

- 3.154 SETENV

- 3.155 SHOWSYNTAX

- 3.156 SOURCECATALOG

- 3.157 SOURCECHARSET

- 3.158 SOURCEDB

- 3.159 SOURCEDEFS

- 3.160 SOURCEISTABLE

- 3.161 SOURCETIMEZONE

- 3.162 SPACESTONULL | NOSPACESTONULL

- 3.163 SPECIALRUN

- 3.164 SQLDUPERR

- 3.165 SQLEXEC

- 3.166 STARTUPVALIDATIONDELAY[CSECS]

- 3.167 STATOPTIONS

- 3.168 SYSLOG

- 3.169 TABLE | MAP

- 3.170 DEFGEN用TABLE

- 3.171 Replicat用TABLE

- 3.172 TABLEEXCLUDE

- 3.173 TARGETDB

- 3.174 TARGETDEFS

- 3.175 TCPSOURCETIMER | NOTCPSOURCETIMER

- 3.176 THREADOPTIONS

- 3.177 TRACE | TRACE2

- 3.178 TRACETABLE | NOTRACETABLE

- 3.179 TRAILBYTEORDER

- 3.180 TRAILCHARSET

- 3.181 TRAILCHARSETASCII

- 3.182 TRAILCHARSETUNICODE

- 3.183 TRAILCHARSETEBCDIC

- 3.184 TRAIL_SEQLEN_6D | TRAIL_SEQLEN_9D

- 3.185 TRANLOGOPTIONS

- 3.186 TRANSACTIONTIMEOUT

- 3.187 TRANSMEMORY

- 3.188 TRIMSPACES | NOTRIMSPACES

- 3.189 TRIMVARSPACES | NOTRIMVARSPACES

- 3.190 UPDATEDELETES | NOUPDATEDELETES

- 3.191 UPDATEINSERTS | NOUPDATEINSERTS

- 3.192 UPDATERECORDFORMAT

- 3.193 UPREPORT

- 3.194 USE_TRAILDEFS | NO_USE_TRAILDEFS

- 3.195 USEANSISQLQUOTES | NOUSEANSISQLQUOTES

- 3.196 USEDEDICATEDCOORDINATIONTHREAD

- 3.197 USEIPV4

- 3.198 USEIPV6

- 3.199 USERID | NOUSERID

- 3.200 USERIDALIAS

- 3.201 VAM

- 3.202 VARWIDTHNCHAR | NOVARWIDTHNCHAR

- 3.203 WALLETLOCATION

- 3.204 WARNLONGTRANS

- 3.205 WARNRATE

- 3.206 WILDCARDRESOLVE

- 3.207 XAGENABLE

- 3.208 Y2KCENTURYADJUSTMENT | NOY2KCENTURYADJUSTMENT

4 Collectorパラメータ

- 4.1 Collectorプロセスの概要

- 4.2 Collectorパラメータの概要

- 4.3 -B

- 4.4 -b

- 4.5 -cp

- 4.6 -d

- 4.7 -E

- 4.8 -e

- 4.9 -ENCRYPT

- 4.10 -f

- 4.11 -g

- 4.12 -h

- 4.13 -k

- 4.14 -KEYNAME

- 4.15 -l

- 4.16 -m

- 4.17 -P

- 4.18 -p

- 4.19 -R

- 4.20 -x

5 列変換ファンクション

- 5.1 列変換ファンクションの概要

- 5.2 AFTER

- 5.3 BEFORE

- 5.4 BEFOREAFTER

- 5.5 BINARY

- 5.6 BINTOHEX

- 5.7 CASE

- 5.8 COLSTAT

- 5.9 COLTEST

- 5.10 COMPUTE

- 5.11 DATE

- 5.12 DATEDIFF

- 5.13 DATENOW

- 5.14 DDL

- 5.15 EVAL

- 5.16 GETENV

- 5.17 GETVAL

- 5.18 HEXTOBIN

- 5.19 HIGHVAL | LOWVAL

- 5.20 IF

- 5.21 NUMBIN

- 5.22 NUMSTR

- 5.23 OGG_SHA1

- 5.24 RANGE

- 5.25 STRCAT

- 5.26 STRCMP

- 5.27 STREQ

- 5.28 STREXT

- 5.29 STRFIND

- 5.30 STRLEN

- 5.31 STRLTRIM

- 5.32 STRNCAT

- 5.33 STRNCMP

- 5.34 STRNUM

- 5.35 STRRTRIM

- 5.36 STRSUB

- 5.37 STRTRIM

- 5.38 STRUP

- 5.39 TOKEN

- 5.40 VALONEOF

6 ユーザー・イグジット・ファンクション

- 6.1 ユーザー・イグジットのコール

- 6.2 ユーザー・イグジット・ファンクションの概要

- 6.3 EXIT_CALL_TYPEの使用

- 6.4 EXIT_CALL_RESULTの使用

- 6.5 EXIT_PARAMSの使用

- 6.6 ERCALLBACKの使用

- 6.7 ファンクション・コード

- 6.8 COMPRESS_RECORD

- 6.9 DECOMPRESS_RECORD

- 6.10 GET_BASE_OBJECT_NAME

- 6.11 GET_BASE_OBJECT_NAME_ONLY

- 6.12 GET_BASE_SCHEMA_NAME_ONLY

- 6.13 GET_BEFORE_AFTER_IND

- 6.14 GET_CATALOG_NAME_ONLY

- 6.15 GET_COL_METADATA_FROM_INDEX

- 6.16 GET_COL_METADATA_FROM_NAME

- 6.17 GET_COLUMN_INDEX_FROM_NAME

- 6.18 GET_COLUMN_NAME_FROM_INDEX

- 6.19 GET_COLUMN_VALUE_FROM_INDEX

- 6.20 GET_COLUMN_VALUE_FROM_NAME

- 6.21 GET_DATABASE_METADATA

- 6.22 GET_DDL_RECORD_PROPERTIES

- 6.23 GET_ENV_VALUE

- 6.24 GET_ERROR_INFO

- 6.25 GET_GMT_TIMESTAMP

- 6.26 GET_MARKER_INFO

- 6.27 GET_OBJECT_NAME

- 6.28 GET_OBJECT_NAME_ONLY

- 6.29 GET_OPERATION_TYPE

- 6.30 GET_POSITION

- 6.31 GET_RECORD_BUFFER

- 6.32 GET_RECORD_LENGTH

- 6.33 GET_RECORD_TYPE

- 6.34 GET_SCHEMA_NAME_ONLY

- 6.35 GET_SESSION_CHARSET

- 6.36 GET_STATISTICS

- 6.37 GET_TABLE_COLUMN_COUNT

- 6.38 GET_TABLE_METADATA

- 6.39 GET_TABLE_NAME

- 6.40 GET_TABLE_NAME_ONLY

- 6.41 GET_TIMESTAMP

- 6.42 GET_TRANSACTION_IND

- 6.43 GET_USER_TOKEN_VALUE

- 6.44 OUTPUT_MESSAGE_TO_REPORT

- 6.45 RESET_USEREXIT_STATS

- 6.46 SET_COLUMN_VALUE_BY_INDEX

- 6.47 SET_COLUMN_VALUE_BY_NAME

- 6.48 SET_OPERATION_TYPE

- 6.49 SET_RECORD_BUFFER

- 6.50 SET_SESSION_CHARSET

- 6.51 SET_TABLE_NAME

はじめに

このガイドには、次に関する使用方法および構文のガイドラインを含むリファレンス情報が記載されています。

- Oracle GoldenGate GGSCIコマンド。

- Oracle GoldenGate構成パラメータ。

- Oracle GoldenGate列変換ファンクション。

- Oracle GoldenGateユーザー・イグジット・ファンクション。

対象読者

このガイドは、Oracle GoldenGateの運用およびパフォーマンス管理の担当者を対象としています。この対象読者には、一般的にシステム管理者やデータベース管理者が含まれますが、これに制限されるものではありません。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWeb サイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポート契約がある場合には、My Oracle Supportを通して電子支援をご利用いただけます。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害のあるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。

関連情報

Oracle GoldenGate製品のドキュメント・ライブラリは、次の場所にあります。

Oracle GoldenGate

Oracle GoldenGate Application Adapters

Oracle GoldenGate for Big Data

Oracle GoldenGate Director

Oracle GoldenGate Plug-in for EMCC

Oracle GoldenGate for HP NonStop (Guardian)

Oracle GoldenGate Monitor

Oracle GoldenGate Veridata

Oracle GoldenGate Studio

Oracle GoldenGateのベスト・プラクティス、記事およびソリューションを含む追加情報は、次の場所にあります。

Oracle GoldenGate A-Team Chronicles

表記規則

このマニュアルでは次の表記規則を使用します。

表記規則

意味

太字

太字は、操作に関連するグラフィカル・ユーザー・インタフェース要素("「ファイル」メニューから「保存」を選択します"など)を示します。太字は、本文中で定義されている用語および用語集に記載されている用語も示します。

イタリック体

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数(パラメータ文TABLE table_nameなど)を示します。イタリックは、ドキュメントのタイトルおよび強調にも使用されます。

固定幅フォント

大文字の固定幅フォント

固定幅フォントは、ユーザー・イグジットやスクリプトなどのコードのコンポーネント、ファイルおよびデータベース・オブジェクトの名前、URLのパス、および画面に表示される入出力テキストを示します。大文字の固定幅フォントは、Oracle GoldenGateのパラメータ、コマンド、ユーザーが構成可能な関数およびSQLコマンドとキーワードを表すために使用されます。

大文字

通常フォントの大文字は、特別な場合を除き、ユーティリティの名前を表します。

{ }

構文内の中カッコは、パイプ記号で区切ったオプションのセットを囲み、その中の1つを選択する必要があることを表します。たとえば、{option1 | option2 | option3}です。

[ ]

構文内の大カッコは、オプションの要素を示します。たとえば、CLEANUP REPLICAT group_name [, SAVE count]という構文では、SAVE句がオプションです。オプション要素内の複数の要素は、パイプ記号で区切ります(例: [option1 | option2])。

1 Oracle GoldenGate GGSCIコマンド

この章では、Oracle GoldenGateソフトウェア・コマンド・インタフェース(GGSCI)から発行できるコマンドについて説明します。これは、ユーザーとOracle GoldenGate機能コンポーネント間のコマンド・インタフェースです。

1.1 ADD CHECKPOINTTABLE

Replicat for Java、Oracle GoldenGate Applications AdapterまたはOracle GoldenGate Big Dataには無効です。

ADD CHECKPOINTTABLEでは、ターゲット・データベースにチェックポイント表を作成します。Replicatは、リカバリで活用するために、この表を使用してトレイル内の読取り位置のレコードを保持します。

チェックポイント表を使用すると、チェックポイントがReplicatトランザクションの一部になるので、使用を強くお薦めします。これによりReplicatは、特定の状況において、チェックポイントのみを使用するときよりも容易にリカバリできます。しかし、Oracleターゲット・データベースに対しReplicatを構成して統合モードで動作させる場合には、チェックポイント表を使用しないでください。そのモードでは必要ありません。

GLOBALSファイルのCHECKPOINTTABLEパラメータで1つの表を指定する場合、この表を1つのOracle GoldenGateインスタンス内のすべてのReplicatグループのデフォルト・チェックポイント表として使用できます。Oracle GoldenGateの複数のインスタンス(複数インストール)は同じチェックポイント表を使用できます。同じReplicatグループ名が異なるインスタンスに存在する場合でも、Oracle GoldenGateはチェックポイントを追跡します。

このコマンドを使用する前に、DBLOGINコマンドを使用してデータベース接続を確立してください。この表の列の名前または属性は変更しないでください。ただし、表記憶域の属性は変更できます。

チェックポイント表の使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

チェックポイントの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

ADD CHECKPOINTTABLE [[container. | catalog.]owner.table]

container. | catalog.

Oracleプラガブル・データベースまたはSQL/MXカタログ(該当する場合)。このオプションを省略すると、カタログまたはプラガブル・データベースのデフォルトは、DBLOGINコマンドのSOURCEDB、USERIDまたはUSERIDALIAS部分(データベースにより異なる)と関連するものになります。

owner.table

作成するチェックポイント表の所有者および名前。名前には、引用符、バックスラッシュ、ドル記号、パーセント記号などの特殊文字を含めることはできません。MySQLチェックポイント表の名前には最大30文字を含めることができます。

この表をデフォルトのチェックポイント表として使用し、この表をGLOBALSファイルのCHECKPOINTTABLEに指定している場合は、所有者と名前を省略できます。

必須ではありませんが、Oracle GoldenGate専用のスキーマでこの表を作成することをお薦めします。所有者と名前を指定しない場合、デフォルト表はGLOBALSパラメータ・ファイルのCHECKPOINTTABLEパラメータに基づいて作成されます。

統計の表示やこの表の削除で必要になるため、この表の名前を記録しておいてください。

例

例1

次の例では、GLOBALSファイルに指定されているデフォルト名でチェックポイント表を追加します。

ADD CHECKPOINTTABLE

例2

次の例では、ユーザー定義名でチェックポイント表を追加します。

ADD CHECKPOINTTABLE ggs.fin_check

1.1 Oracle GoldenGateコマンドの概要

この項ではGGSCIコマンドについて概説し、次のトピックを含みます。

- Managerコマンドの概要

- Extractコマンドの概要

- Replicatコマンドの概要

- ERコマンドの概要

- ウォレット・コマンドの概要

- 資格証明ストア・コマンドの概要

- トレイル・コマンドの概要

- パラメータ・コマンドの概要

- データベース・コマンドの概要

- Trandataコマンドの概要

- チェックポイント表コマンドの概要

- Oracleトレース表コマンドの概要

- Oracle GoldenGateデータ・ストア・コマンドの概要

- Oracle GoldenGate Monitor JAgentコマンドの概要

- Oracle GoldenGate自動ハートビート・コマンドの概要

- その他のOracle GoldenGateコマンドの概要

1.1.1 Managerコマンドの概要

Managerコマンドでは、Managerプロセスを制御します。ManagerはOracle GoldenGateの親プロセスで、自身のプロセスおよびファイル、リソース、ユーザー・インタフェース、しきい値およびエラーのレポートを管理します。

表1-1 Managerコマンド

コマンド

説明

INFO MANAGER

Managerポートおよび子プロセスに関する情報を返します。

SEND MANAGER

Managerプロセスの実行に関する情報を返します。

START MANAGER

Managerプロセスを起動します。

STATUS MANAGER

Managerプロセスの状態を返します。

STOP MANAGER

Managerプロセスを中止します。

1.1.2 Extractコマンドの概要

Extractコマンドでは、Extractグループを作成および管理します。Extractプロセスは、構成パラメータに応じて完全なデータ・レコードまたはトランザクション・データの変更をキャプチャした後、データ・ポンプExtractまたはReplicatプロセスなどの下流プロセスによる次の処理のために、データをトレイルに送信します。

表1-2 Extractコマンド

コマンド

説明

ADD EXTRACT

Extractグループを作成します。

ALTER EXTRACT

Extractグループの属性を変更します。

CLEANUP EXTRACT

Extractグループの実行履歴を削除します。

DELETE EXTRACT

Extractグループを削除します。

INFO EXTRACT

Extractグループに関する情報を返します。

KILL EXTRACT

Extractグループの実行を強制的に終了します。

LAG EXTRACT

Extractラグに関する情報を返します。

REGISTER EXTRACT

ExtractグループをOracleデータベースに登録します。

SEND EXTRACT

実行中のExtractグループに指示を送信するか、そのExtractグループに関する情報を返します。

START EXTRACT

Extractグループを起動します。

STATS EXTRACT

Extractグループの処理統計を返します。

STATUS EXTRACT

Extractグループの状態を返します。

STOP EXTRACT

Extractグループを停止します。

UNREGISTER EXTRACT

ExtractグループをOracleデータベースから登録解除します。

1.1.3 Replicatコマンドの概要

Replicatコマンドでは、Replicatグループを作成および管理します。Replicatプロセスは、Extractプロセスによって抽出されたデータを読み取り、このデータをターゲット表に適用するか、ロード・アプリケーションなどの他のアプリケーションがこのデータを使用できるように準備を整えます。

表1-3 Replicatコマンド

コマンド

説明

ADD REPLICAT

Replicatグループを追加します。

ALTER REPLICAT

Replicatグループの属性を変更します。

CLEANUP REPLICAT

Replicatグループの実行履歴を削除します。

DELETE REPLICAT

Replicatグループを削除します。

INFO REPLICAT

Replicatグループに関する情報を返します。

KILL REPLICAT

Replicatグループを強制的に終了します。

LAG REPLICAT

Replicatラグに関する情報を返します。

REGISTER REPLICAT

ReplicatグループをOracleデータベースに登録します。

SEND REPLICAT

実行中のReplicatグループに指示を送信するか、そのReplicatグループに関する情報を返します。

START REPLICAT

Replicatグループを起動します。

STATS REPLICAT

Replicatグループの処理統計を返します。

STATUS REPLICAT

Replicatグループの状態を返します。

STOP REPLICAT

Replicatグループを停止します。

SYNCHRONIZE REPLICAT

Replicatプロセスのクリーンでない停止後に、調整Replicatのすべてのスレッドを統一開始位置に戻します。

UNREGISTER REPLICAT

ReplicatグループをOracleデータベースから登録解除します。

1.1.4 ERコマンドの概要

ERコマンドでは、標準のExtractおよびReplicatコマンドを複数のExtractおよびReplicatグループに1つのユニットとして発行します。このコマンドの使用方法は、ERを参照してください。

表1-4 ERコマンド

コマンド

説明

INFO ER *

指定したワイルドカード指定グループに関する情報を返します。

KILL ER *

指定したワイルドカード指定グループを強制的に終了します。

LAG ER *

指定したワイルドカード指定グループに関するラグ情報を返します。

SEND ER *

指定したワイルドカード指定グループに指示を送信するか、そのワイルドカード指定グループに関する情報を返します。

START ER *

指定したワイルドカード指定グループを起動します。

STATS ER *

指定したワイルドカード指定グループの処理統計を返します。

STATUS ER *

指定したワイルドカード指定グループの状態を返します。

STOP ER *

指定したワイルドカード指定グループを停止します。

1.1.5 ウォレット・コマンドの概要

ウォレット・コマンドでは、Oracle GoldenGateマスター暗号化鍵を格納するマスター・キー・ウォレットを管理し、マスター・キーをこのウォレットに追加します。

表1-5 ウォレット・コマンド

コマンド

説明

CREATE WALLET

マスター暗号化鍵を保存するウォレットを作成します。

OPEN WALLET

マスター・キー・ウォレットを開きます。

PURGE WALLET

削除済としてマークされているマスター・キーをウォレットから完全に削除します。

ADD MASTERKEY

マスター・キー・ウォレットにマスター・キーを追加します。

INFO MASTERKEY

マスター・キーに関する情報を返します。

RENEW MASTERKEY

マスター・キーの新しいバージョンを追加します。

DELETE MASTERKEY

マスター・キーに削除のマークを付けます。

UNDELETE MASTERKEY

マスター・キーの状態を削除済のマークから使用可能のマークに変更します。

1.1.6 資格証明ストア・コマンドの概要

資格証明ストア・コマンドを使用して、Oracle GoldenGate資格証明ストアを管理し、資格証明ストアに資格証明を追加します。

表1-6 資格証明ストア・コマンド

コマンド

説明

ADD CREDENTIALSTORE

暗号化されたデータベース・ユーザー資格証明を格納する資格証明ストア(ウォレット)を作成します。

ALTER CREDENTIALSTORE

資格証明ストアのコンテンツを変更します。

INFO CREDENTIALSTORE

資格証明ストアに関する情報を返します。

DELETE CREDENTIALSTORE

資格証明ストアとして機能するウォレットを削除します。

1.1.7 トレイル・コマンドの概要

トレイル・コマンドでは、Oracle GoldenGateトレイルを作成および管理します。トレイルは、ターゲットの場所に適用されるまで、Oracle GoldenGateが抽出データを一時的に保管する、ディスク上の一連のファイルです。

表1-7 トレイル・コマンド

コマンド

説明

ADD EXTTRAIL

Oracle GoldenGate構成にローカル・トレイルを追加します。

ADD RMTTRAIL

Oracle GoldenGate構成にリモート・トレイルを追加します。

ALTER EXTTRAIL

ローカル・トレイルの属性を変更します。

ALTER RMTTRAIL

リモート・トレイルの属性を変更します。

DELETE EXTTRAIL

Oracle GoldenGate構成からローカル・トレイルを削除します。

DELETE RMTTRAIL

Oracle GoldenGate構成からリモート・トレイルを削除します。

INFO EXTTRAIL

ローカル・トレイルに関する情報を返します。

INFO RMTTRAIL

リモート・トレイルに関する情報を返します。

1.1.8 パラメータ・コマンドの概要

パラメータ・コマンドでは、Oracle GoldenGateパラメータ・ファイルの表示および管理を行います。パラメータ・ファイルの使用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

表1-8 パラメータ・コマンド

コマンド

説明

EDIT PARAMS

デフォルト・テキスト・エディタで編集するパラメータ・ファイルを開きます。

SET EDITOR

パラメータ・ファイルを編集するためのデフォルト・テキスト・エディタ・プログラムを設定します。

VIEW PARAMS

パラメータ・ファイルの内容を画面に読取り専用モードで表示します。

INFO PARAM

静的情報を問い合せて表示します。

GETPARAMINFO

現在実行中のパラメータ値を表示します。

1.1.9 データベース・コマンドの概要

データベース・コマンドでは、GGSCIからデータベースと通信します。

表1-9 データベース・コマンド

コマンド

説明

DBLOGIN

データベースに影響する他のコマンドを発行できるように、GGSCIセッションをデータベースにログインします。

DUMPDDL

Oracle GoldenGateのDDL履歴表のデータを表示します。

ENCRYPT PASSWORD

データベース・ログイン・パスワードを暗号化します。

FLUSH SEQUENCE

レプリケーション環境のインストール後、Extractがトランザクション・データの取得を開始した時点で初期REDOレコードが使用可能になるように、Oracle順序を更新します。

LIST TABLES

名前が入力指定に一致するデータベース内の表をリストします。

MININGDBLOGIN

Oracle GoldenGateプロセスがOracleマイニング・データベースへのログインに使用するユーザーの資格証明を指定します。

SET NAMECCSID

DB2 for i環境のGGSCIセッションのCCSIDを設定します。

1.1.10 Trandataコマンドの概要

Trandataコマンドでは、適切なデータベース・コンポーネントを構成して、ソース・データ操作をレプリケートするためにOracle GoldenGateが必要とするトランザクション情報を提供します。

表1-10 Trandataコマンド

コマンド

説明

ADD SCHEMATRANDATA

スキーマレベルのサプリメンタル・ロギングを有効にします。

ADD TRANDATA

表レベルのサプリメンタル・ロギングを有効にします。

DELETE SCHEMATRANDATA

スキーマレベルのサプリメンタル・ロギングを無効にします。

DELETE TRANDATA

表レベルのサプリメンタル・ロギングを無効にします。

INFO SCHEMATRANDATA

スキーマレベルのサプリメンタル・ロギングの状態に関する情報を返します。

INFO TRANDATA

表レベルのサプリメンタル・ロギングの状態に関する情報を返します。

SET_INSTANTIATION_CSN

表のインスタンス化CSNフィルタリングを使用するかどうか、およびその使用方法を設定します。

CLEAR_INSTANTIATION_CSN

表のインスタンス化CSNフィルタリングを解除します。

1.1.11 チェックポイント表コマンドの概要

チェックポイント表コマンドでは、Oracle GoldenGateがトレイル内のReplicatの現在位置の追跡に使用するチェックポイント表を管理します。

チェックポイントとチェックポイント表の使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

表1-11 チェックポイント表コマンド

コマンド

説明

ADD CHECKPOINTTABLE

データベースにチェックポイント表を作成します。

CLEANUP CHECKPOINTTABLE

不要になったチェックポイント・レコードを削除します。

DELETE CHECKPOINTTABLE

データベースからチェックポイント表を削除します。

INFO CHECKPOINTTABLE

チェックポイント表に関する情報を返します。

UPGRADE CHECKPOINTTABLE

Oracle GoldenGateをバージョン11.2.1.0.0以前からアップグレードする際にサプリメンタル・チェックポイント表を追加します。

1.1.12 Oracleトレース表コマンドの概要

トレース表コマンドでは、Oracleデータベースの双方向同期で使用するOracle GoldenGateトレース表を管理します。Replicatは、各トランザクションの開始時にトレース表に操作を生成します。Extractは、トレース表上の操作で開始されるすべてのトランザクションを無視します。Replicatの操作を無視することで、ソース表とターゲット表間のデータのループバックを防止できます。

双方向同期の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

表1-12 Oracleトレース表コマンド

コマンド

説明

ADD TRACETABLE

トレース表を作成します。

DELETE TRACETABLE

トレース表を削除します。

INFO TRACETABLE

トレース表に関する情報を返します。

1.1.13 Oracle GoldenGateデータ・ストア・コマンドの概要

データ・ストア・コマンドを使用して、Oracle GoldenGate Monitorで使用する監視情報を格納するためにOracle GoldenGateが使用するデータ・ストアを制御します。

表1-13 Oracle GoldenGate Veridataデータ・ストア・コマンド

コマンド

説明

ALTER DATASTORE

データ・ストアによるプロセス間通信に使用されるメモリー・モデルを変更します。

CREATE DATASTORE

データ・ストアを作成します。

DELETE DATASTORE

データ・ストアを削除します。

INFO DATASTORE

データ・ストアに関する情報を返します。

REPAIR DATASTORE

アップグレード後または破損した場合にデータ・ストアを修復します。

1.1.14 Oracle GoldenGate Monitor JAgentコマンドの概要

JAgentコマンドでは、Oracle GoldenGate Monitor JAgentを制御します。

表1-14 JAgentコマンド

コマンド

説明

INFO JAGENT

JAgentに関する情報を返します。

START JAGENT

JAgentを起動します。

STATUS JAGENT

JAgentの状態を返します。

STOP JAGENT

JAgentを停止します。

1.1.15 Oracle GoldenGate自動ハートビート・コマンドの概要

ハートビート表コマンドでは、Oracle GoldenGateの自動ハートビート機能を制御します。

表1-15 ハートビート表コマンド

コマンド

説明

ADD HEARTBEATTABLE

自動ハートビート機能に必要なオブジェクトを作成します。

ALTER HEARTBEATTABLE

既存のハートビート・オブジェクトを変更します。

DELETE HEARTBEATTABLE

既存のハートビート・オブジェクトを削除します。

DELETE HEARTBEATENTRY

ハートビート表内のエントリを削除します。

INFO HEARTBEATTABLE

ハートビート表情報を表示します。

1.1.16 その他のOracle GoldenGateコマンドの概要

次のコマンドでは、Oracle GoldenGateのその他の様々な機能を制御します。

表1-16 その他のコマンド

コマンド

説明

!

前のGGSCIコマンドを変更しないで実行します。

ALLOWNESTED | NOALLOWNESTED

ネストされたOBEYファイルの使用を有効または無効にします。

CREATE SUBDIRS

Oracle GoldenGateホーム・ディレクトリ内にデフォルト・ディレクトリを作成します。

DEFAULTJOURNAL

DB2 for iデータベースで使用する場合にADD TRANDATAコマンドの複数の表またはファイルのデフォルト・ジャーナルを設定します。

FC

前に発行したGGSCIコマンドの変更と再実行を可能にします。

HELP

GGSCIコマンドの構文と使用方法の支援を表示します。

HISTORY

GGSCIセッションの開始以降で最近発行されたコマンドのリストを表示します。

INFO ALL

システムのすべてのOracle GoldenGateプロセスのステータスとラグを表示します。

INFO MARKER

NonStopシステムから最近処理されたマーカーを表示します。

OBEY

Oracle GoldenGateコマンドのリストを含むファイルを処理します。

SHELL

GGSCIインタフェース内からシェル・コマンドを実行します。

SHOW

Oracle GoldenGate環境の属性を表示します。

VERSIONS

オペレーティング・システムおよびデータベースの情報を表示します。

VIEW GGSEVT

Oracle GoldenGateエラー・ログ(ggserr.logファイル)を表示します。

VIEW REPORT

ExtractまたはReplicatで生成されたプロセス・レポートまたは破棄ファイルを表示します。

1.2 INFO MANAGER

INFO MANAGER (またはINFO MGR)では、Managerプロセスが実行中かどうかおよびプロセスIDを確認します。Managerが実行中の場合は、ポート番号が表示されます。このコマンドはSTATUS MANAGERの別名です。

構文

INFO MANAGER
INFO MGR

1.3 SEND MANAGER

SEND MANAGERでは、アクティブなManagerプロセスのステータスを取得するか、Managerパラメータ・ファイルに構成されている動的ポート情報を取得します。

構文

SEND MANAGER
[CHILDSTATUS [DEBUG]]
[GETPORTINFO [DETAIL]
[GETPURGEOLDEXTRACTS]

CHILDSTATUS [DEBUG]

Managerによって起動されたプロセスに関するステータス情報を取得します。DEBUGは、プロセスに割り当てられたポート番号を返します。

GETPORTINFO [DETAIL]

デフォルトでは、プロセスに割り当てられたポート、および対応するプロセスIDの現在のリストを取得します。DETAILは、DYNAMICPORTLISTパラメータを使用して定義されたすべてのポートのリストを提供します。

GETPURGEOLDEXTRACTS

Managerパラメータ・ファイルのPURGEOLDEXTRACTSパラメータで設定されているトレイル・メンテナンス・ルールに関する情報を表示します。詳細は、ExtractおよびReplicat用PURGEOLDEXTRACTSを参照してください。

例

例1

SEND MANAGER CHILDSTATUS DEBUGは、次のような子プロセス・ステータスを返します。基本のCHILDSTATUSオプションも同様の表示を返しますが、Port列は含まれません。

ID  Group   Process  Retry  Retry Time  Start Time           Port
1   ORAEXT  2400     0      None        2011/01/21 21:08:32  7840
2   ORAEXT  2245     0      None        2011/01/23 21:08:33  7842

例2

SEND MANAGER GETPORTINFO DETAILは、次のような動的ポート・リストを返します。

Entry  Port   Error   Process   Assigned             Program
0      8000   0       2387      2011-01-01 10:30:23
1      8001   0
2      8002   0

例3

SEND MANAGER GETPURGEOLDEXTRACTSは、次のような情報を出力します。

PurgeOldExtracts Rules
Fileset                      MinHours MaxHours MinFiles MaxFiles UseCP
S:\GGS\DIRDAT\EXTTRAIL\P4\*         0        0        1        0     Y
S:\GGS\DIRDAT\EXTTRAIL\P2\*         0        0        1        0     Y
S:\GGS\DIRDAT\EXTTRAIL\P1\*         0        0        1        0     Y
S:\GGS\DIRDAT\REPTRAIL\P4\*         0        0        1        0     Y
S:\GGS\DIRDAT\REPTRAIL\P2\*         0        0        1        0     Y
S:\GGS\DIRDAT\REPTRAIL\P1\*         0        0        1        0     Y
OK
Extract Trails
Filename                        Oldest_Chkpt_Seqno  IsTable  IsVamTwoPhaseCommit
S:\GGS\8020\DIRDAT\RT                         3        0        0
S:\GGS\8020\DIRDAT\REPTRAIL\P1\RT            13        0        0
S:\GGS\8020\DIRDAT\REPTRAIL\P2\RT            13        0        0
S:\GGS\8020\DIRDAT\REPTRAIL\P4\RT            13        0        0
S:\GGS\8020\DIRDAT\EXTTRAIL\P1\ET            14        0        0
S:\GGS\8020\DIRDAT\EXTTRAIL\P2\ET            14        0        0
S:\GGS\8020\DIRDAT\EXTTRAIL\P4\ET            14        0        0

1.4 START MANAGER

START MANAGERでは、Managerプロセスを起動します。このコマンドは、非クラスタ環境で使用します。Windowsクラスタ環境では、Cluster AdministratorからManagerを停止する必要があります。

構文

START MANAGER
[, CPU number]
[, PRI number]
[, HOMETERM device_name]
[, PROCESSNAME process_name]

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のいずれかの書式で入力できます)。デフォルトは、システム生成のプロセス名です。

例

例1

START MANAGER, CPU 2, PRI 148, HOMETERM /G/zhome, PROCESSNAME $ogmgr

1.5 STATUS MANAGER

STATUS MANAGERでは、Managerプロセスが実行中かどうかおよび関連プロセスIDを確認します。Managerが実行中の場合は、ポート番号が表示されます。

構文

STATUS MANAGER

1.6 STOP MANAGER

STOP MANAGERでは、Managerを停止します。このコマンドは、非クラスタ環境で使用します。Windowsクラスタ環境では、Cluster AdministratorからManagerを停止する必要があります。

構文

STOP MANAGER [!]

!

(感嘆符)Managerをシャットダウンするかどうかを確認するプロンプトをバイパスします。

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

1.8 ALTER EXTRACT

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

- ADD EXTRACTコマンドで作成したExtractグループの属性を変更する

- 次の順序のトレイル・ファイルに切り替える

- 統合キャプチャの構成にアップグレードする

- 統合キャプチャの構成からダウングレードする

- 特定のIBM for iジャーナルを特定のジャーナル順序番号に配置する

- 指定されたInformix論理ログを特定のLSNで配置する。

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

構文

ALTER EXTRACT group_name
[, ADD_EXTRACT_attribute]
[, TRANLOG LRI LRI_number]
[, UPGRADE INTEGRATED TRANLOG]
[, DOWNGRADE INTEGRATED TRANLOG [THREADS number]]
[, THREAD number]
[, LSN value]
[, SCN value]
[, ETROLLOVER]

次のALTER EXTRACTオプションは、特定のジャーナルに対してExtractを配置するためにDB2 for iでサポートされます。

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

group_name

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

ADD_EXTRACT_attribute

次の例外を除き、ADD EXTRACTコマンドで指定した任意の属性を変更できます。

- EXTTRAILSOURCEオプションで指定したExtractの変更。

- THREADSオプションで指定したRACスレッド数の変更。

このような例外に該当する場合は、対象のExtractグループを削除し、このグループをもう一度追加してください。

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

ALTER EXTRACT finance, BEGIN 2011-01-01
ALTER EXTRACT finance, ETROLLOVER
ALTER EXTRACT finance, 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)

TRANLOG LRI LRI_number

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

UPGRADE INTEGRATED TRANLOG

Extractグループをクラシック・キャプチャから統合キャプチャにアップグレードします。アップグレードをサポートするには、オープンしている最も古いトランザクションの開始を含むトランザクション・ログが、ソースまたはダウンストリーム・マイニング・システムで使用可能である必要があります。クラシック・キャプチャから統合キャプチャへの移行手順については、Oracle GoldenGateの管理for Windows and UNIXで全工程を確認してください。

DOWNGRADE INTEGRATED TRANLOG [THREADS number]

Extractグループを統合キャプチャからクラシック・キャプチャにダウングレードします。RACシステムでダウングレードする場合、THREADSオプションを使用してRACスレッド数を指定する必要があります。RAC以外のシステムの場合は、RAC以外のシステムでTHREADS 1を指定してADD EXTRACTを実行するのと同様に、オプションでTHREADS 1を指定して、1つのスレッドがあるスレッド・モードでダウングレードされたクラシックExtractを実行できます。

統合キャプチャからクラシック・キャプチャへの移行を実行する全手順については、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

ダウングレードをサポートするには、オープンしている最も古いトランザクションの開始を含むトランザクション・ログが、ソースまたはダウンストリーム・マイニング・システムで使用可能である必要があります。統合キャプチャの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

THREAD number

クラシック・キャプチャ・モードに有効です。Oracle RAC構成で、指定したREDOスレッドに対してのみExtractを変更します。指定できるスレッド番号は1つのみです。

LSN value

Informixに有効です。論理ログのEOFから開始するために、指定されたLSNにExtractを再配置します。このオプションは、クラシック・キャプチャ・モードに有効です。

SCN value

Oracleに有効です。指定されたOracleシステム変更番号(SCN)を持つREDOログ内のトランザクションにExtractを再配置します。このオプションは、統合キャプチャ・モードとクラシック・キャプチャ・モードの両方に有効です。

ETROLLOVER

Extractの再起動時に、次の順序のトレイル・ファイルに切り替えさせます。たとえば、現在のファイルがET000002の場合、Extractを再起動すると現在のファイルはET000003になります。トレイルは000001から999999まで増やすことが可能で、順序番号は000000から再開始します。

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のいずれかの書式で入力できます)。デフォルトは、システム生成のプロセス名です。

BEGIN {NOW | yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]}

[JOURNAL journal_library/journal_name

[JRNRCV receiver_library/ receiver_name]] |

, EOF [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オプションでは、グローバル開始位置より後のジャーナル固有のExtract位置がADD EXTRACTで発行されます。ALTER EXTRACTで設定された特定のジャーナル位置は、ADD EXTRACTまたはALTER EXTRACTで前に設定されたグローバル位置に影響しません。ただし、ALTER EXTRACTで設定されたグローバル位置は、同じExtract構成で前に設定された特定の仕訳位置を上書きします。

注意:

SEQNOは、ALTER EXTRACTのジャーナルで使用する場合に、ジャーナル全体でグローバルであるシステム順序番号ではなく、特定のジャーナルに相対的なジャーナル順序番号です。

例

例1

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

ALTER EXTRACT finance, BEGIN 2011-01-01

例2

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

ALTER EXTRACT finance, EXTSEQNO 26, EXTRBA 338

例3

次の例では、Oracle RAC環境のExtractを変更し、REDOスレッド4のみに新しい開始位置を適用します。

ALTER EXTRACT accounts, THREAD 4, BEGIN 2011-01-01

例4

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

ALTER EXTRACT sales, LSN 3454:875:445

例5

次の例では、Extractの設定を変更して、順序の次のトレイル・ファイルに切り替えさせます。

ALTER EXTRACT finance, ETROLLOVER

例6

次の例では、統合キャプチャにアップグレードするようにExtractの設定を変更します。

ALTER EXTRACT finance, UPGRADE INTEGRATED TRANLOG

例7

次の例では、RAC環境でクラシック・キャプチャにダウングレードするようにExtractの設定を変更します。

ALTER EXTRACT finance, DOWNGRADE INTEGRATED TRANLOG THREADS 3

例8

次の例では、ソース・データベースSCN 778899からデータ処理を開始するようにOracle環境のExtractの設定を変更します。

ALTER EXTRACT finance, SCN 778899

例9

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

ALTER EXTRACT finance, SEQNO 1234  JOURNAL accts/acctsjrn

例10

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

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

例11

次の例では、SQL/MX NonStopプラットフォーム上のExtractを変更します。

ALTER EXTRACT exttcp, CPU 1, PRI 150, HOMETERM /G/zhome,  PROCESSNAME $ose01

例12

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

ALTER EXTRACT extcust, TRANLOG LRI 8066.322711

1.9 CLEANUP EXTRACT

CLEANUP EXTRACTでは、特定のExtractグループの実行履歴を削除します。このコマンドでは、最後の実行レコードがそのまま保持されるので、Extractは停止した場所から処理を再開できます。このコマンドを使用する前に、STOP EXTRACTコマンドを発行してExtractを停止してください。

構文

CLEANUP EXTRACT group_name [, SAVE count]

group_name

1つのExtractグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのExtractグループの実行履歴が削除されます。

SAVE count

指定した数の最新のレコードを削除から除外します。

例

例1

次の例では、最新レコード以外のすべてのレコードを削除します。

CLEANUP EXTRACT finance

例2

次の例では、最新の5レコード以外のすべてのレコードを削除します。

CLEANUP EXTRACT *, SAVE 5

1.10 DELETE EXTRACT

DELETE EXTRACTでは、Extractグループを削除します。このコマンドを実行すると、グループに属するチェックポイント・ファイルは削除されますが、パラメータ・ファイルはそのまま残ります。グループの削除後、必要に応じてグループをもう一度作成することも、パラメータ・ファイルを削除することもできます。

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

Extractグループに関連付けられたトレイル・ファイルを削除するには、オペレーティング・システムを介して手動で削除します。

構文

DELETE EXTRACT group_name [!]

group_name

1つのExtractグループ名、または複数のグループを指定するワイルドカード指定(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのExtractグループが削除されます。

!

(感嘆符)プロンプトを表示せずに、ワイルドカードに一致するすべてのExtractグループを削除します。

1.11 INFO EXTRACT

INFO EXTRACTでは、次の情報を表示します。

- Extractのステータス(STARTING、RUNNING、STOPPEDまたはABENDED)。STARTINGは、プロセスは開始していますが、処理用のチェックポイント・ファイルはまだロックされていないことを示します。

- おおよそのExtractラグ

- チェックポイント情報

- プロセス実行履歴

- Extractの書込み先トレイル

- 統合Extractのアップグレードまたはダウングレードのステータス

INFO EXTRACTを発行すると、Extractは実行中または停止になります。実行中のプロセスの場合、RUNNINGのステータスは、次のいずれかを意味します。

- アクティブ: 実行中および処理中(または処理可能な)データ。これは、プロセス開始後のプロセスの通常の状態です。

- 一時停止: プロセスは実行中ですが、EVENTACTIONS SUSPENDアクションにより一時停止しました。一時停止状態では、プロセスはアクティブではなく、データを処理できませんが、現在の実行の状態は保持され、GGSCIでRESUMEオプションを指定したSEND EXTRACTコマンドを発行すると続行できます。INFOコマンドでのRBAは、一時停止アクションの前の最新のチェックポイント位置を表します。状態がアクティブか一時停止かを確認するには、SEND EXTRACTコマンドをSTATUSオプションとともに発行します。

基本コマンドでは、オンライン(継続的な)Extractプロセスの情報のみを表示します。タスクは除外されます。

Extractのラグについて

INFO EXTRACT出力のCheckpoint Lagフィールドは、最新のチェックポイントがトレイルに書き込まれた時点での遅延(秒)を表します。次に例を示します。

- 現在の時刻 = 15:00:00

- 最新のチェックポイント = 14:59:00

- 最新の処理レコードのタイムスタンプ = 14:58:00

この場合、ラグは00:01:00(1分、14:58と14:59の差異)とレポートされます。

UNKNOWNというラグ値は、プロセスは実行しているがレコードをまだ処理していないか、(タイムゾーンの差ではなくクロックが正確でないために)ソース・システムのクロックがターゲット・システムのクロックよりも進んでいることを示します。

より正確なラグ情報を取得するには、LAG EXTRACTを使用します(LAG EXTRACTを参照してください)。

構文

INFO EXTRACT group_name
[, SHOWCH [n]]
[, DETAIL]
[, TASKS | ALLPROCESSES]
[, UPGRADE | DOWNGRADE]

group_name

1つのExtractグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのExtractグループの情報が表示されます。

SHOWCH [n]

基本コマンドでは、現在のExtractチェックポイントの情報を表示します。正確なチェックポイントの位置は、データ・ソースの読取りチェックポイントとトレイルの書込みチェックポイントで構成されます。トレイル・タイプ(RMTTRAILまたはEXTTRAIL)にも注意してください。

オプションで、nには、現在のチェックポイントに加えて表示する過去のチェックポイントの番号を指定します。

注意:

出力に不規則なインデントおよび空白が表示されることがあります。これは正常な出力で、情報の正確性に影響はありません。

各プロセスが作成するチェックポイントのタイプと表示に含まれる内部メタデータ・エントリの説明など、チェックポイントの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

DETAIL

次の情報を表示します。

- データ・ソース内の開始位置および停止位置(時刻で表示)を含むExtract実行履歴。

- Extractの書込み先トレイル。

TASKS

Extractタスクのみを表示します。ワイルドカード引数で指定したタスクは、INFO EXTRACTでは表示されません。

ALLPROCESSES

タスクを含むすべてのExtractグループを表示します。

UPGRADE | DOWNGRADE

Oracleデータベースにのみ有効です。

- UPGRADEは、Extractをクラシック・キャプチャ・モードから統合キャプチャ・モードにアップグレードできるかどうかを表示します。

- DOWNGRADEは、Extractを統合キャプチャ・モードからクラシック・キャプチャ・モードにダウングレードできるかどうかを表示します。

Extractをアップグレードまたはダウングレードできない場合、その理由が表示されます。

このオプションでは、ワイルドカードのExtract名は許可されていません。

このコマンドを使用する前に、DBLOGINコマンドを発行します。

例

例1

INFO EXTRACT fin*, SHOWCH

例2

INFO EXTRACT *, TASKS

例3   (Oracleのみ)

INFO EXTRACT finance UPGRADE

例4

次の例は、基本的なINFO EXTRACT出力を示しています。

EXTRACT                   EXTCUST Last Started 2011-01-05 16:09 Status RUNNING
Checkpoint Lag            00:01:30 (updated 97:16:45 ago)
Log Read Checkpoint File  /rdbms/data/oradata/redo03a.log
2011-01-05 16:05:17  Seqno 2952, RBA 7598080

例5

次の例は、DETAILを指定したINFO EXTRACTの出力です。

EXTRACT    ORAEXT    Last Started 2011-01-15 16:16   Status STOPPED
Checkpoint Lag       00:00:00 (updated 114:24:48 ago)
Log Read Checkpoint  File C:\ORACLE\ORADATA\ORA920\REDO03.LOG
2011-01-15 16:17:53 Seqno 46, RBA 3757568

Target Extract Trails:

Trail Name                            Seqno    RBA   Max MB   Trail Type

c:\goldengate802\dirdat\xx              0  57465       10     RMTTRAIL
c:\goldengate802\dirdat\jm              0  19155       10     RMTTRAIL

Extract Source                        Begin             End

C:\ORACLE\ORADATA\ORA920\REDO03.LOG    2011-01-15 16:07 2011-01-15 16:17
C:\ORACLE\ORADATA\ORA920\REDO03.LOG    2011-01-15 15:55  2011-01-15 16:07
C:\ORACLE\ORADATA\ORA920\REDO03.LOG    2011-01-15 15:42  2011-01-15 15:55
C:\ORACLE\ORADATA\ORA920\REDO03.LOG   2011-01-15 15:42  2011-01-15 15:42
Not Available                         * Initialized *   2011-01-15 15:42

Current directory    C:\GoldenGate802

Report file          C:\GoldenGate802\dirrpt\ORAEXT.rpt
Parameter file       C:\GoldenGate802\dirprm\ORAEXT.prm
Checkpoint file      C:\GoldenGate802\dirchk\ORAEXT.cpe
Process file         C:\GoldenGate802\dirpcs\ORAEXT.pce
Error log            C:\GoldenGate802\ggserr.log

1.12 KILL EXTRACT

KILL EXTRACTでは、標準またはPASSIVEモードで実行しているExtractプロセスを中断します。このコマンドは、STOP EXTRACTコマンドでプロセスを正常に停止できない場合にのみ使用してください。中断されたExtractプロセスは、Managerプロセスによって再起動されません。

構文

KILL EXTRACT group_name

group_name

1つのExtractグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのExtractグループが中断されます。

例

KILL EXTRACT finance

1.13 LAG EXTRACT

LAG EXTRACTでは、Extractとデータ・ソース間の正確なラグ・タイムを確認します。LAG EXTRACTは、トレイル内のチェックポイントの位置を読み取るのでなく、Extractと直接通信するので、INFO EXTRACTよりも正確にラグ・タイムを計算できます。

Extractのラグとは、(システム・クロックに基づく)Extractがレコードを処理した時刻と、データ・ソース内のそのレコードのタイムスタンプとの差(秒)です。

ハートビート機能が有効な場合、関連する遅延を表示できます。

構文

LAG EXTRACT
[, group_name]
[, GLOBAL]

group_name

1つのExtractグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのExtractグループのラグ・タイムを確認できます。

GLOBAL

GG_LAGSビューに遅延を表示します。

例

例1

LAG EXTRACT *

例2

LAG EXTRACT *fin*

例3

次にLAG EXTRACTの出力の例を示します。

Sending GETLAG request to EXTRACT CAPTPCC...
Last record lag: 2 seconds.
At EOF, no more records to process.

1.14 REGISTER EXTRACT

REGISTER EXTRACTでは、次の目的で、プライマリExtractグループをOracleデータベースに登録します。

- 統合キャプチャ・モードを有効にする

- マルチテナント・コンテナ・データベースから統合Extractするためのオプションを指定する

- リカバリに必要なアーカイブ・ログを保持するため、Oracle Recovery Managerで動作するように、Extractをクラシック・キャプチャ・モードで有効にする

REGISTER EXTRACTは、データ・ポンプExtractには無効です。

Extractグループをデータベースから登録解除するには、UNREGISTER EXTRACTコマンドを使用します(UNREGISTER EXTRACTを参照してください)。

REGISTER EXTRACTの使用の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

構文

クラシックExtractの場合:

REGISTER EXTRACT group_name LOGRETENTION

統合Extractの場合:

REGISTER EXTRACT group_mame DATABASE
[CONTAINER (container[, ...]) |
ADD CONTAINER (container[, ...]) |
DROP CONTAINER (container[, ...])]
[SCN system_change_number]
{SHARE [
AUTOMATIC |
extract |
NONE]}

group_name

登録するExtractグループの名前。ワイルドカードは使用しないでください。

DATABASE [

CONTAINER (container[, ...]) |

ADD CONTAINER (container[, ...]) |

DROP CONTAINER (container[, ...])

[

オプションを指定しないDATABASEでは、ExtractグループのCDB以外のデータベースからの統合キャプチャが可能になります。このモードでは、Extractは、論理変更レコード(LCR)の形式で変更データを受信するデータベース・ログマイニング・サーバーと統合します。ExtractはREDOログを読み取りません。Extractは、取得処理、変換およびその他の要件を実行します。DMLフィルタリングはLogminingサーバーによって実行されます。サポート情報および構成手順は、『Oracle GoldenGate Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成』を参照してください。

DATABASEを指定してREGISTER EXTRACTを使用する前に、dbms_goldengate_auth.grant_admin_privilegeプロシージャを使用して付与した権限で、すべてのExtractにDBLOGINコマンドを使用します。ダウンストリーム構成がある場合は、MININGDBLOGINコマンドも発行する必要があります。登録するソース・データベースがCDBデータベースで、Extractがデータをフェッチする場合は、CONTAINER=>'ALL'パラメータでgrant_admin_privilegeをコールする必要があります。

REGISTER EXTRACTを使用した後で、ADD EXTRACTをINTEGRATED TRANLOGオプションとともに使用して、同じ名前のExtractグループを作成します。Extractグループを追加する前に登録する必要があります。

CONTAINER (container[, ...])

マルチテナント・コンテナ・データベース(CDB)の1つ以上のプラガブル・データベース(コンテナ)のリストに登録を適用します。1つ以上のプラガブル・データベースを、CONTAINER (pdb1, pdb2, pdb3)のようにカッコで囲んだカンマ区切りリストとして指定します。すべてのプラガブル・データベースがデータベースに存在する必要があり、すべての名前をワイルドカードではなく明示的に指定する必要があります。

ADD CONTAINER (container[, ...])

指定したプラガブル・データベースを既存のExtractキャプチャ構成に追加します。1つ以上のプラガブル・データベースを、ADD CONTAINER (pdb1, pdb2, pdb3)のようにカッコで囲んだカンマ区切りリストとして指定します。このオプションを指定してREGISTER EXTRACTを発行する前に、Extractグループを停止します。

Oracleの場合、既存のExtractの特定のSCNでCONTAINERを追加することはサポートされなくなりました。

DROP CONTAINER (container[, ...])

指定したプラガブル・データベースを既存のExtractキャプチャ構成から削除します。1つ以上のプラガブル・データベースを、DROP CONTAINER (pdb1, pdb2, pdb3)のようにカッコで囲んだカンマ区切りリストとして指定します。このオプションを指定してREGISTER EXTRACTを発行する前に、Extractグループを停止します。

LOGRETENTION
クラシックExtractのみに有効です。Extractがリカバリに必要とするログを保持するため、Oracle Recovery Manager (RMAN)で動作するように、Extractグループをクラシック・キャプチャ・モードで有効にします。Extractグループが統合キャプチャ用に構成されている場合、LOGRETENTIONは無視されます。

LOGRETENTIONは、Extractグループ専用の基礎となるOracle Streamsキャプチャ・プロセスを作成し、同様の名前を持ちます。このキャプチャは、ログ保存の目的でのみ使用します。

ログは、現在のデータベースSCNに基づいて、REGISTER EXTRACTが発行された時点から保持されます。ログ保持機能は、TRANLOGOPTIONSパラメータのLOGRETENTIONオプションで制御されます。

REGISTER EXTRACTをLOGRETENTIONとともに使用する前に、DBLOGINコマンドをDBLOGINで示した権限で発行します。

SCN system_change_number
Extractを登録して、過去の特定のシステム変更番号(SCN)でキャプチャを開始します。このオプションを使用しない場合、REGISTER EXTRACTが発行されたときからキャプチャが開始されます。指定したSCNは、ログ・ファイルのディクショナリ作成操作の開始SCNに対応している必要があります。次の問合せを発行して、すべての有効なSCN値を検索できます。

SELECT first_change#
FROM v$archived_log
WHERE dictionary_begin = 'YES' AND
standby_dest = 'NO' AND
name IS NOT NULL AND
status = 'A';

単独で使用する場合、SCN値はログ・ファイルのディクショナリ作成操作の開始SCNになります。

SHARE AUTOMATICまたはSHARE extract_nameと組み合せて使用した場合、指定したSCNはキャプチャ・セッションのstart_scnになり、次の制限があります。

- 現在のSCN以下になるようにしてください。

- 既存のキャプチャの最小値(最初のSCN)より大きくなるようにしてください。

{SHARE [ AUTOMATIC | extract | NONE]}
Extractを登録し、指定したSCNでクローンを作成する既存のLogMinerデータ・ディクショナリのビルドに戻ります。これにより、既存のディクショナリのビルドを利用したExtractの高速作成が可能になります。

SHAREはCDBでは使用できません。

次のGGSCIコマンドがサポートされています。

REGISTER EXTRACT extract database SCN #### SHARE AUTOMATIC
REGISTER EXTRACT extract database SCN #### SHARE extract
REGISTER EXTRACT extract database SHARE NONE
REGISTER EXTRACT extract database SCN #### SHARE NONE

または

REGISTER EXTRACT extract DATABASE SHARE NONE
REGISTER EXTRACT extract DATABASE SCN #### SHARE NONE

一方、次のGGSCIコマンドは、ダウンストリーム構成ではサポートされていません。

REGISTER EXTRACT extract DATABASE SHARE AUTOMATIC
REGISTER EXTRACT extract DATABASE SHARE extract

AUTOMATIC

最も近い既存のキャプチャからクローンします。最適なクローン候補が見つからない場合は、新しいビルドが作成されます。

extract

指定したExtractで関連付けられているキャプチャ・セッションからクローンします。これが可能でない場合は、登録が完了しない旨のエラーが発生します。

NONE

新しいビルドをクローンまたは作成しないでください(これがデフォルトです)。

ダウンストリーム構成では、Extractへの登録時にSHARE句をSCN句と組み合せて使用する必要があります。

例

例1

REGISTER EXTRACT sales LOGRETENTION

例2

REGISTER EXTRACT sales DATABASE

例3

REGISTER EXTRACT sales DATABASE CONTAINER (sales, finance, hr)

例4

REGISTER EXTRACT sales DATABASE ADD CONTAINER (customers)

例5

REGISTER EXTRACT sales DATABASE DROP CONTAINER (finance)

例6

REGISTER EXTRACT sales DATABASE SCN 136589

ディクショナリのビルドの開始SCNは136589です。

例7

REGISTER EXTRACT sales DATABASE SCN 67000 SHARE ext2

この場合の有効な開始SCNは67000で、必ずしも現在のSCNにはなりません。

例8

REGISTER EXTRACT sales DATABASE CONTAINER (sales, finance, hr) SCN 136589

1.15 SEND EXTRACT

SEND EXTRACTでは、実行中のExtractプロセスと通信します。このリクエストは、Extractがユーザーからのコマンドを受け入れる準備ができるとすぐに処理されます。

構文

SEND EXTRACT group_name, {
BR {BRINTERVAL interval |
BRSTART |
BRSTOP |
BRCHECKPOINT {IMMEDIATE | IN n{M|H} | AT yyyy-mm-dd hh:mm[:ss]]}} |
BR BRFSOPTION { MS_SYNC | MS_ASYNC }
CACHEMGR {CACHESTATS | CACHEQUEUES | CACHEPOOL n} |
CACHEMGR CACHEFSOPTION { MS_SYNC | MS_ASYNC } |
FORCESTOP |
FORCETRANS transaction_ID [THREAD n] [FORCE] |
GETLAG |
GETPARAMINFO [parameter_name] [FILE output_file] |
GETTCPSTATS |
LOGEND |
LOGSTATS |
REPORT |
RESUME |
ROLLOVER |
SHOWTRANS [transaction_ID] [THREAD n] [COUNT n]
[DURATION duration unit] [TABULAR]
[FILE file_name [DETAIL]] |
SKIPTRANS transaction_ID [THREAD n] [FORCE] |
STATUS |
STOP |
TRACE[2] file_name |
TRACE[2] OFF |
TRACE OFF file_name |
TRACEINIT |
TRANSLOGOPTIONS INTEGRATEDPARAMS(parameter_specification) |
TRANLOGOPTIONS {PREPAREFORUPGRADETOIE | NOPREPAREFORUPGRADETOIE} |TRANLOGOPTIONS {PURGEORPHANEDTRANSACTIONS | NOPURGEORPHANEDTRANSACTIONS} |
TRANLOGOPTIONS TRANSCLEANUPFREQUENCY minutes |
VAMMESSAGE 'Teradata_command' |
VAMMESSAGE {'ARSTATS' | 'INCLUDELIST [filter]' | 'FILELIST [filter]'| 'EXCLUDELIST [filter]'} |
VAMMESSAGE 'OPENTRANS'
}

group_name

1つのExtractグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、グループ名がTから始まるすべてのExtractプロセスにこのコマンドが送信されます。Extractが実行中でない場合はエラーが返されます。

BR {BRINTERVAL interval | BRSTART | BRSTOP |

BRCHECKPOINT {IMMEDIATE | IN n {H|M} | AT yyyy-mm-dd[ hh:mm[:ss]]}}

ExtractのBounded Recoveryモードに影響を及ぼすコマンドを送信します。

BRINTERVAL interval

Bounded Recoveryチェックポイント間の時間を設定します。有効な値は20分から96時間です。20Mや2Hのように、分はMで、時間はHで指定します。デフォルト間隔は4時間です。

BRSTART

Bounded Recoveryを開始します。このコマンドは、Oracleサポートの指示の下でのみ使用します。

BRSTOP

Bounded Recoveryの実行およびリカバリを停止します。このオプションを使用する前にOracleサポートに連絡してください。通常の場合、Bounded Recoveryに問題があると、Bounded Recoveryは自身を無効化します。

BRCHECKPOINT {IMMEDIATE | IN n{H|M} | AT yyyy-mm-dd[ hh:mm[:ss]]}}

Bounded Recoveryチェックポイントがいつ作成されるかを設定します。IMMEDIATEでは、SEND EXTRACTが発行されるとすぐにチェックポイントが発行されます。INでは、SEND EXTRACTが発行されてから、指定された時間数の経過後にチェックポイントが発行されます。ATでは、指定した厳密な時刻にチェックポイントが発行されます。

BR BRFSOPTION {MS_SYNC | MS_ASYNC}
Bounded Recoveryでマップ済データの同期/非同期書込みを実行します。

MS_SYNC

マップ済データのBounded Recovery書込みは、I/Oデータ整合性が完了するように同期されます。

MS_ASYNC

マップ済データのBounded Recovery書込みは、サービスのために開始または待機されます。

CACHEMGR {CACHESTATS | CACHEQUEUES | CACHEPOOL n}
Oracle GoldenGateメモリー・キャッシュ・マネージャについての統計を返します。CACHESTATSは、Oracleサポートから依頼があった場合にのみ使用します。

CACHESTATS

仮想メモリーの使用量とファイル・キャッシュに関する統計を返します。

CACHEQUEUES

空きキューに関する統計のみを返します。

CACHEPOOL n

指定されたオブジェクト・プールに関する統計のみを返します。

CACHEMGR CACHEFSOPTION {MS_SYNC | MS_ASYNC}
Oracle GoldenGateメモリー・キャッシュ・マネージャでマップ済データの同期または非同期書込みを実行します。

FORCESTOP
すべての通知をバイパスし、Extractを強制的に停止します。このコマンドを発行すると、プロセスは即座に停止します。

FORCETRANS transaction_ID [THREAD n] [FORCE]
MySQL、Oracle、SQL/MX、SQL ServerおよびSybaseに有効です。

Extractに、トランザクションID番号で指定したトランザクションをコミット済トランザクションとしてトレイルに書き込ませます。FORCETRANSでは、ソース・データベースに対するトランザクションのコミットは行いません。Replicatが(暗黙的なコミットで)処理できるように、既存データをトレイルのみに書き込ませます。FORCETRANSは、古い順に他のトランザクションに対して繰り返し実行できます。トランザクションがソース・ユーザー・アプリケーションによってロールバックされる場合、トランザクションにトレイル(したがって、ターゲット・データベース)へのコミットを強制すると、データの不整合が生じることがあります。

FORCETRANSを使用した後、SEND EXTRACTコマンドをFORCESTOPとともに発行する場合は、少なくとも5分待機してください。待機しないと、トランザクションはそのまま残ります。

Extractの起動直後にFORCETRANSを使用する場合、待機してからコマンドを再度実行するように求めるエラー・メッセージを受信することがあります。これは、Extractがまだ他のトランザクションを処理していないことを意味しています。他のトランザクションの処理を開始すると、トランザクションをトレイルに書き込ませることができます。

transaction_ID

トランザクションのID。トランザクションID番号は、SHOWTRANSコマンドまたはExtractランタイム・メッセージから取得してください。Extractは、このコマンドの発行後にトランザクションに追加されたデータはすべて無視します。FORCEが使用されていない場合、確認プロンプトに応える必要があります。FORCETRANSを使用するには、SQL/MXを除き、SHOWTRANSコマンドで表示されるトランザクション・リスト内の最も古いトランザクションを指定する必要があります。SQL/MXの場合、最も古い未解決のトランザクションである必要はありません。

THREAD n

Oracleにのみ有効です。

THREAD nでは、異なるスレッドに重複するトランザクションIDがある場合に、Oracle RAC環境でこのトランザクションを生成したスレッドを指定します。

FORCE

Oracle、SQL/MX、SQL ServerおよびSybaseに有効です。MySQLでは無効です。

FORCEでは、確認プロンプトをバイパスします。

GETLAG
Extractとデータ・ソース間の正確なラグ・タイムを確認します。LAG EXTRACT (LAG EXTRACTを参照してください)と同じ結果が返されます。

GETPARAMINFO [parameter_name] [FILE output_file]
GETPARAMINFOでは、Extract、Replicat、Manageなどの実行中のインスタンスのランタイム・パラメータ値を問い合せます。1つまたはすべてのパラメータを問い合せて、出力をコンソールまたはテキスト・ファイルに送信できます

parameter_name

デフォルト動作では、使用中のすべてのパラメータ、つまりアプリケーションによって問合せされたことがあるパラメータ、パラメータ、およびそれぞれの現在値が表示されます。特定のパラメータを指定した場合、そのパラメータ名で出力がフィルタ処理されます。

FILE output_file

出力のリダイレクト先のテキスト・ファイル名。

GETTCPSTATS
Extractとターゲット・システム間のネットワーク・アクティビティについての統計を表示します。次の統計が含まれます。

- ローカルおよびリモートIPアドレス

- インバウンドおよびアウトバウンド・メッセージ(バイトおよびバイト/秒)

- 受信(インバウンド)および送信(アウトバウンド)数。受信は、インバウンド・メッセージ当たり少なくとも2つ(長さについて1つ、データについて1つ以上)あります。

- 送信および受信当たりの平均バイト数

- 送信および受信の待機時間: 送信の待機時間とは、TCPへの書込み完了にかかる時間です。送信の待機時間が短いほど、ネットワークのパフォーマンスが優れています。受信の待機時間とは、読取り完了にかかる時間です。送信および受信の待機時間によって、おおよそのネットワークのラウンド・トリップ時間を把握できます。これらの値は、マイクロ秒で表されます。

- データ圧縮のステータス(有効または無効)

- 圧縮前バイト数と圧縮後バイト数: 圧縮前と圧縮後を比較すると圧縮率(圧縮前と圧縮後のバイトの差)を把握できます。この圧縮率と、1秒当たりの圧縮バイト数を比較することで、リソースおよびネットワーク消費の観点から圧縮率がコストに見合うかどうか判断できます。

RMTHOSTおよびRMTHOSTOPTIONSのTCPBUFSIZEオプションでは、圧縮前データのTCPバッファ・サイズを制御します。圧縮が有効の場合、ネットワークに送信されるデータはこのサイズよりも小さくなります。GETTCPSTATSでは、圧縮後のスループットを表示します。

LOGEND
Extractがデータ・ソース内のすべてのレコードを処理したかどうかを確認します。

LOGSTATS
Oracleにのみ有効です。

Extractに、Oracle REDOログ・ファイルからのデータの処理に関連する統計についてのレポートを発行するように指示します。ログ・ファイル上で追加のI/Oなしにデータが使用できるように、Extractは、Extractが処理中の現在のレコードの先を読み取る非同期ログ・リーダーを使用します。処理は、一連の読取り/書込みキューで行われます。データは、追加データがリーダー・スレッドによってログ・ファイルから読み取られるのと同時にプロデューサ・スレッドによって解析されます。これが統計の「先読み」という用語の理由です。

次の統計があります。

- AsyncReader.Buffersn: キャプチャされたREDOデータを含む各バッファ・キューに対して、このようなフィールドがあります。サイズ、その中のレコード数、データを処理するまでの待機時間の長さを示します。これらの統計は、キューでの書込み操作および読取り操作に対して指定されます。

- REDO read ahead buffers: 非同期で先読みするのに使用されているバッファの数。

- REDO read ahead buffer size: 各バッファのサイズ。

- REDO bytes read ahead for current redo: 現在のREDOログ・ファイルに対して先読みモードがオンかオフかどうか(値はONまたはOFF)。

- REDO bytes read: このExtractのインスタンスに関連付けられているすべてのREDOログ・ファイルから読み取られたバイト数。

- REDO bytes read ahead: 先読みメカニズムによって処理されたバイト数。

- REDO bytes unused: Extract位置変更や失効読取りの結果、その後に削除された先読みバイト数。

- REDO bytes parsed: 有効なログ・データとして処理されたバイト数。

- REDO bytes output: トレイル・ファイルに書き込まれたバイト数(内部Oracle GoldenGateのオーバーヘッドは含まない)。

REPORT
Extractレポート・ファイルに一時的な統計レポートを生成します。RESETREPORTSTATS | NORESETREPORTSTATSオプションとともに使用する場合、表示される統計は、STATOPTIONSパラメータの構成によって異なります。STATOPTIONSを参照してください。

RESUME
EVENTACTIONS SUSPENDイベントによって一時停止されたプロセスを再開(アクティブに)します。プロセスは、一時停止された位置から通常の処理を再開します。

ROLLOVER
Extractの再起動時に、順序の次のトレイル・ファイルに切り替えさせます。たとえば、現在のファイルがET000002の場合、このコマンドの実行後、現在のファイルはET000003になります。トレイルは000001から999999まで増やすことが可能で、順序番号は000000から再開始します。

SHOWTRANS [transaction_ID] [THREAD n] [COUNT n] [DURATION duration unit] [TABULAR] | [FILE file_name [DETAIL]]
MySQL、Oracle、SQL/MX、SQL ServerおよびSybaseに有効です。

オープンしているトランザクションに関する情報を表示します。SHOWTRANSは、データベース・タイプに応じて次のいずれかを表示します。

- プロセス・チェックポイント(Extractが再起動する場合に、トランザクション処理を継続する必要がある最も古いログを示します)。チェックポイントの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

- トランザクションID

- Extractグループ名

- REDOスレッド番号

- (トランザクションの実際の開始時刻でなく)Oracle GoldenGateがトランザクションから抽出した最初の操作のタイムスタンプ

- システム変更番号(SCN)

- REDOログ番号とRBA

- ステータス(Pending COMMITまたはRunning)。Pending COMMITは、FORCETRANS発行後のトランザクション書込み中に表示されます。

オプションを指定しない場合SHOWTRANSでは、使用可能なバッファに収まるオープンしているすべてのトランザクションが表示されます。SHOWTRANSのサンプル出力の例を参照してください。出力をさらに制御するには、次のオプションを参照してください。

transaction_ID

コマンド出力を特定のトランザクションに制限します。

THREAD n

Oracleにのみ有効です。

コマンド出力を特定のOracle RACスレッドに対してオープンしているトランザクションに制限します。nには、Extractに認識されているRACスレッド番号を指定します。

COUNT n

コマンド出力を指定した数のオープンしているトランザクションに制限します(最も古いトランザクションから開始します)。有効な値は1から1000です。

DURATION duration unit

コマンド出力を指定した時間より長くオープンしているトランザクションに制限します。

durationには、時間の長さを整数で指定します。

unitは、seconds、minutes、hoursまたはdaysを表す次のいずれかです。

S|SEC|SECS|SECOND|SECONDS
M|MIN|MINS|MINUTE|MINUTES
H|HOUR|HOURS
D|DAY|DAYS

各レコードにタイムスタンプを付けないSybaseの場合、durationは必ずしも正確ではなく、トランザクション・ログに格納されているBEGINレコードとCOMMITレコードの時間情報に依存します。

TABULAR

Oracleにのみ有効です。

SQL*Plusのデフォルトの表出力のような表フォーマットで出力を生成します。デフォルトはfield-per-rowです。

FILE file_name [DETAIL]

OracleおよびSQL Serverにのみ有効です。MySQL、SQL/MX、Sybaseでは無効です。

Extractに、指定したファイルにトランザクション情報を書き込ませます。コンソールへの出力はありません。

Oracleの場合、DETAILを指定したFILEを使用して、16進数およびプレーン文字のデータ・ダンプを書き込むことができます。これにより、メモリーからファイルにトランザクション全体がダンプされます。このデータを確認することにより、トランザクションをスキップするかトレイルに強制的に書き込むかを判別できます。

注意:

基本の詳細情報は、WARNLONGTRANS CHECKINTERVALパラメータに指定されている間隔でレポート・ファイルに自動的に書き込まれます。

SKIPTRANS transaction_ID [THREAD n] [FORCE]
MySQL、Oracle、SQL/MX、SQL ServerおよびSybaseに有効です。

Extractに、指定したトランザクションをスキップさせます。これにより、メモリーから現在のすべてのデータが削除され、後続のすべてのデータが無視されます。FORCEが使用されていない場合、確認プロンプトに応える必要があります。SKIPTRANSを使用した後、SEND EXTRACTをFORCESTOPとともに発行する場合は、少なくとも5分待機してください。待機しないと、トランザクションはそのまま残ります。トランザクションをスキップすると、ターゲット・データベースでデータが失われることがあります。

注意:

SKIPTRANSを使用するには、SQL/MXを除き、SHOWTRANSコマンドで表示されるトランザクション・リスト内の最も古いトランザクションを指定する必要があります。SQL/MXの場合、最も古い未解決のトランザクションである必要はありません。このコマンドは、古い順に他のトランザクションに対して繰り返し実行できます。

transaction_ID

トランザクションID番号です。ID番号は、SHOWTRANSコマンドまたはExtractランタイム・メッセージから取得してください。

THREAD n

Oracleにのみ有効です。

THREAD nでは、重複するトランザクションIDがある場合に、Oracle RAC環境でこのトランザクションを生成したスレッドを指定します。SKIPTRANSは、実際のスレッド番号ではなく、チェックポイント索引番号を指定します。正しいスレッドを指定するには、INFO EXTRACT group_name SHOWCHコマンドを発行してから、スキップするスレッド番号に対応するREADチェックポイント索引番号を指定します。詳細は、例を参照してください。チェックポイントの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

FORCE

Oracle、SQL/MX、SQL ServerおよびSybaseに有効です。MySQLでは無効です。

FORCEを使用して、トランザクションをスキップする意図を確認するプロンプトをバイパスします。

STATUS
処理状況の詳細なステータス(現在の位置およびアクティビティを含む)を返します。Current status行には、次のような処理ステータス・メッセージが表示されます。

- Delaying – 追加のデータを待機中

- Suspended – 再開を待機中

- Processing data – データを処理中

- Starting initial load – 初期ロード・タスクを開始中

- Processing source tables – 初期ロード・タスクのデータを処理中

- Reading from data source – データ・ソース(ソース表、トランザクション・ログなど)から読取り中

- Adding record to transaction list – ファイル・メモリー・トランザクション・リストにレコードを追加中

- At EOF (end of file) – 処理するレコードなし

異常終了イベント後のExtractリカバリ中は、前述のステータスに加え、次のようなステータスの注釈が表示されます。Extractはリカバリ中にログ読取り位置を継続的に変更するので、リカバリの進捗状況を追跡できます。

- In recovery[1] – Extractは、トランザクション・ログのチェックポイントにリカバリ中です。

- In recovery[2] – Extractは、チェックポイントから証跡の末尾にリカバリ中です。

- Recovery complete – リカバリは終了し、通常の処理が再開されます。

STOP
Extractを停止します。(WARNLONGTRANSパラメータに基づいて)長時間に及ぶトランザクションがある場合は、次のメッセージが表示されます。

Sending STOP request to EXTRACT JC108XT...
There are open, long-running transactions. Before you stop Extract, make the archives containing data for those transactions available for when Extract restarts. To force Extract to stop, use the SEND EXTRACT group, FORCESTOP command.
Oldest redo log file necessary to restart Extract is:
Redo Thread 1, Redo Log Sequence Number 150, SCN 31248005, RBA 2912272.
TRACE[2] {file_name | OFF}
トレースの有効化と無効化を切り替えます。トレースは、処理のボトルネックを明らかにする情報を、指定したファイルに取得します。トレースによって重大な処理のボトルネックが明らかになった場合は、Oracleサポートに連絡してください。

TRACE

ステップバイステップの処理情報を取得します。

TRACE2

具体的なステップでなく、コード・セグメントを特定します。

file_name

トレース情報が書き込まれるファイルの名前を指定します。TRACEを指定してSEND EXTRACTを発行したときにトレースがすでに実行中の場合は、既存のトレース・ファイルが閉じ、file_nameで指定した新しいファイルにトレースが再開されます。

OFF

トレースを無効にします。

TRACE OFF file_name
指定したトレース・ファイルに対してのみ、トレースをオフにします。

TRACEINIT
トレースの統計を0にリセットし、統計の累積をもう一度開始します。このオプションは、履歴でなく現在の処理動作をトレースするときに使用します。

INTEGRATEDPARAMS(parameter_specification)
(Oracle) 統合Extractをサポートします。Extractが統合モードで実行している間に、パラメータ指定をデータベース・インバウンド・サーバーに送信します。このコマンドでは一度に1つのパラメータ指定のみを送信できます。複数のパラメータ変更を送信するには、次の例に示すように、複数のSEND EXTRACTコマンドを発行します。

SEND EXTRACT myrep INTEGRATEDPARAMS ( parallelism 4 )SEND EXTRACT myrep INTEGRATEDPARAMS ( max_sga_size 250)

処理の連続性を維持するには、パラメータ変更をトランザクション境界で行います。サポートされるインバウンド・サーバー・パラメータのリストは、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

TRANLOGOPTIONS {PREPAREFORUPGRADETOIE | NOPREPAREFORUPGRADETOIE}
(Oracle) Oracle RACでクラシックExtractから統合Extractにアップグレードする場合に有効です。

Oracle RACでクラシックExtractから統合Extractにアップグレードする場合は、アップグレード対象のクラシックExtractを停止する前にPREPAREFORUPGRADETOIEオプションを設定し、アップグレードを続行する前に、パラメータが有効になっていることを示すレポート・ファイルの情報メッセージが表示されるまで待機する必要があります。アップグレード手順の詳細は、『Oracle GoldenGate Oracle GoldenGateのアップグレードfor Windows and UNIX』を参照してください。

PREPAREFORUPGRADETOIE

Extractパラメータ・ファイルのPREPAREFORUPGRADETOIEを設定するか(Extractの再起動が必要)、このコマンドを使用してGGSCIからExtractを実行できるように、動的に設定できます。

SEND EXTRACT extract_name TRANLOGOPTIONS PREPAREFORUPGRADETOIE

NOPREPAREFORUPGRADETOIE

必要に応じて、PREPAREFORUPGRADETOIEオプションを動的に無効にします。デフォルトはNOPREPAREFORUPGRADETOIEです。

TRANLOGOPTIONS {PURGEORPHANEDTRANSACTIONS | NOPURGEORPHANEDTRANSACTIONS}
Oracle RACに有効です。ノードに障害が発生し、Extractがロールバックを取得できないときに発生する孤立トランザクションのパージを有効化または無効化します。詳細は、TRANLOGOPTIONSを参照してください。

TRANLOGOPTIONS TRANSCLEANUPFREQUENCY minutes
Oracle RACに有効です。Oracle GoldenGateが、孤立トランザクションのスキャン、再スキャンによる確認、および削除の一連の動作を実行する間隔(分)を指定します。有効な値は1から43200分です。デフォルトは10分です。TRANLOGOPTIONSを参照してください。

VAMMESSAGE 'Teradata_command' VAMMESSAGE { 'ARSTATS' | 'INCLUDELIST [filter]' | 'EXCLUDELIST [filter]' } VAMMESSAGE 'OPENTRANS'
Extractが使用している取得APIにコマンドを送信します。

Teradataコマンドには、次のいずれかを指定できます。

'control:terminate'

レプリケーション・グループを停止します。Teradataのレプリケーション・グループを削除または変更する前に実行する必要があります。

'control:suspend'

レプリケーション・グループを一時停止します。Oracle GoldenGateをアップグレードするときに使用できます。

'control:resume'

一時停止したレプリケーション・グループを再開します。

'control:copy database.table'

ソース・データベースからターゲット・データベースに表をコピーします。

SQL/MXはコマンドには、次のいずれかを指定できます。このモジュールは、GGSCIにレスポンスを返します。レスポンスはERRORまたはOKで、レスポンス・メッセージとともに返されます。

'ARSTATS'

TMF監査読取り統計を表示します。

'FILELIST [filter]'

Extractが監査証跡内でデータ・レコードを検出した、TABLEパラメータの選択基準に一致する表のリストを表示します。filterオプションでは、ワイルドカード・パターンを使用して返される表のリストをフィルタできます。GETFILELISTも同様に使用できます。

'EXCLUDELIST [filter]'

Extractが監査証跡内でデータ・レコードを検出した、TABLEパラメータの選択基準に一致しない表のリストを表示します。filterオプションでは、ワイルドカード・パターンを使用して返される表のリストをフィルタできます。暗黙的に除外されている特定のシステム表は、常に除外表のリストに含まれます。

SQL Serverコマンドには、次のいずれかを指定できます。

'OPENTRANS'

オープンしているトランザクションのリスト(トランザクションID、開始時刻、最初のLSN、含まれている操作数を含む)を出力します。

例

例1

SEND EXTRACT finance, ROLLOVER

例2

SEND EXTRACT finance, STOP

例3

SEND EXTRACT finance, VAMMESSAGE 'control:suspend'

例4

SEND EXTRACT finance, TRANLOGOPTIONS TRANSCLEANUPFREQUENCY 20

例5

次の例では、SKIPTRANSを説明します。スレッド2がRead Checkpoint #3にあることを示す、次のSHOWCH出力から開始します。チェックポイントの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

INFO extract SHOWCH
Read Checkpoint #3
Oracle RAC Redo Log
Startup Checkpoint (starting position in the data source):
Thread #: 2
Sequence #: 17560
RBA: 65070096
Timestamp: 2011-07-30 20:04:47.000000
SCN: 1461.3499051750 (6278446271206)
Redo File: RAC4REDO/sss11g/onlinelog/group_4.292.716481937

そのため、SKIPTRANSはSKIPTRANS xid THREAD 3にする必要があります。

例6

SEND EXTRACT finance, SHOWTRANS COUNT 2

例7

次にSHOWTRANSのデフォルト出力を示します。

Oldest redo log file necessary to restart Extract is:
Redo Thread 1, Redo Log Sequence Number 148, SCN 30816254, RBA 17319664
------------------------------------------------------------
XID                 : 5.15.52582
Items               : 30000
Extract             : JC108XT
Redo Thread         : 1
Start Time          : 2011-01-18:12:51:27
SCN                 : 20634955
Redo Seq            : 103
Redo RBA            : 18616848
Status              : Running
------------------------------------------------------------
XID                 : 7.14.48657
Items               : 30000
Extract             : JC108XT
Redo Thread         : 1
Start Time          : 2011-01-18:12:52:14
SCN                 : 20635145
Redo Seq            : 103
Redo RBA            : 26499088
Status              : Running

例8

次の例は、TABULARが有効なときのSHOWTRANS出力(右側を切り捨てた表示)を示します。

XID         Items  Extract   Redo Thread  Start Time
5.15.52582  30000  JC108XT       1            2011-01-18:12:52:14

Dumping transaction memory at 2011-01-21 13:36:54.
Record #1:
Header (140 bytes):
0: 0000 0A4A 0000 FFFF 0000 0000 0057 6C10        ...J.........Wl.
16: 02FF 3F50 FF38 7C40 0303 4141 414E 5A77        ..?P.8|@..AAANZw
32: 4141 4641 4141 4B6F 4941 4144 0041 4141        AAFAAAKoIAAD.AAA
48: 4E5A 7741 4146 4141 414B 6F49 4141 4400        NZwAAFAAAKoIAAD.
64: 4141 414E 5A77 414A 2F41 4142 7A31 7741        AAANZwAJ/AABz1wA
80: 4141 0041 4141 4141 4141 4141 4141 4141        AA.AAAAAAAAAAAAA
96: 4141 4141 4100 0000 0140 FF08 0003 0000        AAAAA....@......
112: 0000 0000 0000 70FF 0108 FFFF 0001 4A53        ......p.......JS
128: 554E 2E54 4355 5354 4D45 5200                  UN.TCUSTMER.

Data (93 bytes):
0: 2C00 0400 0400 0000 0100 0200 0300 0000        ,...............
16: 0000 0000 0800 0000 1800 0000 2000 0400        ............ ...
32: 1000 0600 0200 0000 284A 414E 456C 6C6F        ........(JANEllo
48: 6352 4F43 4B59 2046 4C59 4552 2049 4E43        cROCKY FLYER INC
64: 2E44 454E 5645 5220 6E43 4F20 7365 7400        .DENVER nCO set.
80: 0000 0000 0000 0C00 0000 0000 00              ..............

SHOWTRANSの出力のサマリーを分析するときは、データベース上で現在実行中の(事前定義済バッファに収まる)すべてのトランザクションが表示されることを理解してください。Oracle GoldenGateの構成に含まれる表の操作が、今後別のトランザクションに追加されるかどうかわからないため、Extractは構成されている表の操作を含むトランザクションだけでなく、オープンしているすべてのトランザクションを追跡する必要があります。

SHOWTRANSのItemsフィールドの出力は、トランザクション内の操作数の合計ではなく、これまでにOracle GoldenGateによって取得されたトランザクション内の操作数です。取得された操作に、構成に含まれる表への操作が含まれていない、またはその一部しか含まれていない場合は、Itemsの値は0、または操作数の合計よりも少ない値になります。

Start Timeフィールドには、トランザクション自体の実際の開始時刻ではなく、Oracle GoldenGateがトランザクションから抽出した最初の操作のタイムスタンプが表示されます。

注意:

Oracle GoldenGateソフトウェアは継続的に拡張されるため、実際のコマンド出力はこの例とは若干異なる場合があります。

1.16 START EXTRACT

START EXTRACTでは、Extractプロセスを起動します。Extractが起動したことを確認するには、INFO EXTRACTまたはSTATUS EXTRACTコマンドを使用します。Extractは、通常の開始位置(初期または現在のチェックポイント)またはデータ・ソース内の別のユーザー指定の位置から開始できます。

通常の開始位置

オプションを指定しない場合、START EXTRACTはプライマリExtractおよびデータ・ポンプExtractに対して、データ・ソース内の次のいずれかの位置で処理を開始してデータ整合性を維持するように指示します。

- 正常または異常終了後: 前回の実行で処理されなかった最初のトランザクション(現在のチェックポイントが示す位置)

- グループ作成後の最初の起動時: ADD EXTRACTコマンドで指定された開始位置。

チェックポイントの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

Extractは、特定の同期構成ではオペレーティング・システムのコマンドラインからも起動できます。目的に適した構成および起動方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

別の開始位置

ATCSNおよびAFTERCSNオプションでは、ADD EXTRACTまたはALTER EXTRACTコマンドで概算の物理的開始位置を設定した後で、プライマリExtractまたはデータ・ポンプの論理的な開始位置を設定できます。たとえば、初期ロード・シナリオで、バックアップがターゲットに適用された後、最後のトランザクションのシリアル識別子(Oracle SCNなど)をOracle GoldenGate CSN (コミット順序番号)値にマップし、これを使用してAFTERCSNオプションを指定したExtractを開始できます。指定したCSNの後の最初のトランザクションから開始することで、Extractはバックアップに含まれていたトランザクションを省略します。省略しないと、重複レコードと不足レコードのエラーの原因となります。

ATCSNまたはAFTERCSNを使用してExtractを開始する前に、次のいずれかのコマンドで物理的な開始位置を設定する必要があります。

- BEGINオプションがATCSNまたはAFTERCSNで指定されたCSN値より前のタイムスタンプに設定されたADD EXTRACT。タイムスタンプを含むトランザクション・ログと、それ以降のすべてのログは、Extractを起動する前にシステムで使用可能になっている必要があります。

- ATCSNまたはAFTERCSNで指定されたCSNを含むログの順序番号に対するALTER EXTRACT。

注意:

特定のデータベースのCSNを構成する値の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

START EXTRACT group_name [ATCSN csn | AFTERCSN csn]

group_name

1つのExtractグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのExtractグループが起動されます。

ATCSN csn | AFTERCSN csn

別の開始位置を指定します。(使用方法の説明は、別の開始位置を参照してください。)

ATCSN

Extractに、指定したCSNを持つ最初のトランザクションに開始位置を配置するように指示します。指定したCSNより小さいCSN値を持つデータ・ソース内のトランザクションはすべてスキップされます。

AFTERCSN

Extractに、指定したCSNを持つトランザクションの後の最初のトランザクションの先頭に開始位置を配置するように指示します。指定したCSN以下のCSN値が含まれているデータ・ソース内のトランザクションは、すべてスキップされます。

csn

CSN値を指定します。データベースに有効な形式でCSN値を入力します。CSNの形式と説明は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。形式が無効な場合、Extractは異常終了し、レポート・ファイルにメッセージを書き込みます。初期ロードの完了後に指定するCSNを判別するには、ロード・ユーティリティ完了時のシリアル識別子を使用します。それ以外の場合は、Extractの開始時期を決定するための初期ロード手順の指示に従います。

ATCSNとAFTERCSNを使用する場合に従う追加のガイドラインを次に示します。

- 特定のCSNまたはその直後からの開始をサポートするには、証跡がOracle GoldenGateリリース10.0.0以上のものである必要があります。CSNが、ダウンストリーム・プロセスで使用できるようにファイル・ヘッダーに格納されるためです。

- CSNで指定されたレコードが見つかった場合、Extractはチェックポイントを発行します。チェックポイントは、後続のExtractの起動が、要求されたCSNの前の位置からではなく、要求された位置から開始するようにします。

- ATCSNまたはAFTERCSNを使用する前に、ADD EXTRACTまたはALTER EXTRACTでExtractのトランザクション・ログまたはトレイルに物理的な開始位置を設定する必要があります。これらのオプションは、Extractがデータ・ソース内の物理的な位置に配置された後でさらにフィルタ処理することを目的としています。

例

例1

START EXTRACT finance

例2

START EXTRACT finance ATCSN 684993

例3

START EXTRACT finance AFTERCSN 684993

1.17 STATS EXTRACT

STATS EXTRACTでは、1つ以上のExtractグループの統計を表示します。出力には、Oracle GoldenGate構成に含まれるDMLおよびDDL操作が含まれます。

最も正確な1秒当たりの処理操作数を取得するには、次のことを行います。

1. STATS EXTRACTコマンドをRESETオプションとともに発行します。

2. STATS EXTRACT REPORTRATEコマンドを発行します。LATEST STATISTICSフィールドに1秒当たりの操作数が表示されます。

注意:

DB2データベース上で実行された実際のDML操作数は、Oracle GoldenGateがレポートした抽出DML操作数と一致しないことがあります。更新文で行が物理的に変更されない場合、DB2はその更新文を記録しません。そのため、Oracle GoldenGateがそれを検出したり、統計に含めることはできません。

Oracle GoldenGateが最大保護モードで構成されているTeradataソース・システムで正確な統計を取得するには、プライマリExtractではなくVAMソートExtractにSTATS EXTRACTを発行します。プライマリExtractには、ロールバックされるコミットされていないトランザクションの統計が含まれることがありますが、VAMソートExtractは、コミットされていないトランザクションの統計のみレポートします。

構文

STATS EXTRACT group_name
[, statistic]
[, TABLE [container. | catalog.]schema.table]
[, TOTALSONLY [container. | catalog.]schema.table]
[, REPORTCHARCONV]
[, REPORTFETCH | NOREPORTFETCH]
[, REPORTRATE time_units]
[, ... ]

group_name

1つのExtractグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのExtractグループの統計が返されます。

statistic

表示する統計。それぞれをカンマで区切ることによって複数の統計を指定できます(例: STATS EXTRACT finance, TOTAL, DAILY)。

次の値が有効です。

TOTAL

プロセス起動からの合計を表示します。

DAILY

現在の日付の開始からの合計を表示します。

HOURLY

現在の時間の開始からの合計を表示します。

LATEST

最後のRESETコマンド発行後の合計を表示します。

RESET

LATEST統計フィールドのカウンタをリセットします。

TABLE [container. | catalog.]schema.table
指定した表、またはワイルドカード(*)で指定した表グループのみの統計を表示します。表の名前またはワイルドカード指定は2つの部分または3つの部分からなる完全修飾名である必要があります(例: hr.empまたは*.*.*)。

TOTALSONLY [container. | catalog.]schema.table
指定した表、またはワイルドカード(*)で指定した表グループの統計サマリーを表示します。表の名前またはワイルドカード指定は2つの部分または3つの部分からなる完全修飾名である必要があります(例: hr.empまたは*.*.*)。

REPORTCHARCONV
TABLEパラメータにTARGET句があり、キャラクタ・セット変換が実行される場合のみ使用します。次の統計がSTATS出力に追加されます。

Total column character set conversion failure: 現在のExtractの実行での検証または変換の失敗の数。

Total column data truncation: 現在のExtractの実行で、文字セット変換の結果列データが切り捨てられた回数。

REPORTFETCH | NOREPORTFETCH
フェッチ操作についての統計を出力に含めるかどうかを制御します。デフォルトはNOREPORTFETCHです。フェッチを制御するデフォルトおよびフェッチ動作を変更するオプションについては、STATOPTIONSを参照してください。REPORTFETCHの出力は次のようになります。

- row fetch attempts: Extractがトランザクション・ログから列値を取得できなかったときに、データベースから値をフェッチしようとした回数。

- fetch failed: 失敗した行フェッチの試行回数。

- row fetch by key: Oracleに有効です。主キーを使用して行われた行フェッチ試行の回数。デフォルトは、行IDによるフェッチです。

REPORTRATE time_units
統計を絶対値ではなく処理レートとして表示します。

次の値が有効です。

HR
MIN
SEC

例

例1

次の例では、特定の表について、合計と1分当たりの統計を表示し、最新の統計をリセットし、フェッチ統計を出力します。

STATS EXTRACT finance, TOTAL, HOURLY, TABLE hr.acct,
REPORTRATE MIN, RESET, REPORTFETCH

例2

次の例は、LATESTおよびREPORTFETCHオプションを使用した出力です。

STATS EXTRACT ext, LATEST, REPORTFETCH
Sending STATS request to EXTRACT GGSEXT...
Start of Statistics at 2011-01-08 11:45:05.
DDL replication statistics (for all trails):
*** Total statistics since extract started     ***
Operations                                   3.00
Mapped operations                            3.00
Unmapped operations                          0.00
Default operations                           0.00
Excluded operations                          0.00
Output to ./dirdat/aa:
Extracting from HR.EMPLOYEES to HR.EMPLOYEES:
*** Latest statistics since 2011-01-08 11:36:55 ***
Total inserts                              176.00
Total updates                                0.00
Total deletes                               40.00
Total discards                               0.00
Total operations                           216.00
Extracting from HR.DEPARTMENTS to HR.DEPARTMENTS:
*** Latest statistics since 2011-01-08 11:36:55 ***
No database operations have been performed.
End of Statistics.

1.18 STATUS EXTRACT

STATUS EXTRACTでは、Extractが実行中かどうかを確認します。RUNNINGのステータスは、次のいずれかを意味します。

- アクティブ: 実行中および処理中(または処理可能な)データ。これは、プロセス開始後のプロセスの通常の状態です。

- 一時停止: プロセスは実行中ですが、EVENTACTIONS SUSPENDアクションにより一時停止しました。一時停止状態では、プロセスはアクティブではなく、データを処理できませんが、現在の実行の状態は保持され、GGSCIでRESUMEコマンドを発行すると続行できます。INFOコマンドでのRBAは、一時停止アクションの前の最新のチェックポイント位置を表します。状態がアクティブか一時停止かを確認するには、SEND EXTRACTコマンドをSTATUSオプションとともに発行します。

構文

STATUS EXTRACT group_name [, TASKS | ALLPROCESSES] [UPGRADE | DOWNGRADE]

group_name

1つのExtractグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのExtractグループのステータスが返されます

TASKS

Extractタスクのステータスのみを表示します。デフォルトでは、(ワイルドカードを使用せずに)単一のExtractグループを指定している場合を除き、タスクは表示されません。

ALLPROCESSES

すべてのExtractグループのステータス(タスクを含む)を表示します。

UPGRADE | DOWNGRADE

Oracleデータベースにのみ有効です。Extractをアップグレードまたはダウングレードできない場合、その理由が表示されます。このオプションでは、ワイルドカードのExtract名は許可されていません。このコマンドを使用する前に、DBLOGINコマンドを発行します。

UPGRADE

Extractをクラシック・キャプチャ・モードから統合キャプチャ・モードにアップグレードできるかどうかを表示します。

DOWNGRADE

Extractを統合キャプチャ・モードからクラシック・キャプチャ・モードにダウングレードできるかどうかを表示します。

例

例1

STATUS EXTRACT finance

例2

STATUS EXTRACT fin*

1.19 STOP EXTRACT

STOP EXTRACTでは、Extractを正常に停止します。このコマンドを実行すると、Extractの次の起動に備えて同期のステータスが保持され、ExtractはManagerに自動的に起動されません。

STOP EXTRACTの発行時に長時間オープンしているトランザクションがある場合、Extractを再起動すると、このトランザクションに必要な最も古いトランザクション・ログ・ファイルを通知されることがあります。SEND EXTRACTのSHOWTRANSオプションを使用すると、このようなトランザクションの詳細とデータを表示できます。必要な場合には、SKIPTRANSまたはFORCETRANSオプションを使用し、トランザクションをスキップするか、コミット済トランザクションとしてトレイルに強制的に書き込みます。SEND EXTRACTを参照してください。

構文

STOP EXTRACT group_name

group_name

1つのExtractグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのExtractグループが停止されます。

STOP EXTRACT finance

1.20 UNREGISTER EXTRACT

UNREGISTER EXTRACTコマンドでは、ExtractグループをOracleデータベースから登録解除します。UNREGISTER EXTRACTはプライマリExtractグループにのみ有効です。データ・ポンプExtractには、これを使用しないでください。

Extractグループをデータベースに登録するには、REGISTER EXTRACTコマンドを使用します。

Extractをクラシック・キャプチャ・モードから統合キャプチャ・モードにアップグレードするには、ALTER EXTRACTコマンドを使用します。

Oracleデータベース用Oracle GoldenGateの構成および登録の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

構文

UNREGISTER EXTRACT group_name
{DATABASE  | LOGRETENTION}

group_name

データベースから登録解除するExtractグループの名前。ワイルドカードは使用しないでください。このグループは、現在データベースに登録されている必要があります。

DATABASE

Extractグループに対して統合キャプチャ・モードを無効にします。

このコマンドでは、Extractグループと同じ名前のデータベース取得(マイニング)サーバーを削除します。Extractキャプチャ・モードのサポートおよび構成の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

UNREGISTER EXTRACTをDATABASEとともに使用する前に、次を実行します。

1. STOP EXTRACTコマンドを使用して、Extractを停止します。

2. dbms_goldengate_auth.grant_admin_privilegeプロシージャで付与された権限で、DBLOGINまたはMININGDBLOGINコマンドを使用して、マイニング・データベースにログインします。ローカル・キャプチャの場合は、DBLOGINが必要です。ダウンストリーム・キャプチャの場合は、DBLOGINおよびMININGDBLOGINの両方が必要です。

3. DELETE EXTRACTを使用して、Extractグループを削除します。

LOGRETENTION

指定したExtractグループのログ保持を無効にし、基盤のOracle Streams取得プロセスを削除します。このExtractグループで変更を取得しない場合のみ、UNREGISTER EXTRACTをLOGRETENTIONとともに使用します。ログ保持機能は、TRANLOGOPTIONSパラメータのLOGRETENTIONオプションで制御されます。

UNREGISTER EXTRACTをLOGRETENTIONとともに使用する前に、STOP EXTRACTコマンドを使用してExtractを停止します。次に、DBLOGINコマンドを1–2で示した権限で発行します。

例

例1

UNREGISTER EXTRACT sales LOGRETENTION

例2

UNREGISTER EXTRACT sales DATABASE

1.21 ADD REPLICAT

ADD REPLICATでは、Replicatグループを作成します。SPECIALRUNが指定されている場合を除き、ADD REPLICATは実行間の処理の継続性を維持するためにチェックポイントを作成するオンライン・プロセス・グループを作成します。

このコマンドでは、DESCオプションに入力するテキストを含む、すべてのキーワードおよび入力のサイズは、500バイトを超えることはできません。

Oracle GoldenGateは、Oracle GoldenGate Managerインスタンス当たり、最大で5,000の同時ExtractおよびReplicatグループをサポートします。サポートされているレベルで、INFO、STATUSなどのGGSCIコマンドですべてのグループを完全に制御および表示できます。Oracle GoldenGateでは、環境を効果的に管理するために、ExtractおよびReplicatグループの数(合計)をデフォルト・レベルの300以下に保つことが推奨されます。

(Oracle)INTEGRATEDオプションが使用されている場合を除き、このコマンドはReplicatグループを非統合モードで作成します。Replicatのモードの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成の使用する適用方法の決定およびBATCHSQLを参照してください。

構文

ADD REPLICAT group_name
[, INTEGRATED | COORDINATED [MAXTHREADS number]]
{, SPECIALRUN |
, EXTFILE file_name |
, EXTTRAIL trail_name}
[, BEGIN {NOW | yyyy-mm-dd[ hh:mm[:ss[.cccccc]]]} |
, EXTSEQNO sequence_number, EXTRBA rba]
{, CHECKPOINTTABLE owner.table | NODBCHECKPOINT}
[, PARAMS file_name]
[, REPORT file_name]
[, DESC 'description']
[, CPU number]
[, PRI number]
[, HOMETERM device_name]
[, PROCESSNAME process_name]

group_name

Replicatグループ名。調整Replicatグループ名は最大5文字を使用できます。標準Replicatグループ名は最大8文字まで使用できます。プロセス・グループの命名規則の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

INTEGRATED

(Oracle)Replicatを統合モードで作成します。このオプションがない場合、ADD REPLICATはReplicatを非統合(クラシック)モードで作成します。このモードでは、ReplicatプロセスはOracleデータベースで使用可能な適用プロセス機能を利用します。このモードでは、Replicatは次のように動作します。

- Oracle GoldenGate証跡を読み取ります。

- データのフィルタリング、マッピング、および変換を実行します。

- ソース・データベースDMLまたはDDLトランザクションを(コミットされた順序で)表す論理変更レコード(LCR)を作成します。

- データベース・インバウンド・サーバーと呼ばれるターゲット・データベースのバックグラウンド・プロセスに、軽いストリーミング・インタフェースを介してアタッチします。

- データがターゲット・データベースに適用されるインバウンド・サーバーにLCRを転送します。

INTEGRATEDをSPECIALRUNまたはEXTFILEオプションとともに使用しないでください。INTEGRATEDはローカルEXTTRAILが指定されたトレイルから読み取るオンライン変更同期Replicatに対して使用する必要があります。

統合Replicatにはチェックポイント表(ADD CHECKPOINTTABLEコマンドおよびCHECKPOINTTABLEパラメータ)またはトレース表(TRACETABLEパラメータ)は必要ありません。統合Replicatではこれらの表のいずれも保持しません。

統合モードでは、Replicatは次のパラメータをサポートしません。

- BULKLOAD (初期ロードReplicatとして統合Replicatを使用しないでください)

- SPECIALRUN

- GENLOADFILES

- SHOWSYNTAX

- MAXTRANSOPS (無視されます)

統合Replicatの統合および使用の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

COORDINATED [MAXTHREADS number]

Replicatを調整モードで作成します。調整Replicatは並列処理できるようにマルチスレッド化されます。このオプションはコーディネータ(グループ名自体で識別)と、デフォルトまたはMAXTHREADSで指定した最大数の処理スレッドを追加します。依存関係がコーディネータにより計算されて調整され、SQL処理がスレッドにより実行されます。

COORDINATEDをSPECIALRUNまたはEXTFILEオプションとともに使用しないでください。COORDINATEDはローカルEXTTRAILが指定されたトレイルから読み取るオンライン変更同期Replicatに対して使用する必要があります。調整済Replicatの詳細は、Oracle GoldenGate for Windows and UNIX管理を参照してください。

注意:

調整Replicatのグループ名は5文字のみ使用できることに注意してください。プロセス・グループの命名規則の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

MAXTHREADS number

このReplicatグループが生成できる処理スレッドの最大数を指定します。これらのスレッドはすべて起動時に作成されますが、パラメータ・ファイルのMAP文に指定した内容により、これらのスレッドの一部またはすべては、指定した時間でワークロードを処理します。一般的なルールとして、ワークロードを分割するときに、MAP文で指定するスレッド数の2倍を指定します。これにより、ワークロードが増加した場合に、Replicatグループを削除したり再作成しなくてもスレッドを追加できます。

スレッド間でワークロードをパーティション化する方法の詳細は、TABLE | MAPを参照してください。

MAXTHREADSを省略した場合、スレッドのデフォルト数は25です。スレッドの最大数は500です。

MAXTHREADSにはMAXGROUPSパラメータとの関連性があります。MAXGROUPSは、Oracle GoldenGateのインスタンスごとに使用できるプロセス・グループ(ExtractおよびReplicat)の最大数を制御します。各Replicatスレッドは、MAXGROUPSのコンテキストでは1つのReplicatグループと想定されます。したがって、Oracle GoldenGateインスタンス内のExtractおよびReplicatグループの数、プラスMAXTHREADSの値は、MAXGROUPSの値を超えることはできません。詳細は、MAXGROUPSを参照してください。

SPECIALRUN
Replicat特別実行をタスクとして作成します。SPECIALRUN、EXTFILEまたはEXTTRAILを指定する必要があります。ExtractがSPECIALRUNモードの場合は、GGSCIのSTART REPLICATコマンドでReplicatを起動しないでください。このオプションはINTEGRATEDまたはCOORDINATEDオプションとともに使用しないでください。

EXTFILE file_name
Extractパラメータ・ファイルのRMTFILEで指定されている抽出ファイルの相対名または完全修飾名を指定します。このオプションをINTEGRATEDオプションとともに使用しないでください。

EXTTRAIL trail_name
ADD RMTTRAILまたはADD EXTTRAILコマンドで作成されたトレイルの相対名または完全修飾名を指定します。

BEGIN {NOW | yyyy-mm-dd[ hh:mm[:ss[.cccccc]]]}
証跡の初期チェックポイントを定義します。チェックポイントの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

NOW

グループが作成されたときから変更のレプリケートを開始します。

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

特定の時刻から変更の抽出を開始します。

EXTSEQNO sequence_number
トレイル内のデータ処理開始ファイルの順序番号を指定します。順序番号を指定しますが、埋込みのために0を使用しないでください。たとえば、トレイル・ファイルがc:\ggs\dirdat\aa000026の場合は、EXTSEQNO 26と指定します。

このオプションを使用しない場合、処理はデフォルトで証跡の最初から開始されます。EXTSEQNOを使用するには、EXTRBAも使用する必要があります。このオプションを使用する前に、Oracleサポートに連絡してください。

EXTRBA rba
EXTSEQNOで指定したトレイル・ファイル内の相対バイト・アドレスを指定します。このオプションを使用する前に、Oracleサポートに連絡してください。

CHECKPOINTTABLE owner.table
Oracle GoldenGate Applications AdapterまたはOracle GoldenGate Big Dataには無効です。

このReplicatグループが、データベース内の指定した表にチェックポイントを書き込むように指定します。所有者と表名を指定します(例: hr.hr_checkpoint)。この引数は、GLOBALSファイルのすべてのデフォルトのCHECKPOINTTABLE指定よりも優先されます。ADD CHECKPOINTTABLEコマンドを使用して、最初にこの表を追加する必要があります。このオプションをINTEGRATEDオプションとともに使用しないでください。NODBCHECKPOINTが指定されている場合、Java用の追加チェックポイント・ファイルは作成されません。

NODBCHECKPOINT
このReplicatグループがチェックポイント表にチェックポイントを書き込まないように指定します。この引数は、GLOBALSファイルのすべてのデフォルトのCHECKPOINTTABLE指定よりも優先されます。この引数は、作成中のReplicatグループとともにチェックポイントを使用しないときに指定する必要があります。このオプションをINTEGRATEDオプションとともに使用しないでください。

PARAMS file_name
パラメータ・ファイルの保管場所を、Oracle GoldenGateディレクトリ内のデフォルトのdirprm以外に指定します。完全修飾パス名を指定します。

REPORT file_name
処理レポート・ファイルの保管場所の完全パス名を、Oracle GoldenGateディレクトリ内のデフォルトのdirrpt以外に指定します。

DESC 'description'
グループの説明('Loads account_tab on Serv2'など)を指定します。説明は引用符で囲みます。短縮キーワード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のいずれかの書式で入力できます)。デフォルトは、システム生成のプロセス名です。

例

例1

ADD REPLICAT sales, EXTTRAIL dirdat/rt

例2

ADD REPLICAT sales, INTEGRATED, EXTTRAIL dirdat/rt

例3

この例では、Replicatを調整モードで作成します。任意の時点で並列処理に最大100スレッドまで使用できることを示しています。

ADD REPLICAT sales, COORDINATED MAXTHREADS 100, EXTTRAIL dirdat/rt

例4

この例では、SQL/MXプラットフォーム上にReplicatを作成します。

ADD REPLICAT reptcp, CPU 2, PRI 148, HOMETERM $ZTN0.#PTHBP32,  PROCESSNAME $rep1

1.22 ALTER REPLICAT

ALTER REPLICATでは、ADD REPLICATコマンドで作成したReplicatグループの属性を変更します。このコマンドを使用する前に、STOP REPLICATコマンドを発行してReplicatを停止してください。これが調整Replicatグループの場合、threadIDオプションが使用されていないかぎり、ALTERはすべてのスレッドに対して有効です。

注意:

ALTER REPLICATでは、通常のReplicatモードから調整モードへの切替えはサポートされません。プロセスを停止し、すべての経路データがターゲットに適用されていることを確認して、トレイルを新しいトレイルにロールオーバーし、Replicatグループを調整モードで削除および再作成してから、プロセスを再開する必要があります。

構文

ALTER REPLICAT group_name[threadID], {
ADD REPLICAT option [, ...] |
INTEGRATED | NONINTEGRATED, CHECKPOINTTABLE owner.table
}
[, CPU number]
[, PRI number]
[, HOMETERM device_name]
[, PROCESSNAME process_name]

group_name[threadID]

変更するReplicatグループの名前、または調整Replicatのスレッドの名前。スレッドを指定するには、完全スレッド名(ALTER REPLICAT fin003, EXTSEQNO 53など)を使用します。スレッドIDを指定しない場合、ALTERはReplicatグループのすべてのスレッドに有効になります。

ADD REPLICAT option

ADD REPLICATオプション。非統合Replicatの場合、CHECKPOINTおよびNODBCHECKPOINTオプションを除き、ADD REPLICATコマンドで構成した説明または任意のサービス・オプションを変更できます。

INTEGRATED

Replicatを非統合モードから統合モードへ切り替えます。現在処理中のトランザクションが適用されてから、切替えが行われます。非統合Replicatから統合Replicatへの移行を実行する全手順については、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

NONINTEGRATED, CHECKPOINTTABLE owner.table

(Oracle)Replicatを統合モードから非統合モードに切り替えます。

CHECKPOINTTABLEに対し、チェックポイント表の所有者と名前を指定します。この表は、NONINTEGRATEDを指定してALTER EXTRACTを発行する前に、ADD CHECKPOINTTABLEコマンドを使用して作成する必要があります。

統合Replicatから非統合Replicatへの移行を実行する全手順については、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

統合Replicatの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

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のいずれかの書式で入力できます)。デフォルトは、システム生成のプロセス名です。

例

例1

ALTER REPLICAT finance, EXTSEQNO 53

例2

ALTER REPLICAT finance, EXTRBA 0

例3

ALTER REPLICAT finance, BEGIN 2011-01-07 08:00:00

例4

ALTER REPLICAT finance, INTEGRATED

例5

ALTER REPLICAT finance, NONINTEGRATED, CHECKPOINTTABLE ogg.checkpt

例6

ALTER REPLICAT fin001, EXTSEQNO 53

例7

次の例では、SQL/MX NonStopプラットフォーム上のReplicatを変更します。

ALTER REPLICAT reptcp, CPU 3, PRI 150, HOMETERM /G/zhome,  PROCESSNAME default

1.23 CLEANUP REPLICAT

CLEANUP REPLICATでは、特定のReplicatグループの実行履歴を削除します。このコマンドでは、最後の実行レコードがそのまま保持されるので、Replicatは停止した場所から処理を再開できます。

このコマンドを使用する前に、STOP REPLICATコマンドを発行してReplicatを停止してください。

構文

CLEANUP REPLICAT group_name[threadID] [, SAVE count]

group_name[threadID]

次のいずれか1つを使用します。

- group_name: 1つのReplicatグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのReplicatグループの実行履歴が削除されます。指定したグループ(または複数のグループ)が調整Replicatの場合、実行履歴の削除はすべてのスレッドに適用されます。

- group_namethreadID: 調整Replicatのスレッドで、完全名(グループ名およびスレッドID)で識別されます(finance003など)。

SAVE count

指定した数の最新のレコードを削除から除外します。

例

例1

次の例では、最新レコード以外のすべてのレコードを削除します。

CLEANUP REPLICAT finance

例2

次の例では、最新の5レコード以外のすべてのレコードを削除します。

CLEANUP REPLICAT *, SAVE 5

例3

次の例では、調整Replicatグループfinのスレッド3の、最新の5レコード以外のすべてのレコードを削除します。

CLEANUP REPLICAT fin003, SAVE 5

1.24 DELETE REPLICAT

DELETE REPLICATでは、Replicatグループを削除します。このコマンドを実行すると、チェックポイント・ファイルは削除されますが、パラメータ・ファイルはそのまま残ります。グループの削除後、必要に応じてグループをもう一度作成することも、パラメータ・ファイルを削除することもできます。このコマンドを実行すると、(他のプロセスがファイルを読み取っていない場合)削除されたグループが使用していたチェックポイントが削除されるので、Managerによってトレイル・ファイルをパージできます。

DELETE REPLICATを使用する前に、STOP REPLICATコマンドを使用してReplicatを停止します。

これが統合Replicat (Oracleのみ)またはチェックポイント表を使用する非統合Replicatの場合、Replicatを停止した後で、次のようにします。

1. DBLOGINコマンドを使用してデータベースにログインします。DBLOGINにより、DELETE REPLICATは、非統合Replicatのチェックポイント表からチェックポイントを削除するか、または統合Replicatが使用するインバウンド・サーバーを削除できます。詳細は、DBLOGINを参照してください。

2. DELETE REPLICATを発行します。

構文

DELETE REPLICAT group_name [!]

group_name

1つのReplicatグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのReplicatグループが削除されます。

!

このオプションを使用して、DELETE REPLICATコマンドが発行される前にDBLOGINコマンドが発行されていない場合、強制的にReplicatグループを削除します。グループが非統合Replicatの場合、このオプションではグループのチェックポイントがディスク上のチェックポイント・ファイルから削除されますが、データベースのチェックポイント表からは削除されません。このオプションを使用して統合Replicatグループを削除する場合、UNREGISTER REPLICATコマンドを使用してインバウンド・サーバーをターゲット・データベースから削除する必要があります。このオプションを使用すると、ワイルドカードで複数のグループを指定するときに発生するプロンプトも無視できます。

注意:

基本のDELETE REPLICATコマンドでは既存のReplicatトランザクションはコミットされますが、!オプションではコミットされません。

例

DELETE REPLICAT finance

1.25 INFO REPLICAT

INFO REPLICATでは、Replicatグループの処理履歴を取得します。このコマンド出力には次の情報が含まれます。

- Replicatのステータス(「STARTING」、「RUNNING」、「STOPPED」または「ABENDED」)。STARTINGは、プロセスは開始していますが、処理用のチェックポイント・ファイルはまだロックされていないことを示します。

- (Oracleデータベース)Replicatモード: 非統合または統合。

- Replicatが調整モードであるかどうか。調整モードの場合、現在使用しているスレッドの数。

- おおよそのReplicatラグ

- Replicatが読み取るトレイル

- トレイル内のチェックポイントを含むReplicat実行履歴

- Replicat環境に関する情報

基本コマンドでは、オンライン(継続的な) Replicatグループの情報のみを表示します。タスクは除外されます。

INFO REPLICATを発行すると、Replicatは停止または実行中になります。実行中のプロセスの場合、RUNNINGのステータスは、次のいずれかを意味します。

- Active: 実行中および処理中(または処理可能な)データ。これは、プロセス開始後のプロセスの通常の状態です。

- Suspended: プロセスは実行中ですが、EVENTACTIONS SUSPENDアクションにより一時停止しました。一時停止状態では、プロセスはアクティブではなく、データを処理できませんが、現在の実行の状態は保持され、GGSCIでRESUMEコマンドを発行すると続行できます。INFOコマンドでのRBAは、一時停止アクションの前の最新のチェックポイント位置を表します。状態がアクティブか一時停止かを確認するには、SEND REPLICATコマンドをSTATUSオプションとともに発行します。

ラグについて

Checkpoint Lagは、最新のチェックポイントがトレイルに書き込まれた時点での遅延(秒)を表します。たとえば、次の例で考えてみます。

- 現在の時刻 = 15:00:00

- 最新のチェックポイント = 14:59:00

- 最新の処理レコードのタイムスタンプ = 14:58:00

これらの値の場合、ラグは00:01:00 (1分、14:58と14:59の差異)とレポートされます。

UNKNOWNというラグ値は、Replicatは実行しているがレコードをまだ処理していないか、(タイム・ゾーンの差ではなくクロックが正確でないために)ソース・システムのクロックがターゲット・システムのクロックよりも進んでいることを示します。より正確なラグ情報を表示するには、LAG REPLICATを使用します(LAG REPLICATを参照してください)。

構文

INFO REPLICAT group_name[threadID]
[, DETAIL]
[, SHOWCH [n]]
[, TASKS | ALLPROCESSES]

group_name[threadID]

次のものの名前。

- 1つのReplicatグループ、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのReplicatグループの情報が表示されます。

- 完全名で識別される、調整Replicatのスレッド。たとえば、fin003では、finグループのスレッド3の情報のみが表示されます。

DETAIL

詳細情報を表示します。Oracleターゲットの場合、DETAILでは、Replicatが統合モードであるときのインバウンド・サーバーの名前が表示されます。

LOGBSN情報をDETAIL出力で表示するには、INFO REPLICATを発行する前に、DBLOGINコマンドを発行します。調整Replicatの特定のスレッドIDに対してコマンドを発行した場合、そのスレッドのLOGBSNのみが表示されます。そうでない場合、すべてのスレッドのLOGBSNが表示されます。LOGBSNを使用したExtractのリカバリの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

Replicatが調整モードの場合、DETAILではアクティブなスレッドのみが表示されます。たとえば、CRという名前のReplicatが最大15スレッドで作成されましたが、スレッド7-9のみが実行中の場合、DETAILを指定したINFO REPLICAT group_nameでは、調整スレッド(CR)、CR007、CR008およびCR009のみが表示されます。チェックポイントは別のスレッドに存在しますが、コマンドの出力には表示されません。サンプル出力の例を参照してください。

SHOWCH [n]

チェックポイント・ファイルに記録済のチェックポイント、チェックポイント表に記録済のチェックポイント、使用中のチェックポイントなど、現在のチェックポイントの詳細を表示します。データベース・チェックポイントの表示には、表名、ハッシュ・キー(一意の識別子)、作成時のタイムスタンプが含まれます。

nには、現在のチェックポイントに加えて表示する過去のチェックポイントの番号を指定します。

チェックポイントの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

TASKS

Replicatタスクのみを表示します。ワイルドカード引数で指定したタスクは、INFO REPLICATでは表示されません。

ALLPROCESSES

タスクを含むすべてのReplicatグループを表示します。

例

例1

INFO REPLICAT *, DETAIL, ALLPROCESSES

例2

INFO REPLICAT *, TASKS

例3

INFO REPLICAT fin003, SHOWCH

例4

次にDETAILを指定したINFO REPLICATの出力例を示します。

REPLICAT   DELTPCC          Last Started 2011-01-21 11:40 Status RUNNING
Checkpoint Lag              00:00:00 (updated 232:39:41 ago)
Log Read Checkpoint File    C:\GGS\DIRDAT\RT000000
2011-01-21 18:54:33.000000 RBA 4735245

Extract Source             Begin                      End
C:\GGS\DIRDAT\RT000000     2011-01-21 18:54           2011-01-21 18:54
C:\GGS\DIRDAT\RT000000     * Initialized *            2011-01-21 18:54

Current directory          C:\GGS
Report file                C:\GGS\dirrpt\DELTPCC.rpt
Parameter file             dirprm\DELTPCC.prm
Checkpoint file            C:\GGS\dirchk\DELTPCC.cpr
Checkpoint table           GG.CHECKPT
Process file               C:\GGS\dirpcs\DELTPCC.pcr
Error log                  C:\GGS\ggserr.log

例5

次に、調整Replicatに対するDETAILを指定したINFO EXTRACTを示します。

GGSCI (sysa) 3> info ra detail

REPLICAT   RA       Last Started 2013-05-01 14:15   Status RUNNING
COORDINATED          Coordinator                      MAXTHREADS 15
Checkpoint Lag       00:00:00 (updated 00:00:07 ago)
Process ID           11445
Log Read Checkpoint  File ./dirdat/withMaxTransOp/bg000001
2013-05-02 07:49:45.975662  RBA 44704

Lowest Log BSN value: (requires database login)

Active Threads:
ID  Group Name PID   Status   Lag at Chkpt  Time Since Chkpt
1   RA001     11454 RUNNING  00:00:00      00:00:01
2   RA002     11455 RUNNING  00:00:00      00:00:04
3   RA003     11456 RUNNING  00:00:00      00:00:01
5   RA005     11457 RUNNING  00:00:00      00:00:02
6   RA006     11458 RUNNING  00:00:00      00:00:04
7   RA007     11459 RUNNING  00:00:00      00:00:04
Current directory    /scratch/vara/view_storage/vara_gg7/work/worklv/oggora1
Report file          /scratch/vara/view_storage/vara_gg7/work/worklv/oggora1/dirrpt/RA.rpt
Parameter file       /net/slc03jgo/scratch/vara/view_storage/vara_gg7/work/worklv/oggora1/dirprm/ra.prm
Checkpoint file      /scratch/vara/view_storage/vara_gg7/work/worklv/oggora1/dirchk/RA.cpr
Checkpoint table     atstgt.checkPoint_ra
Process file         /scratch/vara/view_storage/vara_gg7/work/worklv/oggora1/dirpcs/RA.pcr
Error log            /scratch/vara/view_storage/vara_gg7/work/worklv/oggora1/ggserr.log

例6

次に、調整ReplicatのスレッドIDに対するDETAILを指定したINFO EXTRACTを示します。

GGSCI (sysa) 5> info ra002 detail

REPLICAT   RA002    Last Started 2013-05-01 14:15   Status RUNNING
COORDINATED          Replicat Thread                  Thread 2
Checkpoint Lag       00:00:00 (updated 00:00:02 ago)
Process ID           11455
Log Read Checkpoint  File ./dirdat/withMaxTransOp/bg000001
2013-05-01 14:13:37.000000  RBA 44704

Current Log BSN value: (requires database login)

Extract Source                          Begin             End
./dirdat/withMaxTransOp/bg000001        2013-05-01 14:11  2013-05-01 14:13
./dirdat/withMaxTransOp/bg000001        2013-05-01 14:11  2013-05-01 14:11
./dirdat/withMaxTransOp/bg000001        * Initialized *   2013-05-01 14:11
./dirdat/withMaxTransOp/bg000000        * Initialized *   First Record
Current directory    /scratch/vara/view_storage/vara_gg7/work/worklv/oggora1
Report file          /scratch/vara/view_storage/vara_gg7/work/worklv/oggora1/dirrpt/RA002.rpt
Parameter file       /net/slc03jgo/scratch/vara/view_storage/vara_gg7/work/worklv/oggora1/dirprm/ra.prm
Checkpoint file      /scratch/vara/view_storage/vara_gg7/work/worklv/oggora1/dirchk/RA002.cpr
Checkpoint table     atstgt.checkPoint_ra
Process file         /scratch/vara/view_storage/vara_gg7/work/worklv/oggora1/dirpcs/RA002.pcr
Error log            /scratch/vara/view_storage/vara_gg7/work/worklv/oggora1/ggserr.log

1.26 KILL REPLICAT

KILL REPLICATでは、Replicatプロセスを中断しますプロセスを中断すると、最新のチェックポイントが記録され、現在のトランザクションはデータベースによってロールバックされます。したがって、データを失うことなくプロセスを再開できます。中断されたReplicatプロセスは、Managerプロセスによって再起動されません。このコマンドは、STOP REPLICATコマンドでReplicatを正常に停止できない場合にのみ使用してください。

構文

KILL REPLICAT group_name

group_name

1つのReplicatグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのReplicatグループが中断されます。

例

KILL REPLICAT finance

1.27 LAG REPLICAT

LAG REPLICATでは、Replicatとトレイル間の正確なラグ・タイムを確認します。LAG REPLICATは、チェックポイントの位置を読み取るのでなく、Replicatと直接通信するので、INFO REPLICATよりも正確にラグ・タイムを計算できます。

Replicatのラグとは、(システムクロックに基づく)Replicatが最後のレコードを処理した時刻と、証跡内のそのレコードのタイムスタンプとの差(秒)です。

ハートビート機能が有効な場合、関連する遅延を表示できます。ハートビート遅延を表示するには、DBLOGINが必要です。

構文

LAG REPLICAT

[, group_name[threadID]name]
[, GLOBAL]

group_name[threadID]

次のものの名前。

- 1つのReplicatグループ、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのReplicatグループのラグが表示されます。

- 完全名で識別される、調整Replicatのスレッド。たとえば、fin003では、調整Replicat finのスレッド3のラグが表示されます。

GLOBAL

GG_LAGSビューに遅延を表示します。

例

例1

LAG REPLICAT *

例2

LAG REPLICAT *fin*

1.28 REGISTER REPLICAT

REGISTER REPLICATコマンドでは、Replicatグループを統合ReplicatモードをサポートするターゲットOracleデータベースに登録します。このコマンドは標準Replicat条件下である必要はありません。起動時にReplicatはターゲット・データベースに自動的に登録されます。このコマンドは、統合Replicatがデータベースに登録されていないというメッセージをOracle GoldenGateが返した場合にのみ使用します。

このコマンドを発行する前に、dbms_goldengate_auth.grant_admin_privilegeを介して付与された権限を持つReplicatデータベース・ユーザーとして、DBLOGINコマンドを発行します。

統合Replicatの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

構文

REGISTER REPLICAT group_name DATABASE

group_name

1つのReplicatグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのReplicatグループが登録されます。

DATABASE

ターゲット・データベースに登録するための必須のキーワード。データベース・インバウンド・サーバーを作成し、それを指定したReplicatグループと関連付けます。

例

REGISTER REPLICAT sales DATABASE

1.29 SEND REPLICAT

SEND REPLICATでは、起動中または実行中のReplicatプロセスと通信します。このリクエストは、Replicatがユーザーからのコマンドを受け入れる準備ができるとすぐに処理されます。

構文

SEND REPLICAT group_name[threadID],
{
CACHEMGR {CACHESTATS | CACHEQUEUES | CACHEPOOL n} |
FORCESTOP |
GETLAG |
GETPARAMINFO [parameter_name] [FILE output_file] |
HANDLECOLLISIONS | NOHANDLECOLLISIONS [table_spec] |
INTEGRATEDPARAMS(parameter_specification) |
REPORT [HANDLECOLLISIONS [table_spec]] |
RESUME |
STATUS |
STOP |
TRACE[2] [DDLINCLUDE | DDL[ONLY]] file_name |
TRACE[2] OFF |
TRACE OFF file_name |
TRACEINIT |
THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])
}

group_name[threadID]

Replicatグループの名前、または調整Replicatの特定のスレッドの名前(fin003など)。特定のスレッドに対してコマンドを発行する場合、使用するオプションはそのスレッドに対してのみ適用されます。かわりの方法として、threadIDをグループ名に含ませるのではなく、THREADSオプションを指定してSEND REPLICATを発行できます。このReplicatが実行中でない場合はエラーが返されます。

CACHEMGR {CACHESTATS | CACHEQUEUES | CACHEPOOL n}

Oracle GoldenGateメモリー・キャッシュ・マネージャについての統計を返します。CACHEMGRは、Oracleサポートから指示が明示的にあった場合にのみ使用します。

CACHESTATS

仮想メモリーの使用量とファイル・キャッシュに関する統計を返します。

CACHEQUEUES

空きキューに関する統計のみを返します。

CACHEPOOL n

指定されたオブジェクト・プールに関する統計のみを返します。

FORCESTOP
すべての通知をバイパスし、Replicatを強制的に停止します。このコマンドは、アクティブなトランザクションをロールバックし、このプロセスを即座に停止します。このコマンドはReplicat全体に適用され、特定のReplicatスレッドに使用することはできません。

GETLAG
Replicatとトレイル間の正確なラグ・タイムを表示します。ラグ・タイムは、Replicatによって最後のレコードが処理された時刻と、トレイル内のそのレコードのタイムスタンプとの差(秒)です。結果はLAG REPLICATと同じです。

GETPARAMINFO [parameter_name] [FILE output_file]
GETPARAMINFOでは、Extract、Replicat、Manageなどの実行中のインスタンスのランタイム・パラメータ値を問い合せます。1つまたはすべてのパラメータを問い合せて、出力をコンソールまたはテキスト・ファイルに送信できます

parameter_name

デフォルト動作では、使用中のすべてのパラメータ、つまりアプリケーションによって問合せされたことがあるパラメータ、パラメータ、およびそれぞれの現在値が表示されます。特定のパラメータを指定した場合、そのパラメータ名で出力がフィルタ処理されます。

FILE output_file

出力のリダイレクト先のテキスト・ファイル名。

HANDLECOLLISIONS | NOHANDLECOLLISIONS [table_spec]
HANDLECOLLISIONSの動作を制御します。このオプションを使用するかわりに、Replicatパラメータ・ファイルにHANDLECOLLISIONSまたはNOHANDLECOLLISIONSパラメータを指定することもできます。HANDLECOLLISIONSの詳細は、HANDLECOLLISIONS | NOHANDLECOLLISIONSを参照してください。このコマンドはSEND REPLICAT group_name[threadID]を使用して個別のスレッドに直接送信することができます。また、THREADSオプションを使用して、複数のスレッドに影響を与えるコーディネータ・スレッドを介してコマンドを送信することもできます。

HANDLECOLLISIONS

HANDLECOLLISIONSは、ソース・データベースがアクティブな間に初期データ・ロードを実行するときに発生するエラーを自動処理するために使用します。初期ロードが完了してオンライン・データの変更がターゲット表に適用された後、NOHANDLECOLLISIONSオプションを使用してSEND REPLICATを発行するか、パラメータ・ファイルからパラメータを削除することにより、必ずHANDLECOLLISIONSを無効にしてください。

注意:

HANDLECOLLISIONSを使用したSEND REPLICATが特定のReplicatスレッドに対し発行されると、このコマンドでは特定のスレッドにより処理されるものだけでなくすべてのMAP文に対しHANDLECOLLISIONSが設定されることを示すメッセージが返されます。これは既知の問題です。実際にはこのコマンドは特定のスレッドを含むMAP文にのみ影響します。

NOHANDLECOLLISIONS

HANDLECOLLISIONSパラメータを無効にします。ただしパラメータ・ファイルからは削除しません。次にReplicatを起動するときにHANDLECOLLISIONSを有効化しないようにするには、パラメータ・ファイルからこのパラメータを削除する必要があります。

table_spec

table_specでは、HANDLECOLLISIONSまたはNOHANDLECOLLISIONSの適用を特定のターゲット表、または標準ワイルドカード(*)で指定したターゲット表グループに制限します。

INTEGRATEDPARAMS(parameter_specification)
(Oracle)統合Replicatをサポートします。Replicatが統合モードで実行している間に、パラメータ指定をデータベース・インバウンド・サーバーに送信します。このコマンドでは一度に1つのパラメータ指定のみを送信できます。複数のパラメータ変更を送信するには、次の例に示すように、複数のSEND REPLICATコマンドを発行します。

SEND REPLICAT myrep INTEGRATEDPARAMS ( parallelism 4 )SEND REPLICAT myrep INTEGRATEDPARAMS ( max_sga_size 250)

処理の連続性を維持するには、パラメータ変更をトランザクション境界で行います。サポートされるインバウンド・サーバー・パラメータのリストは、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

REPORT [HANDLECOLLISIONS [table_spec]]
Extractレポート・ファイルに一時的な統計レポートを生成します。RESETREPORTSTATS | NORESETREPORTSTATSオプションとともに使用する場合、表示される統計は、STATOPTIONSパラメータの構成によって異なります。STATOPTIONSを参照してください。

HANDLECOLLISIONS

HANDLECOLLISIONSが有効な表を表示します。

table spec

出力を特定のターゲット表、または標準ワイルドカード(*)で指定したターゲット表グループに制限します。

RESUME
EVENTACTIONS SUSPENDイベントによって一時停止されたプロセスを再開(アクティブに)します。プロセスは、一時停止された位置から通常の処理を再開します。

STATUS
トレイル内の現在の位置、および現在のトランザクションに関する情報を返します。次のフィールドが出力されます。

- 処理ステータス(Replicatが調整の場合、スレッドごと)

- トレイル・ファイル内の位置(Replicatが調整の場合、スレッドごと)

- トレイルの順序番号(Replicatが調整の場合、スレッドごと)

- トレイルのRBA

- トレイル名

次のような処理ステータス・メッセージが表示されます。

- Delaying – 追加のデータを待機中

- Suspended – 再開を待機中

- Waiting on deferred apply – DEFERAPPLYINTERVALパラメータに基づいて処理待機中

- Processing data – データを処理中

- Skipping current transaction – START REPLICATとSKIPTRANSACTIONを使用している場合。

- Searching for START ATCSN csn – START REPLICATとATCSNを使用している場合。

- Searching for START AFTERCSN csn – START REPLICATとAFTERCSNを使用している場合。

- Performing transaction timeout recovery – 現在の未完了のトランザクションを中止し、新しいトランザクション開始のために再配置中(TRANSACTIONTIMEOUTパラメータを参照してください)。

- Waiting for data at logical EOF after transaction timeout recovery – TRANSACTIONTIMEOUT終了後に未完了のソース・トランザクションの残りの部分の受信を待機中。

- At EOF (end of file) – 処理するレコードなし

THREADSが使用されるか、または特定のスレッドに対してコマンドが発行されるときに表示されるスレッド・ステータス・メッセージ。

- Waiting for consensus stop point: スレッドがバリア・トランザクションに対し同期しようとしていることを示します。

- Waiting for Watermark: すべてのスレッドがトレイル内の同じトランザクション境界(グローバル水位標と呼ばれます)で停止しようとしていることを示します。

- Waiting on all threads to start up: 成功したバリア・トランザクションまたはReplicatの起動後にすべてのスレッドが開始するのを、スレッドが待機していることを示します。

表示されるコーディネータ・スレッド・ステータス・メッセージは次のとおりです。

- Waiting for all threads to register: MAP文がすべて解析されて、そこで指定されているスレッドIDが判別されることを示します。

- Processing data: データが正常に処理されていることを示します。

- Suspended, waiting to be resumed: SEND REPLICATコマンドがSUSPENDリクエストとともにReplicatに送信されたことを示します。

- At EOF: トレイルに処理するデータがないことを示します。

- Waiting to register MAP statistics: Replicatがレポート・ファイルに送信する処理統計を収集していることを示します。

STOP
Replicatを正常に停止します。このコマンドはReplicat全体に適用され、特定のReplicatスレッドに使用することはできません。

THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])
このコマンドは、特定のスレッドまたは調整Replicatのスレッドに対してのみ発行します。このオプションを使用するか、またはgroupnameをthreadIDとともに使用することができます。これらのオプションのいずれも使用しないと、コマンドはすべてのアクティブなスレッドに適用されます。

threadID[, threadID][, ...]

スレッドIDを指定するか、スレッドのカンマ区切りリストをthreadID, threadID, threadIDの形式で指定します。

thread_range[, thread_range][, ...]

スレッドの範囲をthreadIDlow-threadIDhighの形式で指定するか、範囲のカンマ区切りリストをthreadIDlow-threadIDhigh, threadIDlow-threadIDhighの形式で指定します。

threadID, threadID, threadIDlow-threadIDhighのように、これらの形式を組み合せることができます。

TRACE[2] [DDLINCLUDE | DDL[ONLY]] file_name
トレースの有効化と無効化を切り替えます。トレースは、処理のボトルネックを明らかにする情報を、指定したファイルに取得します。トレースは、ReplicatパラメータのTRACEおよびTRACE2でも有効化できます。

Replicatが調整モードで、TRACEがTHREADSリストまたは範囲とともに使用されている場合は、現在アクティブな各スレッドのトレース・ファイルが作成されます。各ファイル名には、関連付けられているスレッドIDが追加されます。このスレッドIDによるトレース・ファイル識別方法は、SEND REPLICATが(SEND REPLICAT fin003 TRACE...のように) groupnameとthreadIDによって発行される場合、または1つのスレッドのみがTHREADSで指定されている場合には適用されません。

トレースによって重大な処理のボトルネックが明らかになった場合は、Oracleサポートに連絡してください。

TRACE

ステップバイステップの処理情報を取得します。

TRACE2

具体的なステップでなく、コード・セグメントを特定します。

DDLINCLUDE | DDLONLY

(Replicatのみ) DDLトレースを有効化し、トレース・レポートにDDLトレースを取得する方法を指定します。

- DDLINCLUDEでは、トランザクション・データ処理の通常のトレースに加えてDDLトレースを取得します。

- DDL[ONLY]では、トランザクション・データ処理の通常のトレースを除外し、DDLのみをトレースします。このオプションは、DDLに短縮できます。

file_name

file_nameはOracle GoldenGateがトレース情報を記録するファイルの相対名または完全修飾名を指定します。トレースがすでに実行中の場合は、既存のトレース・ファイルが閉じ、file_nameで指定したファイルにトレースが再開されます。例:

SEND REPLICAT group_name TRACE file_name DDLINCLUDE

次の例のように、ファイル名の後に他のオプションを指定しない場合は、FILEキーワードを省略できます。

SEND REPLICAT group_name TRACE DDLINCLUDE file_name

TRACE[2] OFF
トレースを無効にします。

TRACE OFF file_name
指定したトレース・ファイルに対してのみ、トレースをオフにします。このオプションは、複数のEVENTACTIONS文によって複数のトレース・ファイルを使用できる、EVENTACTIONS機能をサポートしています。

TRACEINIT
トレースの統計を0にリセットし、統計の累積をもう一度開始します。このオプションは、履歴でなく現在の処理動作をトレースするときに使用します。

例

例1

SEND REPLICAT finance, HANDLECOLLISIONS

例2

SEND REPLICAT finance, REPORT HANDLECOLLISIONS fin_*

例3

SEND REPLICAT finance, GETLAG

例4

SEND REPLICAT finance, INTEGRATEDPARAMS(parallelism 10)

例5

次の例では、調整Replicatのスレッド3のラグを取得します。

SEND REPLICAT fin003, GETLAG

例6

次の例では、調整Replicatのスレッド1のみを対象にトレースを有効化します。この場合、1つのスレッドのみトレースされるため、トレース・ファイルにはthreadID拡張子はありません。ファイル名はtrace.trcです。

SEND REPLICAT fin, TRACE THREADS(1) FILE ./dirrpt/trace.trc

例7

次の例では、調整Replicatのスレッド1、2および3のトレースを有効化します。すべてのスレッドがアクティブであると想定した場合、トレースはファイルtrace001、trace002およびtrace003を生成します。

SEND REPLICAT fin TRACE THREADS(1-3) FILE ./dirrpt/trace.trc

例8

次の例では、調整Replicatのスレッド1のみを対象にトレースを有効化します。コマンドはTHREAD句を使用せずにスレッド1に対し直接発行されたので、トレース・ファイルの名前はtrace (スレッドIDの接尾辞なし)になります。

SEND REPLICAT fin001 TRACE FILE ./dirrpt/trace.trc

1.30 START REPLICAT

START REPLICATでは、Replicatを起動します。Replicatが起動したことを確認するには、INFO REPLICATまたはSTATUS REPLICATコマンドを使用します。

Oracleターゲット・データベースの統合Replicatグループを開始するときに、START REPLICATはReplicatをターゲット・データベースに自動的に登録します。統合Replicatの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

調整Replicatは全体としてのみ開始することができます。個別にスレッドを開始するオプションはありません。調整Replicatの前回の停止がクリーンではなかった場合、スレッドはトレイル・ファイル内の様々な位置で停止した可能性があります。これが発生した場合、START REPLICATは、パラメータ・ファイルが前回の実行から変更された場合は警告を書き込み、スレッドの番号が変更された場合はエラーを発生させます。これらの問題を解決し、Replicatを再起動するには、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

通常の開始位置

Replicatは通常の開始位置(最初または現在のチェックポイントから)、または別の、トレイル内のユーザーが指定した位置から開始できます。

オプションなしのSTART REPLICATでは、Replicatは次のいずれかの位置で処理を開始し、データの整合性を維持します。

- 正常または異常終了後: トレイル内の前回の実行で処理されなかった最初のトランザクション(現在の読取りチェックポイントが示す位置)

- グループ作成後の最初の起動時: アクティブなトレイル・ファイルの初め(順序番号0、rba 0)

チェックポイントの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

別の開始位置

START REPLICATのSKIPTRANSACTION、ATCSNおよびAFTERCSNオプションにより、Replicat全体、または調整Replicatの特定のスレッドが、通常の開始位置ではないトレイル内のトランザクションで処理を開始します。これらのオプションを使用して次のことを行います。

- Replicatのトレイル内の処理進行を妨げるエラー時の論理リカバリ位置を指定する。問題のあるトランザクションをスキップする位置にReplicatを配置できますが、このようなトランザクションのデータがターゲットに適用されないことを認識して使用してください。

- 初期ロード中に、バックアップがターゲットに適用された後で、重複レコードおよび行方不明レコード・エラーを引き起こす、レプリケートされたトランザクションをスキップします。これらのオプションにより、Replicatは、バックアップでキャプチャされた最新の変更のセットよりも前に発生したトランザクションを破棄します。バックアップの完了に対応するシリアル識別子の値をCSN値にマップしてから、Replicatを起動し、指定したCSNから前へトランザクションの適用を開始します。

注意:

トランザクションをスキップするか、特定のCSNまたはそれ以降から開始する場合は、適切なトランザクション・レコードに到達するまでに読み取る必要があるデータ量に応じて、Replicatの処理開始が通常より遅くなることがあります。処理開始の進捗状況を表示するには、SEND REPLICATコマンドとSTATUSオプションを使用します。Replicatが最終的にはスキップされるトランザクションを読み取る必要をなくすには、Extractとデータ・ポンプの開始時にATCSNまたはAFTERCSNオプションを使用して、そのようなトランザクションをトレイルから省略できるようにします。START EXTRACTを参照してください。

初期ロードの実行の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

START REPLICAT group_name
[SKIPTRANSACTION | {ATCSN csn | AFTERCSN csn}]
[FILTERDUPTRANSACTIONS | NOFILTERDUPTRANSACTIONS]
[THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])

group_name

1つのReplicatグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのReplicatグループが起動されます。

SKIPTRANSACTION

Replicatに、起動時の位置以降の1番目のトランザクションをスキップさせます。この1番目のトランザクション内の操作は、すべて除外されます。

このReplicatにMAXTRANSOPSパラメータも使用されている場合、プロセスは、トランザクションの途中の任意の場所からトレイル・ファイルの読取りを開始できます。その場合、部分的なトランザクションの残りがスキップされ、Replicatは、ファイル内の次の開始トランザクション・レコードから通常の処理を再開します。DISCARDFILEパラメータを使用している場合は、スキップされたレコードは破棄ファイルに書き込まれます。このパラメータを使用していない場合は、次のようなメッセージがレポート・ファイルに書き込まれます。

User requested START SKIPTRANSACTION. The current transaction will be skipped. Transaction ID txid, position Seqno seqno, RBA rba

SKIPTRANSACTIONは、Replicatの読取り先トレイルが、(チェックポイントを使用した)オンライン変更同期構成に含まれている場合にのみ有効です。タスクタイプの初期ロード(ADD REPLICATでSPECIALRUNを使用する場合)では有効ではありません。

ATCSN csn | AFTERCSN csn

特定のCSNにユーザー定義の開始ポイントを設定します。ATCSNまたはAFTERCSNが使用されている場合、次のいずれかのようなメッセージがレポート・ファイルに書き込まれます。

User requested start at commit sequence number (CSN) csn-string

User requested start after commit sequence number (CSN) csn-string

これらのオプションの一般情報は次のとおりです。

- Replicatの読取り先トレイルが、(チェックポイントを使用した)オンライン変更同期構成に含まれている場合にのみ有効です。タスクタイプの初期ロード(ADD REPLICATでSPECIALRUNを使用する場合)では有効ではありません。

- 特定のCSNまたはその直後からの開始をサポートするには、トレイルがOracle GoldenGateバージョン10.0.0以降のものである必要があります。CSNは各トランザクションの最初のトレイルに格納されるからです。それ以前のバージョンのトレイルに対し、AFTERCSNを指定してReplicatを起動すると、Replicatは異常終了し、トレイル・フォーマットがサポートされていないことを通知するエラーをレポートに書き込みます。

ATCSN

Replicatに、指定したCSNを含むトランザクションで処理を開始させます。指定したCSNより小さいCSN値を含むトレイル内のトランザクションはスキップされます。

AFTERCSN

Replicatに、指定したCSNを含むトランザクションの後に発生したトランザクションで処理を開始させます。指定したCSNより小さいまたは同じCSN値を含むトレイル内のトランザクションはスキップされます。

csn

CSN値を指定します。データベースに有効な形式でCSN値を入力します。CSNの形式と説明は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。形式が無効な場合、Replicatは異常終了し、メッセージがレポート・ファイルに書き込まれます。初期ロードの完了後に指定するCSNを特定するには、ロード・ユーティリティがロードを完了したときのコミット識別子を使用します。それ以外の場合は、Replicatを起動するときを特定するための、初期ロード・プロシージャの手順に従います。

FILTERDUPTRANSACTIONS | NOFILTERDUPTRANSACTIONS
Replicatに、すでに処理されたトランザクションを無視させます。Extractが新しい開始ポイント(START EXTRACTのATCSNまたはAFTERCSNオプションを参照)に再配置され、Replicatの異常終了を引き起こす可能性のある重複トランザクションがトレイル内にあることがわかっている場合に使用します。このオプションではチェックポイント表の使用が必要です。データベースがOracleの場合、このオプションは非統合モードのReplicatに対してのみ有効です。統合モードで自動ターゲット・トレイル・ファイル再生成の場合は、統合モードは、重複したトランザクションを透過的に処理します。デフォルトはFILTERDUPTRANSACTIONSです。

THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])
Replicatが調整モードの場合、SKIPTRANSACTION、ATCSNおよびAFTERCSNに有効です。これらのオプションなしのSTART REPLICATには無効です。指定したReplicatスレッドを指定した場所で開始します。

threadID[, threadID][, ...]

スレッドIDを指定するか、スレッドのカンマ区切りリストをthreadID, threadID, threadIDの形式で指定します。

thread_range[, thread_range][, ...]

スレッドの範囲をthreadIDlow-threadIDhighの形式で指定するか、範囲のカンマ区切りリストをthreadIDlow-threadIDhigh, threadIDlow-threadIDhighの形式で指定します。

threadID, threadID, threadIDlow-threadIDhighのように、これらの形式を組み合せることができます。

例

例1

START REPLICAT finance

例2

次の例では、Replicatを起動し、Oracle固有のCSNから処理を開始します。

START REPLICAT finance, ATCSN 6488359

例3

次の例では、Replicatを起動し、指定したCSNを含むSQL Server固有のCSNの後のCSNで処理を開始します。

START REPLICAT finance, AFTERCSN 0X000004D2:0000162E:0009

例4

次の例では、調整Replicatのスレッド4および5が、Replicatが起動されたときに、最新のチェックポイントの後の最初のトランザクションをスキップします。これが10スレッドの調整Replicatの場合、スレッド0-3および6-10はすべて最新のチェックポイントである通常の開始位置で開始します。

START REPLICAT fin SKIPTRANSACTION THREADS(4-5)

例5

次の例では、調整Replicatのスレッド1-3はCSN 6488359で開始し、スレッド9-10はCSN 6488360の後に開始し、スレッド7および8は最新のチェックポイント後の最初のトランザクションをスキップします。

START REPLICAT fin ATCSN 6488359 THREADS(1-3), AFTERCSN 6488360 THREADS(9-10), SKIPTRANSACTION THREADS(7,8)

1.31 STATS REPLICAT

STATS REPLICATでは、1つ以上のReplicatグループの統計を表示します。調整Replicatグループのスレッド統計が次のように示されます。

スレッド・ラグ・ギャップ

すべてのスレッド全体で最大ラグと最小ラグの差異。

調整された合計DDL

調整されたDDLトランザクションの合計数。

調整された合計PK-Updateトランザクション

主キーへの更新に関連する調整されたトランザクションの合計数。

調整された合計EMIトランザクション

調整されたEVENTACTIONSイベントの合計数。

ユーザー・リクエストの調整を持つ合計トランザクション

MAPパラメータのCOORDINATEDオプションにより、構成内で明示的にリクエストされた調整の合計数

平均調整時間

すべてのスレッド全体で調整にかかった平均時間(秒)。

構文

STATS REPLICAT group_name
[, statistic]
[, TABLE [container. | catalog.]schema.table]
[, TOTALSONLY [container. | catalog.]schema.table]
[, REPORTCDR]
[, REPORTCHARCONV]
[, REPORTDETAIL | NOREPORTDETAIL]
[, REPORTRATE {HR | MIN | SEC}]
[, ... ]

group_name

1つのReplicatグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのReplicatグループの統計が表示されます。

statistic

表示する統計。カンマで区切ることによって複数の統計を指定できます(例: STATS REPLICAT finance, TOTAL, DAILY)。

有効な値:

TOTAL

プロセス起動からの合計を表示します。

DAILY

現在の日付の開始からの合計を表示します。

HOURLY

現在の時間の開始からの合計を表示します。

LATEST

最後のRESETコマンド発行後の合計を表示します。

RESET

LATEST統計フィールドのカウンタをリセットします。

TABLE [container. | catalog.]schema.table]
指定した表、またはワイルドカード(*)で指定した表グループのみの統計を表示します。表の名前またはワイルドカード指定は2つの部分または3つの部分からなる完全修飾名である必要があります(例: hr.empまたは*.*.*)。

TOTALSONLY [container. | catalog.]schema.table]
指定した表、またはワイルドカード(*)で指定した表グループの統計サマリーを表示します。表の名前またはワイルドカード指定は2つの部分または3つの部分からなる完全修飾名である必要があります(例: hr.empまたは*.*.*)。

REPORTCDR
競合の検出および解決のための統計を表示します。次の統計があります。

- 合計CDR競合

- 成功したCDR解決

- 失敗したCDR解決

- CDR INSERTROWEXISTS競合

- CDR UPDATEROWEXISTS競合

- CDR DELROWEXISTS競合

- CDR DELROWMISSING競合

REPORTCHARCONV
キャラクタ・セット変換が実行されるときに文字検証の統計を報告します。次の統計がSTATS出力に追加されます。

Total column character set conversion failure: 現在のReplicat実行における検証または変換の失敗の数。

Total column data truncation: キャラクタ・セット変換の結果、現在のReplicat実行において列データが切り捨てられた回数

REPORTDETAIL | NOREPORTDETAIL
コリジョン・エラーが原因でレプリケートされなかった操作を出力に含めるかどうかを制御します。出力を有効にすると、このような操作が通常の統計(実行されたINSERT、UPDATEおよびDELETE操作)、および詳細な表示の統計でレポートされます。たとえば、10レコードがINSERT操作で、キーの重複が原因でこれらすべてのレコードが無視された場合、レポートにはINSERT操作数10、コリジョンが原因で破棄された操作数10と出力されます。デフォルトはREPORTDETAILです。STATOPTIONSも参照してください。

REPORTRATE {HR | MIN | SEC}
統計を絶対値ではなく処理レートとして表示します。

HR

処理速度を時間単位で設定します。

MIN

処理速度を分単位で設定します。

SEC

処理速度を秒単位で設定します。

例

例1

次の例では、特定の表について、プロセス起動後および現在の時間の開始後の1分当たりの統計を表示しし、最新の統計をリセットします。破棄された操作の統計はレポートされません。

STATS REPLICAT finance, TOTAL, HOURLY, TABLE sales.acct,
REPORTRATE MIN, RESET, NOREPORTDETAIL

例2

次の例は前述の例と同じ統計を表示しますが、調整Replicatグループのスレッド3が対象です。

STATS REPLICAT fin003, TOTAL, HOURLY, TABLE sales.acct,
REPORTRATE MIN, RESET, NOREPORTDETAIL

1.32 STATUS REPLICAT

STATUS REPLICATでは、Replicatが実行中かどうかを確認します。次の4つのステータスがあります。

Abended

プロセスが異常終了しました。

Running

次のいずれかを意味します。

- Active: 実行中および処理中(または処理可能な)データ。これは、プロセス開始後のプロセスの通常の状態です。

- Suspended: プロセスは実行中ですが、EVENTACTIONS SUSPENDアクションにより一時停止しました。一時停止状態では、プロセスはアクティブではなく、データを処理できませんが、現在の実行の状態は保持され、GGSCIでRESUMEコマンドを発行すると続行できます。INFOコマンドでのRBAは、一時停止アクションの前の最新のチェックポイント位置を表します。状態がアクティブか一時停止かを確認するには、SEND EXTRACT|REPLICAT group_name STATUSコマンドを発行します。詳細は、SEND EXTRACTまたはSEND REPLICATを参照してください。

Starting

プロセスを開始しています。

Stopped

プロセスを停止しました。

構文

STATUS REPLICAT group_name
[, TASKS]
[, ALLPROCESSES]

group_name

1つのReplicatグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのReplicatグループのステータスが表示されます。

TASKS

Replicatタスクのステータスのみを表示します。デフォルトでは、(ワイルドカードを使用せずに)単一のReplicatグループを指定している場合を除き、タスクは表示されません。

ALLPROCESSES

すべてのReplicatグループのステータス(タスクを含む)を表示します。

例

例1

STATUS REPLICAT finance

例2

STATUS REPLICAT fin*

1.33 STOP REPLICAT

STOP REPLICATでは、Replicatを正常に停止します。このコマンドを実行する場合は、Replicatの次の起動に備えて同期のステータスが保持され、ReplicatはManagerに自動的に起動されません。

調整Replicatの正常な停止では、コーディネータ・スレッドが同じトランザクション境界のすべてのスレッドを停止しようとします。調整Replicatの停止が正常ではない場合、スレッドはトレイル・ファイル内の様々な場所で停止する可能性があります。これが発生した場合、START REPLICATは、パラメータ・ファイルが前回の実行から変更された場合は警告を書き込み、スレッドの番号が変更された場合はエラーを発生させます。これらの問題を解決し、Replicatを再起動するには、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

STOP REPLICAT group_name [!]

group_name

1つのReplicatグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのReplicatグループが停止されます。

!

(感嘆符)Replicatを即座に停止します。トランザクションが中止され、プロセスは終了します。

例

STOP REPLICAT finance

1.34 SYNCHRONIZE REPLICAT

SYNCHRONIZE REPLICATでは、異常停止の後、調整Replicatのすべてのスレッドを、トレイル内の同じ位置に戻します。この位置はすべてのスレッドの最大のチェックポイント位置、つまり、すべてのスレッド全体で最後に処理されたトレイル・レコードです。SYNCHRONIZE REPLICATが発行されると、すべてのスレッドが開始し、最大のチェックポイント位置に到達するまでトランザクションを処理することができ、その後でReplicatは停止します。

SYNCHRONIZE REPLICATを使用して異常終了後に調整Replicatをリカバリする、または異なるスレッド間でデータの再分割を有効にする方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

SYNCHRONIZE REPLICAT group_name

group_name

1つのReplicatグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのReplicatグループのスレッドが同期化されます。スレッドはグループ内で同じ場所に同期化され、このコマンドで同期化されるすべてのReplicatグループ全体での同じ場所ではありません。

例

SYNCHRONIZE REPLICAT repA

1.35 UNREGISTER REPLICAT

UNREGISTER REPLICATコマンドでは、ReplicatグループをターゲットOracleデータベースから登録解除し、統合Replicatモードを無効にします。このコマンドは、強制的にReplicatグループを削除する場合にのみ使用します。UNREGISTER REPLICATは、先にReplicatを停止してからDELETE REPLICATコマンドを発行する、通常の方法でReplicatを削除するときには使用しないでください。

このコマンドを発行する前に、dbms_goldengate_auth.grant_admin_privilegeを介して付与された権限を持つReplicatデータベース・ユーザーとして、DBLOGINコマンドを発行します。

統合Replicatの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

構文

UNREGISTER REPLICAT group_name DATABASE

group_name

1つのReplicatグループ名、または複数のグループを指定するワイルドカード(*)。たとえば、「T*」と指定すると、名前がTから始まるすべてのReplicatグループが登録解除されます。

DATABASE

ターゲット・データベースから登録解除するための必須のキーワード。このReplicatに関連するデータベース・インバウンド・サーバーを削除します。

例

UNREGISTER REPLICAT sales DATABASE

1.36 ER

ERコマンドでは、複数のExtractおよびReplicatグループを1つのユニットとして制御します。ワイルドカードとともに使用して、その条件を満たすすべてのExtractおよびReplicatグループにコマンドを適用します。

構文

COMMAND ER wildcard_specification

COMMAND

次のいずれかを指定できます。

INFO
KILL
LAG
SEND
START
STATS
STATUS
STOP

説明とオプションのドキュメント。コマンド・カテゴリのリストは、Oracle GoldenGateコマンドの概要を参照してください。

ER

コマンドがExtract (E)およびReplicat (R)の両方に適用されることを示す必須のキーワード。

wildcard_specification

コマンドを適用するグループのワイルドカード指定。Oracle GoldenGateは、自動的に内部記憶域を拡大し、最大で100,000のワイルドカード・エントリを追跡します。

例

次の例では、名前にXが含まれるExtractおよびReplicatグループを起動した後、このグループを停止します。

START ER *X*
STOP ER *X*

1.37 CREATE WALLET

CREATE WALLETコマンドでは、master-key walletを作成します。このウォレットは、Oracle GoldenGateプロセスにより使用され、ネットワーク経由、トレイル・ファイル内および機密データを格納するその他のOracle GoldenGateファイルのデータを保護する、暗号化鍵を暗号化するマスター・キーを格納します。

このコマンドは、GGSCIセッションの間、開いたままの空のウォレットを作成します。GGSCIコンソールには、次のようなメッセージが返され、ウォレットが存在し開いていることが示されます。

Created wallet at location './dirwlt'.
Opened wallet at location './dirwlt'.

ウォレットはautologinウォレット(ファイルの拡張子.sso)として作成され、必要な復号化パスワードを指定するための人の介在を必要としない、Oracle GoldenGateプロセスの自動再起動をサポートします。ウォレット・ファイルはGLOBALSパラメータWALLETLOCATIONで指定したディレクトリ(存在する場合)に作成され、存在しない場合には、デフォルトの場所であるOracle GoldenGateのインストール・ディレクトリのdirwltに作成されます。

ウォレットはプラットフォームに依存しない形式です。Oracle GoldenGate環境のすべてのシステムからアクセス可能な共有ファイル・システムに格納されるか、それらのすべてのシステムに、最初およびマスター・キーが変更されるたびにコピーされる必要があります。

ウォレットはOracle GoldenGate内で永続的ですが、必要になった場合、オペレーティング・システムの適切なコマンドで手動で削除することができます。

ウォレットとマスター・キーの使用は、iSeries、z/OSおよびNonStopプラットフォームではサポートされません。

マスター・キーの値のウォレットへの追加は、ADD MASTERKEYを参照してください。

構文

CREATE WALLET

1.38 OPEN WALLET

OPEN WALLETコマンドでは、マスター・キー・ウォレットを開きます。ウォレットを開くことでコンテンツを復号化し、GGSCIメモリーにロードします。このコマンドは、ウォレット内のマスター・キーを追加、更新、または削除するコマンドを使用する前に使用する必要があります。

GGSCIセッションの残りの時間、ウォレットは開いたままです。開くウォレットの名前は、GLOBALSパラメータWALLETLOCATIONから取得され(存在する場合)、存在しない場合には、Oracle GoldenGateのインストール・ディレクトリのデフォルトの場所で開かれます。

ウォレットとマスター・キーの使用は、iSeries、z/OSおよびNonStopプラットフォームではサポートされません。

構文

OPEN WALLET

1.39 PURGE WALLET

PURGE WALLETコマンドでは、マスター・キー・ウォレットからマスター・キー・バージョンを恒久的に削除します。DELETE MASTERKEYコマンドで削除用にマークされたバージョンだけが削除されます。パージは元に戻せません。

注意:

Oracle GoldenGateの共有ウォレットを使用したデプロイの場合、マスター・キーの古いバージョンは、マスター・キーが更新された後、すべてのプロセスが最新バージョンを使用するまで保持される必要があります。待機する時間は、トポロジ、レイテンシ、およびデプロイのデータ・ロードにより異なります。24時間の最小の待機時間は控えめな見積りですが、すべてのプロセスが新しい鍵の使用を開始するのにかかる時間を決定するには、テストを実行する必要がある場合があります。すべてのプロセスが最新バージョンを使用しているかどうかを判定するには、マスター・キーの更新後すぐに各Extractのレポート・ファイルを表示して、古い鍵でマイニングされた最後のSCNを確認します。次に、Replicatレポート・ファイルを監視し、このSCNがすべてのReplicatグループにより適用されたことを確認します。この時点で、マスター・キーの旧バージョンを削除できます。

このコマンド、またはウォレット内のマスター・キーを追加、更新、または削除するコマンドを使用する前にOPEN WALLETコマンドを使用する必要があります。

共有記憶域に一元的に保持されないウォレットのパージ後は、パージされた鍵が構成に残らないように、このウォレットを使用するOracle GoldenGate構成内のすべての他のシステムに更新されたウォレットをコピーできます。これを行う前に、Extractを停止して、すべてのダウンストリームOracle GoldenGateプロセスにトレイルの処理の終了を許可してから停止する必要があります。ウォレットが所定の場所にコピーされた後、プロセスを再開できます。手順の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

ウォレットとマスター・キーの使用は、iSeries、z/OSおよびNonStopプラットフォームではサポートされません。

構文

PURGE WALLET

1.40 ADD MASTERKEY

ADD MASTERKEYコマンドでは、マスター・キーをマスター・キー・ウォレットに追加します。ExtractおよびReplicatで使用されるマスター・キーは、ネットワーク経由で送信されるデータやトレイル・ファイル内のデータを保護する暗号化鍵を暗号化し、これらのキーをダウンストリーム・プロセスに送信および使用できるようにします。マスター・キーにより、実際にデータを暗号化するキーがウォレット記憶域を使用する必要がなくなります。

マスター・キー・ウォレットを開いて、キーを追加する必要があります。CREATE WALLETまたはOPEN WALLETコマンドを使用してウォレットを開きます。ウォレットはコマンドが発行されたセッションと同じGGSCIセッションの間は開かれたままです。

マスター・キーはランダムなビットの連続として生成されます。デフォルトの長さは256ビットです。鍵の名前はOGG_DEFAULT_MASTERKEYです。

このコマンドが正常に完了すると、次のようなメッセージが返されます。

Masterkey 'OGG_DEFAULT_MASTERKEY' added to wallet at location './dirwlt'.

マスター・キーが共有記憶域に一元的に保持されないウォレットに追加された後は、このウォレットを使用するOracle GoldenGate構成内のすべての他のシステムに更新されたウォレットをコピーできます。これを行う前に、Extractを停止して、すべてのダウンストリームOracle GoldenGateプロセスにトレイルの処理の終了を許可してから停止する必要があります。ウォレットが所定の場所にコピーされた後、プロセスを再開できます。手順の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

ウォレットとマスター・キーの使用は、iSeries、z/OSおよびNonStopプラットフォームではサポートされません。

構文

ADD MASTERKEY

例

この例では、新しいマスター・キーを作成します。

ADD MASTERKEY

1.41 INFO MASTERKEY

INFO MASTERKEYコマンドでは、現在開いているマスター・キーウォレットの内容を表示します。デフォルトの出力では、マスター・キーのバージョン履歴、バージョンの作成日およびステータスが表示されます。ステータスは次のいずれかです。

- Current: マスター・キーのアクティブなバージョンであることを示します。

- Available: 現在のバージョンではありませんが、必要な場合にはアクティブにできることを示します。

- Deleted: PURGE WALLETコマンドが発行されると削除されるバージョンとしてマークされていることを示します。

ウォレットとマスター・キーの使用は、iSeries、z/OSおよびNonStopプラットフォームではサポートされません。

構文

INFO MASTERKEY [VERSION version]

VERSION version

マスター・キーの特定のバージョンの詳細を示します。出力には、元の作成日、最新の更新日、ステータス、およびAES (Advanced Encryption Standard)鍵のハッシュが含まれます。

例

例1

次に、オプションなしのデフォルトの入力の例を示します。

INFO MASTERKEY

Masterkey Name:                 OGG_DEFAULT_MASTERKEY
Creation Date:                  Mon Aug 27 10:00:40 2012
Version:        Creation Date:                  Status:
1               Mon Aug 27 10:00:40 2012        Deleted
2               Mon Aug 27 10:00:46 2012        Available
3               Mon Aug 27 10:02:58 2012        Deleted
4               Mon Aug 27 10:03:02 2012        Deleted5               Mon Aug 27 10:03:05 2012        Deleted
6               Mon Aug 27 10:03:09 2012        Available
7               Mon Aug 27 10:03:16 2012        Current

例2

次にVERSIONを指定したINFO MASTERKEYの結果例を示します。出力の「Current」ステータスは、バージョン7がアクティブなバージョンであることを示します。

INFO MASTERKEY VERSION 7

Masterkey Name:                 OGG_DEFAULT_MASTERKEY
Creation Date:                  Mon Aug 27 10:00:40 2012
Version:                        7
Renew Date:                     Mon Aug 27 10:03:16 2012
Status:                         Current
Key Hash (SHA1):                0xC65ADFA1CF42F9DB2CED3BC39A53F661CDED3304

1.42 RENEW MASTERKEY

RENEW MASTERKEYコマンドでは、新しいバージョンのマスター暗号化鍵をマスター・キー・ウォレットに作成します。鍵の名前は同じですが、ビットの順序は異なります。マスター・キーのすべてのバージョンは、DELETE MASTERKEYコマンドで削除用にマークされてウォレットがPURGE WALLETコマンドでパージされるまで、ウォレット内に保持されます。

このコマンド、またはマスター・キーを追加や削除、あるいはウォレットをパージするコマンドを使用する前にOPEN WALLETコマンドを使用する必要があります。

次のようなメッセージは、コマンドが成功したことを示します。

Masterkey 'OGG_DEFAULT_MASTERKEY' renewed to version 2 in wallet at location './dirwlt'.

共有記憶域に一元的に保持されないウォレットのマスター・キーが更新された後は、このウォレットを使用するOracle GoldenGate構成内のすべての他のシステムに更新されたウォレットをコピーできます。これを行う前に、Extractを停止して、すべてのダウンストリームOracle GoldenGateプロセスにトレイルの処理の終了を許可してから停止する必要があります。ウォレットが所定の場所にコピーされた後、プロセスを再開できます。手順の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

ウォレットとマスター・キーの使用は、iSeries、z/OSおよびNonStopプラットフォームではサポートされません。

構文

RENEW MASTERKEY

例

この例では、マスター・キーの新しいバージョンを作成します。

RENEW MASTERKEY

1.43 DELETE MASTERKEY

DELETE MASTERKEYコマンドでは、マスター・キーのバージョンを削除用にマークします。マスター・キーの古いバージョンを定期的に削除することで、そのようなバージョンを不正に使用できなくなります。

このコマンド、またはマスター・キーを追加や更新、あるいはウォレットをパージするコマンドを使用する前にOPEN WALLETコマンドを使用する必要があります。

マスター・キーのバージョンを確認するには、INFO MASTERKEYコマンドを使用します。

このコマンドは、バージョンを削除用にマークしますが、物理的にウォレットから削除はしません。マスター・キーのバージョンを恒久的に削除するには、PURGE WALLETを参照してください。

注意:

Oracle GoldenGateの共有ウォレットを使用したデプロイの場合、マスター・キーの古いバージョンは、マスター・キーが更新された後、すべてのプロセスが最新バージョンを使用するまで保持される必要があります。待機する時間は、トポロジ、レイテンシ、およびデプロイのデータ・ロードにより異なります。24時間の最小の待機時間は控えめな見積りですが、すべてのプロセスが新しい鍵の使用を開始するのにかかる時間を決定するには、テストを実行する必要がある場合があります。すべてのプロセスが最新バージョンを使用しているかどうかを判定するには、マスター・キーの更新後すぐに各Extractのレポート・ファイルを表示して、古い鍵でマイニングされた最後のSCNを確認します。次に、Replicatレポート・ファイルを監視し、このSCNがすべてのReplicatグループにより適用されたことを確認します。この時点で、マスター・キーの旧バージョンを削除できます。

DELETE MASTERKEYによる削除を取り消すには、UNDELETE MASTERKEYを参照してください。

バージョン番号が使用されると、ウォレットはそれを永久に保持し、同じバージョンの別の鍵が生成されることはありません。たとえば、バージョン2の鍵を削除用にマークできず、それを削除するためにウォレットをパージし、RENEW MASTERKEYを発行してバージョン2を再度追加します。バージョン1の鍵だけはパージ後もウォレットに残っていますが、新しく生成されるのは、バージョン2ではなくバージョン3です。

ウォレットとマスター・キーの使用は、iSeries、z/OSおよびNonStopプラットフォームではサポートされません。

構文

DELETE MASTERKEY
{VERSION version | RANGE FROM begin_value TO end_value | ALL}

VERSION version

削除用にマークする1つのバージョンを指定します。

RANGE FROM begin_value TO end_value

削除用にマークするバージョンの範囲を指定します。バージョンは連続している必要があります。たとえば、RANGE FROM 3 TO 6と指定すると、バージョン3、4、5および6がマークされます。

ALL

現在アクティブなバージョンを含む、マスター・キーのすべてのバージョンを削除用にマークします。このオプションを使用する場合、RENEW MASTERKEYコマンドを続けて、マスター・キーの新しい現在のバージョンを作成する必要があります。

例

例1

このコマンドは、マスター・キーのあるバージョンを削除用にマークし、示されているようなメッセージを返します。

DELETE MASTERKEY VERSION 10
Version 10 of Masterkey 'OGG_DEFAULT_MASTERKEY' deleted from wallet at location './dirwlt'.

例2

このコマンドは、バージョン3、4、5および6を削除用にマークし、示されているようなメッセージを返します。

DELETE MASTERKEY RANGE FROM 3 TO 6

Version 3 of Masterkey 'OGG_DEFAULT_MASTERKEY' deleted from wallet at location './dirwlt'.
Version 4 of Masterkey 'OGG_DEFAULT_MASTERKEY' deleted from wallet at location './dirwlt'.
Version 5 of Masterkey 'OGG_DEFAULT_MASTERKEY' deleted from wallet at location './dirwlt'.
Version 6 of Masterkey 'OGG_DEFAULT_MASTERKEY' deleted from wallet at location './dirwlt'.

1.44 UNDELETE MASTERKEY

UNDELETE MASTERKEYコマンドでは、マスター・キーのバージョンの削除マークを解除します。これによりPURGE WALLETコマンドが使用されてもそのバージョンは保持されます。UNDELETE MASTERKEYコマンドごとに、1つのバージョンのみマークを解除できます。マスター・キーのバージョンを削除用にマークするには、DELETE MASTERKEYを参照してください。

このコマンド、またはウォレット内のマスター・キーを追加、更新、または削除するコマンドを使用する前にOPEN WALLETコマンドを使用する必要があります。

ウォレットとマスター・キーの使用は、iSeries、z/OSおよびNonStopプラットフォームではサポートされません。

構文

UNDELETE MASTERKEY VERSION version

VERSION version

削除用のマークを解除するバージョン。

例

このコマンドは、マスター・キーのバージョン3の削除用マークを解除し、示されているようなメッセージを返します。

UNDELETE MASTERKEY VERSION 3
Version 3 of Masterkey 'OGG_DEFAULT_MASTERKEY' undeleted from wallet at location './dirwlt'.

1.45 ADD CREDENTIALSTORE

ADD CREDENTIALSTOREコマンドでは、資格証明ストアを作成します。資格証明ストアはユーザーIDおよびその暗号化されたパスワード(ともにcredentialsと呼ばれます)を管理します。これらはOracle GoldenGateプロセスにより使用され、ローカル・データベースと対話します。資格証明ストアを使用すると、Oracle GoldenGateのパラメータ・ファイルにユーザー名およびクリアテキスト・パスワードを指定する必要がなくなります。ユーザーIDのかわりにパラメータ・ファイルのオプションの別名を使用して、資格証明ストアのユーザーIDとパスワードのペアにマップすることもできます。

資格証明ストアはOracle Credential Store Framework (CSF)内の自動ログイン・ウォレットとして実装されます。LDAPディレクトリの使用は、Oracle GoldenGate資格証明ストアではサポートされていません。自動ログイン・ウォレットは、必要なパスワードを指定するための人の介在を必要とせず、Oracle GoldenGateプロセスの自動再起動をサポートします。

ADD CREDENTIALSTOREは、GLOBALSファイルのCREDENTIALSTORELOCATIONパラメータに指定した場所(使用されている場合)に、空の資格証明ストアを作成します。そうでなければ、Oracle GoldenGateのインストール・ディレクトリのデフォルトの場所のdircrdに作成します。資格証明ストアは、同じシステムまたは異なるシステムのOracle GoldenGateの複数のインスタンス(インストール)により共有されます。共有される資格証明ストアを共有ファイル・システムに格納し、各GLOBALSパラメータ・ファイルのCREDENTIALSTORELOCATIONパラメータを使用して、各Oracle GoldenGateインスタンスのこの場所を指定します。

Oracle GoldenGateの指定したインスタンスにより、一度に1つの資格証明ストアのみ使用できます。たとえば、/home/ogg/credentialsという名前の資格証明ストアと、/test/ogg/credentialsという名前の資格証明ストアがあっても、Oracle GoldenGateの指定したインスタンスにより、実行時に使用できるのは1つのみです。別の資格証明ストアに切り替わるプロセスを止めることができますが、各GLOBALSパラメータ・ファイルのCREDENTIALSTORELOCATIONパラメータの更新と、必要に応じて別の別名を指定するUSERIDALIASパラメータの変更を確認してください。

資格証明を資格証明ストアに追加するには、ALTER CREDENTIALSTOREを参照してください。

資格証明ストアの使用は、iSeries、z/OSおよびNonStopプラットフォームではサポートされません。

Oracle GoldenGateのセキュリティ・オプションの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

ADD CREDENTIALSTORE

1.46 ALTER CREDENTIALSTORE

ALTER CREDENTIALSTOREコマンドでは、資格証明ストアのユーザーIDとパスワードのペアを管理します。このコマンドにより、資格証明を資格証明ストアに追加することや、ユーザーに別の別名を指定することができます。このコマンドが正常に完了すると、次のようなメッセージが返されます。

Credential store altered.

資格証明ストアの使用は、DBE for i、DB2 z/OSおよびNonStopプラットフォームではサポートされません。

Oracle GoldenGateのセキュリティ・オプションの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

ALTER CREDENTIALSTORE {
ADD USER userid |
REPLACE USER userid |
DELETE USER userid }
[PASSWORD password]
[ALIAS alias]
[DOMAIN domain]

ADD USER userid

指定したユーザーおよびその別名を資格証明ストアに追加します。ALIASオプションを使用しない場合、別名はデフォルトでユーザー名になります。ALIASオプションを指定してそれぞれに別の別名を指定する場合を除き、資格証明は1回だけ入力できます。PASSWORDオプションが使用されている場合を除き、コマンドは指定したユーザーのパスワードを要求します。ユーザーは実際のユーザー名またはSQL*Net接続文字列を使用できます。

REPLACE USER userid

指定したユーザーのパスワードを変更します。ALIASオプションを使用しない場合、別名はデフォルトでユーザー名になります。このオプションを使用してユーザーの別名またはドメインを変更することはできませんが、ADD USERオプションを使用して、必要なALIASまたはDOMAINの下のユーザーに新しいエントリを追加することができます。PASSWORDオプションが使用されている場合を除き、コマンドは指定したユーザーの新しいパスワードを要求します。

DELETE USER userid

指定したユーザーの資格証明を資格証明ストアから削除します。ALIASオプションを使用しない場合、別名はデフォルトでユーザー名になります。

PASSWORD password

ユーザーのパスワードです。このオプションを使用すると、パスワードはエコーされます(不明瞭化されません)。このオプションを省略すると、コマンドはパスワードを要求しますが、入力時に不明瞭化されます(より安全な方法として推奨されます)。

ALTER CREDENTIALSTORE ADD USER scott
Password: ********

ALIAS alias

ユーザー名に対して別名を指定します。ユーザー名をパラメータ・ファイルまたはコマンドに指定したくない場合にはこのオプションを使用します。ALIASを使用しない場合、別名はデフォルトでUSERの名前になり、ログインが必要な場合に、これがパラメータ・ファイルおよびコマンドで使用される必要があります。ADD USERオプションをALIASとともに使用することで、ユーザーに対し、それぞれが異なる別名を含む複数のエントリを作成できます。

DOMAIN domain

指定したドメイン名の下に資格証明ユーザーを保存できます。同じ別名を、同じ資格証明ストアを使用する複数のOracle GoldenGateインストールが使用できるようにします。デフォルト・ドメインはOracle GoldenGateです。たとえば、システム1の管理者が、システム1で使用されるのと同じ資格証明をシステム2にアクセスさせたくない場合があります。このような資格証明は、たとえばDOMAIN system1の下にALIAS extractとして保存できます。一方で異なる資格証明のセットをDOMAIN system2の下のALIAS extractに保存できます。共有資格証明ストアの使用方法の詳細は、ADD CREDENTIALSTOREを参照してください。

例

例1

この例では、ユーザー名scottを追加しますが、PASSWORD指定は省略しているので、コマンドはScottのパスワードを要求します。

ALTER CREDENTIALSTORE ADD USER scott
Password: ********

例2

この例では、ユーザーscottとパスワードtigerを追加し、scsm2という名前の別名をscottに指定します。

ALTER CREDENTIALSTORE ADD USER scott PASSWORD tiger ALIAS scsm2

例3

この例では、ユーザーscottをドメインsupportの下に追加します。

ALTER CREDENTIALSTORE ADD USER scott ALIAS scsm3 DOMAIN support
Password: ********

例4

この例では、2つのALTER CREDENTIALSTOREコマンドを発行し、それぞれはscottエントリを追加しますが、別の別名を含みます。

ALTER CREDENTIALSTORE ADD USER scott ALIAS scsm2
Password: ********
ALTER CREDENTIALSTORE ADD USER scott ALIAS scsm3
Password: ********

例5

次に、DELETE USERオプションの、ALIASオプションがある場合とない場合の動作を示します。

次のコマンドは、ALIASがユーザー名と同じuser1エントリを削除します。

ALTER CREDENTIALSTORE DELETE USER user1
Alias: user1
Userid: user1

次のコマンドは、別名alias1に関連するユーザーuser1のエントリを削除します。

ALTER CREDENTIALSTORE DELETE USER user1 ALIAS alias1
Alias: alias1
Userid: user1

例6

次の例では、ユーザー値としてSQL*Net接続文字列を使用します。この場合、PASSWORDオプションは省略されます。コマンドを発行したユーザーはパスワードを要求されますが不明瞭化されます。

ALTER CREDENTIALSTORE ADD USER oggext1@ora1 ALIAS ora1

1.47 INFO CREDENTIALSTORE

INFO CREDENTIALSTOREコマンドでは、Oracle GoldenGateの資格証明ストアの情報を取得します。この情報には、資格証明ストアに含まれる別名や、それに対応するユーザーIDが含まれます。資格証明ストア内の暗号化されたパスワードは返されません。

資格証明ストアの場所は、GLOBALSファイルのCREDENTIALSTORELOCATIONパラメータ(存在する場合)、または存在しない場合は、デフォルトの場所であるOracle GoldenGateのインストール・ディレクトリのdircrdで識別されます

資格証明ストアの使用は、iSeries、z/OSおよびNonStopプラットフォームではサポートされません。

Oracle GoldenGateのセキュリティ・オプションの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

INFO CREDENTIALSTORE [DOMAIN domain]

DOMAIN domain

指定したドメインに対する別名およびユーザーIDが返されます。セキュリティ上の目的で、DOMAINオプションを省略すると、OracleGoldenGateのデフォルト・ドメインの下の別名およびユーザーIDのみが表示されます。INFO CREDENTIALSTOREコマンドを発行するユーザーがドメインの名前を知っている場合を除き、DOMAIN資格証明を表示することはできません。ドメインの詳細は、ALTER CREDENTIALSTOREを参照してください。

例

例1

次に、INFO CREDENTIALSTOREのデフォルトの出力例を示します。

INFO CREDENTIALSTORE
Domain: OracleGoldenGate
Alias: support1
Userid: scott
Alias: sales1
Userid: scott

例2

次に、DOMAINを使用した場合の出力例を示します。

INFO CREDENTIALSTORE DOMAIN support
Domain: Support
Alias: support1
Userid: scott

1.48 DELETE CREDENTIALSTORE

DELETE CREDENTIALSTOREコマンドでは、資格証明ストアをシステムから削除します。資格証明ストア・ウォレットとその内容は恒久的に削除されます。

資格証明ストアの使用は、iSeries、z/OSおよびNonStopプラットフォームではサポートされません。

Oracle GoldenGateのセキュリティ・オプションの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

DELETE CREDENTIALSTORE

1.49 ADD EXTTRAIL

ADD EXTTRAILでは、ローカル・システム上にオンライン処理用のトレイルを作成し、次のことも行います。

- このトレイルにExtractグループを関連付ける

- 最大ファイル・サイズを指定する

構文

ADD EXTTRAIL trail_name, EXTRACT group_name
[, MEGABYTES n]
[SEQNO n]

trail_name

トレイルの相対パス名または完全修飾パス名。トレイル名に含められる文字数は2文字のみです。Oracle GoldenGateは、新しいファイルが作成されるたびに、この名前に9桁の順序番号を追加します。たとえば、名前がdirdat/trのトレイルのファイル名は、dirdat/tr000000001、dirdat/tr000000002のようになります。

group_name

トレイルに関連付けるExtractグループ名。1つのトレイルにデータを書き込めるのは、1つのExtractプロセスのみです。

MEGABYTES n

トレイル内のファイルの最大サイズ(MB)。デフォルトは500です。

SEQNO n

トレイル内の最初のファイルのトレイル順序番号を、指定した数字から開始させます。先行ゼロは付けないようにしてください。たとえば、trという名前のトレイルを3番から開始するには、SEQNO 3と指定します。実際のファイル名は、/ggs/dirdat/tr000003になります。このオプションは、トラブルシューティングのために、Replicatの読取り位置を特定の順序番号のトレイルに変更する必要があるときに使用できます。これにより、所定の順序番号を読み取るようにReplicatの設定を変更する必要がなくなります。

例

例1

ADD EXTTRAIL dirdat\aa, EXTRACT finance, MEGABYTES 200

例2

ADD EXTTRAIL /ggs/dirdat/tr000000003

1.50 ADD RMTTRAIL

ADD RMTTRAILでは、リモート・システム上にオンライン処理用のトレイルを作成し、次のことも行います。

- 最大ファイル・サイズを指定する

- このトレイルにExtractグループを関連付ける

パラメータ・ファイルでは、リモート・システムおよびManagerプロセス用のTCP/IPポートを識別するために、RMTTRAILエントリの前にRMTHOSTエントリを指定します。

注意:

証跡暗号化の要件により、RMTTRAILのサイズ(ターゲット証跡)は、EXTTRAILのサイズ(ソース証跡)以上(<=)であることが必要です。

構文

ADD RMTTRAIL trail_name, EXTRACT group_name
[, MEGABYTES n]
[, SEQNO n]

trail_name

トレイルの相対パス名または完全修飾パス名。実際のトレイル名に含められる文字数は2文字のみです。Oracle GoldenGateは、新しいファイルが作成されるたびに、この名前に9桁の順序番号を追加します。たとえば、名前が./dirdat/trのトレイルのファイル名は、./dirdat/tr000000001、./dirdat/tr000000002のようになります。

group_name

トレイルに関連付けるExtractグループ名。データをリモート証跡に書き込めるのは、1つのプライマリExtractプロセスのみです。

MEGABYTES n

トレイル内のファイルの最大サイズ(MB)。デフォルトは500です。

SEQNO n

トレイル内の最初のファイルのトレイル順序番号を、指定した数字から開始させます。先行ゼロは付けないようにしてください。たとえば、trという名前のトレイルを3番から開始するには、SEQNO 3と指定します。実際のファイル名は、/ggs/dirdat/tr000000003になります。このオプションは、トラブルシューティングのために、Replicatの読取り位置を特定の順序番号のトレイルに変更する必要があるときに使用できます。これにより、所定の順序番号を読み取るようにReplicatの設定を変更する必要がなくなります。

例

例1

ADD RMTTRAIL dirdat\aa, EXTRACT finance, MEGABYTES 200

例2

ADD RMTTRAIL /ggs/dirdat/tr000003

1.51 ALTER EXTTRAIL

ALTER EXTTRAILでは、ADD EXTTRAILコマンドで作成した(ローカル・システム上の)トレイルの属性を変更します。この変更は、次にExtractを起動するときに有効になります。

構文

ALTER EXTTRAIL trail_name, EXTRACT group_name
[, MEGABYTES n]

trail_name

トレイルの相対パス名または完全修飾パス名。例: dirdat\aa

group_name

トレイルに関連付けるExtractグループ名。

MEGABYTES n

ファイルの最大サイズ(MB)。デフォルトは500です。このオプションの使用後、ROLLOVERオプションを指定してSEND EXTRACTコマンドを発行し、現在のファイルを閉じて新しいファイルを開きます。

例

ALTER EXTTRAIL dirdat\aa, EXTRACT finance,  MEGABYTES 200

1.52 ALTER RMTTRAIL

ALTER RMTTRAILでは、ADD RMTTRAILコマンドで作成した(リモート・システム上の)トレイルの属性を変更します。この変更は、次にExtractを起動するときに有効になります。

構文

ALTER RMTTRAIL trail_name, EXTRACT group_name
[, MEGABYTES n]

trail_name

トレイルの相対パス名または完全修飾パス名。例: dirdat\aa。

group_name

トレイルに関連付けるExtractグループ名。

MEGABYTES n

ファイルの最大サイズ(MB)。デフォルトは500です。このオプションの使用後、ROLLOVERオプションを指定してSEND EXTRACTコマンドを発行し、現在のファイルを閉じて新しいファイルを開きます。

例

ALTER RMTTRAIL dirdat\aa, EXTRACT finance,  MEGABYTES 200

1.53 DELETE EXTTRAIL

DELETE EXTTRAILでは、ローカル・システム上のトレイルに関連付けられているチェックポイント・レコードを削除します。チェックポイントは、Oracle GoldenGateディレクトリのdirchkサブディレクトリにある、グループと同じ名前のファイルに保持されています。

このコマンドでは、指定したトレイルに対するチェックポイント・ファイルからの参照のみが削除されます。トレイル・ファイル自体は削除されません。トレイル・ファイルを削除するには、オペレーティング・システムの標準のファイル削除コマンドを使用してください。

チェックポイントの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

DELETE EXTTRAIL trail_name

trail_name

2文字の接頭辞を含むトレイルの相対パス名または完全修飾パス名。

例

DELETE EXTTRAIL dirdat/et

1.54 DELETE RMTTRAIL

DELETE RMTTRAILでは、リモート・システム上のトレイルに関連付けられているチェックポイントのレコードを削除します。チェックポイントは、Oracle GoldenGateディレクトリのdirchkサブディレクトリにある、グループと同じ名前のファイルに保持されています。

このコマンドでは、指定したトレイルに対するチェックポイント・ファイルからの参照のみが削除されます。トレイル・ファイル自体は削除されません。トレイル・ファイルを削除するには、オペレーティング・システムの標準のファイル削除コマンドを使用してください。

チェックポイントの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

DELETE RMTTRAIL trail_name[,EXTRACT group_name}

trail_name

2文字の接頭辞を含むトレイルの相対パス名または完全修飾パス名。

group_name

トレイルに関連付けるExtractグループ名。指定しない場合、DELETE RMTTRAILは指定したトレイルに書き込むすべてのExtractグループからトレイル・リファレンスを削除します。

例

DELETE RMTTRAIL dirdat/et

1.55 INFO EXTTRAIL

INFO EXTTRAILでは、ローカル・トレイルの構成情報を取得します。トレイル名、書込み元のExtract、最新のデータ処理位置、割り当てられた最大ファイル・サイズが表示されます。

構文

INFO EXTTRAIL trail_name

trail_name

トレイルの相対パス名または完全修飾パス名、または複数のトレイルを指定するワイルドカード。

例

例1

INFO EXTTRAIL dirdat\aa

例2

INFO EXTTRAIL *

例3

次に、INFO EXTTRAILの出力例を示します。

Extract Trail: c:\gg_81\dirdat\md
Extract: GGSEXT8
Seqno: 2
RBA: 51080
File Size: 100M

1.56 INFO RMTTRAIL

INFO RMTTRAILでは、リモート・トレイルの構成情報を取得します。トレイル名、書込み元のExtract、最新のデータ処理位置、割り当てられた最大ファイル・サイズが表示されます。

構文

INFO RMTTRAIL trail_name

trail_name

トレイルの相対パス名または完全修飾パス名、または複数のトレイルを指定するワイルドカード。

例

例1

INFO RMTTRAIL dirdat\aa

例2

INFO RMTTRAIL *

例3

次に、INFO RMTTRAILの出力例を示します。

Extract Trail: /ogg/dirdat/aa
Seqno Length: 9
Flip Seqno Length: no
Extract: OGGPMP
Seqno: 4
RBA: 78066
File Size: 500M

1.57 VIEW PARAMS

VIEW PARAMSでは、パラメータ・ファイルの内容を表示します。

注意:

ローカル・オペレーティング・システムのキャラクタ・セット以外のキャラクタ・セットのパラメータ・ファイル(異なるキャラクタ・セットを指定するためにCHARSETオプションを使用したものなど)を表示するために、このコマンドを使用しないでください。内容が破損する可能性があります。GGSCI外部からパラメータ・ファイルを表示してください。

構文

VIEW PARAMS {MGR | group_name | file_name}

MGR

Managerパラメータ・ファイルを表示します。

group_name

指定したExtractまたはReplicatグループのパラメータ・ファイルを表示します。

file_name

指定したファイルを表示します。パスが指定されていない場合、デフォルトでは、サブディレクトリdirprmが使用されます。パラメータ・ファイルがdirprm以外のディレクトリに存在する場合、完全パス名を指定します。

例

例1

VIEW PARAMS finance

例2

VIEW PARAMS c:\lpparms\replp.prm

1.58 EDIT PARAMS

EDIT PARAMSでは、パラメータ・ファイルを作成または変更します。デフォルトでは、このコマンドによってWindowsシステムのメモ帳またはUNIXシステムのviエディタが起動されます。エディタを変更するには、SET EDITORコマンドを使用します。

注意:

ローカル・オペレーティング・システムのキャラクタ・セット以外のキャラクタ・セットの、既存のパラメータ・ファイル(異なるキャラクタ・セットを指定するためにCHARSETオプションを使用したものなど)を表示または編集するために、このコマンドを使用しないでください。内容が破損する可能性があります。GGSCI外部からパラメータ・ファイルを表示してください。

パラメータ・ファイルの使用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

EDIT PARAMS {MGR | group_name | file_name}

MGR

Managerプロセスのパラメータ・ファイルを開きます。

group_name

指定したExtractまたはReplicatグループのパラメータ・ファイルを開きます。

file_name

指定したファイルを開きます。GGSCIのEDIT PARAMSを使用してパラメータ・ファイルを作成すると、Oracle GoldenGateディレクトリのdirprmサブディレクトリに保存されます。完全パス名を指定することによって、dirprm以外のディレクトリにパラメータ・ファイルを作成することもできますが、プロセス・グループの作成時に、ADD EXTRACTまたはADD REPLICATコマンドのPARAMSオプションを使用して、完全パス名を指定する必要があります。

例

例1

EDIT PARAMS finance

例2

EDIT PARAMS c:\lpparms\replp.prm

1.59 SET EDITOR

SET EDITORでは、現在のGGSCIセッションのデフォルト・テキスト・エディタを変更します。Windowsのデフォルト・エディタはメモ帳、UNIXはviです。パラメータ・ファイルを作成するためなどのGGSCI入力では、ローカル・オペレーティング・システムのキャラクタ・セットを取得します。

構文

SET EDITOR program_name

program_name

任意のテキスト・エディタ。

例

次の例では、デフォルト・エディタをワードパッドに変更します。

SET EDITOR wordpad

1.60 INFO PARAM

INFO PARAMでは、パラメータ定義情報を取得します。名前が複数のレコードに一致した場合、一致したレコードがすべて表示されます。問合せパラメータに子オプションがある場合、各子オプションの名前が「Options」タブにリストされていても、出力には表示されません。オプションのレコード全体を表示するには、parameter.optionという形式の完全名を個別に問い合せる必要があります。

このパラメータ・インフラストラクチャでは、レベル制限なしでオプションを指定できます。このため、パラメータまたはオプションの完全名は複数のセグメントで構成される場合があります(例: A.B.C.D)。

構文

INFO PARAM name

name

パラメータ名、オプション名、またはドット('.')をデリミタとして結合された複数の名前からなる完全名。次のサンプル名は有効です。

- STREAMING

- RMTHOST.STREAMING

- RMTHOST

- RMTHOSTOPTIONS.STREAMING

- TRANLOGOPTIONS.INTEGRATEDPARAM.EAGER_SIZE

この一連のサンプル名を使用した照合では、STREAMINGがRMTHOSTとRMTHOSTOPTIONSの両方のオプションとして一致します。

例

INFO PARAM RMTHOST

1.61 GETPARAMINFO

GETPARAMINFOでは、Extract、Replicat、Manageなどの実行中のインスタンスのランタイム・パラメータ値を問い合せます。1つまたはすべてのパラメータを問い合せて、出力をコンソールまたはテキスト・ファイルに送信できます。

構文

SEND MGR | group GETPARAMINFO [parameter_name] [FILE output_file]

group

ExtractまたはReplicatインスタンスの名前、またはMGR。

parameter_name

デフォルト動作では、使用中のすべてのパラメータ、つまりアプリケーションによって問合せされたことがあるパラメータ、パラメータ、およびそれぞれの現在値が表示されます。特定のパラメータを指定した場合、そのパラメータ名で出力がフィルタ処理されます。

FILE output_file

出力のリダイレクト先のテキスト・ファイル名。

例

例1

この例では、1つのパラメータが表示されます。

SEND MGR GETPARAMINFO PORT

例2

この例では、パラメータ・ファイルからReplicat rep1にロードされたすべてのパラメータと、rep1がアクセスしているパラメータが表示されます。

SEND REPL GETPARAMINFO

例3

次の例では、出力をファイルにリダイレクトします。

SEND MGR GETPARAMINFO FILE mgrfile.out

1.62 DBLOGIN

DBLOGINでは、データベースを操作する他のOracle GoldenGateコマンドの発行準備として、データベースへのGGSCI経由の接続を確立します。DBLOGINを発行するユーザーは、これらのコマンドによって成立する機能を実行するための適切なデータベース権限を持っている必要があります。GGSCIコマンドに必要なその他の特別な権限は、そのコマンドのリファレンス・ドキュメントでリストされています。

統合モードでExtractまたはReplicatを構成する場合の要件(Oracle)

DBLOGINを使用してADD EXTRACT、ALTER EXTRACTまたはREGISTER EXTRACTを発行し、統合キャプチャを開始する、またはADD REPLICAT、ALTER REPLICATまたはREGISTER REPLICATを発行し、Oracleデータベースに対して統合Replicatを開始する場合、DBLOGINを発行するユーザーは、次を満たす必要があります。

- Oracle dbms_goldengate_auth.grant_admin_privilegeプロシージャを使用して付与された権限がある。

- ExtractまたはReplicatが統合モードである間は変更されない。

クラシック・キャプチャ・モードでログ保持を使用するための特別なデータベース権限

Oracleデータベースのクラシック・キャプチャ・モードの場合、Extractはログ保持機能をサポートし、それによりデータベースはExtractが必要とするログを保持します。(クラシック・キャプチャの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。)ログ保持機能を有効にするには、REGISTER EXTRACTをLOGRETENTIONオプションで使用する前に、DBLOGINを特別な権限で発行する必要があります。Oracle GoldenGateのインストール時に適切な権限がユーザーに付与されている場合、簡単にするために、Extractデータベース・ユーザーとしてログインできます。それ以外の場合は、表1-17に示す権限を持つユーザーとしてログインします。

表1-17 ログ保持のためのOracleの権限

Oracle EEのバージョン

権限の付与方法

11.1および11.2.0.1

1. パッケージを実行してOracle GoldenGateの管理権限を付与します。

exec dbms_streams_auth.grant_admin_privilege('user')

2. become user権限を付与します。

grant become user to user;

11.2.0.2以降

パッケージを実行してOracle GoldenGateの管理権限を付与します。

exec dbms_goldengate_auth.grant_admin_privilege('user')

構文

DBLOGIN {
[SOURCEDB data_source] |
[, database@host:port] |
USERID {/ | userid}[, PASSWORD password]
[algorithm ENCRYPTKEY {keyname | DEFAULT}] |
USERIDALIAS alias [DOMAIN domain] |
[SYSDBA | SQLID sqlid]
[SESSIONCHARSET character_set]
}

SOURCEDB data_source

SOURCEDBは、データ・ソース名を指定します。このオプションは、次のいずれかを識別するために必要です。

- Sybase、MySQL、およびODBCを使用するデータベース用のソースまたはターゲットのログイン・データベース

- ソースまたはターゲットのSQL/MXカタログ

database@host:port

(MySQL) データベース名、ホスト名およびデータベース・ポート番号を含む接続文字列を指定します。データベース構成で指定されているデフォルト以外のポートを指定するのに使用できます。

USERID

必要に応じてデータベース・ログイン資格証明を指定します。Oracle GoldenGateの資格証明ストアが使用されない場合に使用できます。(USERIDALIASオプションを参照してください。)次のように、データベースによって入力は異なります。

userid

データベース構成に応じて、データベース・ユーザーまたはスキーマの名前を指定します。Oracleの場合は、SQL*Net接続文字列を使用できます。Oracleマルチテナント・コンテナ・データベースのプラガブル・データベースにログインするには、useridを接続文字列として指定します(OGGUSER@FINANCEなど)。ルート・コンテナにログインするには、C##接頭辞を含む、useridを共通ユーザーとして指定します(C##GGADMIN@FINANCEなど)。

/

(Oracle)データベース・ユーザー・ログインではなく、Oracle用のオペレーティングシステム・ログインを使用するようにOracle GoldenGateに指示します。この引数は、データベースによってオペレーティングシステム・レベルでの認証が許可されている場合にのみ使用します。このオプションを使用するには、Oracle OS_AUTHENT_PREFIX初期化パラメータの値との関連で、正しいユーザー名がデータベースに存在している必要があります。詳細は、USERID | NOUSERIDパラメータを参照してください。

PASSWORD password

データベース・ユーザーのパスワードを指定するために認証が必要な場合に使用します。パスワードがENCRYPT PASSWORDコマンドによって暗号化されている場合は、暗号化されたパスワードを指定します。それ以外の場合は、クリアテキストのパスワードを指定します。パスワードに大/小文字の区別がある場合は、そのように入力してください。

PASSWORD句を省略すると、パスワードの入力が求められ、パスワードはエコーされません。

algorithm

ENCRYPT PASSWORDコマンドを使用してパスワードが暗号化された場合、使用した暗号化アルゴリズムを次の中から指定します。

AES128

AES192

AES256

BLOWFISH

ENCRYPTKEY {keyname | DEFAULT}

ENCRYPT PASSWORDコマンドで指定した暗号化鍵を指定します。次のいずれかを使用します。

ENCRYPTKEY keyname

ENCKEYS参照ファイル内のユーザー作成の暗号化鍵の論理名を指定します。ENCRYPT PASSWORDをKEYNAME keynameオプションとともに使用した場合に使用します。

ENCRYPTKEY DEFAULT

Blowfish鍵を生成するようにOracle GoldenGateに指示します。ENCRYPT PASSWORDコマンドがKEYNAME DEFAULTオプションとともに使用された場合に使用します。

USERIDALIAS alias [DOMAIN domain]
必要に応じてデータベース・ログイン資格証明を指定します。このDBLOGINコマンドに必要な権限を持つ資格証明を含むローカルOracle GoldenGate資格証明ストアがある場合に、USERIDオプションのかわりに使用できます。資格証明ストアの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

alias

Oracle GoldenGateの資格証明ストアに格納されているデータベース・ユーザー資格証明の別名を指定します。Oracleマルチテナント・コンテナ・データベースのプラガブル・データベースにログインするには、ユーザーは接続文字列として格納されている必要があります(OGGUSER@FINANCEなど)。ルート・コンテナにログインするには、ユーザーはC##接頭辞を含む共通ユーザーとして格納されている必要があります(C##GGADMIN@FINANCEなど)。CDB用のOracle GoldenGateの構成の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

DOMAIN domain

指定した別名の資格証明ストアのドメインを指定します。有効なドメイン・エントリが指定した別名に対する資格証明ストアに存在する必要があります。

SYSDBA
(Oracle)ユーザーがsysdbaとしてログインするように指定します。このオプションは、USERIDおよびUSERIDALIASに使用できます。

SQLID sqlid
(z/OS上のDB2)USERIDのログインが(該当する場合はPASSWORDを使用して)完了した後に、SQLコマンドSET CURRENT SQLID = 'sqlid'を発行します。SETコマンドが失敗すると、DBLOGINコマンド全体がユニットとして失敗します。

SESSIONCHARSET character_set
(Sybase、TeradataおよびMySQL) GGSCIをデータベースに接続するために、データベース・セッションのキャラクタ・セットを設定します。後続のすべてのコマンドは、指定したセッションのキャラクタ・セットを使用します。このコマンド・オプションは、GLOBALSファイルで指定されるすべてのSESSIONCHARSETより優先されます。

(Sybase) Sybaseデータベースに対してこのオプションを使用したときに、プロセス・レポート・ファイルに言語情報を表示するには、Sybaseインストール・ディレクトリにlocale.datが適切に設定されていることを確認します。サポートされているSybaseデータベース・キャラクタ・セットにキャラクタ・セットが見つからない場合は、Oracle GoldenGateでサポートされるキャラクタ・セット・リストに対して検証されます。キャラクタ・セット情報はレポート出力のLOCALE INFORMATIONエントリに表示されます。DBLOGINコマンドを発行する場合は、言語(LANG)が設定されているかどうかを確認するために、Sybase環境変数が調べられます。言語が設定されていない場合は、Oracle GoldenGateによってUS Englishに自動的に設定されます。

例

例1   (Oracle)

DBLOGIN USERIDALIAS alias1

例2   (Oracle、デフォルト以外のドメインを使用)

DBLOGIN USERIDALIAS alias1 DOMAIN domain1

例3   (Oracle、SYSDBAを使用)

DBLOGIN USERID ogguser@pdb1 SYSDBA password AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC AES128, ENCRYPTKEY securekey1

例4   (MySQL)

DBLOGIN SOURCEDB mysqldb@host1:3305, USERIDALIAS alias1

例5   (MySQL、Sybase)

DBLOGIN SOURCEDB database USERIDALIAS alias1

例6   (Sybase、リモートDBを使用)

DBLOGIN SOURCEDB USERID ogguser@remotedatabase PASSWORD password

例7   (SQL Server、統合Windows認証を使用)

DBLOGIN SOURCEDB systemdsn

例8   (Informix、SQL Server)

DBLOGIN SOURCEDB systemdsn USERIDALIAS alias1

1.63 ENCRYPT PASSWORD

ENCRYPT PASSWORDでは、Oracle GoldenGateパラメータ・ファイルまたはコマンドで使用されるパスワードを暗号化します。

構文

ENCRYPT PASSWORD password
[AES128 | AES192 | AES256 | BLOWFISH]
ENCRYPTKEY {key_name | DEFAULT}

password

ログイン・パスワード。パスワードは引用符で囲みません。パスワードに大/小文字の区別がある場合は、そのように入力してください。

AES128 | AES192 | AES256 | BLOWFISH

使用する暗号化アルゴリズムを指定します。

- AES128の場合、AES-128暗号が使用されます(鍵サイズは128ビットです)。

- AES192の場合、AES-192暗号が使用されます(鍵サイズは192ビットです)。

- AES256の場合、AES-256暗号が使用されます(鍵サイズは256ビットです)。

- BLOWFISHの場合、Blowfish暗号化が使用されます(ブロック・サイズは64ビット、鍵サイズは32から128ビットの可変長です)。BLOWFISHは、以前のOracle GoldenGateバージョンとの下位互換性を維持するためにのみ使用します。

アルゴリズムを指定しない場合、z/OS上のDB2およびNonStop SQL/MX以外のすべてのデータベース・タイプではAES128がデフォルトになり、z/OS上のDB2およびNonStop SQL/MXではBLOWFISHがデフォルトになります。AESはこれらのプラットフォームではサポートされていません。

すべてのAES暗号のブロック・サイズは128ビットです。

Oracle以外のデータベースにAES暗号化を使用するには、プロセスを開始する前に、次のように、環境変数として、Oracle GoldenGateインストール・ディレクトリのlibサブディレクトリのパスを指定する必要があります。

- UNIX: LD_LIBRARY_PATHまたはSHLIB_PATH変数への入力として、パスを指定します。例:

setenv LD_LIBRARY_PATH ./lib:$LD_LIBRARY_PATH

- Windows: PATH変数にパスを追加します。

SETENVパラメータを使用して、プロセスのセッション変数として設定できます。

ENCRYPTKEY {key_name | DEFAULT}

暗号化鍵を指定します。

key_name

ローカルのENCKEYS参照ファイル内のユーザー作成の暗号化鍵の論理名を指定します。鍵の名前は、ENCKEYSファイルにある実際の鍵を参照するために使用されます。ユーザー作成の鍵および関連付けられたENCKEYSファイルは、AES暗号化を使用する際には必須です。Blowfish暗号化の場合はオプションですが、使用することをお薦めします。key_nameを使用するには、KEYGENまたは別のユーティリティを使用して鍵を生成し、それをソースおよびターゲット・システムのENCKEYSファイルに保管します。詳細は、Oracle GoldenGateの管理for Windows and UNIXのセキュリティ・ガイドラインに関する項を参照してください。

DEFAULT

Oracle GoldenGateに、ダウンストリーム・プロセスによって復号化を実行できるようトレイル内に格納されるランダム鍵を生成するように指示します。この鍵のタイプは安全ではないため、本番環境では使用しないでください。このオプションは、BLOWFISHを指定した場合にのみ使用します。DEFAULTがAESアルゴリズムで使用された場合、ENCRYPT PASSWORDはエラーを返します。

例

例1

ENCRYPT PASSWORD ny14072 BLOWFISH ENCRYPTKEY DEFAULT

例2

ENCRYPT PASSWORD ny14072 BLOWFISH ENCRYPTKEY superkey3

例3

ENCRYPT PASSWORD ny14072 AES192 ENCRYPTKEY superkey2

1.64 DUMPDDL

DUMPDDLコマンドでは、トリガー・ベースのDDLキャプチャを使用している場合に、Oracle GoldenGate DDL履歴表のデータを表示します。この情報は、Extractプロセスが使用する情報と同じです。これは固有のフォーマットで保管されていますが、判別可能なフォーマットで画面に、または標準SQLを使用して問合せ可能なSQL表にエクスポートできます。

DUMPDDLは常にDDL履歴表のすべてのレコードをダンプします。特定のオブジェクトおよび操作に関する情報を表示するには、SQL問合せまたは検索を使用して標準出力にリダイレクトします。履歴表には膨大な量のデータが含まれているため、効率的なパフォーマンスを維持するために、各DDL文の最初の約4,000バイトのみが表示されます。メタデータのフォーマットは文字列ベースです。完全にエスケープされており、表名および列名がネイティブなキャラクタ・セットでサポートされています。

この情報は、DDLビフォア・トリガーによって提供される履歴データであるため、DDL変更前のオブジェクトの状態を表します。したがって、CREATE操作のデータはありません。

注意:

このビフォア・トリガーのデフォルト名は、GGS_DDL_TRIGGER_BEFOREです。

DUMPDDLを使用する前に、DBLOGINコマンドを使用して、履歴表の所有者としてデータベースにログインしてください。

基本DUMPDDLコマンドでは、次の表にメタデータを出力します。

表1-18 DUMPDDL表

表

説明

GGS_DDL_OBJECTS

同期されているDDL操作のオブジェクトに関する情報。SEQNOは主キーです。ここで説明する他のすべての表には、GGS_DDL_OBJECTSに対する外部キーとなるSEQNO列が含まれます。

GGS_DDL_COLUMNS

DDL同期に関連するオブジェクトの列に関する情報。

GGS_DDL_LOG_GROUPS

DDL同期に関連するサプリメンタル・ログ・グループに関する情報。

GGS_DDL_PARTITIONS

DDL同期に関連するオブジェクトのパーティションに関する情報。

GGS_DDL_PRIMARY_KEYS

DDL同期に関連するオブジェクトの主キーに関する情報。

SEQNO列は、ExtractおよびReplicatレポート・ファイルに表示されるDDL順序番号です。これは、DDL履歴表(デフォルト名GGS_DDL_HIST)に問い合せて取得することもできます。

これらの表はすべて、DDLオブジェクトのインストール中にOracle GoldenGate DDLスキーマとして指定されたスキーマに所有されています。これらの表の構造を表示するには、SQL*PlusのDESCコマンドを使用します。

構文

DUMPDDL [SHOW]

SHOW

履歴表に含まれる情報を標準出力フォーマットで画面にダンプします。出力表は作成されません。DDL履歴表のすべてのレコードが表示されます。

1.65 FLUSH SEQUENCE

FLUSH SEQUENCEは、初期同期化中または再同期化中の最初にExtractを起動した直後に使用します。このコマンドは、Extractがトランザクション・データの取得を開始した時点で初期REDOレコードが使用できるように、Oracle順序を更新します。通常は、現在のキャッシュが使い果されるまで、REDOは生成されません。フラッシュは、ターゲット・システムで正しい順序値に同期するために使用する初期の開始位置を、Replicatに提供します。それ以降は、Extractは、順序値の通常のキャッシュ予約に関連付けられたREDOを使用できます。

FLUSH SEQUENCEの使用方法

1. FLUSH SEQUENCEは、次のOracleプロシージャを使用します。

表1-19 FLUSH SEQUENCEをサポートするプロシージャ

データベース

プロシージャ

ユーザーおよび権限

ソース

updateSequence

Oracle GoldenGate DDLオブジェクトの所有者、またはDDLサポートを使用しない場合は他の選択したユーザーに、EXECUTEを付与します。

ターゲット

replicateSequence

Oracle GoldenGate ReplicatユーザーにEXECUTEを付与します。

sequence.sqlスクリプトによって、これらのプロシージャはインストールされます。通常、このスクリプトはOracle GoldenGateのインストール・プロセスの一部として実行されますが、FLUSH SEQUENCEを使用する前に、これが実行されたことを確認してください。sequence.sqlが実行されていないと、フラッシュは失敗し、次に示すようなエラー・メッセージが生成されます。

Cannot flush sequence {0}. Refer to the Oracle GoldenGate for Oracle
documentation for instructions on how to set up and run the sequence.sql
script. Error {1}.

2. GLOBALSファイルには、プロシージャをインストールするスキーマを指定するGGSCHEMAパラメータが含まれている必要があります。このユーザーは、CONNECT、RESOURCEおよびDBA権限を持っている必要があります。

3. FLUSH SEQUENCEを使用する前に、updateSequenceプロシージャでEXECUTE権限を持つデータベース・ユーザーとして、DBLOGINコマンドを発行します。マルチテナント・コンテナ・データベースにログインしている場合、フラッシュされるシーケンスを含むプラガブル・データベースにログインします。

注意:

シーケンスをサポートするためのOracle GoldenGateの構成に関する詳細な方法は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

構文

FLUSH SEQUENCE owner.sequence

owner.sequence

Oracle順序の所有者および名前。スキーマ名はNULLにすることはできません。順序名にはアスタリスク(*)ワイルドカードを使用できますが、所有者名には使用できません。

例

FLUSH SEQUENCE scott.seq*

1.66 LIST TABLES

LIST TABLESでは、コマンド引数の指定に一致するデータベース内のすべての表を一覧表示します。このコマンドを使用する前に、DBLOGINコマンドを使用してデータベース接続を確立してください。Oracleマルチテナント・コンテナ・データベースにログインしている場合、一覧表示する表を含むプラガブル・データベースにログインします。

構文

LIST TABLES table

table

表名、またはワイルドカード(*)で指定した表グループ。

例

次にLIST TABLESコマンドおよび出力例を示します。

list tables tcust*

TCUSTMER
TCUSTORD

1.67 MININGDBLOGIN

MININGDBLOGINでは、REGISTER EXTRACTなど、データベースを操作する他のOracle GoldenGateコマンドの発行準備として、ダウンストリームOracleデータベース・ログマイニング・サーバーへの接続を確立します。このコマンドは、Oracleデータベースの統合キャプチャ・モードでExtractを確立する場合のみ使用します。

データベース・ログマイニング・サーバーとして機能する、ソースOracleデータベースにログインするには、DBLOGINコマンドを使用します。MININGDBLOGINは、ダウンストリーム・マイニング・データベースへのログイン用に予約されます。

MININGDBLOGINを発行するユーザーは、次を満たす必要があります。

- Oracle dbms_goldengate_auth.grant_admin_privilegeプロシージャを使用して付与された権限がある。

- このMININGDBLOGINに関連付けられているExtractグループのTRANLOGOPTIONS MININGUSERパラメータで指定されているユーザーである。

- Extractが統合キャプチャ・モードである間は変更されない。

統合キャプチャのサポートおよび構成の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

構文

MININGDBLOGIN {
USERID {/ | userid}[, PASSWORD password]
[algorithm ENCRYPTKEY {keyname | DEFAULT}] |
USERIDALIAS alias [DOMAIN domain] |
[SYSDBA]
}

USERID

データベース・ログイン資格証明を指定します。Oracle GoldenGateの資格証明ストアが使用されない場合に使用できます。(USERIDALIASオプションを参照してください。)次のように、データベースによって入力は異なります。

userid

データベース・ユーザー名またはSQL*Net接続文字列を指定します。Oracleマルチテナント・コンテナ・データベースのプラガブル・データベースにログインするには、useridを接続文字列として指定します(OGGUSER@FINANCEなど)。ルート・コンテナにログインするには、C##接頭辞を含む、useridを共通ユーザーとして指定します(C##GGADMIN@FINANCEなど)。CDB用のOracle GoldenGateの構成の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

/

(Oracle)データベース・ユーザー・ログインではなく、Oracle用のオペレーティングシステム・ログインを使用するようにOracle GoldenGateに指示します。この引数は、データベースによってオペレーティングシステム・レベルでの認証が許可されている場合にのみ使用します。このオプションを使用するには、Oracle OS_AUTHENT_PREFIX初期化パラメータの値との関連で、正しいユーザー名がデータベースに存在している必要があります。詳細は、USERID | NOUSERIDパラメータを参照してください。

PASSWORD password

データベース・ユーザーのパスワードを指定するために認証が必要な場合に使用します。パスワードがENCRYPT PASSWORDコマンドによって暗号化されている場合は、暗号化されたパスワードを指定します。それ以外の場合は、クリアテキストのパスワードを指定します。パスワードに大/小文字の区別がある場合は、そのように入力してください。

PASSWORD句を省略すると、パスワードの入力が求められ、パスワードはエコーされません。

algorithm

ENCRYPT PASSWORDコマンドを使用してパスワードが暗号化された場合、使用した暗号化アルゴリズムを次の中から指定します。

AES128

AES192

AES256

BLOWFISH

ENCRYPTKEY {keyname | DEFAULT}

ENCRYPT PASSWORDコマンドで指定した暗号化鍵を指定します。次のいずれかを使用します。

ENCRYPTKEY keyname

ENCKEYS参照ファイル内のユーザー作成の暗号化鍵の論理名を指定します。ENCRYPT PASSWORDをKEYNAME keynameオプションとともに使用した場合に使用します。

ENCRYPTKEY DEFAULT

Blowfish鍵を生成するようにOracle GoldenGateに指示します。ENCRYPT PASSWORDコマンドがKEYNAME DEFAULTオプションとともに使用された場合に使用します。

USERIDALIAS alias [DOMAIN domain]
データベース・ログイン資格証明の別名を指定します。このMININGDBLOGINコマンドに必要な権限を持つ資格証明を含むローカルOracle GoldenGate資格証明ストアがある場合に、USERIDオプションのかわりに使用できます。資格証明ストアの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

Oracleマルチテナント・コンテナ・データベースのプラガブル・データベースにログインするには、ユーザーは接続文字列として格納されている必要があります(OGGUSER@FINANCEなど)。ルート・コンテナにログインするには、ユーザーはC##接頭辞を含む共通ユーザーとして格納されている必要があります(C##GGADMIN@FINANCEなど)。CDB用のOracle GoldenGateの構成の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

alias

Oracle GoldenGateの資格証明ストアに格納されているデータベース・ユーザー資格証明の別名を指定します。USERIDALIASに指定されるユーザーは共通データベース・ユーザーである必要があります。

DOMAIN domain

指定した別名の資格証明ストアのドメインを指定します。有効なドメイン・エントリが指定した別名に対する資格証明ストアに存在する必要があります。

SYSDBA
(Oracle)ユーザーがsysdbaとしてログインするように指定します。このオプションは、USERIDおよびUSERIDALIASに使用できます。

例

例1

MININGDBLOGIN USERIDALIAS oggalias SESSIONCHARSET ISO-8859-11

例2

MININGDBLOGIN USERID ogg@ora1.ora, PASSWORD AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC AES128, ENCRYPTKEY securekey1

1.68 SET NAMECCSID

NAMECCSIDを使用して、DB2 for iデータベースの表に対してコマンドを発行する必要がある場合にGGSCIセッションのCCSID (コード化キャラクタ・セット識別子)を設定します。このコマンドは、SQLカタログ表に格納されているオブジェクト名のCCSIDが、システムのCCSIDと異なる場合に必要です。SQLカタログ表はシステムのCCSIDを使用して作成されますが、実際のデータベース・オブジェクト名は別のCCSIDによって示される場合があります。問合せでは、この違いはカタログから示されないため、正しいCCSID値を指定するNAMECCSIDがない場合、Oracle GoldenGateで名前が誤って取得される可能性があります。

GLOBALS、Extract、ReplicatまたはDEFGENのCCSIDを設定するには、NAMECCSIDパラメータを使用します。

DBLOGINコマンドが以前発行されている場合、このコマンドはGGSCIセッションに影響するため、SET NAMECCSIDは有効ではありません。DBLOGINコマンドの後にSET NAMECCSIDを発行するには、GGSCIを再起動します。

現在のCCSIDを表示するには、SHOWコマンドを使用します。CCSIDがGGSCIセッションまたはパラメータNAMECCSIDを介して設定されていない場合、SHOW値がDEFAULTになります。

構文

SET NAMECCSID {CCSID | DEFAULT}

CCSID

GGSCIセッションに対して使用される、有効なDB2 for iコード化キャラクタ・セット識別子。

DEFAULT

システムCCSIDがGGSCIセッションに対して使用されることを示します。

例

SET NAMECCSID 1141

1.69 ADD SCHEMATRANDATA

Oracleに有効です。ADD SCHEMATRANDATAでは、表のスキーマレベルのサプリメンタル・ロギングを有効化します。ADD SCHEMATRANDATAは、行の識別にOracle GoldenGateが必要とする使用可能なキーのスーパーセットを自動的に記録するために指定したスキーマの、現在および将来のすべての表で機能します。

ADD SCHEMATRANDATAは、統合キャプチャおよびクラシック・キャプチャの両方で有効で、次を実行します。

- CREATE TABLEで作成された新しい表にOracleサプリメンタル・ロギングを有効化する。

- 列を追加または削除するALTER TABLEの影響を受けた表のサプリメンタル・ロギングを更新する。

- 名前が変更された表のサプリメンタル・ロギングを更新する。

- 一意キーまたは主キーが追加または削除された表のサプリメンタル・ロギングを更新する。

デフォルトで、ADD SCHEMATRANDATAは、次に示す優先順位で、表のキー列を記録します。

1. 主キー

2. 主キーがない場合、無効、使用不可または非表示のキーを含む、表のすべての一意キー。ADTメンバー列を含む一意キーも記録されます。仮想列(ファンクションベース索引)の一意キーのみ記録されません。

3. 前述のいずれも存在しない場合、表のすべてのスカラー列が記録されます。(システム生成の行OIDは常に記録されます。)

ADD SCHEMATRANDATAは、統合Replicatを使用するための条件または無条件のロギング要件もサポートします。

注意:

Oracle11.2.0.2より前のバージョンの場合、ソース・データベースにOracle Patch 10423000を適用します。

ADD SCHEMATRANDATAを使用するタイミング

ADD SCHEMATRANDATAは、次の場合に使用する必要があります。

- 統合キャプチャ用に構成するExtractグループの一部であるすべての表に対して。ADD SCHEMATRANDATAは、すべてのキーを記録することにより、適切なキーが記録されていることを保証します。

- 統合Replicatグループで処理されるすべてのソース表に対して。主キー、一意キーおよび外部キーのロギングを有効にするオプションが提供され、様々な適用サーバーを介して処理されているリレーショナル表間の依存関係の計算をサポートします。

- DDLレプリケーションがアクティブで、DMLが新しい表を作成するかキー列を変更するDDLと同時である場合。DDLがオブジェクトで発行された直後にDMLをオブジェクトに適用できるシナリオを最適に処理します。ADD SCHEMATRANDATAにより、各DDL操作で適切なキー値がREDOログにアトミックに記録されるため、Extract処理でのラグに関係なく、ログからキャプチャされる際のDMLのメタデータの継続性が保証されます。

ADD SCHEMATRANDATAを使用するためのデータベース・レベルのロギング要件

Oracle GoldenGateを使用するときに、ソース・データベースを強制ロギング・モードにし、データベース・レベルで最小サプリメンタル・ロギングを有効にすることを強くお薦めします。これは、連鎖行の情報(存在する場合)を更新操作用のREDOログに追加します。Oracle GoldenGateをサポートするロギングの構成の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

ADD SCHEMATRANDATAを使用する場合の追加の考慮事項

- ADD SCHEMATRANDATAを使用する前に、DBLOGINコマンドを発行します。このコマンドを発行するユーザーは、Oracle Streams管理者権限が付与されている必要があります。

SQL> exec dbms_streams_auth.grant_admin_privilege('user')

- DDLレプリケーションが有効化されていない場合、ADD TRANDATAコマンドのかわりにADD SCHEMATRANDATAを使用できます。ただし、表に主キーがなく、複数の一意キーがある場合、ADD SCHEMATRANDATAによって、データベースはすべての一意キーを記録することに注意してください。このような場合、ADD SCHEMATRANDATAによって、データベースはADD TRANDATAの場合よりも多くのREDOデータを記録します。余分なロギングを回避するには、可能な場合、一意キーのうちの1つを主キーとして指定します。

- 1つの主キーがあるか、1つの一意キーがあるか、キーがない表の場合、ADD SCHEMATRANDATAでは、ADD TRANDATAと比較して、追加のロギング・オーバーヘッドはありません。詳細は、ADD TRANDATAを参照してください。

- FILTER文、およびTABLEパラメータとMAPパラメータのKEYCOLS句に必要な列など、Oracle GoldenGateで使用するために特定の表の追加の非キー列を記録する必要がある場合、これらの列に対して ADD TRANDATAコマンドを発行します。このコマンドには、列の表レベルのサプリメンタル・ロギングを発行するためのCOLSオプションがあり、ADD SCHEMATRANDATAとともに使用できます。

構文

ADD SCHEMATRANDATA schema {
[ALLOWNONVALIDATEDKEYS] [NOSCHEDULINGCOLS | ALLCOLS]}
[PREPARECSN  {WAIT | LOCK | NOWAIT | NONE}]

schema

キーの追加情報を記録するスキーマ。ワイルドカードは使用しないでください。マルチテナント・コンテナ・データベースの複数のプラガブル・データベースのスキーマにADD SCHEMATRANDATAを発行するには、DBLOGINを使用して各プラガブル・データベースに個別にログインしてから、ADD SCHEMATRANDATAを発行します。詳細は、「DBLOGIN」を参照してください。

ALLOWNONVALIDATEDKEYS

このオプションは、Oracle 11.2.0.4以降の11gバージョンおよびOracle 12.1.0.2以降の12cバージョンに有効です。(Oracle 11.2.0.3または12.1.0.1では有効ではありません。)サプリメンタル・ロギングのNON VALIDATEDおよびNOT VALID主キーが含まれます。これらのキーは、Oracle GoldenGateによって使用される標準キー選択基準より優先されます。GLOBALSのパラメータALLOWNONVALIDATEDKEYSが使用されている場合、ADD SCHEMATRANDATAは、指定されているかどうかにかかわらず、ALLOWNONVALIDATEDKEYSを使用して実行されます。デフォルトでは、NON VALIDATEDおよびNOT VALID主キーは記録されません。詳細は、GLOBALSのALLOWNONVALIDATEDKEYSパラメータを参照してください。

NOSCHEDULINGCOLS | ALLCOLS

これらのオプションは、Oracleターゲット・データベースのサプリメンタル・ロギングを制御します。これらのオプションは一緒に使用できますが、後者のオプションが使用されます。たとえば、ADD SCHEMATRANDATA oggadm_ext ALLCOL NOSCHEDULINGCOLSコマンドでは、NOSCHEDULINGCOLSオプションが使用されます。

NOSCHEDULINGCOLS

スケジュール列のロギングを無効にします。デフォルトで、ADD SCHEMATRANDATAは、主キーの無条件ロギング、指定したスキーマの現在および今後のすべての表の、一意キーおよび外部キーのすべての条件付きサプリメンタル・ロギングを有効にします。無条件ロギングでは、主キーの値を、キーが現在の操作で変更されたかどうかにかかわらず、強制的にログに記録します。条件付きロギングは、外部キーまたは一意キーの列のすべての値を、それらのうちの少なくとも1つが現在の操作で変更された場合に、ログに記録します。統合Replicatの主キー、一意キーおよび外部キーはすべて、依存関係を計算するインバウンド・サーバーから利用できる必要があります。統合Replicatの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

ALLCOLS

指定したスキーマの現在および将来のすべての表の、すべてのサポートされるキーおよびキーではない列の無条件サプリメンタル・ロギングを有効にします。このオプションは、依存関係の計算に必要なキーと、フィルタリング、競合の解決またはその他の目的で必要な列のロギングを有効にします。LOB、LONG、ADTなどの列は含まれません。

PREPARECSN {WAIT | LOCK | NOWAIT | NONE}
DMLとDDLの両方に有効です。Oracle Datapump Exportのダンプ・ファイルにインスタンス化CSNが設定されるよう、ソースの表を自動的に準備します。Replicatは、(インポート時に) Oracle Datapumpによって設定された表ごとのインスタンス化CSNを使用して、証跡レコードをフィルタ処理で除外します。ターゲット上では、データ・ポンプ・インポートがDBOPTIONS ENABLE_INSTANTIATION_FILTERINGパラメータを使用して、システム表とビューにインスタンス化SCNを移入し、表レベルのインスタンス化フィルタリングを有効にします。

WAIT

インフライト・トランザクションを待機し、表のインスタンス化を準備します。

LOCK

表にロックを設定します(表のインスタンス化を準備するため)。

NOWAIT

デフォルトの動作。インスタンス化の準備が即時実行されます。

NONE

インスタンス化の準備は行われません。

例

例1

次の例は、スキーマscottに対するサプリメンタル・ロギングを有効にします。

ADD SCHEMATRANDATA scott

例2

次の例は、scottという名前のスキーマの現在および将来のすべての表の、すべてのサポートされるキーおよびキーではない列をログに記録します。

ADD SCHEMATRANDATA scott ALLCOLS

1.70 ADD TRANDATA

ADD TRANDATAでは、Oracle GoldenGateが必要とするトランザクション情報をトランザクション・レコードから取得します。

このコマンドを使用する前に、DBLOGINコマンドを使用してデータベース接続を確立してください。

ADD TRANDATAは、次に示すデータベースでのみ有効です。サポートされている他のデータベースでは、この機能がすでに存在しているか、またはデータベース・インタフェースを使用して構成する必要があります。トランザクション情報を使用可能にするための特別な要件の詳細は、ご使用のデータベース用のOracle GoldenGateのインストレーション・ガイドを参照してください。

DB2 for iデータベース

ADD TRANDATAでは、データのジャーナル処理を開始します。ADD TRANDATAコマンドはSTRJRNPFを呼び出す、表のジャーナル処理を開始する推奨メソッドです。STRJRNPFコマンドでRecord Images (IMAGES): *BOTHの必要なジャーナル・イメージ属性が確実に設定されるからです。

DB2 LUWデータベース

ADD TRANDATAでは、指定した表のDATA CAPTURE CHANGESを有効化します。デフォルトでは、ADD TRANDATAはデータベースに次のいずれかのコマンドを発行します。

ALTER TABLE name DATA CAPTURE CHANGES INCLUDE LONGVAR COLUMNS;

ADD TRANDATAとEXCLUDELONGオプションを使用することで、LONGVAR句を除外できます。

DB2 z/OSデータベース

ADD TRANDATAでは、指定した表のDATA CAPTURE CHANGESを有効化します。デフォルトでは、ADD TRANDATAはデータベースに次のいずれかのコマンドを発行します。

ALTER TABLE name DATA CAPTURE CHANGES;

Oracle Database

デフォルトで、Oracleに対するADD TRANDATAは、主キーの無条件ロギング、指定した表のすべての一意キーおよび外部キーの条件付きサプリメンタル・ロギングを有効にします。Oracleデータベース用Oracle GoldenGateのサプリメンタル・ロギングの操作方法の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

可能な場合は、ADD TRANDATAコマンドではなくADD SCHEMATRANDATAコマンドを使用してください。ADD SCHEMATRANDATAコマンドでは、レプリケーションの継続性により、DDLが実行されたオブジェクトでDMLが発生することを保証します。除外パラメータを使用して、スキーマ指定からオブジェクトを除外できます。詳細は、ワイルドカード除外パラメータの概要を参照してください。

Oracle GoldenGateのDDLレプリケーション機能を使用している場合、ADD SCHEMATRANDATAコマンドを使用して、必要な補足データを記録します。

ADD SCHEMATRANDATAを使用しているとき、ADD TRANDATAをCOLSオプションとともに使用して、TABLEおよびMAPパラメータでFILTER文およびKEYCOLS句に必要な列など、非キー列を記録することができます。

注意:

DDLサポートが有効なときは、Oracleに対してADD TRANDATAを使用することはできますが、DDLが表で実行される前に、すべての表でDMLを停止できる場合に限ります。またはそれが不可能な場合、TABLEまたはMAP文でオブジェクト指定を満たす名前の新しい表を追加するDDLを発行するユーザーまたはアプリケーションがないことを保証できます。ユーザーまたはアプリケーションは、Oracle GoldenGate構成にすでに存在する表のキー定義を変更するDDLを発行する可能性がない必要があります。

詳細は、ADD SCHEMATRANDATAを参照してください。

Oracle GoldenGateを使用するときに、ソース・データベースを強制ロギング・モードにし、データベース・レベルで最小サプリメンタル・ロギングを有効にすることを強くお薦めします。これは、連鎖行の情報(存在する場合)を更新操作用のREDOログに追加します。Oracle GoldenGateをサポートするロギングの構成の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

Oracleデータベースに対してADD TRANDATAを使用する際は、次の事項を考慮してください。

- Oracle GoldenGateがデータの抽出を開始した後にロギングの詳細設定を変更した場合、データが変更される前に、影響を受ける表からデータを読取り中のExtractプロセスを停止し、起動しなおす必要があります。

- ADD TRANDATAを使用してサプリメンタル・ログ・グループを作成する場合、Oracle GoldenGateは接頭辞GGS_にオブジェクトIDを追加します(例: GGS_18342)。

SQL Serverデータベース

ADD TRANDATAでは、Oracle GoldenGateがSQL操作を再構成するために必要とするサプリメンタル・ロギング情報を有効化します。SQL Serverトランザクション・ログは、デフォルトでは十分な情報を提供しません。

Sybaseデータベース

ADD TRANDATAでは、Sybaseのsp_setreptableおよびsp_setrepcolシステム・プロシージャを実行して、Sybase表をレプリケーション対象としてマーク付けします。ADD TRANDATAオプションでは、データベース機能を使用して、データベースが指定した表のLOBデータを伝播する方法を制御します。ADD TRANDATAオプションのリストを参照してください。

構文

ADD TRANDATA {[container.]owner.table | schema.table [JOURNAL
library/journal] |
library/file [JOURNAL library/journal]}
[, NOSCHEDULINGCOLS | ALLCOLS]
[, COLS (columns)]
[, INCLUDELONG | EXCLUDELONG]
[, LOBSNEVER | LOBSALWAYS | LOBSIFCHANGED | LOBSALWAYSNOINDEX]
[, NOKEY]
[, PREPARECSN  {WAIT | LOCK | NOWAIT | NONE}]

[container.]owner.table

DB2 LUW、DB2 for z/OS、Oracle、SQL ServerおよびSybaseに有効です。

2つの部分または3つの部分からなる名前の指定。Oracleマルチテナント・コンテナ・データベースを除く、すべてのサポートするデータベースに対し、2つの部分からなる名前owner.tableを使用します。Oracleマルチテナント・コンテナ・データベースに対し、3つの部分からなる名前container.owner.tableを使用します。ワイルドカードは、任意のコンポーネントで使用できます。ワイルドカードとともに使用すると、ADD TRANDATAは、システム・オブジェクトの名前と一致する名前を除外します。システム・オブジェクトではないが、ワイルドカード・パターンでシステム・オブジェクト名と一致する名前のオブジェクトに対してADD TRANDATAを使用するには、ワイルドカードを使用せずにADD TRANDATAを発行します。

schema.table [JOURNAL library/journal] |

library/file [JOURNAL library/journal]

DB2 for iに有効です。

SQLスキーマおよび表の名前、またはネイティブ・ライブラリおよびファイル名を指定します。デフォルトのジャーナルはDEFAULTJOURNALコマンドで設定され、JOURNALオプションを省略できます。そうでない場合は必須です。

NOSCHEDULINGCOLS | ALLCOLS

Oracleに有効

これらのオプションは、ADD TRANDATAで指定している表を処理している統合Replicatのロギング要件を満たします。

NOSCHEDULINGCOLS

スケジュール列のロギングを無効にします。デフォルトで、ADD TRANDATAは、主キーの無条件ロギング、指定した表のすべての一意キーおよび外部キーの条件付きサプリメンタル・ロギングを有効にします。無条件ロギングでは、主キーの値を、キーが現在の操作で変更されたかどうかにかかわらず、強制的にログに記録します。条件付きロギングは、外部キーまたは一意キーの列のすべての値を、それらのうちの少なくとも1つが現在の操作で変更された場合に、ログに記録します。主キー、一意キーおよび外部キーはすべて、依存関係を計算するインバウンド・サーバーから利用できる必要があります。統合Replicatの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

ALLCOLS

表のすべてのキーおよび非キー列の無条件サプリメンタル・ロギングを有効にします。このオプションは、依存関係の計算に必要なキーと、フィルタリング、競合の解決またはその他の目的で使用されるその他のすべての列のロギングを有効にします。

COLS (columns)
ADD TRANDATAでサポートされるすべてのデータベースに有効。

COLSオプションでは、特定の非キー列を記録します。KEYCOLS句に指定した列、およびフィルタ処理や操作のために必要となる列のロギングに使用でき、TABLE文のFETCHCOLS句を使用するときよりも効率的に列の値をフェッチできる場合があります。カンマを使用して複数の列を区切ります(例: NAME, ID, DOB)。

INCLUDELONG | EXCLUDELONG
DB2 LUWに有効です。

ADD TRANDATAによって発行されるALTER TABLEにINCLUDE LONGVAR COLUMNS属性を含めるかどうかを制御します。デフォルトはINCLUDELONGです。ADD TRANDATAをこのオプションとともに発行すると、Oracle GoldenGateは次の文を発行します。

ALTER TABLE name DATA CAPTURE CHANGES INCLUDE LONGVAR COLUMNS;

EXCLUDELONGを使用すると、次のコマンドが発行されます。

ALTER TABLE name DATA CAPTURE CHANGES;

EXCLUDELONGを使用する場合、Oracle GoldenGateではLONGVAR列を含む表のビフォア・イメージを必要とする機能がサポートされません。この機能の例として、GETUPDATEBEFORES、NOCOMPRESSUPDATESおよびNOCOMPRESSDELETESパラメータがあります。この機能をサポートするには、トランザクション・ログのLONGVAR列の設定を変更し、列値のビフォアおよびアフター・イメージ両方を含めるようにする必要があります。

LOBSNEVER | LOBSALWAYS | LOBSIFCHANGED | LOBSALWAYSNOINDEX
Sybaseに有効です。

指定した表のLOBデータを伝播する方法を制御します。

注意:

AADD TRANDATAコマンドは、表に対して現在設定されているLOB設定を上書きします。その後に設定を変更するには、sp_setrepcolスクリプトを使用する必要があります。

LOBSNEVER

LOBデータは伝播されません。ただし例外があり、LOB列にNULL値が挿入されるか、LOB列がINSERT操作でスキップされた場合、Extractはトレイル内のこの列にNULLデータを書き込みます。

LOBSALWAYS

次の2つのことを行います: sp_setrepcolを使用してLOBレプリケーションをALWAYS_REPLICATE(トランザクション内で変更されたかどうかにかかわらず、常にLOBデータをレプリケートする)に設定し、(sp_setreptableのUSE_INDEXオプションを使用して)レプリケーションで索引を使用するように表をマーク付けします。単一のトランザクション内でLOBがレプリケーション対象としてマーク付けされると長時間かかる可能性があるので、USE_INDEXを使用して各LOBにグローバル非クラスタ化索引を作成してその時間を短縮します。グローバル非クラスタ化索引の作成中、共有表ロックは保持されます。

LOBSIFCHANGED

トランザクション中にLOBデータが変更された場合にLOBデータのみをレプリケートします。これにより、レプリケーションのオーバーヘッドは低減されますが、レプリケーション環境外のターゲットで発生する可能性がある不整合は防止できません。これはデフォルトです。

LOBSALWAYSNOINDEX

LOBレプリケーションをALWAYS_REPLICATE(トランザクション内で変更されたどうかにかかわらず、常にLOBデータをレプリケートする)に設定します。これによりオーバーヘッドは追加されますが、レプリケーション環境外のターゲットで発生する可能性がある不整合は防止できます。 LOBSALWAYSNOINDEXでは、レプリケーションの索引を使用するように表をマーク付けしません。この設定のメリットは、ADD TRANDATAの実行中にロックが保持されないことです。LOBSALWAYSNOINDEXは、バージョン15より前のSybaseデータベースのデフォルトです。

注意:

ALWAYS_REPLICATEオプションを使用しているときに、特定のLOB列にNULL値が含まれている場合、表内の(LOBでない)他の列が更新されると、ALWAYS_REPLICATEを有効化していても、このLOBは取得されません。

表のLOB設定を確認するには、その表に対してADD TRANDATAを使用した後に、INFO TRANDATAコマンドを使用します。すべてのLOB列のLOB設定が表示されます。必要に応じて、Sybaseシステム・プロシージャを使用して特定の列のLOB設定を変更できます。

NOKEY
ADD TRANDATAでサポートされるすべてのデータベースに有効。

主キー列のサプリメンタル・ロギングを抑止します。NOKEYを使用する場合は、COLSオプションを使用してキーとして機能できる別の列をロギングし、TABLEまたはMAPパラメータのKEYCOLSオプションを使用してこれらの列を代替キーとして指定します。

PREPARECSN {WAIT | LOCK | NOWAIT | NONE}
DMLとDDLの両方に有効です。Oracle Datapump Exportのダンプ・ファイルにインスタンス化CSNが設定されるよう、ソースの表を自動的に準備します。Replicatは、(インポート時に) Oracle Datapumpによって設定された表ごとのインスタンス化CSNを使用して、証跡レコードをフィルタ処理で除外します。ターゲット上では、データ・ポンプ・インポートがDBOPTIONS ENABLE_INSTANTIATION_FILTERINGパラメータを使用して、システム表とビューにインスタンス化SCNを移入し、表レベルのインスタンス化フィルタリングを有効にします。

WAIT

インフライト・トランザクションを待機し、表のインスタンス化を準備します。

LOCK

表にロックを設定します(表のインスタンス化を準備するため)。

NOWAIT

デフォルトの動作。インスタンス化の準備が即時実行されます。

NONE

インスタンス化の準備は行われません。

例

例1

次の例では、Oracle表の主キーのロギング、SQL Server表の補足データのロギング、またはレプリケーション対象のSybase表のマーク付けのいずれかを行います。

ADD TRANDATA finance.acct

例2

次の例では、acctという名前の表のすべてのキーおよび非キー列の無条件サプリメンタル・ロギングを有効にします。

ADD TRANDATA acct ALLCOLS

例3

次のOracleの例では、主キー、および非キー列nameおよびaddressをロギングします。

ADD TRANDATA finance.acct, COLS (name, address)

例4

次のOracleの例では、主キーはロギングせず、かわりに非キー列のnameとpidをロギングします。

ADD TRANDATA finance.acct, NOKEY, COLS (name, pid)

例5

次のSybaseの例では、レプリケーション対象のacct表にマーク付けし、トランザクション中に変更された場合にのみLOBデータをロギングするように指定します。

ADD TRANDATA finance.acct, LOBSIFCHANGED

例6

次の例では、ロギングが追加されますが、表のインスタンス化の準備は行われません。

ADD TRANDATA acct PREPARECSN NONE

1.71 DELETE SCHEMATRANDATA

DELETE SCHEMATRANDATAでは、ADD SCHEMATRANDATAコマンドで追加されたOracleのスキーマレベルのサプリメンタル・ロギングを削除します。このコマンドを使用する前に、DBLOGINコマンドを使用してデータベース接続を確立してください。このコマンドで指定するユーザーは、サプリメンタル・ログ・グループを削除する権限を持っている必要があります。

デフォルトで、このコマンドはOracle GoldenGateが使用するキー列(主キー、一意キー、KEYCOLS列、またはすべての列の場合があります)とスケジュール列のサプリメンタル・ロギングを削除しようとします。スケジュール列は、主キー、すべての一意キー、すべての外部キーです。Oracle GoldenGateのキー列のロギングを削除し、スケジュール列は削除しない場合、NOSCHEDULINGCOLSオプションをDELETE SCHEMATRANDATAに含めます。ADD SCHEMATRANDATAがALLCOLSオプションを指定して発行された場合、DELETE SCHEMATRANDATAをALLCOLSオプションを指定して使用すると、Oracle GoldenGateのキー列を含む、すべての列のサプリメンタル・ロギングを削除します。

構文

DELETE SCHEMATRANDATA schema [NOSCHEDULINGCOLS | ALLCOLS]

schema

サプリメンタル・ロギングを削除するスキーマ。ワイルドカードは使用しないでください。ソースがOracleマルチテナント・コンテナ・データベースの場合、ロギングを削除するスキーマを含むプラガブル・データベースにログインしていることを確認します。詳細は、「DBLOGIN」を参照してください。

NOSCHEDULINGCOLS

コマンドで指定したスキーマの表のスケジュール列のサプリメンタル・ロギングが削除されなくなります。スケジュール列は、表の主キー、すべての一意キー、すべての外部キーです。

ALLCOLS

指定したスキーマの表のすべての列のサプリメンタル・ロギングを削除します。

例

例1

DELETE SCHEMATRANDATA scott

例2

DELETE SCHEMATRANDATA scott ALLCOLS

1.72 DELETE TRANDATA

DELETE TRANDATAでは、次のいずれかの操作を行います。

- DB2 LUWおよびz/OS上のDB2: 表をDATA CAPTURE NONEに変更

- Oracle: サプリメンタル・ロギングの無効化

- Sybase: レプリケーションの無効化。

- SQL Server: 表の拡張ロギングの停止。

デフォルトで、このコマンドはOracle GoldenGateが使用するキー列(主キー、一意キー、KEYCOLS列、またはすべての列の場合があります)とスケジュール列のサプリメンタル・ロギングを削除しようとします。スケジュール列は、主キー、すべての一意キー、すべての外部キーです。Oracle GoldenGateのキー列のロギングを削除し、スケジュール列は削除しない場合、NOSCHEDULINGCOLSオプションをDELETE TRANDATAに含めます。ADD TRANDATAがALLCOLSオプションを指定して発行された場合、DELETE TRANDATAをALLCOLSオプションを指定して使用すると、Oracle GoldenGateのキー列を含む、すべての列のサプリメンタル・ロギングが削除されます。

このコマンドを使用する前に、DBLOGINコマンドを使用してデータベース接続を確立してください。このコマンドで指定するユーザーは、ADD TRANDATAの実行に必要な権限と同じ権限を持っている必要があります。

構文

DELETE TRANDATA [container.]owner.table [NOSCHEDULINGCOLS | ALLCOLS]

[container.]owner.table

プラガブル・データベース(Oracleマルチテナント・コンテナ・データベースの場合)、所有者および表またはファイルの名前。ワイルドカードは、任意の名前コンポーネントで使用できます。

NOSCHEDULINGCOLS

コマンドで指定した表のスケジュール列のサプリメンタル・ロギングが削除されなくなります。スケジュール列は、表の主キー、すべての一意キー、すべての外部キーです。

ALLCOLS

指定した表のすべての列のサプリメンタル・ロギングを削除します。

例

例1

DELETE TRANDATA finance.acct

例2

DELETE TRANDATA finance.ac*

例3

DELETE TRANDATA finance.acct ALLCOLS

1.73 INFO SCHEMATRANDATA

INFO SCHEMATRANDATAでは、Oracleのスキーマレベルのサプリメンタル・ロギングが、指定したスキーマに対して有効かどうか、またはインスタンス化情報があるかどうかを確認します。このコマンドを使用する前に、DBLOGINコマンドを使用してデータベース接続を確立してください。

構文

INFO SCHEMATRANDATA schema

schema

サプリメンタル・ロギングを確認するスキーマ。ワイルドカードは使用しないでください。Oracleマルチテナント・コンテナ・データベースの該当するスキーマの情報を取得するには、DBLOGINで適切なプラガブル・データベースにログインしていることを確認します。

例

INFO SCHEMATRANDATA scott

1.74 INFO TRANDATA

INFO TRANDATAでは、次の情報を取得します。

- DB2 LUWおよびz/OS上のDB2: DATA CAPTUREが有効かどうかを確認します。

- Oracle:サプリメンタル・ロギングが有効かどうか、およびサプリメンタル・ロギングされる列名を表示するかどうかを確認します。すべての列がロギングされた場合、個別の列名のかわりに表記ALLが表示されます。
SCNインスタンス化情報を表示します。

- Sybase: レプリケーションが有効かどうか、およびすべてのLOB列が(ADD TRANDATA LOBオプションの指定と)同じ設定を持つかどうかを確認します。

- SQL Server: 表の拡張ロギングが有効かどうかを確認します。

このコマンドを使用する前に、DBLOGINコマンドを使用してデータベース接続を確立してください。

構文

INFO TRANDATA [container.]owner.table

[container.]owner.table

trandata情報を表示する、プラガブル・データベース(Oracleマルチテナント・コンテナ・データベースの場合)、所有者および表またはファイルの名前。DBLOGINコマンドで指定したログイン名と同じである場合、所有者の指定は不要です。ワイルドカードは、表名には使用できますが所有者名には使用できません。

例

例1

INFO TRANDATA finance.acct

例2

INFO TRANDATA finance.ac*

1.75 SET_INSTANTIATION_CSN

SET_INSTANTIATION_CSNでは、ターゲット・データベース上でインスタンス化CSNを手動で設定します。このコマンドにはDBLOGINが必要です。ReplicatがDBOPTIONS ENABLE_INSTANTIATION_FILTERINGオプションを使用して、Oracle Datapumpインポートのインスタンス化情報を持たないオブジェクトがある場合に、指定されたCSN未満のレコードをフィルタ処理で除外できるようにします。@FILTER(@GETENV('TRANSACTION','CSN')を指定する方法の代用です。

インスタンス化SCNフィルタリングを有効にするには、次を実行する必要があります。

1. Replicatパラメータ・ファイルにDBOPTIONS ENABLE_INSTANTIATION_FILTERINGが含まれている必要があります。

2. インスタンス化SCNが各表のターゲット・データベースに設定されている必要があります。
これを行うには、次の2つの方法のいずれかを使用します。

Oracle Datapumpエクスポートの前にADD TRANDATA PREPARECSNまたはADD SCHEMATRANDATA PREPARECSNを使用して表がソース・データベースで準備されている場合は、インポート時にOracle DatapumpによってソースSCNが自動的に設定されます。

または

このコマンドを使用して、ターゲット・データベースでインスタンス化ソースSCNを手動で設定します。

構文

SET_INSTANTIATION_CSN csn FOR [schema.]table FROM source_database_name

csn

インスタンス化を開始するCSN番号。

[schema.]table

インスタンス化CSNを設定する対象の表名。スキーマが指定されていない場合、DBLOGINユーザーが使用されます。

source_database_name

これをターゲットとするソース・データベースのグローバル名。

例

SET_INSTANTIATION_CSN 12345678 FOR hr.employees FROM DBS1.US.COMPANY.COM

1.76 CLEAR_INSTANTIATION_CSN

CLEAR_INSTANTIATION_CSNでは、ターゲット・データベース上でインスタンス化CSNを手動で解除(リバース)します。このコマンドにはDBLOGIN (ユーザーはOracle GoldenGateのデフォルト・スキーマ)が必要です。

構文

CLEAR_INSTANTIATION_CSN FOR [schema.]table FROM source_database_name

[schema.]table

インスタンス化CSNを解除する対象の表名。スキーマが指定されていない場合、DBLOGINユーザーが使用されます。

source_database_name

これをターゲットとするソース・データベースのグローバル名。

例

CLEAR_INSTANTIATION_CSN FOR hr.employees FROM DBS1.US.COMPANY.COM

1.77 CLEANUP CHECKPOINTTABLE

Replicat for Java、Oracle GoldenGate Applications AdapterまたはOracle GoldenGate Big Dataには無効です。

CLEANUP CHECKPOINTTABLEでは、(GGSCIが起動された)ワーキングOracle GoldenGateディレクトリ内に、関連するチェックポイント・ファイルが存在しないチェックポイント・レコードをチェックポイント表から削除します。このコマンドの目的は、グループの変更やファイルの移動によって不要になったチェックポイント・レコードを削除することです。

このコマンドを使用する前に、DBLOGINコマンドを使用してデータベース接続を確立してください。

構文

CLEANUP CHECKPOINTTABLE [[container. | catalog.]owner.table]

container. | catalog.

Oracleプラガブル・データベースまたはSQL/MXカタログ(該当する場合)。このオプションを省略すると、カタログまたはプラガブル・データベースのデフォルトは、DBLOGINコマンドのSOURCEDB、USERIDまたはUSERIDALIAS部分(データベースにより異なる)と関連するものになります。

owner.table

クリーンアップするチェックポイント表の所有者および名前。所有者と名前を指定しない場合は、GLOBALSパラメータ・ファイルのCHECKPOINTTABLEパラメータで指定されている表が影響を受けます。

例

CLEANUP CHECKPOINTTABLE ggs.fin_check

1.78 DELETE CHECKPOINTTABLE

Replicat for Java、Oracle GoldenGate Applications AdapterまたはOracle GoldenGate Big Dataには無効です。

DELETE CHECKPOINTTABLEでは、データベースからチェックポイント表を削除します。このコマンドを使用する前に、DBLOGINコマンドを使用してデータベース接続を確立してください。

関連付けられているReplicatグループがアクティブな状態のときにチェックポイント表の使用を停止するには、次の手順を実行します。

1. GGSCIを実行します。

2. Replicatを停止します。

STOP REPLICAT group

3. Replicatグループを削除した後、次のコマンドを使用してこのグループをもう一度追加します。

DELETE REPLICAT group
ADD REPLICAT group, EXTTRAIL trail, NODBCHECKPOINT

4. GGSCIを終了し、もう一度起動します。

5. Replicatをもう一度起動します。

START REPLICAT group

6. DBLOGINコマンドとデータベースに対して適切な認証オプションを使用して、データベースにログインします。DBLOGINを参照してください。

7. DELETE CHECKPOINTTABLEを使用してチェックポイント表を削除します。

Replicatが実行中でトランザクションが発生している間にチェックポイント表を削除すると、Replicatは異常終了し、チェックポイント表が見つからないことを示すエラーを返します。ただし、チェックポイントはディスク内のチェックポイント・ファイルに保持されています。処理を再開するには、チェックポイント表を同じ名前でもう一度追加します。トレイル内データのレプリケーションが再開されます。すると、チェックポイント表を削除できます。

構文

DELETE CHECKPOINTTABLE [[container. | catalog.]owner.table] [!]

container. | catalog.

Oracleプラガブル・データベースまたはSQL/MXカタログ(該当する場合)。このオプションを省略すると、カタログまたはプラガブル・データベースのデフォルトは、DBLOGINコマンドのSOURCEDB、USERIDまたはUSERIDALIAS部分(データベースにより異なる)と関連するものになります。

owner.table

削除するチェックポイント表の所有者および名前。GLOBALSファイルのCHECKPOINTTABLEパラメータの指定と同じ場合、所有者と名前は省略できます。

!

表を削除するかどうかを確認するプロンプトをバイパスします。

例

DELETE CHECKPOINTTABLE ggs.fin_check

1.79 INFO CHECKPOINTTABLE

Replicat for Java、Oracle GoldenGate Applications AdapterまたはOracle GoldenGate Big Dataには無効です。

INFO CHECKPOINTTABLEでは、チェックポイント表の存在を確認し、作成日時を表示します。次のようなメッセージが返されます。

Checkpoint table HR.CHKPT_TBLE created 2011-01-06 11:51:53.

このコマンドを使用する前に、DBLOGINコマンドを使用してデータベース接続を確立してください。

構文

INFO CHECKPOINTTABLE [[container. | catalog.]owner.table]

container. | catalog.

Oracleプラガブル・データベースまたはSQL/MXカタログ(該当する場合)。このオプションを省略すると、カタログまたはプラガブル・データベースのデフォルトは、DBLOGINコマンドのSOURCEDB、USERIDまたはUSERIDALIAS部分(データベースにより異なる)と関連するものになります。

owner.table

チェックポイント表の所有者および名前。GLOBALSファイルのCHECKPOINTTABLEパラメータの指定と同じ場合、所有者と名前は省略できます。

例

INFO CHECKPOINTTABLE ggs.fin_check

1.80 UPGRADE CHECKPOINTTABLE

Replicat for Java、Oracle GoldenGate Applications AdapterまたはOracle GoldenGate Big Dataには無効です。

UPGRADE CHECKPOINTTABLEコマンドでは、Oracle GoldenGateをバージョン11.2.1.0.0以前からアップグレードするときにサプリメンタル・チェックポイント表を追加します。

構文

UPGRADE CHECKPOINTTABLE [[container. | catalog.]owner.table]

container. | catalog.

Oracleプラガブル・データベースまたはSQL/MXカタログ(該当する場合)。このオプションを省略すると、カタログまたはプラガブル・データベースのデフォルトは、DBLOGINコマンドのSOURCEDB、USERIDまたはUSERIDALIAS部分(データベースにより異なる)と関連するものになります。

owner.table

チェックポイント表の所有者および名前。GLOBALSファイルのCHECKPOINTTABLEパラメータの指定と同じ場合、所有者と名前は省略できます。

例

UPGRADE CHECKPOINTTABLE ggs.fin_check

1.81 ADD TRACETABLE

ADD TRACETABLEでは、Oracleデータベースにトレース表を作成します。トレース表は、USERIDまたはUSERIDALIASパラメータで構成したOracle GoldenGate Extractユーザーのスキーマにある必要があります。トレース表により、双方向同期構成でReplicatトランザクションがもう一度抽出されることを防止できます。

このコマンドを使用する前に、DBLOGINコマンドを使用してデータベース接続を確立してください。

次にトレース表の説明を示します。

表1-20トレース表の説明

名前

NULLかどうか

タイプ

説明

GROUP_ID

NOT NULL

VARCHAR2(8)

Replicatグループまたは特別実行プロセスの名前。

DB_USER

VARCHAR2(30)

Replicatグループまたは特別実行プロセスのユーザーID。

LAST_UPDATE

DATE

トランザクションのタイムスタンプ。

構文

ADD TRACETABLE [[container.]owner.table]

container

データベースがマルチテナント・コンテナ・データベース(CDB)の場合、プラガブル・データベース。

owner.table

(オプション)トレース表にデフォルトのGGS_TRACEと異なる名前を指定する場合にのみ使用します。所有者は、Extractパラメータ・ファイルのUSERIDまたはUSERIDALIASUSERIDパラメータで指定した所有者と同一である必要があります。

デフォルト名を使用するには、この引数を省略します。可能なときは常にデフォルトの表名を使用してください。デフォルトのGGS_TRACE以外のトレース表名を指定する場合は、ExtractおよびReplicatパラメータ・ファイルのTRACETABLEパラメータを使用して指定します。パラメータ・ファイルで使用するときや、統計の表示およびこの表の削除で必要になるため、この表の名前を記録しておくいてください。詳細は、TRACETABLE | NOTRACETABLEを参照してください。

例

例1

次の例では、デフォルト名GGS_TRACEのトレース表を追加します。

ADD TRACETABLE

例2

次の例では、ユーザー定義名ora_traceを持つトレース表を追加します。

ADD TRACETABLE ora_trace

1.82 DELETE TRACETABLE

DELETE TRACETABLEでは、トレース表を削除します。このコマンドを使用する前に、DBLOGINコマンドを使用してデータベース接続を確立してください。

構文

DELETE TRACETABLE [[container.]owner.table]

container

データベースがマルチテナント・コンテナ・データベース(CDB)の場合、プラガブル・データベース。

owner.table

削除するトレース表の所有者および名前。所有者がUSERIDまたはUSERIDALIASパラメータの指定と同じで、トレース表がデフォルト名のGGS_TRACEを持つ場合は、所有者と名前を省略できます。

例

DELETE TRACETABLE ora_trace

1.83 INFO TRACETABLE

INFO TRACETABLEコマンドでは、指定したトレース表がデータベースのローカル・インスタンスに存在しているかどうかを検証します。表が存在する場合、Oracle GoldenGateは表の名前と作成日時を表示します。表が存在しない場合、Oracle GoldenGateはこの表が存在しないことを示すメッセージを表示します。このコマンドを使用する前に、DBLOGINコマンドを使用してデータベース接続を確立してください。

構文

INFO TRACETABLE [[container.]owner.table]

container

データベースがマルチテナント・コンテナ・データベース(CDB)の場合、プラガブル・データベース。

owner.table

検証するトレース表の所有者および名前。所有者がUSERIDまたはUSERIDALIASパラメータの指定と同じで、トレース表がデフォルト名のGGS_TRACEを持つ場合は、所有者と名前を省略できます。

例

INFO TRACETABLE ora_trace

1.84 ALTER DATASTORE

ALTER DATASTOREコマンドでは、Oracle GoldenGate Monitorのデータ・ストアによるプロセス間通信に使用されるメモリー・モデルを変更します。このコマンドを使用する前に、すべてのOracle GoldenGateプロセス(Managerを含む)を停止します。データ・ストアの詳細は、『Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

構文

ALTER DATASTORE {MMAP | SHM [ID n]}

MMAP

データ・ストアがプロセス間通信にメモリー・マップ・ファイルを使用する必要があることを示します。

SHM [ID n]

データ・ストアがプロセス間通信にSystem V共有メモリーを使用する必要があることを示します。このオプションは、Windowsプラットフォームでは使用できません。IDを指定しない場合、適切なIDが使用されます。

例

例1

ALTER DATASTORE MMAP

例2

ALTER DATASTORE SHM

例3

ALTER DATASTORE SHM ID 1000

1.85 CREATE DATASTORE

CREATE DATASTOREコマンドでは、Oracle GoldenGate Monitorデータ・ストアをOracle GoldenGateインストール・ディレクトリに作成します。詳細は、『Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

構文

CREATE DATASTORE [ MMAP | SHM [ID n] ]

MMAP

データ・ストアがプロセス間通信にメモリー・マップ・ファイルを使用する必要があることを示します。

SHM [ID n]

データ・ストアがプロセス間通信にSystem V共有メモリーを使用する必要があることを示します。このオプションは、Windowsプラットフォームでは使用できません。IDを指定しない場合、適切なIDが使用されます。デフォルトはSHMです。

例

例1

CREATE DATASTORE MMAP

例2

CREATE DATASTORE SHM

例3

CREATE DATASTORE SHM ID 1000

1.86 DELETE DATASTORE

DELETE DATASTOREコマンドでは、Oracle GoldenGate Monitorデータ・ストアをOracle GoldenGateインストール・ディレクトリから削除します。このコマンドを使用する前に、すべてのOracle GoldenGateプロセス(Managerを含む)を停止します。詳細は、『Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

構文

DELETE DATASTORE [ ! ]

!

(感嘆符)データ・ストアを削除するかどうかを確認するプロンプトをバイパスします。

例

例1

DELETE DATASTORE

例2

DELETE DATASTORE !

1.87 INFO DATASTORE

INFO DATASTOREコマンドでは、Oracle GoldenGate Monitorデータ・ストアの情報を取得します。詳細は、『Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

構文

INFO DATASTORE

1.88 REPAIR DATASTORE

REPAIR DATASTOREコマンドでは、Oracle GoldenGate Monitorデータ・ストアが破損した場合、またはアップグレード後に修復します。

このコマンドを使用する前に、すべてのOracle GoldenGateプロセス(Managerを含む)を停止します。詳細は、『Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

構文

REPAIR DATASTORE

1.89 INFO JAGENT

INFO JAGENTコマンドでは、Oracle GoldenGate Monitor JAgentが実行しているかどうかを判別します。このコマンドはSTATUS JAGENTの別名です。詳細は、『Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

構文

INFO JAGENT

1.90 START JAGENT

START JAGENTコマンドでは、非クラスタ環境でOracle GoldenGate Monitor JAgentプロセスを開始します。Windowsクラスタで、クラスタ・アドミニストレータからJAgentを起動します。詳細は、『Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

構文

START JAGENT

1.91 STATUS JAGENT

STATUS JAGENTコマンドでは、Oracle GoldenGate Monitor JAgentが実行しているかどうかを判別します。このコマンドはINFO JAGENTの別名です。詳細は、『Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

構文

STATUS JAGENT

1.92 STOP JAGENT

STOP JAGENTコマンドでは、非クラスタ環境でOracle GoldenGate Monitor JAgentプロセスを停止します。Windowsクラスタで、クラスタ・アドミニストレータからJAgentを停止します。詳細は、『Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

構文

STOP JAGENT [ ! ]

!

(感嘆符)JAgentを停止するかどうかを確認するプロンプトをバイパスします。

例

例1

STOP JAGENT

例2

STOP JAGENT !

1.93 ADD HEARTBEATTABLE

ADD HEARTBEATTABLEでは、自動ハートビート機能を使用する場合に必要なオブジェクトを作成します。このコマンドの内容は次のとおりです。

- ハートビート・シード表、ハートビート表およびハートビート履歴表の作成、

- GG_LAGビューおよびGG_LAG_HISTORYビューの作成、

- スケジューラ・ジョブによってコールされるGG_UPDATE_HB_TABおよびGG_PURGE_HB_TABプロシージャの作成、

- ハートビートとシード表の更新および履歴表のパージを定期的に実行するスケジューラ・ジョブの作成、

- シード表の移入。

シード表、ハートビート表および履歴表のデフォルト名は、それぞれGG_HEARTBEAT_SEED、GG_HEARTBEATおよびGG_HEARTBEAT_HISTORYです。表、プロシージャおよびスケジューラ・ジョブは、GLOBALSファイルに記述されているGGSCHEMAで作成されます。デフォルト名をオーバーライドするには、GLOBALSファイルにHEARTBEATTABLE hbschemaname.hbtablenameを指定します。この場合、表、プロシージャおよびジョブは、スキーマhbschemanameで作成されます。シードと履歴表を作成するには、表hbtablenameに_SEEDおよび_HISTORYを追加します。

このコマンドにはDBLOGINが必要です。CDBデータベースではPDBログインが必要です。

Oracleの場合、CDBモードでハートビートを生成する各PDBでADD HEARTBEATTABLEを実行する必要があります。

DB2 LUWの場合、db2set DB2_ATS_ENABLE=yesコマンドでDB2_ATS_ENABLEプロパティを設定する必要があります。

SQL/MXの場合、GGSCHEMAスキーマは使用されないので、2部または3部構成の名前のみを使用する必要があります。また、ストアド・プロシージャやスケジューラ・ジョブはありません。

構文

ADD HEARTBEATTABLE
[, FREQUENCY number in seconds]
[, RETENTION_TIME number in days] |
[, PURGE_FREQUENCY number in days]

FREQUENCY

ハートビート・シード表とハートビート表の更新頻度を指定します。たとえば、ハートビート・レコードが生成される頻度です。デフォルトは60秒です。

RETENTION_TIME

履歴表で保存時間を過ぎたハートビート・エントリをパージするタイミングを指定します。デフォルトは30日です。

PURGE_FREQUENCY

保存時間を過ぎた表エントリを履歴表から削除するパージ・スケジューラの実行頻度を指定します。デフォルトは1日です。

例

例1

次のコマンドでは、デフォルトのハートビート表、プロシージャおよびジョブを作成します。

ADD HEARTBEATTABLE

例2

次のコマンドでは、カスタム頻度、保存時間およびパージ頻度を指定してハートビート表、プロシージャおよびジョブを作成します。

ADD HEARTBEATTABLE, frequency 120, retention_time 10, purge_frequency 2

1.94 ALTER HEARTBEATTABLE

ALTER HEARTBEATTABLEでは、ADD HEARTBEATTABLEで設定した既存のシード表、ハートビート表および履歴表のオプションを変更します。

このコマンドにはDBLOGINが必要です。CDBデータベースではPDBログインが必要です。

構文

ALTER HEARTBEATTABLE
[, FREQUENCY number in seconds]
[, RETENTION_TIME number in days] |
[, PURGE_FREQUENCY number in days]

FREQUENCY

頻度をゼロ(0)に変更することは、ハートビートの一時停止と同じです。ハートビート・レコードを再開するには、頻度を0より大きい値に変更します。

RETENTION_TIME

指定されたハートビートの保存時間(日単位)を変更します。

PURGE_FREQUENCY

ハートビート表をパージする繰返し間隔(日単位)を変更します。

例

ALTER HEARTBEATTABLE FREQUENCY 60

ALTER HEARTBEATTABLE RETENTION_TIME 30

ALTER HEARTBEATTABLE PURGE_FREQUENCY 1

1.95 DELETE HEARTBEATTABLE

DELETE HEARTBEATTABLEでは、表、プロシージャ、スケジューラおよびビューを削除します。このコマンドにはDBLOGINが必要です。CDBデータベースではPDBログインが必要です。

構文

DELETE HEARTBEATTABLE group_name

group_name

削除するプロセス名。

1.96 DELETE HEARTBEATENTRY

DELETE HEARTBEATENTRYでは、受信または送信パス列で指定されたプロセス名のレコードをハートビート表から削除します。このコマンドにはDBLOGINが必要です。CDBデータベースではPDBログインが必要です。

構文

DELETE HEARTBEATENTRY group_name

group_name

削除するプロセス名。

1.97 INFO HEARTBEATTABLE

INFO HEARTBEATTABLEでは、データベースに構成されたハートビート表に関する情報を表示します。

このコマンドにはDBLOGINが必要です。CDBデータベースではPDBログインが必要です。

構文

INFO HEARTBEATENTRY

1.98 !

!コマンドでは、以前に実行したGGSCIコマンドを、変更せずに実行します。再実行する前にコマンドに変更を加えるには、FCcommandを使用します(FCを参照してください)。以前に実行したコマンドのリストを表示するには、HISTORYコマンドを使用します(「HISTORY」を参照してください)。

引数なしの!では、最後に実行したコマンドを実行します。オプションを使用して行番号またはテキスト部分文字列を指定すると、以前に実行した任意のコマンドを実行できます。コマンド履歴はセッション間で保持されないため、以前に実行したコマンドは、現在のGGSCIセッション中に発行されたもののみ再実行できます。

構文

! [n | -n | string]

n

指定したGGSCI行からコマンドを実行します。各GGSCIコマンド行には、セッションの最初を1として順序番号が付与されています。

-n

現在の行からn行前に発行されたコマンドを実行します。

string

指定した文字列から始まる最新のコマンドを実行します。

例1-1 例

例1

! 9

例2

! -3

例3

! sta

1.99 ALLOWNESTED | NOALLOWNESTED

ALLOWNESTEDおよびNOALLOWNESTEDコマンドでは、ネストされたOBEYファイルの使用を有効にします。ネストされたOBEYファイルとは、他のOBEYファイルが含まれるOBEYファイルです。

GGSCIセッションを終了すると、次のGGSCIセッションでは設定がNOALLOWNESTEDに戻ります。

詳細は、OBEYを参照してください。

構文

ALLOWNESTED | NOALLOWNESTED

ALLOWNESTED

ネストされたOBEYファイルを使用できるようにします。ネスト・レベルの最大数は16です。

NOALLOWNESTED

これはデフォルトです。デフォルト・モードのNOALLOWNESTEDで、ネストされたOBEYファイルの実行を試みると、次のようなエラーが発生します。

ERROR: Nested OBEY scripts not allowed. Use ALLOWNESTED to allow nested scripts.

1.100 CREATE SUBDIRS

CREATE SUBDIRSは、Oracle GoldenGateのインストール時に使用します。このコマンドでは、Oracle GoldenGateホーム・ディレクトリ内にデフォルト・ディレクトリを作成します。CREATE SUBDIRSは、他の構成タスクを実行する前に使用してください。

注意:

dirbdbはCREATE SUBDIRSでは作成されず、CREATE DATASTOREでのみ作成されます。

構文

CREATE SUBDIRS

1.101 DEFAULTJOURNAL

DEFAULTJOURNALコマンドでは、DB2 for iデータベースの使用時に、JOURNALキーワードを使用する必要なく、ADD TRANDATAコマンドに対する複数の表またはファイルにデフォルトのジャーナルを設定します。このコマンドはADD TRANDATAコマンドの発行前に発行します。ジャーナルを指定せずに使用されたADD TRANDATAでは、DEFAULTJOURNALのジャーナルが想定されます。デフォルトのジャーナルを使用しない場合は、CLEARオプションを使用します。DEFAULTJOURNALの現在の設定を表示するには、引数を指定しないでコマンドを発行します。

構文

DEFAULTJOURNAL [library/journal] [CLEAR]

library/journal

ADD TRANDATAに対するデフォルトのジャーナルとして使用するジャーナルのネイティブ名。

CLEAR

ADD TRANDATAのデフォルトのジャーナルの使用を停止します。

1.102 FC

FCでは、以前に発行したGGSCIコマンドを表示して編集した後、このコマンドを再実行します。以前のコマンドはメモリー・バッファに格納されており、HISTORYコマンド(HISTORYを参照)を発行して表示できます。

以前に実行したコマンドの表示

引数なしでFCを発行すると、最後に実行したコマンドが表示されます。オプションを使用して行番号またはテキスト部分文字列を指定すると、以前に実行した任意のコマンドを実行できます。コマンド履歴はセッション間で保持されないため、以前に実行したコマンドは、現在のGGSCIセッション中に発行されたもののみ編集できます。

コマンドの編集

FCを実行すると、指定したコマンドが表示された後、エディタが開き、2つのドットで始まる空白行が表示されます。コマンドを編集するには、[Space]キーを使用して表示されているコマンド内の編集開始文字の下にカーソルを動かし、次のいずれかの引数を使用します。引数は大文字/小文字が区別されず、組み合せることができます。

表1-21 FCエディタ・コマンド

引数

説明

i text

テキストを挿入します。例:

GGSCI (SysA) 24> fc 9
GGSCI (SysA) 24> send mgr
GGSCI (SysA) 24..        i childstatus
GGSCI (SysA) 24> send mgr childstatus

r text

テキストを置換します。例:

GGSCI (SysA) 25> fc 9
GGSCI (SysA) 25> info mgr
GGSCI (SysA) 25..     rextract extjd
GGSCI (SysA) 25> info extract extjd

d

文字を削除します。複数の文字を削除するには、1文字につきdを1つ入力します。例:

GGSCI (SysA) 26> fc 10
GGSCI (SysA) 26> info extract extjd, detail
GGSCI (SysA) 26..                  dddddddd
GGSCI (SysA) 26> info extract extjd

replacement text

表示されているコマンドを、入力するテキストと1対1で置き換えます。例:

GGSCI (SysA) 26> fc 10
GGSCI (SysA) 26> info mgr
GGSCI (SysA) 26..     extract extjd
GGSCI (SysA) 26> info extract extjd

コマンドを実行するには、[Enter]を2回押します。1回はエディタを終了するため、もう1回はコマンドを発行するためです。編集を取り消すには、スラッシュ(/)を2回入力します。

構文

FC [n | -n | string]

n

指定した行からコマンドを表示します。各GGSCIコマンド行には、セッションの最初を1として順序番号が付与されています。

-n

現在の行からn行前に発行されたコマンドを表示します。

string

指定した文字列から始まる最新のコマンドを表示します。

例

例1

FC 9

例2

FC -3

例3

FC sta

1.103 HELP

HELPでは、Oracle GoldenGateコマンドに関する情報を取得します。基本コマンドは、コマンド・カテゴリおよび関連コマンドのリストを返します。commandオプションでは、特定のコマンドに出力を制限します。

構文

HELP [command]

command

ヘルプを表示するコマンド。

例

HELP add replicat

1.104 HISTORY

HISTORYでは、GGSCIセッションの開始以降で最近発行されたGGSCIコマンドのリストを表示します。!コマンド(!)またはFCコマンド(FC)を使用して、リスト内のコマンドを再実行できます。

構文

HISTORY [n]

n

特定の最近のコマンドを返します。nには、任意の正の数を指定します。

例

HISTORY 7

このコマンドの結果は次のようになります。

1: start manager
2: status manager
3: info manager
4: send manager childstatus
5: start extract extjd
6: info extract extjd
7: history

1.105 INFO ALL

INFO ALLでは、システム上のすべてのManager、ExtractおよびReplicatプロセスのステータスおよび(関連する場合は)ラグを表示します。Oracle Grid Infrastructure Agents (XAG) Clusterwareコンポーネントが使用されている場合は、その関連情報も表示されます。オプションなしの基本コマンドでは、オンライン(継続的な)プロセスのみを表示します。タスクを表示するには、INFO ALL TASKSまたはINFO ALL ALLPROCESSESを使用します。

StatusフィールドおよびLag at Chkpt (チェックポイント)フィールドは、INFO EXTRACTコマンドおよびINFO REPLICATコマンドと同じプロセス・ステータスおよびラグを表示します。

Replicatが調整モードの場合、INFO ALLではコーディネータ・スレッドのみが表示されます。個別のスレッドの情報を表示するには、INFO REPLICATを使用します。

例1-2 INFO ALLの出力例

Program       Status      Group       Lag at Chkpt    Time Since Chkpt
MANAGER       RUNNING
EXTRACT       ABENDED     EXTCUST     00:00:00        96:56:14
EXTRACT       STOPPED     INITDL
EXTRACT       STOPPED     INITDBL

構文

INFO ALL [TASKS | ALLPROCESSES]

TASKS

タスクの情報のみ表示します。

ALLPROCESSES

オンライン・プロセスおよびタスクの情報を表示します。

例

例1

INFO ALL TASKS

例2

INFO ALL ALLPROCESSES

1.106 INFO MARKER

INFO MARKERでは、NonStopシステムの最近処理されたマーカーを確認します。GGSCI、Logger、ExtractまたはReplicatによるマーカー処理ごとに1つレコードが表示されます。

マーカーは、HP NonStopソフトウェア用のOracle GoldenGate for NonStopを使用してのみNonStopシステムで追加できます。

次に出力の例を示します。

Processed             Added               Diff     Prog    Group    Node
2012-02-16:14:41:15   2012-02-16:14:41:08 00:00:07 Extract PQACMD   \QAMD
GROUPCMD REPLICAT RQACMD CLOSEFILES
2012-02-16:14:41:13   2012-02-16:14:41:08 00:00:05 Extract PQACMD   \QAMD
TACLCMD REPLICAT RQACMD FUP PURGEDATA $QA16.QAETAR

説明:

- Processedは、マーカーが処理されたローカル時間です。

- Addedは、マーカーがNonStop監査証跡またはログ・トレイルに挿入されたローカル時間です。

- Diffは、Processed値とAdded値の時間差です。Diffは、ユーザー・アプリケーションとExtractおよびReplicatのアクティビティのラグを示すインジケータとして活用できます。

- Progは、GGSCI、Logger、ExtractまたはReplicatなど、マーカーを処理したプロセスです。

- Groupは、マーカーを処理したExtractまたはReplicatグループ、またはLoggerプロセスです。GGSCIがマーカーを処理した場合は、N/Aが表示されます。

- Nodeは、監査証跡内のマーカーの挿入先ノードです。

- ADD MARKER文にユーザー定義テキストが含まれていた場合は、追加の列が表示されることがあります。

構文

INFO MARKER [COUNT number]

COUNT number

リストへの出力を特定の数の最新のマーカーに制限します。

1.107 OBEY

OBEYでは、Oracle GoldenGateコマンドのリストを含むファイルを処理します。OBEYは、特定の順序で頻繁に使用されるコマンドを実行するときに便利です。

OBEYファイルは、他のOBEYファイルから呼出しできます。こうしたファイルをネストされたOBEYファイルと呼びます。最大で16のOBEYファイルをネストできます。ネストされたOBEYファイルを使用するには、まずALLOWNESTEDコマンドを発行してこの機能を有効化する必要があります。ALLOWNESTED | NOALLOWNESTEDを参照してください。

構文

OBEY file_name

file_name

コマンドのリストを含むファイルの相対パス名または完全修飾パス名。

例

例1

OBEY ./mycommands.txt

前述のコマンドでは、次の例のようなファイルを実行します。

add extract fin, tranlog, begin now
add exttrail dirdat/aa, extract fin
add extract hr, tranlog, begin now
add exttrail dirdat/bb, extract hr
start extract *
info extract *, detail

例2

次に、ネストされたOBEYファイルの例を示します。OBEYファイル名をaddcmds.txtとします。このファイル内には、startcmds.txtという名前のOBEYファイルを呼び出して別のコマンド・セットを実行する、別のOBEYコマンドも含まれています。

OBEY ./addcmds.txt

(このOBEY文は次のことを実行します)

add extract fin, tranlog, begin now
add exttrail ggs/dirdat/aa, extract fin
add extract hr, tranlog, begin now
add exttrail ggs/dirdat/bb, extract hr
add replicat fin2, exttrail ggs/dirdat/aa, begin now
add replicat hr2, exttrail ggs/dirdat/bb, begin now
obey ./startcmds.txt

(ネストされたstartcmds.txtファイルは次のことを実行します)

start extract *
info extract *, detail
start replicat *
info replicat *, detail

1.108 SHELL

SHELLでは、GGSCIインタフェース内からシェル・コマンドを実行します。

構文

SHELL command

command

実行するシステム・コマンド。

例

例1

SHELL dir dirprm\*

例2

SHELL rm ./dat*

1.109 SHOW

SHOWでは、Oracle GoldenGate環境を表示します。

構文

SHOW

例

次にSHOWの出力例を示します。データベース・タイプに応じて、追加のエントリが表示される場合があります。

Parameter settings:
SET SUBDIRS    ON
SET DEBUG      OFF
Current directory: C:\GG_81
Using subdirectories for all process files
Editor:  notepad
Reports (.rpt)                 C:\GG_81\dirrpt
Parameters (.prm)              C:\GG_81\dirprm
Replicat Checkpoints (.cpr)    C:\GG_81\dirchk
Extract Checkpoints (.cpe)     C:\GG_81\dirchk
Process Status (.pcs)          C:\GG_81\dirpcs
SQL Scripts (.sql)             C:\GG_81\dirsql
Database Definitions (.def)    C:\GG_81\dirdef

1.110 VERSIONS

VERSIONSでは、オペレーティング・システムおよびデータベースのバージョン情報を表示します。ODBC接続の場合は、ドライバ・バージョン情報も表示されます。出力にデータベース情報を含めるためには、VERSIONSを発行する前にDBLOGINコマンドを発行して、データベース接続を確立してください。

構文

VERSIONS

1.111 VIEW GGSEVT

VIEW GGSEVTでは、Oracle GoldenGateエラー・ログ(ggserr.logファイル)を表示します。このファイルには、プロセス起動、シャットダウン、例外条件などのOracle GoldenGateイベントに関する情報が含まれています。この情報はシステム・エラー・ログにも記録されますが、Oracle GoldenGateエラー・ログのほうが簡単に表示でき、またシステム・エラー・ログよりも過去に遡った情報が保持されていることもあります。

表示される情報は長くなることがあります。最後に到達する前に表示を終了するには、オペレーティング・システムの標準の画面出力終了方法を使用してください。

構文

VIEW GGSEVT

例

次にVIEW GGSEVTの出力例を示します。

2011-01-08 11:20:56  GGS INFO     301  GoldenGate Manager for Oracle,
mgr.prm:  Command received from GUI (START GGSCI ).
2011-01-08 11:20:56  GGS INFO     302  GoldenGate Manager for Oracle,
mgr.prm:  Manager started GGSCI process on port 7840.
2011-01-08 11:21:31  GGS INFO     301  GoldenGate Manager for Oracle,
mgr.prm:  Command received from GUI (START GGSCI ).

1.112 VIEW REPORT

VIEW REPORTでは、ExtractまたはReplicatが生成したプロセス・レポートまたは破棄ファイルを表示します。各プロセスでは、起動時に新しいレポートおよび破棄ファイルを生成します。

プロセスが起動されるたびにレポートおよび破棄ファイルはエージングされます。過去のファイルには、順序番号が付けられます(例: finance0.rpt、finance1.rptなど、またはdiscard0.dsc、discard1.dscなど)。

構文

VIEW REPORT group_name[version]

group_name

ExtractまたはReplicatグループ名。このコマンドは、Oracle GoldenGate dirrptサブディレクトリのgroup.rptという名前のレポート・ファイル、またはgroup.dscという名前の破棄ファイルを想定します。

version

デフォルトの場所に格納されている場合には相対ファイル名、またはデフォルトの場所に格納されていない場合は、フルパス名。

例

例1

最新(アクティブ)のレポートを表示します。

VIEW REPORT MYEXT

例2

2番目に新しいレポートを表示します。

VIEW REPORT MYEXT0

例3

11番目に新しいレポートを表示します。

VIEW REPORT MYEXT9

例4

次の例では、ファイル名で指定した特定の破棄ファイルを表示します。ファイル名には非デフォルトのファイル拡張子が付けられていることに注意してください。

VIEW REPORT dirrpt\orders.rpt

2 Oracle GoldenGateのネイティブ・コマンド

この章では、(GGSCIコマンド・インタフェース外部の)オペレーティング・システムのネイティブ・コマンドラインからOracle GoldenGateを制御するために使用可能なコマンドのリファレンス情報を記載します。これにより、プログラムを非対話型で実行するためのコマンドをスクリプトに組み込むことができます。

2.1 Oracle GoldenGateのネイティブ・コマンドの概要

この項では、Linux、UNIX、WindowsまたはIBM iプラットフォームのネイティブ・コマンドラインから直接発行できるコマンドの概要を示します。このドキュメントの目的上、IBM i PASE環境から発行するコマンドはUNIXコマンドとみなされます。

IBM iプラットフォームでは、これらのコマンドはOracle GoldenGateインストール・ライブラリに格納されているため、PASE環境から発行せずに使用できます。このサポートにより、SBMJOBなどの一般的なジョブ発行ツールを使用してOracle GoldenGate製品を操作することが可能になります。バッチに送信されると、出力はスプール・ファイルに書き込まれ、ジョブ・メッセージおよび例外のみがジョブ・ログに書き込まれます。一般的なインストールにおいては、バッチ送信コマンドにQPRINT出力スプール・ファイルとjoblogスプール・ファイルの両方が含まれています。

IBM CLIからネイティブ・コマンドを使用するには、Oracle GoldenGateインストール・ライブラリをライブラリ・リストに追加するか、OGGLIB/GGSCIのような修飾名を介して明示的にそれを参照する必要があります。コマンドの実行中、現在のディレクトリがOracle GoldenGateインストール・ディレクトリに設定され、Oracle GoldenGateコマンドを操作するためにすべての適切な環境変数が設定されます。したがって、パスを取ることができるパラメータのパスは、絶対パス名またはOracle GoldenGateインストール・ディレクトリに基づく相対パス名として指定できます。IBM i CLIコマンドにより明示的に公開されていない他のパラメータを指定できるようにするには、IBM i CLIコマンドのOTHERSパラメータを使用します。たとえば、ExtractにREPORTFILEおよびPROCESSIDを指定する場合は、次の構文を使用します。

EXTRACT PARAMFILE('dirprm/myext.prm') OTHERS(REPORTFILE 'dirrpt/myext.rpt' PROCESSID myext)

注意:

通常、ExtractおよびReplicatはGGSCIから実行する必要がありますが、特定の初期ロード手順など状況によっては、オペレーティング・システムのコマンドラインから実行する必要があります。

表2-1 コマンド

コマンド

説明

checkprm

指定されたパラメータ・ファイルの有効性を評価します。

convchk

指定したExtractグループについて、トレイル・ファイルを9桁から6桁のチェックポイント・レコードに変換します。

defgen

DEFGENプログラムを実行します。このプログラムは、オブジェクト・メタデータの取得をサポートするために、リモート・システムに転送されるファイル内にデータ定義を生成します。

extract

Extractプログラムを実行します。このプログラムは、構成パラメータに応じて完全なデータ・レコードまたはトランザクション・データの変更を取得した後、データ・ポンプExtractまたはReplicatプロセスなどの下流プロセスによる後続処理のために、データをトレイルに送信します。

ggsci

Oracle GoldenGateコマンドライン・インタフェースを実行します。

keygen

KEYGENユーティリティを実行します。このユーティリティは、Oracle GoldenGateセキュリティをサポートするために暗号化鍵を生成します。

logdump

Logdumpユーティリティを実行します。このユーティリティを使用すると、トラブルシューティング目的でトレイル・ファイルの内容を表示できます。このコマンドは引数を取りません。Logdumpの詳細は、『Oracle GoldenGate Oracle GoldenGateログダンプ・リファレンス』.を参照してください。

mgr

Managerプログラムを実行します。ManagerはOracle GoldenGateの親プロセスで、自身のプロセスおよびファイル、リソース、ユーザー・インタフェース、しきい値およびエラーのレポートを管理します。

replicat

Replicatプログラムを実行します。このプログラムは、トレイルを読み取って必要に応じてマッピングおよび操作を実行し、データをターゲット・データベースに適用します。

2.2 checkprm

checkprmコマンドでは、構成可能なアプリケーションと実行環境を使用して、指定されたパラメータ・ファイルの有効性を評価します。単純にPASS/FAILを表示するか、各パラメータの値がどのように格納され解釈されるかに関するオプション詳細を付けて表示することもできます。

checkprmを使用して、これらの引数のいずれも使用しない場合、checkprmは自動的にExtractまたはReplicatおよびOracle GoldenGateインストールのプラットフォームとデータベースを検出しようとします。

checkprmの使用方法の詳細は、olink:GWUAD473Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

checkprm
[None]
[-v]
[? | help]
[parameter_file]
[-COMPONENT | -C) component_name]
[-MODE | -M) mode_name]
[-PLATFORM | -P) platform_name]
[-DATABASE | -D) database _ame]
[-VERBOSE | -V)]

None

使用方法情報を表示します。

-v

バナーを表示します。他のオプションと組み合せることはできません。詳細(-VERBOSE | -V)出力は生成されません。

? | help

詳細な使用方法情報(各オプションの使用可能なすべての値など)を表示します。他のオプションと組み合せることはできません。

parameter_file

パラメータ・ファイルの名前を指定します。検証が必要な場合は第1引数にする必要があります。パラメータ・ファイルへの絶対パスを指定する必要があります。例: CHECKPRM ./dirprm/myext.prm。

-COMPONENT | -C component_name

このパラメータ・ファイルを検証する対象の実行中のコンポーネント(アプリケーション)を指定します。このオプションは、ExtractまたはReplicatでは省略可能です(自動検出が試行されるため)。有効な値は次のとおりです。

CACHEFILEDUMP COBGEN CONVCHK CONVPRM DDLCOB DEFGEN EMSCLNT EXTRACT GGCMD GGSCI KEYGEN LOGDUMP
MGR OGGERR REPLICAT RETRACE
REVERSE SERVER GLOBALS

このオプションにデフォルトはありません。

-MODE | -M mode_name

実行中のアプリケーションのモードを指定します(該当する場合)。このオプションは省略可能で、ExtractまたはReplicatにのみ適用できます。

このオプションの有効な入力は次のとおりです。

- Classic Extract

- Integrated Extract

- Initial Load Extract

- Remote Task Extract

- Data Pump Extract

- Passive Extract

- Classic Replicat

- Coordinated Replicat

- Integrated Replicat

- Special Run Replicat

- Remote Task

- Replicat All

このオプションの値を入力する際、アプリケーション名はコンポーネントの値と一致する場合にかぎり省略可能です。たとえば、コンポーネントがExtractの場合、""Data Pump Extract"は""Data Pump"と同等です。ただし、コンポーネントがReplicatの場合は無効です。

-PLATFORM | -P platform_name

アプリケーションを実行するプラットフォームを指定します。デフォルト値は、このcheckprm実行可能ファイルが実行されているプラットフォームです。

指定できる値は次のとおりです。

AIX HP-OSS HPUX-IT HPUX-PA
Linux OS400 ZOS Solaris SPARC
Solaris x86 Windows x64 All

-DATABASE | -D database_name

アプリケーションを構築する対象のデータベースを指定します。デフォルト値は、Oracle GoldenGateインストール用のデータベースです。

データベース・オプションは次のとおりです。

Generic Oracle 8 Oracle 9i
Oracle 10g Oracle 11g Oracle 12c
Sybase DB2LUW 9.5 DB2LUW 9.7
DB2LUW 10.5 DB2LUW 10.1 DB2 Remote
Teradata Timesten Timesten 7
Timesten 11.2.1 MySQL Ctree8
Ctree9 DB2 for I DB2 for i Remote
MS SQL Informix Informix1150
Informix1170 Informix1210 Ingres
SQL/MX DB2 z/OS PostgreSQL

-VERBOSE | -V

詳細なパラメータ情報を表示し、値がどのように読み取られ解釈されるかを示すよう、checkprmに指示します。検証で指定される最後のオプションであり、-vオプションよりも詳細な情報を提供します。

2.3 convchk

convchkコマンドでは、指定したextractグループについて、トレイル・ファイルを9桁から6桁のチェックポイント・レコードに変換します。

convchkの使用方法の詳細は、『Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

Windows、UNIXおよびLinuxの構文

convchk <checkpoint_group> <trail_name> (SEQLEN_9D | SEQLEN_6D) [-force]

checkpoint_group

トレイルを書き込むExtractグループ名。

trail_name

ADD EXTRAILまたはADD RMTTRAILコマンドで使用されたトレイルの相対名または完全修飾パス名。

seqlen_9d

順序の長さを9桁に設定します。これはデフォルトです。

seqlen_6d

順序の長さを6桁に設定します。

-force

オプションですが、お薦めしません。これは、Extractが正常に停止されなかった場合に使用できます。

2.4 defgen

defgenでは、Linux、UNIX、WindowsまたはIBM iオペレーティング・システムのコマンドラインからDEFGENユーティリティを実行します。defgenコマンドは、Oracle GoldenGateインストール・ディレクトリまたはライブラリにインストールされます。

DEFGENの使用方法の詳細は、『Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

Windows、UNIXおよびLinuxの構文

defgen paramfile parameter_file
[CHARSET character_set]
[COLCHARSET character_set]
[noextattr]
[pauseatend | nopauseatend]
[reportfile report_file]

次の構文は、他のオプションなしでも使用できます。

defgen defs_file updatecs charset

defgen

このコマンドをオプションなしで使用した場合、プログラムが対話型で実行されます。

paramfile parameter_file

必須。実行するDEFGENプログラムのパラメータ・ファイルの相対パス名または絶対パス名を指定します。

CHARSET character_set

サポートされているキャラクタ・セット。詳細は、「CHARSET」を参照してください。

COLCHARSET character_set

サポートされているキャラクタ・セット。詳細は、「COLCHARSET」を参照してください。

noextattr

リリース11.2.1より古いOracle GoldenGateとの下位互換性を維持するために使用できますが、ASCII以外のキャラクタ・セット、大/小文字の区別、および空白とともに引用符で囲んだオブジェクト名をサポートしません。NOEXTATTRを指定すると、DEFGENは、Oracle GoldenGateリリース11.2.1で導入されたグローバリゼーション機能をサポートするデータベース・ロケールおよびキャラクタ・セットを組み込みません。表名または列名にマルチバイト文字や空白などの特殊文字が含まれている場合、NOEXTATTRを指定すると、DEFGENは表定義を組み込みません。パラメータ・ファイルでAPPENDモードが使用されている場合、NOEXTATTRは無視され、その他の属性が指定されているかどうかに関係なく、新しい表定義が既存のファイル形式で追加されます。

pauseatend | nopauseatend

(Windowsのみ)プロセスが停止した場合、Oracle GoldenGateユーザーはコンソール出力を参照し、任意のキーを押してクリアする必要があります。また、プロセスが正常終了したか異常終了したかも示します。

reportfile report_file

指定したレポート・ファイルにコマンド出力を送信します。reportfileオプションを指定しない場合、コマンド出力は画面に表示されます。

defs_file updatecs charset

キャラクタ・セットに互換性のないオペレーティング・システムに定義ファイルを転送する場合、その定義ファイルのキャラクタ・セットを別のキャラクタ・セットに変換します。この手順では、入力として定義ファイル名およびターゲットのキャラクタ・セットが使用されます。例: defgen ./dirdef/source.def UPDATECS UTF-8。

updatecsが役立つのは、日本語のWindowsにおける日本語の表名がWindows CP932でデータ定義ファイルに記述されており、その定義ファイルを日本語のUNIXに転送するような場合です。UNIXがPCKロケールで構成されていないかぎり、このファイルは使用できません。そのため、updatecsを使用して定義ファイルのエンコーディングを正しい形式に変換する必要があります。

IBM i CLIの構文

DEFGEN PARAMFILE(input_file)
[OTHERS(other_options)]

PARAMFILE(input_file)

入力テキスト・ファイルはOBEYファイルと呼ばれ、発行するコマンドが1行に1つずつ発行順に含まれています。オペレーティング・システムでサポートされる任意の名前を指定します。

OTHERS(other_options)

UNIXバージョンのコマンドでサポートされる、空白区切りのリストとして提供されるオプション。

2.5 extract

extractでは、Linux、UNIX、WindowsまたはIBM iオペレーティング・システムのコマンドラインからExtractプログラムを実行します。extractコマンドは、Oracle GoldenGateインストール・ディレクトリまたはライブラリにインストールされます。

Windows、UNIXおよびLinuxの構文

extract paramfile parameter_file
[atcsn CSN | aftercsn CSN]
[initialdataload]
[pauseatend | nopauseatend]
[processid PID]
[reportfile report_file]
[usesubdirs | nousesubdirs]

extract

このコマンドをオプションなしで使用した場合、プログラムが対話型で実行されます。

paramfile parameter_file

必須。実行するExtractプログラムのパラメータ・ファイルの相対パス名または絶対パス名を指定します。デフォルトの場所は、Oracle GoldenGateインストール・ディレクトリのdirprmサブディレクトリです。

atcsn CSN | aftercsn CSN

指定したコミット順序番号(CSN)またはその後からプロセスを開始します。詳細は、START EXTRACTを参照してください。

initialdataload

ターゲットへの初期ロードをサポートするためにExtractを実行してすべてのデータ・レコードをソース・データベースから直接抽出します。

pauseatend | nopauseatend

(Windowsのみ)プロセスが停止した場合、Oracle GoldenGateユーザーはコンソール出力を参照し、任意のキーを押してクリアする必要があります。また、プロセスが正常終了したか異常終了したかも示します。

processid PID

プロセスの名前。この名前は、パラメータ・ファイル内のEXTRACTパラメータに指定された名前と一致している必要があります。英数字の1語を使用してください。IBM iで使用する場合、この名前(最初の10文字まで)がIBM iジョブ・リスト内のジョブ名として使用されます。

reportfile report_file

指定したレポート・ファイルにコマンド出力を送信します。reportfileオプションを指定しない場合、コマンド出力は画面に表示されます。デフォルトは、Oracle GoldenGateインストール・ディレクトリのdirrptサブディレクトリです。

usesubdirs | nousesubdirs

プロセスで開くファイルを検索するときにOracle GoldenGateサブディレクトリを含めます。usesubdirsがデフォルトです。

IBM i CLIの構文

EXTRACT PARAMFILE(input_file)
[OTHERS(other_options)]

PARAMFILE(input_file)

入力テキスト・ファイルはOBEYファイルと呼ばれ、発行するコマンドが1行に1つずつ発行順に含まれています。オペレーティング・システムでサポートされる任意の名前を指定します。

OTHERS(other_options)

UNIXバージョンのコマンドでサポートされる、空白区切りのリストとして提供されるオプション。

2.6 ggsci

オペレーティング・システムのコマンドラインからGGSCIコマンド・インタフェースを実行する場合、ggsciコマンドを使用します。オプションで、OBEYファイルから入力を指定できます。GGSCIへの入力ファイルの使用方法の詳細は、Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIXを参照してください。

Windows、UNIXおよびLinuxの構文

ggsci[ < input_file]
[cd directory]
[log | nolog]

<

GGSCIプログラムへの入力ファイルをパイプ処理します。

ggsci

このコマンドをオプションなしで使用した場合、プログラムが対話型で実行されます。

cd directory

プロセスの現在の作業ディレクトリを変更します。プロセスでは、そのすべての操作(ファイルを開く、ファイルの書込みなど)に対して、指定したディレクトリが使用されます。

input_file

入力テキスト・ファイルはOBEYファイルと呼ばれ、発行するコマンドが1行に1つずつ発行順に含まれています。オペレーティング・システムでサポートされる任意の名前を指定します。

log | nolog

レポート・ファイルへのGGSCIコマンドのロギングを有効化または抑止します。デフォルトはlogです。記録されるコマンドは、ADD、ALTER、CREATE、DELETE、INFO、START、STOP、CLEANUP、SEND、KILL、EDIT、REFRESHです。

IBM i CLIの構文

GGSCI [PARAMFILE (input_file)] [OTHERS(other_options)]

PARAMFILE(input_file)

入力テキスト・ファイルはOBEYファイルと呼ばれ、発行するコマンドが1行に1つずつ発行順に含まれています。オペレーティング・システムでサポートされる任意の名前を指定します。

OTHERS(other_options)

UNIXバージョンのコマンドでサポートされる、空白区切りのリストとして提供されるオプション。

2.7 keygen

keygenを使用して、ENCKEYSファイルを使用するOracle GoldenGateセキュリティ機能で使用する1つ以上の暗号化鍵を生成します。鍵の値は画面に戻されます。これらをコピーしてENCKEYSファイルに貼り付けることができます。詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

KEYGEN key_length n

keygen

このコマンドをオプションなしで使用した場合、プログラムが対話型で実行されます。

key_length

暗号化鍵の長さ(最大256ビット(32バイト))。

n

生成するキーの数。

IBM i CLIの構文

KEYGEN [KEYLEN(key_length)] [NUMKEYS(n)]

KEYGEN(key_length)

暗号化鍵の長さ(最大256ビット(32バイト))。

NUMKEYS(n)

生成するキーの数。

2.8 logdump

Logdumpユーティリティを実行するには、logdumpを使用します。このコマンドは引数を取らず、対話型で実行されます。Logdumpユーティリティの詳細は、Oracle GoldenGate Oracle GoldenGateログダンプ・リファレンスを参照してください。

Windows、UNIXおよびLinuxの構文

logdump

IBM i CLIの構文

LOGDUMP

2.9 mgr

mgrでは、Linux、UNIX、WindowsまたはIBM iオペレーティング・システムのコマンドラインからManagerプログラムを実行します。mgrコマンドは、Oracle GoldenGateインストール・ディレクトリまたはライブラリにインストールされます。

Windows、UNIXおよびLinuxの構文

mgr paramfile parameter_file
[cd directory]
[pauseatend | nopauseatend]
[port portnum]
[reportfile report_file]
[usesubdirs | nousesubdirs]

mgr

このコマンドをオプションなしで使用した場合、プログラムが対話型で実行されます。

paramfile parameter_file

実行するManagerプログラムのパラメータ・ファイルの相対パス名または絶対パス名を指定します。

cd directory

プロセスの現在の作業ディレクトリを変更します。プロセスでは、そのすべての操作(ファイルを開く、ファイルの書込みなど)に対して、指定したディレクトリが使用されます。

pauseatend | nopauseatend

(Windowsのみ)プロセスが停止した場合、Oracle GoldenGateユーザーはコンソール出力を参照し、任意のキーを押してクリアする必要があります。また、プロセスが正常終了したか異常終了したかも示します。

port portnum

Managerが接続を開始するために確認する最初のポートの番号。このポート番号が使用できない場合、Managerは番号を1つ増分して、使用可能なポート番号が見つかるまで増分し続けます。ただし、Managerパラメータ・ファイル内にポート番号が指定されている場合、この検索の開始ポイントとしてその番号が優先されます。

reportfile report_file

指定したレポート・ファイルにコマンド出力を送信します。reportfileオプションを指定しない場合、コマンド出力は画面に表示されます。

usesubdirs | nousesubdirs

プロセスで開くファイルを検索するときにOracle GoldenGateサブディレクトリを含めます。usesubdirsがデフォルトです。

IBM i CLIの構文

MGR PARAMFILE(input_file)
[OTHERS(other_options)]

PARAMFILE(input_file)

入力テキスト・ファイルはOBEYファイルと呼ばれ、発行するコマンドが1行に1つずつ発行順に含まれています。オペレーティング・システムでサポートされる任意の名前を指定します。

OTHERS(other_options)

UNIXバージョンのコマンドでサポートされる、空白区切りのリストとして提供されるオプション。

2.10 replicat

replicatでは、Linux、UNIX、WindowsまたはIBM iオペレーティング・システムのコマンドラインからReplicatプログラムを実行します。replicatコマンドは、Oracle GoldenGateインストール・ディレクトリまたはライブラリにインストールされます。

Windows、UNIXおよびLinuxの構文

replicat paramfile parameter_file
[{atcsn CSN | aftercsn CSN} [threads(thread_list)]]
[filterduptransactions]
[initialdataload]
[pauseatend | nopauseatend]
[processid PID]
[reportfile report_file]
[skiptransaction [threads(thread_list)]]
[usesubdirs | nousesubdirs]

replicat

このコマンドをオプションなしで使用した場合、プログラムが対話型で実行されます。

paramfile parameter_file

実行するReplicatプログラムのパラメータ・ファイルの相対パス名または絶対パス名を指定します。デフォルトの場所は、Oracle GoldenGateインストール・ディレクトリのdirprmサブディレクトリです。

atcsn CSN | aftercsn CSN [threads(thread_list)]

指定したコミット順序番号(CSN)またはその後からプロセスを開始します。詳細は、START REPLICATを参照してください。

filterduptransactions

Replicatに、すでに処理されたトランザクションを無視させます。詳細は、START REPLICATを参照してください。

initialdataload

Replicatを実行してすべてのデータを初期ロードとして適用し、ターゲットに移入します。

pauseatend | nopauseatend

(Windowsのみ)プロセスが停止した場合、Oracle GoldenGateユーザーはコンソール出力を参照し、任意のキーを押してクリアする必要があります。また、プロセスが正常終了したか異常終了したかも示します。

processid PID

プロセスの名前。この名前は、パラメータ・ファイル内のREPLICATパラメータに指定された名前と一致している必要があります。英数字の1語を使用してください。IBM iで使用する場合、この名前(最初の10文字まで)がIBM iジョブ・リスト内のジョブ名として使用されます。

reportfile report_file

指定したレポート・ファイルにコマンド出力を送信します。reportfileオプションを指定しない場合、コマンド出力は画面に表示されます。デフォルトは、Oracle GoldenGateインストール・ディレクトリのdirrptサブディレクトリです。

skiptransaction [threads(thread_list)]

プロセスで、トレイル内の起動時の位置以降の1番目のトランザクションがスキップされます。詳細は、START REPLICATを参照してください。

usesubdirs | nousesubdirs

プロセスで開くファイルを検索するときにOracle GoldenGateサブディレクトリを含めます。usesubdirsがデフォルトです。

IBM i CLIの構文

REPLICAT PARAMFILE(input_file)
[OTHERS(other_options)]

PARAMFILE(input_file)

入力テキスト・ファイルはOBEYファイルと呼ばれ、発行するコマンドが1行に1つずつ発行順に含まれています。オペレーティング・システムでサポートされる任意の名前を指定します。

OTHERS(other_options)

UNIXバージョンのコマンドでサポートされる、空白区切りのリストとして提供されるオプション。

3 Oracle GoldenGateパラメータ

この章には、処理を制御するOracle GoldenGateパラメータの概要と、各パラメータ(アルファベット順)の詳細な説明が含まれます。

Oracle GoldenGateパラメータ・ファイルの作成、変更および格納方法は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

3.1 CRYPTOENGINE

適用対象

GLOBALS

説明

CRYPTOENGINEでは、セキュリティ・プリミティブの実装を提供するために、Oracle GoldenGateプロセスで使用する暗号化ライブラリを選択します。

構文

CRYPTOENGINE (CLASSIC | FIPS140 | NATIVE)

CRYPTOENGINE

セキュリティ・プリミティブの実装を提供するために、OGGプロセスで使用する暗号化ライブラリを選択します。

CLASSIC

FIPS-140拡張のないOracle NNZ セキュリティ・フレームワークを使用します。

FIPS140

Oracle NNAセキュリティ・フレームワークを使用しますが、FIPS-140.2準拠バージョンのRSA MES共有ライブラリで拡張されます。

NATIVE

これが使用可能なプラットフォームでは、CPU暗号化プリミティブを効率的に利用するネイティブ・ライブラリが使用され、トレイルおよびTCP暗号化の使用時に製品のスループットが向上します。 現在、IntelのIPPライブラリのバージョン9.0は、Linux.x64およびWindows.x64に使用されます。他のすべてのプラットフォームはCLASSICの動作に戻ります。

3.1 Oracle GoldenGateパラメータの概要

この項ではOracle GoldenGatパラメータについてモジュールおよび目的別に概説し、次のトピックを含みます。

- GLOBALSパラメータの概要

- Managerパラメータの概要

- ExtractとReplicatに共通のパラメータの概要

- Extractパラメータの概要

- Replicatパラメータの概要

- ワイルドカード除外パラメータの概要

- DEFGENパラメータの概要

- DDLパラメータの概要

3.1.1 GLOBALSパラメータの概要

GLOBALSファイルは、特定のプロセス実行時パラメータではなく、Oracle GoldenGateインスタンス全体に関連するパラメータを保持します。

表3-1 すべてのGLOBALSパラメータ

パラメータ

説明

ALLOWOUTPUTDIR

ALLOWOUTPUTDIRでは、使用可能な出力証跡ディレクトリ(そのサブディレクトリを含む)を\u000bから指定します。

CHARMAP

文字マッピング・ファイルが文字コード・ポイント・マッピングをオーバーライドするように指定します。

CHARSET

パラメータ・ファイルの読取り時にオペレーティング・システムのデフォルトのかわりに使用するプロセスのマルチバイト・キャラクタ・セットを指定します。

CHECKPOINTTABLE

デフォルトのチェックポイント表を指定します。

CREDENTIALSTORELOCATION

ログイン資格証明を格納するOracle GoldenGate資格証明ストアの場所を指定します。

CRYPTOENGINE

セキュリティ・プリミティブの実装を提供するために、OGGプロセスで使用する暗号化ライブラリを選択します。

DDLTABLE

OracleのDDL同期をサポートするDDL履歴表の非デフォルト名を指定します。

ENABLECATALOGNAMES

SQL/MXデータベース用の3つの部分からなる名前のサポートを有効化します。

ENABLE_HEARTBEAT_TABLE | DISABLE_HEARTBEAT_TABLE

ハートビート表の処理を有効にします。

ENABLEMONITORING

Oracle GoldenGate MonitorでのOracle GoldenGateインスタンスの表示および監視を有効化します。

EXCLUDEWILDCARDOBJECTSONLY

TABLEEXCLUDE、SCHEMAEXCLUDEまたはCATALOGEXCLUDEパラメータにワイルドカードが含まれる場合に、ワイルドカード指定されていないソース表を含めます。

GGSCHEMA

ハートビート表とOracleのDDL同期をサポートするデータベース・オブジェクトを含むスキーマ名を指定します。

HEARTBEATTABLE

ハートビート表の名前を指定します。

MARKERTABLE

OracleのDDL同期をサポートするDDLマーカー表の非デフォルト名を指定します。

MAXGROUPS

Oracle GoldenGateのインスタンスで実行可能なプロセス・グループの最大数を指定します。

MGRSERVNAME

Windowsサービスとしてインストールされている場合にManagerプロセス名を指定します。

NAMECCSID

SQLカタログのオブジェクト名がシステムと異なるCCSIDの場合にDB2 for i CCSIDを指定します。

NODUPMSGSUPPRESSION

重複する情報メッセージおよび警告メッセージの自動抑制を防止します。

OUTPUTFILEUMASK

Oracle GoldenGateプロセスがトレイル・ファイルおよび破棄ファイルの作成に使用できるumaskを指定します。

USEANSISQLQUOTES | NOUSEANSISQLQUOTES

引用符で囲まれたオブジェクト名とリテラルに対してSQL-92ルールを有効にします。

SYSLOG

システム・ログに書き込まれるOracle GoldenGateメッセージのタイプをフィルタします。

TRAILBYTEORDER

EXTFILE、RMTFILE、EXTTRAILまたはRMTTRAILパラメータで作成されたファイルのバイト・オーダー(エンディアン)を指定します。

TRAIL_SEQLEN_6D | TRAIL_SEQLEN_9D

証跡ファイルの順序の長さを制御します。

UPREPORT

実行中のExtractおよびReplicatプロセスをManagerがレポートする間隔を決定します。これらのいずれかのプロセスが開始または停止するたびに、イベントが生成されます。

USE_TRAILDEFS | NO_USE_TRAILDEFS

証跡ファイルに表定義が全部含まれる場合、データ・ポンプ・プロセスとReplicatプロセスが表定義を取得する場所を制御します。

USEIPV4

Oracle GoldenGateでTCP/IP接続にIPv4を使用させます。

USEIPV6

Oracle GoldenGateでTCP/IP接続にIPv6を使用させます。

WALLETLOCATION

マスター・キー・ウォレットの場所を指定します。

XAGENABLE

GoldenGateインスタンスがOracle Grid Infrastructure Bundled Agents (XAG)の管理対象である場合に、引き続きGGSCIを使用してManagerを起動および停止できるようにする、Oracle GoldenGateのOracle Clusterwareとの透過的な統合機能を有効にします。

3.1.2 Managerパラメータの概要

ManagerはOracle GoldenGateの親プロセスで、自身のプロセス、リソース、ユーザー・インタフェース、しきい値およびエラーのレポートを管理します。ほとんどの場合、Managerはデフォルト設定で問題なく機能します。

表3-2 Managerパラメータ: 一般

パラメータ

説明

ACCESSRULE

Managerのセキュリティ・アクセス・ルールを追加します。

CHARSET

パラメータ・ファイルの読取り時にオペレーティング・システムのデフォルトのかわりに使用するプロセスのマルチバイト・キャラクタ・セットを指定します。

COMMENT | --

パラメータ・ファイルにコメントを挿入します。

SOURCEDB

ログイン情報の一部としてデータ・ソース名を指定します。

USERIDALIAS

データベースにアクセスするときに必要なログイン情報をManagerに提供します。

SYSLOG

WindowsまたはUNIXシステム上のシステム・ログ、またはIBM iシステム上のSYSOPRメッセージ・キューに書き込まれるOracle GoldenGateメッセージのタイプをフィルタします。

表3-3 Managerパラメータ: ポート管理

パラメータ

説明

DYNAMICPORTLIST

Collectorが動的に割当て可能なポートを指定します。

PORT

ManagerがリクエストをリスニングするTCP/IPポート番号を指定します。

表3-4 Managerパラメータ: プロセス管理

パラメータ

説明

AUTORESTART

障害発生後にManagerによって再起動されるプロセスを指定します。

AUTOSTART

Managerの起動時に起動されるプロセスを指定します。

BOOTDELAYMINUTES

システムのブート後、Managerがメイン処理アクティビティを実行するまでの遅延時間を決定します。このパラメータは、Windowsをサポートします。

MONITORING_HEARTBEAT_TIMEOUT

指定秒数の間プロセスを応答なしとして設定します。

UPREPORT

プロセス・ハートビート・メッセージをレポートする間隔を決定します。

表3-5 Managerパラメータ: イベント管理

パラメータ

説明

DOWNREPORT

停止したプロセスをレポートする間隔を制御します。

LAGCRITICAL

クリティカルとみなすラグしきい値を指定し、このしきい値に到達したときにとエラー・ログに警告を生成します。

LAGINFO

情報メッセージをエラー・ログにレポートするラグしきい値を指定します。

LAGREPORT

ラグ・タイムをエラー・ログにレポートする間隔を設定します。

表3-6 Managerパラメータ: メンテナンス

パラメータ

説明

CHECKMINUTES

Managerがメンテナンス・アクティビティを実行する間隔を決定します。

PURGEDDLHISTORY | PURGEDDLHISTORYALT

Oracle DDL履歴表から不要になった行をパージします。

PURGEMARKERHISTORY

不要になったOracleマーカー表の行をパージします。

ExtractおよびReplicat用PURGEOLDEXTRACTS

不要になったトレイル・データをパージします。

Manager用PURGEOLDEXTRACTS

処理が終了したら証跡ファイルをパージします。ExtractおよびReplicatパラメータには、PURGEOLDEXTRACTSよりも、このパラメータの使用をお薦めします。

PURGEOLDTASKS

指定した時間の経過後にExtractおよびReplicatタスクをパージします。

STARTUPVALIDATIONDELAY[CSECS]

Managerが起動後のプロセスが実行中かどうかを確認するまでの遅延時間を設定します。

VERIDATAREPORTAGE

古いVeridataレポート・ファイルが指定の保存期間制限に達したら、それらをパージします。

3.1.3 ExtractとReplicatに共通のパラメータの概要

これらのパラメータは、ExtractおよびReplicatプロセスの両方で使用できます。

表3-7 ExtractとReplicatに共通のパラメータ: 一般

パラメータ

説明

ALLOCFILES

NUMFILESパラメータで指定されている初期メモリー割当てに到達した後に割り当てる追加のメモリー構造体数を制御します。

CHARSET

パラメータ・ファイルの読取り時にオペレーティング・システムのデフォルトのかわりに使用するプロセスのマルチバイト・キャラクタ・セットを指定します。

CHECKPARAMS

パラメータ・ファイルの構文を検証します。

COMMENT | --

パラメータ・ファイルのコメントを示します。

GETENV

SETENVパラメータで設定された変数を取得します。

OBEY

異なるパラメータ・ファイルに含まれているパラメータ文を処理します。

SETENV

GGSCIインタフェース内からUNIX環境変数の値を指定します。

TRACETABLE | NOTRACETABLE

Replicatがターゲット・データベースを更新するたびにレコードを追加するトレース表を指定します。Replicatによって生成されたデータベース変更をExtractに無視させます。Oracleの双方向レプリケーションをサポートします。

USERID | NOUSERID

データベース接続情報を指定します。

USERIDALIAS

資格証明ストアが使用中の場合のデータベース接続情報を指定します。

表3-8 ExtractとReplicatに共通のパラメータ: データの選択、変換およびマッピング

パラメータ

説明

ALLOWDUPTARGETMAP | NOALLOWDUPTARGETMAP

パラメータ・ファイル内でソースとターゲットが同一のMAP文を複数回使用することを許可します。

ASCIITOEBCDIC

UNIXシステム・サービスを実行するz/OSシステムのDB2用にASCIIテキストをEBCDICに変換します。

CATALOGEXCLUDE

ワイルドカード指定から特定のソース・コンテナまたはカタログを除外します。

COLMATCH

グローバル列マッピング・ルールを作成します。

DDL

DDL操作の取得を有効化およびフィルタします。

DDLSUBST

DDL処理で文字列を置き換えます。

GETDELETES | IGNOREDELETES

削除操作の抽出を制御します。

GETINSERTS | IGNOREINSERTS

挿入操作の抽出を制御します。

GETTRUNCATES | IGNORETRUNCATES

切捨て文の抽出を制御します。

GETUPDATEAFTERS | IGNOREUPDATEAFTERS

アフター・イメージの抽出を制御します。

GETUPDATEBEFORES | IGNOREUPDATEBEFORES

ビフォア・イメージの抽出を制御します。

GETUPDATES | IGNOREUPDATES

更新操作の抽出を制御します。

NAMECCSID

SQLカタログのオブジェクト名がシステムと異なるCCSIDの場合にDB2 for i CCSIDを指定します。

REPLACEBADCHAR

無効な文字値を別の値に置き換えます。

SCHEMAEXCLUDE

ワイルドカード指定から特定のソース・スキーマを除外します。

SOURCEDEFS

DEFGENユーティリティによって作成されたソース・データ定義を含むファイルを指定します。

SOURCECATALOG

後続のすべてのTABLEまたはMAP文のデフォルト・コンテナまたはカタログを指定します。

TRIMSPACES | NOTRIMSPACES

CHAR列をVARCHAR列にマッピングする際に、末尾の空白を切り捨てるかどうかを制御します。

VARWIDTHNCHAR | NOVARWIDTHNCHAR

NCHAR列の長さ情報をトレイルに書き込むかどうかを制御します。

表3-9 ExtractとReplicatに共通のパラメータ: カスタム処理

パラメータ

説明

CUSEREXIT

処理中にユーザー・イグジット・ルーチンを起動します。

INCLUDE

マクロ・ライブラリを起動します。

MACRO

Oracle GoldenGateマクロを定義します。

MACROCHAR

デフォルトの#以外のマクロ文字を定義します。

SQLEXEC

Extract処理中にストアド・プロシージャまたは問合せを実行します。

PTKCAPTUREPROCSTATS

PTKモニタリングのプロセスとスレッド統計のキャプチャを有効にします。

PTKMONITORFREQUENCY

収集のPTKモニタリング頻度間隔を設定します。

表3-10 ExtractとReplicatに共通のパラメータ: レポート

パラメータ

説明

CMDTRACE

レポート・ファイルにマクロ展開手順を表示します。

LIST | NOLIST

レポート・ファイルにマクロのリストを表示するかどうかを制御します。

REPORT

統計レポートをスケジュールします。

STATOPTIONS

統計表示に含める情報を指定します。

REPORTCOUNT

処理されたレコード数をレポートします。

TRACE | TRACE2

プロセスのボトルネックの把握に役立つ処理情報を表示します。

表3-11 ExtractとReplicatに共通のパラメータ: チューニング

パラメータ

説明

ALLOCFILES

NUMFILESの値に到達した後に割り当てる増分メモリー構造体数を制御します。

CACHEMGR

仮想メモリー・リソースを管理します。

CHECKPOINTSECS

プロセスのチェックポイント書込み頻度を制御します。

DBOPTIONS

データベース・オプションを指定します。

DDLOPTIONS

DDL処理オプションを指定します。

EOFDELAY | EOFDELAYCSECS

プロセスがデータ・ソース内で処理する新しいデータを探すまでの待機時間を指定します。

FUNCTIONSTACKSIZE

Oracle GoldenGateファンクションの処理に使用するメモリー・スタックのサイズを制御します。

NUMFILES

Oracle GoldenGateが処理する表に関する情報を格納する専用メモリーの初期割当てを制御します。

表3-12 ExtractとReplicatに共通のパラメータ: エラー処理

パラメータ

説明

DDLERROR

DDL抽出のエラー処理を制御します。

DISCARDFILE | NODISCARDFILE

処理できなかったレコードを記録します。

表3-13 ExtractとReplicatに共通のパラメータ: メンテナンス

パラメータ

説明

DISCARDROLLOVER

新しい破棄ファイルを作成する頻度を制御します。

ExtractおよびReplicat用PURGEOLDEXTRACTS

古いトレイル・ファイルをパージします。

REPORTROLLOVER

新しいレポート・ファイルをいつ作成するか指定します。

3.1.4 Extractパラメータの概要

Extractプロセスは、構成パラメータに応じて完全なデータ・レコードまたはトランザクション・データの変更をキャプチャした後、ターゲット表に適用されるかロード・ユーティリティなどの別のプロセスによって処理されるデータをターゲット・システムに送信します。

表3-14 Extractパラメータ: 一般

パラメータ

説明

ABORTDISCARDRECS

破棄されたレコードの数の後Extractが中止するよう制御します。

RECOVERYOPTIONS

Extractプロセスのリカバリ・モードを制御します。

SOURCEDB

ログイン情報の一部としてデータ・ソースを指定します。

TCPSOURCETIMER | NOTCPSOURCETIMER

送信元および送信先システムの時間が異なるときに、送信されるレコードを送信先システムのタイムスタンプにあわせて調整します。

UPDATERECORDFORMAT

ビフォア・イメージとアフター・イメージの格納先を1つのトレイル・レコードにするか2つのトレイル・レコードにするかを制御します。

表3-15 Extractパラメータ: 処理方法

パラメータ

説明

DSOPTIONS

Teradata Access Module (TAM)を使用する場合のExtract処理オプションを指定します。

EXTRACT

Extractグループをオンライン・プロセスとして定義します。

GETAPPLOPS | IGNOREAPPLOPS

Replicat以外のすべてのプロセスの操作をトレイルまたはファイルに書き込むかどうかを制御します。

GETREPLICATES | IGNOREREPLICATES

レプリケートされた操作を、同じシステム上で動作しているExtractに取得させるかどうかを制御します。

RMTTASK

リモート・システムに処理タスクを作成します。

SOURCEISTABLE

ソース表からレコード全体を抽出します。

VAM

Teradata Access Module (TAM)を使用してExtractプロセスにトランザクション・データを提供することを示します。

表3-16 Extractパラメータ: データの選択、変換およびマッピング

パラメータ

説明

COMPRESSDELETES | NOCOMPRESSDELETES

Oracle GoldenGateが削除操作のときにトレイルにキーのみを書き込むかすべての列を書き込むかを制御します。

COMPRESSUPDATES | NOCOMPRESSUPDATES

更新操作のときに主キー列および変更された列のみを書き込みます。

EXCLUDETAG

トレイル・ファイルから除外するようにReplicatまたはデータ・ポンプの変更を指定します。

FETCHOPTIONS

Oracle GoldenGateのデータ・フェッチ方法を制御します。

LOGALLSUPCOLS

競合の検出および解決と、統合Replicatをサポートするために必要な列を記録します。

SEQUENCE

同期する順序を指定します。

TABLE | MAP

抽出する表を指定し、列マッピングおよび変換を制御します。

TABLEEXCLUDE

抽出プロセスからソース表を除外します。

TARGETDEFS

NonStopプラットフォーム上のターゲット・データベースのターゲット表定義を含むファイルを指定します。

TRAILCHARSETASCII

ASCIIとEBCDICの両方の表がある場合、z/OSのDB2から取得されたデータに対してASCIIキャラクタ・セットを指定します。

TRAILCHARSETEBCDIC

ASCIIとEBCDICの両方の表がある場合、z/OSのDB2から取得されたデータに対してEBCDICキャラクタ・セットを指定します。

TRAILCHARSETUNICODE

DB2 for i用Extractのテキスト・データ変換の動作を制御します

表3-17 Extractパラメータ: データ・ルーティング

パラメータ

説明

EXTFILE

ローカル・システム上に、抽出されたデータを書き込む抽出ファイルを指定します。

EXTTRAIL

ローカル・システム上に、抽出されたデータを書き込むトレイルを指定します。

RMTFILE

リモート・システム上に、抽出されたデータを書き込む抽出ファイルを指定します。

RMTHOST

ターゲット・システムおよびManagerポート番号を指定します。

RMTTRAIL

リモート・システム上に、抽出されたデータを書き込むトレイルを指定します。

表3-18 Extractパラメータ: データ・フォーマット

パラメータ

説明

FORMATASCII

抽出データを外部ASCIIフォーマットでフォーマットします。

FORMATSQL

抽出データをSQL文にフォーマットします。

FORMATXML

抽出データをXML構文にフォーマットします。

表3-19 Extractパラメータ: チューニング

パラメータ

説明

BR

ExtractのBounded Recovery機能を制御します。

CACHEMGR

仮想メモリー・キャッシュ・マネージャを制御します。

FLUSHSECS | FLUSHCSECS

レコード・データがトレイルに書き込まれるまでバッファに保持される時間を指定します。

LOBMEMORY

LOBを含むトランザクションのキャッシングに使用できるメモリーおよび一時ディスク領域の量を制御します。

RMTHOSTOPTIONS

パッシブExtractグループが使用するTCP/IP接続のホスト情報以外の接続属性を指定します。

THREADOPTIONS

ExtractのOracle Real Application Cluster環境での動作方法を制御します。

TRANLOGOPTIONS

取得処理オプションを指定します。

TRANSMEMORY

コミットされていないトランザクション・データのキャッシングに使用できるメモリーおよび一時ディスク領域の量を制御します。

WARNLONGTRANS

長時間に及ぶトランザクションを定義し、これらのトランザクションを確認およびレポートする間隔を制御します。

表3-20 Extractパラメータ: メンテナンス

パラメータ

説明

ROLLOVER

トレイル・ファイルをエージングする方法を指定します。

表3-21 Extractパラメータ: セキュリティ

パラメータ

説明

DECRYPTTRAIL

Extractがデータ・ポンプとして使用され、データに対して処理を実行する必要がある場合、データを復号化するために必要です。

ENCRYPTTRAIL | NOENCRYPTTRAIL

トレイルまたは抽出ファイルのデータの暗号化を制御化します。

3.1.5 Replicatパラメータの概要

Replicatプロセスは、Extractプロセスによって抽出されたデータを読み取り、このデータをターゲット表に適用するか、ロード・ユーティリティなどの他のアプリケーションがこのデータを使用できるように準備を整えます。

表3-22 Replicatパラメータ: 一般

パラメータ

説明

TARGETDB

ログイン情報の一部としてデータ・ソースを指定します。

HAVEUDTWITHNCHAR

処理対象のレコードがNCHAR/NVARCHAR2属性を持つユーザー定義型である場合、データ損失を防止するためにReplicatがUTF-8で接続するようにします。

表3-23 Replicatパラメータ: 処理方法

パラメータ

説明

BEGIN

Replicat処理の開始位置を指定します。SPECIALRUNを指定するときに指定する必要があります。

BULKLOAD

Oracle SQL*Loaderユーティリティのインタフェースに直接データをロードします。

END

Replicat処理の停止位置を指定します。SPECIALRUNを使用するときに指定する必要があります。

GENLOADFILES

データベース・ロード・ユーティリティと互換性のある実行ファイルと制御ファイルを生成します。

REPLICAT

オンライン変更同期を行うReplicatグループを指定します。

SPECIALRUN

実行間でチェックポイントを必要としないワンタイム処理タスクで使用します。

表3-24 Replicatパラメータ: データの選択、変換およびマッピング

パラメータ

説明

ALLOWNOOPUPDATES | NOALLOWNOOPUPDATES

Replicatがno-op操作に対応する方法を制御します。no-op操作は、ターゲット表では無効な操作です。

APPLYNOOPUPDATES | NOAPPLYNOOPUPDATES

SET句およびWHERE句の両方ですべての列を使用して、no-op更新を適用させます。

ASSUMETARGETDEFS

ソース表とターゲット表が同一の列構造を持つとみなします。

INSERTALLRECORDS

レコードに対する各変更操作を、新しいレコードとしてターゲット表に挿入します。

INSERTDELETES | NOINSERTDELETES

削除を挿入に変換します。

INSERTMISSINGUPDATES | NOINSERTMISSINGUPDATES

ターゲット行が存在しない場合に、更新を挿入に変換します。

INSERTUPDATES | NOINSERTUPDATES

更新を挿入に変換します。

TABLE | MAP

1つ以上のソース表およびターゲット表の関係を指定し、列マッピングおよび変換を制御します。

MAPEXCLUDE

MAP文でワイルドカードで指定されているソース表を処理から除外します。

PRESERVETARGETTIMEZONE

デフォルトのReplicatセッション・タイムゾーンをオーバーライドします。

REPLACEBADNUM

数字列をマップするときに検出される無効な数字データのグローバル代替値を指定します。

SOURCECHARSET

ソース・キャラクタ・セットをターゲット・キャラクタ・セットに変換するかどうかを制御します。

SOURCETIMEZONE

Replicatがセッション・タイムゾーンとして使用するソース・データベースのタイムゾーンを指定します。

SPACESTONULL | NOSPACESTONULL

空白のみを含むターゲット列をNULLに変換するかどうかを制御します。

Replicat用TABLE

行がフィルタ基準を満たしたときにイベント・アクションの対象にする1つまたは複数の表を指定します。

TRAILCHARSET

トレイルのバージョンが古く、ソース・キャラクタ・セットが格納されない場合、またはトレイルに格納されているキャラクタ・セットより優先させる場合、ソース・データのキャラクタ・セットを指定します。

UPDATEINSERTS | NOUPDATEINSERTS

パラメータ・ファイル内でこのパラメータ以降のすべてのMAP文の挿入操作を更新操作に変換します。

UPDATEDELETES | NOUPDATEDELETES

削除を更新に変換します。

USEDEDICATEDCOORDINATIONTHREAD

Replicatが調整モードの場合に、バリア・トランザクションの専用スレッドを指定します。

表3-25 Replicatパラメータ: データ・ルーティング

パラメータ

説明

EXTFILE

レプリケートするデータを含むローカル・システム上の抽出ファイル名を定義します。ワンタイム処理で使用します。

EXTTRAIL

レプリケートするデータを含むトレイルを定義します。ワンタイム処理で使用します。

表3-26 Replicatパラメータ: エラー処理およびレポート

パラメータ

説明

HANDLECOLLISIONS | NOHANDLECOLLISIONS

重複レコードおよび不明レコードのエラーを処理します。

HANDLETPKUPDATE

一時主キー更新のレプリケートに関連する制約エラーを防止します。

OVERRIDEDUPS | NOOVERRIDEDUPS

重複レコード・エラーが発生するたびに、既存のターゲット・レコードをレプリケートされた挿入レコードで上書きします。

RESTARTCOLLISIONS | NORESTARTCOLLISIONS

競合のためにOracle GoldenGateが異常終了した後に、ReplicatがHANDLECOLLISIONSロジックを適用するかどうかを制御します。

REPERROR

Replicatがデータベース・エラーに対応する方法を決定します。

REPFETCHEDCOLOPTIONS

データベースからのフェッチを必要とする操作に対するReplicatのレスポンス方法を決定します。

SHOWSYNTAX

ReplicatのSQL文をレポート・ファイルに出力します。

SQLDUPERR

重複レコードを示すデータベース・エラー番号を指定します。OVERRIDEDUPSとともに使用します。

WARNRATE

データベース・エラーをレポートする頻度を指定します。

表3-27 Replicatパラメータ: チューニング

パラメータ

説明

BATCHSQL

同様のSQL文を配列にまとめ、より高速に適用することによって、Replicat処理のスループットを向上させます。

COORDSTATINTERVAL

コーディネータ・スレッドが統計の適用スレッドにリクエストを送信する間隔。

COORDTIMER

コーディネータ・スレッドが適用スレッドの開始を待機する時間。

DEFERAPPLYINTERVAL

レプリケートされた操作をターゲット・データベースに適用するまでReplicatが待機する時間を指定します。

GROUPTRANSOPS

1つのReplicatトランザクションにグループ化されるレコード数を制御します。

INSERTAPPEND | NOINSERTAPPEND

INSERT操作をOracleターゲット表に適用するときに、ReplicatがAPPENDヒントを使用するかどうかを制御します。

MAXDISCARDRECS

破棄ファイルにレポートする破棄レコード数を制限します。

MAXSQLSTATEMENTS

Replicatが使用できる準備済SQL文の数を制御します。

MAXTRANSOPS

大きなソース・トランザクションをターゲット・システム上で小さなトランザクションに分割します。

NUMFILES

Oracle GoldenGateが処理する表に関する情報を格納する専用メモリーの初期割当てを制御します。

TRANSACTIONTIMEOUT

Replicatが、オープンしているターゲット・トランザクションのコミット、およびソース・トランザクション全体の適用準備ができるまで保持しているターゲット・トランザクション内の未完了のソース・トランザクションのロールバックを実行するまで待機する時間を指定します。

3.1.6 ワイルドカード除外パラメータの概要

表3-28 ワイルドカード除外パラメータ

パラメータ

説明

EXCLUDEWILDCARDOBJECTSONLY

除外パラメータにワイルドカードが含まれる場合に、TABLEまたはMAPパラメータに指定された、ワイルドカード指定されていないソース・オブジェクトを含めるようにします(そうしない場合、そのオブジェクトは除外されます)。

MAPEXCLUDE

MAP文からソース・オブジェクトを除外します。

TABLEEXCLUDE

TABLE文からソース・オブジェクトを除外します。

CATALOGEXCLUDE

TABLEまたはMAP文でワイルドカードを使用してコンテナまたはカタログ名が指定されている場合に、Oracle GoldenGate構成から特定のソース・コンテナまたはカタログのソース・オブジェクトを除外します。

SCHEMAEXCLUDE

TABLEまたはMAP文で所有者を指定するためにワイルドカードが使用されている場合に、Oracle GoldenGate構成から特定のソース所有者(スキーマなど)によって所有されるソース・オブジェクトを除外します。

3.1.7 DEFGENパラメータの概要

DEFGENでは、ソース表またはターゲット表のデータ定義を含むファイルを作成します。データ定義は、ソース表とターゲット表が異なる定義を持つ場合、またはデータベースのタイプが異なる場合に必要です。

表3-29 すべてのDEFGENパラメータ

パラメータ

説明

CATALOGEXCLUDE

ワイルドカード指定から特定のソース・コンテナまたはカタログを除外します。

CHARSET

パラメータ・ファイルの読取り時にオペレーティング・システムのデフォルトのかわりに使用するプロセスのマルチバイト・キャラクタ・セットを指定します。

DEFSFILE

DEFGENが定義を書き込むファイルの名前を指定します。

NAMECCSID

SQLカタログのオブジェクト名がシステムと異なるCCSIDの場合にDB2 for i CCSIDを指定します。

NOCATALOG

コンテナまたはカタログ名をメタデータに含めないようにします。

SCHEMAEXCLUDE

ワイルドカード指定から特定のソース・スキーマを除外します。

SOURCEDB

ログイン情報の一部としてデータ・ソースを指定します。

DEFGEN用TABLE

定義を取得する表を指定します。

USERIDALIAS

データベース接続情報を指定します。

3.1.8 DDLパラメータの概要

これらのパラメータは、Oracle GoldenGateのDDLサポートを制御します。DDLサポートには他のパラメータが必要な場合がありますが、ここに示すものは特にDDL機能を処理します。

表3-30 すべてのDDLパラメータ

パラメータ

説明

DDL

DDLサポートを有効化し、DDLをフィルタします。

DDLERROR

DDLレプリケーション中に発生するエラーを処理します。

DDLOPTIONS

フィルタリングおよび文字列置換以外のDDLレプリケーションを構成します。

DDLSUBST

DDL操作で文字列の置換えを有効化します。

DDLTABLE

DDL履歴表の代替名を指定します。

GGSCHEMA

DDLレプリケーションをサポートするオブジェクトを含むスキーマ名を指定します。

PURGEDDLHISTORY | PURGEDDLHISTORYALT

DDL履歴表のサイズを制御します。

PURGEMARKERHISTORY

DDLマーカー表のサイズを制御します。

3.2 ABORTDISCARDRECS

適用対象

Extract

説明

レコード数Nを破棄した後にDISCARDFILEで構成されたExtractsを中止するには、ABORTDISCARDRECSを使用します。

デフォルト

ゼロ(0) (Extractおよび任意の数の破棄を中止しません。)

構文

ABORTDISCARDRECS

3.3 ACCESSRULE

Managerに有効

ACCESSRULEは、Managerプロセスおよびその制御下のプロセスへの接続アクセスを制御します。パラメータ・ファイルで複数のACCESSRULE文を指定して複数のルールを設定し、優先度を制御できます。指定できるルールの数に制限はありません。優先度を設定するには、重要度が最も高いものから低いものへの順序でルールのリストを作成するか、PRIオプションを使用して、各ルールの優先度を明示的に設定するかのいずれかを行えます。

デフォルト

なし

構文

ACCESSRULE[, PROG program_name][, IPADDR address][, PRI rule][, login_ID]{, ALLOW | DENY}

引数

説明

PROG program_name

特定のOracle GoldenGateプログラムまたはワイルドカード指定された複数のプログラムの接続セキュリティを指定します。これらのオプションが1つも指定されていない場合、アクセス・ルールはManagerが起動、停止または中断するプログラムすべてに適用されます。

次の値が有効です。

- GGSCI: GGSCIコマンドライン・インタフェースへのアクセスを保護します。

- GUI: Activity ConsoleからOracle GoldenGateへのアクセスを保護します。

- MGR | MANAGER: Managerによって制御されるすべてのプロセス間コマンド(START、STOP、KILLなど)へのアクセスを保護します

- REPLICAT: Replicatプロセスへの接続を保護します。

- COLLECTOR | SERVER: Collectorプロセスを動的に作成する機能を保護します。

- * (アスタリスク): ワイルドカード。前述のオプションをすべて指定する場合に、ワイルドカードを使用します。

IPADDR address

指定されたIPアドレスのホストからManagerへのアクセスを許可します。

PRI rule

各ACCESSRULE文の優先度を指定します。有効な値は1から99で、1が最も高い優先度、99が最も低い優先度です。優先度が割り当てられているルールは、パラメータ・ファイル内に任意の順序で表示されます。

login_ID

ユーザー・パスワードに基づいてアクセスを許可します。このオプションでは、USER、PASSWORDの各オプションとRMTHOSTパラメータを指定する必要があります。

login_IDの構文は次のとおりです。

USER user, PASSWORD password, [ENCRYPTKEY keyname]

次の値が有効です。

- user: RMTHOSTパラメータのUSERオプションで指定されたユーザー。

- password: RMTHOSTパラメータのPASSWORDオプションで指定されたパスワード。

- keyname: 省略可能。ENCKEYSファイル内の暗号化鍵を指定します。

ENCRYPTKEY keynameがログインIDの一部として使用されている場合、Oracle GoldenGateはターゲット・システム上のENCKEYSファイルで鍵を検索し、その鍵を使用して対応するパスワードを復号化します。復号化されたパスワードが、ログインIDオプションのpassword部分に指定されたパスワードと一致すると、ルールは合格します。

ALLOW | DENY

ACCESSRULEで指定されたルールがアクセスを許可するか拒否するかを確認します。ALLOWまたはDENYを指定する必要があります。

例1

次のアクセス・ルールは、IPアドレス205で開始する任意のノードまたはノード194.168.11.102が、リクエストされたサービスにアクセスすることを許可します。他のすべては拒否されます。

ACCESSRULE, PROG *, IPADDR 194.168.11.102, ALLOW ACCESSRULE, PROG *, IPADDR 205.*, ALLOW ACCESSRULE, PROG *, IPADDR *, DENY

例2

次のアクセス・ルールにはPRIオプションを使用して明示的に優先度レベルが割り当てられています。これらのルールでは、任意のユーザーにCollectorプロセス(SERVERプログラム)へのアクセスを許可し、さらにIPアドレス122.11.12.13にGGSCIコマンドへのアクセスを許可します。他のすべてのOracle GoldenGateプログラムへのアクセスは拒否されます。

ACCESSRULE, PROG *, DENY, PRI 99ACCESSRULE, PROG SERVER, ALLOW, PRI 1ACCESSRULE, PROG GGSCI, IPADDR 122.11.12.13, PRI 1

例3

次のアクセス・ルールは例2と同じですが、PRIオプションではなくパラメータ・ファイル内の順序によって優先度を割り当てています。

ACCESSRULE, PROG SERVER, ALLOWACCESSRULE, PROG GGSCI, IPADDR 122.11.12.13ACCESSRULE, PROG *, DENY

例4

次のアクセス・ルールは、すべてのプログラムへのアクセス権をユーザーJOHNに付与します。

ACCESSRULE, PROG *, USER JOHN, PASSWORD OCEAN1

例5

次のアクセス・ルールではすべてのプログラムへのアクセス権をユーザーJOHNに付与し、パスワードを復号化するための暗号化鍵を指定します。PASSWORDで指定されたパスワードがENCKEYSルックアップ・ファイル内のいずれかに一致する場合、接続が許可されます。

ACCESSRULE, PROG *, USER JOHN, PASSWORD OCEAN1, ENCRYPTKEY lookup1

3.4 ALLOCFILES

適用対象

ExtractおよびReplicat

説明

ALLOCFILESパラメータでは、NUMFILESパラメータで指定されている初期メモリー割当てに到達した後に割り当てる追加のメモリー構造体数を制御します。この2つのパラメータによって、処理中のソース表およびターゲット表に関する情報を保持するプロセス・メモリーの割当て方法を制御します。

システム・リソースが許可するメモリーが、プロセスによって必要に応じて割り当てられるので、NUMFILESとALLOCFILESは、ともにデフォルト値で問題なく機能するはずです。

ALLOCFILESは、すべてのTABLEまたはMAPエントリが有効になる前に指定する必要があります。

詳細は、NUMFILESを参照してください。

デフォルト

500

構文

ALLOCFILES number

number

割り当てる追加のメモリー構造体数。メモリーの無駄な消費を防ぐため、ALLOCFILESを不必要に高い数に設定しないでください。Oracle GoldenGateのメモリー構造体は、200万表までサポートします。

例

ALLOCFILES 1000

3.5 ALLOWDUPTARGETMAP | NOALLOWDUPTARGETMAP

適用対象

ExtractおよびReplicat

説明

ALLOWDUPTARGETMAPおよびNOALLOWDUPTARGETMAPパラメータでは、パラメータ・ファイル内で、次のものを受け入れるかどうかを制御します。

- Extractパラメータ・ファイル: 同じソース・オブジェクトに対して重複するTABLEパラメータ(COLMAPオプションがそれらのいずれかで使用されている場合)。デフォルトでは、Extractは、COLMAPが使用されている場合に重複するTABLE文が出現すると異常終了します。

- Replicatパラメータ・ファイル: 同じソース・オブジェクトおよびターゲット・オブジェクトに対して重複するMAP文。デフォルトでは、重複するMAP文によってReplicatが異常終了します。

ALLOWDUPTARGETMAPが指定されず、同じソース表およびターゲット表が複数回マップされる場合、最初のMAP文のみが使用され、その他は無視されます。

デフォルト

NOALLOWDUPTARGETMAP

構文

ALLOWDUPTARGETMAP | NOALLOWDUPTARGETMAP

例

例1

ALLOWDUPTARGETMAPが有効な場合、次のExtractパラメータ・ファイルは許可されます。

EXTRACT extcust
USERIDALIAS tiger1
EXTTRAIL dirdat/aa
TABLE ogg.tcustmer;
EXTTRAIL dirdat/bb
TABLE ogg.tcustmer, TARGET ogg.tcustmer, COLMAP (USEDEFAULTS, col1=id, col2=name);

例2

ALLOWDUPTARGETMAPが有効な場合、次のReplicatパラメータ・ファイルは許可されます。

REPLICAT repcust
USERIDALIAS tiger1
SOURCEDEFS /ggs/dirdef/source.def
ALLOWDUPTARGETMAP
GETINSERTS
GETUPDATES
IGNOREDELETES
MAP ggs.tcustmer, TARGET ggs.tcustmer, COLMAP (USEDEFAULTS, deleted_row = 'N');
IGNOREINSERTS
IGNOREUPDATES
GETDELETES
UPDATEDELETES
MAP ggs.tcustmer, TARGET ggs.tcustmer, COLMAP (USEDEFAULTS, deleted_row = 'Y');

3.6 ALLOWINVISIBLEINDEXKEYS

適用対象

GLOBALS

説明

GLOBALSファイルでALLOWINVISIBLEINDEXKEYSパラメータを使用すると、ExtractおよびReplicatは、Oracle不可視索引の一部である列を一意の行識別子として使用できます。

注意:

トリガー・ベースのDDLレプリケーションでOracle不可視索引を使用できるようにするには、params.sqlスクリプトで次のパラメータをTRUEに設定します。

define allow_invisible_index_keys = 'TRUE'

この機能は、統合キャプチャおよびReplicatで自動的に有効化されます。

デフォルト

なし

構文

ALLOWINVISIBLEINDEXKEYS

3.7 ALLOWNONVALIDATEDKEYS

適用対象

GLOBALS

説明

ALLOWNONVALIDATEDKEYSでは、Extract、ReplicatおよびGGSCIコマンドが、検証されていない主キーまたは無効なキーを、一意の識別子として使用できるようにします。このパラメータは、Oracle GoldenGateによって使用されるキー選択基準より優先されます。これが有効化されると、Oracle GoldenGateは、NON VALIDATEDおよびNOT VALID主キーを一意の識別子として使用します。

オブジェクトの再編成や他の多くのアクションの結果、キーが無効になることがありますが、キーが有効であることが判明している場合、ALLOWNONVALIDATEDKEYSは、特にテスト環境で、キーを再検証する停止時間を保存します。ただし、ALLOWNONVALIDATEDKEYSを使用する場合、テスト環境か本番環境であるかにかかわらず、ターゲット・データがレプリケーションを通じて正確に保持されない可能性があるというリスクを受け入れます。つまり、キーが無効であると判明し、定義される表に同じキー値を持つ複数のレコードが含まれる場合、Oracle GoldenGateは、更新するターゲット行を誤って選択する可能性があります。

DDLレプリケーションがアクティブではない構成でALLOWNONVALIDATEDKEYSを有効化するには、すべてのプロセスを停止し、ALLOWNONVALIDATEDKEYSをGLOBALSパラメータ・ファイルに追加して、プロセスを再起動します。ALLOWNONVALIDATEDKEYSを再度無効化するには、それをGLOBALSファイルから削除して、プロセスを再起動します。

DDLサポートがアクティブな構成でALLOWNONVALIDATEDKEYS機能を有効化するには、次の手順を実行します。

1. ALLOWNONVALIDATEDKEYSパラメータをGLOBALSパラメータ・ファイルに追加します。

2. 次のSQLを使用して、DDLスキーマのGGS_SETUP表を更新します。

UPDATE owner.GGS_SETUP SET value='1' WHERE
property='ALLOWNONVALIDATEDKEYS';
COMMIT;

3. Managerを含むすべてのOracle GoldenGateプロセスを再起動します。この時点から、Oracle GoldenGateは、非検証または無効の主キーを一意の識別子として選択します。

DDLサポートがアクティブな場合、ALLOWNONVALIDATEDKEYS機能を無効化するには、次の手順を実行します。

1. ALLOWNONVALIDATEDKEYSをGLOBALSパラメータ・ファイルから削除します。

2. GGS_SETUP表に追加したレコードを0に更新します。

3. すべてのOracle GoldenGateプロセスを再起動します。

デフォルト

なし(無効)

構文

ALLOWNONVALIDATEDKEYS

3.8 ALLOWNOOPUPDATES | NOALLOWNOOPUPDATES

適用対象

Replicat

説明

ALLOWNOOPUPDATESおよびNOALLOWNOOPUPDATESでは、Replicatがno-op操作に対応する方法を制御します。no-op操作は、ターゲット表では無効な操作です。次に、これを指定する場合の例を示します。

- ソース表に、ターゲット表に存在しない列がある、または(COLSEXCEPT句を使用して)レプリケーションから除外された列がある。どちらの場合も、そのソース列を更新する場合、Replicat SQL文内のSET句で使用するターゲット列名がありません。

- 列を現在の値と同じ値に設定する更新が行われる。データベースは変更されなかったため、新しい値は記録されません。しかし、主キーが記録されたため、Oracle GoldenGateはこの操作を変更レコードとして取得しますが、Replicat SQL文のSET句に列値がありません。

デフォルト(NOALLOWNOOPUPDATES)では、これらのタイプの操作はデータベースを更新しないため、Replicatはエラーとともに異常終了します。ALLOWNOOPUPDATESを指定すると、Replicatは異常終了せずに操作を無視します。Replicatによってレポートされる統計には、UPDATEは行われたが、データベースは更新されないと示されます。

内部パラメータAPPLYNOOPUPDATESを使用して、強制的にUPDATEを適用させることができます。APPLYNOOPUPDATESは、ALLOWNOOPUPDATESより優先されます。両方が指定された場合、Replicatは、ソース表とターゲット表のキー列が存在する更新を適用します。デフォルトでは、ソース表にキーがあり、ターゲット表にキーがない場合、Oracle GoldenGateは次のメッセージとともに異常終了します。

2011-01-25 02:28:42 GGS ERROR    160 Encountered an update for target table TELLER, which has no unique key defined. KEYCOLS can be used to define a key. Use ALLOWNOOPUPDATES to process the update without applying it to the target database. Use APPLYNOOPUPDATES to force the update to be applied using all columns in both the SET and WHERE clause.

HANDLECOLLISIONSまたはINSERTMISSINGUPDATESパラメータが使用されているときにALLOWNOOPUPDATESが指定された場合、およびOracle GoldenGateにすべてのターゲット・キー値がある場合、Oracle GoldenGateは、SET句およびWHERE句の表のすべての列を使用して(APPLYNOOPUPDATES動作を起動して)、UPDATEを適用します。これは、Oracle GoldenGateが行の存在または欠落を判別するために必要です。欠落している場合、Oracle GoldenGateは、UPDATEをINSERTに変換します。

デフォルト

NOALLOWNOOPUPDATES (表にキーが含まれていない場合にのみ適用)

構文

ALLOWNOOPUPDATES | NOALLOWNOOPUPDATES

3.9 ALLOWOUTPUTDIR

適用対象

GLOBALS

説明

ALLOWOUTPUTDIRでは、使用可能な出力証跡ディレクトリ(そのサブディレクトリを含む)を\u000bから指定します。指定されたパスが存在する必要があります。シンボリック・リンクは解析および比較の前に解決されます。

デフォルト

なし(ディレクトリを指定する必要があります)。

構文

ALLOWOUTPUTDIR [relative_dir_name | absolute_dir_name]

relative_dir_name | absolute_dir_name

出力証跡ディレクトリ名を相対パスまたは絶対パスで指定します。

3.10 APPLYNOOPUPDATES | NOAPPLYNOOPUPDATES

適用対象

Replicat

説明

APPLYNOOPUPDATESでは、SET句およびWHERE句ですべての列を使用して、no-op UPDATE操作を適用させます。no-opの説明は、「ALLOWNOOPUPDATES | NOALLOWNOOPUPDATES」を参照してください。

APPLYNOOPUPDATESによって、Replicatは、トレイル内のどのデータでも使用します。主キーUPDATEレコードがある場合、Replicatは、ソースのビフォア列を使用します。標準(非キー) UPDATEがある場合、Replicatでは、アフター値がビフォア値と同じであるとみなされます(それ以外の場合、主キー更新になります)。前述の場合、ソース・キーとターゲット・キーは同一であるとみなされます。同一ではない場合、ソースでのTABLE文のKEYCOLS句を使用する必要があります。

デフォルト

NOAPPLYNOOPUPDATES

構文

APPLYNOOPUPDATES | NOAPPLYNOPUPDATES

3.11 ASCIITOEBCDIC

適用対象

Extractデータ・ポンプおよびReplicat

説明

ASCIITOEBCDICパラメータでは、ASCIIからEBCDICフォーマットへの入力トレイル・ファイル内のデータの変換を制御します。このパラメータは、入力トレイル・ファイルがリリースv10.0より前のExtractによって作成された場合に、下位互換性をサポートするためにのみ使用する必要があります。ASCIIからEBCDICへの変換が現在はデフォルトになっているため、それ以外の場合は、これは無視されます。

バージョン11.2.1より、データ・ポンプによる変換はできません。

デフォルト

なし

構文

ASCIITOEBCDIC

3.12 ASSUMETARGETDEFS

適用対象

12c (12.2.0.1)より前の証跡ファイル・フォーマットのReplicat (SQL/MXには無効)

説明

ASSUMETARGETDEFSパラメータは、ホット・サイトを同期するときなど、MAP文で指定したソースおよびターゲット・オブジェクトが同一の列構造を持つ場合に使用します。これは、Oracle GoldenGateに対して、ソースおよびターゲット・オブジェクトのデータ定義が同一であるとみなし、ソース・データのメタデータが必要な場合にターゲット定義を参照するように指示します。

ソース表とターゲット表の構造が似ていない場合、ASSUMETARGETDEFSは使用しないでください。ソース・オブジェクトのデータ定義ファイルを作成し、SOURCEDEFSパラメータで定義ファイルを指定します。詳細は、SOURCEDEFSを参照してください。同じパラメータ・ファイルでASSUMETARGETDEFSおよびSOURCEDEFSを使用しないでください。

メタデータとそのOracle GoldenGateへの適用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

ASSUMETARGETDEFS [OVERRIDE]

OVERRIDE

デフォルトで、メタデータ・レコードの表定義はASSUMETARGETDEFSファイルの定義よりも優先されます。

OVERRIDEを指定すると、Replicatに対して、ターゲット・データベースの定義を証跡レコードの定義として使用するように要求します。

3.13 AUTORESTART

適用対象

Manager

説明

AUTORESTARTパラメータでは、処理に失敗した1つ以上のExtractおよびReplicatプロセスを自動的に起動します。AUTORESTARTは、一時的なネットワーク停止や、トランザクション・ログへのアクセスを妨害するプログラムなどによってプロセスが一時的に妨害されるときに、フォルト・トレランスを提供します。

AUTORESTART文は、同一のパラメータ・ファイル内で複数回使用できます。

PASSIVEモードで作成されたExtractグループにこのパラメータを適用するには、関連付けられている別名Extractグループが存在するターゲット・システム上のManagerに対してこのパラメータを使用します。Oracle GoldenGateは、ソース・システムに起動コマンドを送信します。パッシブExtractグループに対してローカルで使用すると、AUTORESTARTは無視されます。

Managerは、再起動時に順序が正しくないトランザクションを検出すると、Extractを再起動しません。かわりに警告を出し、SEND EXTRACTのETROLLOVERオプションを使用してトレイルを次のファイルに切り替え、エラーの原因のトランザクションをスキップするよう通知します。

デフォルト

自動的に再起動しない

構文

AUTORESTART {EXTRACT | REPLICAT | ER} group_name
[, RETRIES number]
[, WAITMINUTES minutes]
[, WAITSECONDS seconds]
[, RESETMINUTES minutes]
[, RESETSECONDS seconds]

EXTRACT

Extractを自動的に再起動します。

REPLICAT

Replicatを自動的に再起動します。

ER

ExtractとReplicatを自動的に再起動します。

group_name

1つのグループ名、または複数のグループを指定するワイルドカード。ワイルドカードを使用する場合、Oracle GoldenGateは、PASSIVEモードのものを除き、ワイルドカードの条件を満たす、指定されたプロセス・タイプのローカル・システム上のすべてのグループを起動します。

RETRIES number

再試行を中止するまでManagerがプロセスの再起動を試行する最大回数。デフォルトの試行回数は2です。

WAITMINUTES | WAITSECONDS {minutes | seconds}

異常終了したプロセスの検出からプロセスの再起動までの待機時間(分または秒)。このオプションは、必要なリソースが利用可能になるまで、または他のイベントが発生するまで再起動を遅延させるために使用します。デフォルトの遅延は2分または120秒です。

RESETMINUTES | RESETSECONDS {minutes | seconds}

再試行回数をカウントする時間枠(分または秒)。デフォルトは120分(2時間)または7200秒です。この時間が過ぎると、再試行回数は0に戻されます。

例

次の例では、Managerは、1時間の時間枠内に処理に失敗したすべてのExtractプロセスの再起動を3回試行します。各再試行の前に5分待機します。

AUTORESTART EXTRACT *, RETRIES 3, WAITMINUTES 5, RESETMINUTES 60

3.14 AUTOSTART

適用対象

Manager

説明

AUTOSTARTパラメータでは、Managerが起動するときに、1つ以上のExtractおよびReplicatプロセスを自動的に起動します。AUTOSTARTによって、すべてのプロセス・グループを見逃すことなく、即座に同期アクティビティを開始できます。

同じパラメータ・ファイルで複数のAUTOSTART文を使用できます。

PASSIVEモードで作成されたExtractグループにこのパラメータを適用するには、関連付けられている別名Extractグループが存在するターゲット・システム上のManagerに対してこのパラメータを使用します。Oracle GoldenGateは、ソース・システムに起動コマンドを送信します。パッシブExtractグループに対してローカルで使用すると、AUTOSTARTは無視されます。

Managerは、再起動時に順序が正しくないトランザクションを検出すると、Extractを再起動しません。かわりに警告を出し、SEND EXTRACTのETROLLOVERオプションを使用してトレイルを次のファイルに切り替え、エラーの原因のトランザクションをスキップするよう通知します。

デフォルト

自動的に起動しない

構文

AUTOSTART {{EXTRACT | REPLICAT | ER} group_name | JAGENT}

EXTRACT

Extractを自動的に起動します。

REPLICAT

Replicatを自動的に起動します。

ER

ExtractとReplicatを自動的に起動します。

JAGENT

Oracle GoldenGate Monitor JAgentを自動的に起動します。詳細は、『Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

group_name

EXTRACT、REPLICAT、ERにのみ有効です。JAGENTは、入力としてグループ名を使用しません。1つのグループ名、または複数のグループを指定するワイルドカードを指定します。ワイルドカードを使用する場合、Oracle GoldenGateは、PASSIVEモードのものを除き、ローカル・システム上のワイルドカードの条件を満たす、指定されたプロセス・タイプのすべてのグループを起動します。

例

AUTOSTART ER *

3.15 BATCHSQL

適用対象

Replicat

説明

BATCHSQLパラメータでは、Replicatのパフォーマンスを向上させます。BATCHSQLを使用すると、Replicatは同様のSQL文を配列にまとめてより高速に適用します。標準モードでは、Replicatは1回に1つのSQL文を適用します。BatchSQLは、Sybase ASE 15.7 SP110以降でサポートされています。

BATCHSQLは次のデータベースに有効です。

- DB2 for i (V5R4またはi6.1を除く)

- DB2 LUW

- z/OS上のDB2

- Oracle

- NonStop SQL/MX

- PostgreSQL

- SQL Server

- Teradata

- TimesTen

BATCHSQLの動作

BATCHSQLモードでは、Replicatは同様のSQL文をメモリー・キュー内でバッチにまとめ、1回のデータベース操作で各バッチを適用します。1つのバッチに含まれるSQL文は、同一の表、操作タイプ(挿入、更新または削除)および列リストを処理します。たとえば、次の各グループは1つのバッチです。

- 表Aへの挿入

- 表Bへの挿入

- 表Aへの更新

- 表Bへの更新

- 表Aからの削除

- 表Bからの削除

注意:

Oracle GoldenGateは、バッチの実行の前に、バッチの外部キー参照依存関係を分析します。異なるバッチ内の文の間に依存関係がある場合、各バッチの複数のSQL文で参照整合性の維持が必要になることがあります。

キャッシュされる文の数の制御

MAXSQLSTATEMENTSパラメータは、キャッシュされる文の数を制御します。詳細は、MAXSQLSTATEMENTSを参照してください。古い文は、最低使用頻度アルゴリズムを使用して再利用されます。バッチは、指定されているしきい値(メモリーの管理を参照してください)に基づいて実行されます。

使用制限

例外として処理されるSQL文には、次のものが含まれます。

- LOBまたはLONGデータを含む文。

- 25Kよりも長い行を含む文。

- ターゲット表に、主キー以外に1つ以上の一意キーが含まれている文。BATCHSQLでは、主キー以外のキーの値が変更されたときにそれらのキーの正しい順序付けが保証されないため、バッチではこのような文を処理できません。

- (SQL Server)ターゲット表にトリガーが含まれている文。

- エラーを発生させる文。

Replicatは、バッチ・モードで例外が発生すると、バッチ操作をロールバックし、次の方法で例外の処理を試行し、常にトランザクションの整合性を維持します。

- まず、Replicatは標準モードの使用を試み、GROUPTRANSOPSパラメータで設定されているトランザクション境界内で1回に1つのSQL文を適用します。詳細は、GROUPTRANSOPSを参照してください。

- 標準モードで失敗すると、Replicatはソース・モードの使用を試み、ソースと同じトランザクション境界内でSQLを適用します。

例外処理が終了すると、ReplicatはBATCHSQLモードを再開します。

表3-31 Replicatモードの比較

ソース・トランザクション(同じ表および列リストであると仮定)

標準モードでのReplicatトランザクション

BATCHSQLモードでのReplicatトランザクション

ソース・モードでのReplicatトランザクション

トランザクション1:

INSERT

DELETE

Transaction2:

INSERT

DELETE

トランザクション3:

INSERT

DELETE

INSERT

DELETE

INSERT

DELETE

INSERT

DELETE

INSERT (x3)

DELETE (x3)

トランザクション1:

INSERT

DELETE

トランザクション2:

INSERT

DELETE

トランザクション3:

INSERT

DELETE

BATCHSQLを使用する場合

ReplicatがBATCHSQLモードの場合、小さな行の変更は大きな行の変更よりも高いパフォーマンスの向上を示します。行変更当たりのデータ量が100バイトの場合、BATCHSQLを使用することによってReplicatのパフォーマンスが最大で300%向上することがわかっていますが、実際のパフォーマンス向上は、混在する操作に応じて異なります。行変更当たりのデータ量が約5,000バイトの場合、BATCHSQLを使用するメリットは低下します。

メモリーの管理

SQL文をバッチにまとめると、効率性は向上しますが、メモリーも消費します。最適なパフォーマンスを維持するために、次のBATCHSQLオプションを使用してください。

BATCHESPERQUEUE
BYTESPERQUEUE
OPSPERBATCH
OPSPERQUEUE

値を設定するベンチマークとして、それぞれ500バイトの1,000のSQL文をまとめた1つのバッチが必要とするメモリーは10MB未満であると想定してください。

デフォルト

無効(標準Replicatモードで処理)

構文

BATCHSQL
[BATCHERRORMODE | NOBATCHERRORMODE]
[BATCHESPERQUEUE n]
[BATCHTRANSOPS n]
[BYTESPERQUEUE n]
[OPSPERBATCH n]
[OPSPERQUEUE n]
[THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])]
[TRACE]

BATCHERRORMODE | NOBATCHERRORMODE

BATCHSQL処理モード中に発生するエラーに対するReplicatのレスポンスを設定します。

BATCHERRORMODE

BATCHSQLモードのままReplicatにエラーの解決を試行させます。重複レコード・エラーが原因で失敗した挿入を更新に変換し、削除に対する行方不明レコード・エラーを無視します。BATCHERRORMODEを使用する場合は、HANDLECOLLISIONSパラメータを使用してReplicatの異常終了を防止します。

NOBATCHERRORMODE

デフォルトでは、エラーが発生すると、Replicatは一時的にBATCHSQL処理を無効にし、まず標準モードでトランザクションを再試行し、標準モードで失敗すると、ソース・モード(ソースと同じトランザクション境界)で実行します。

BATCHESPERQUEUE n
1つのメモリー・キューに維持できる最大バッチ数を制御します。BATCHESPERQUEUEの値に到達すると、ターゲット・トランザクションが実行されます。

- 最小値は1です。

- 最大値は1000です。

- デフォルトは50です。

BATCHTRANSOPS n
コミットが必要になる前に1つのトランザクションにグループ化可能な最大バッチ操作数を制御します。BATCHTRANSOPSの値に到達すると、操作がターゲットに適用されます。

- 最小値は1です。

- 最大値は100000です。

- デフォルトは、非統合Replicat (すべてのデータベース・タイプ)の場合は1000で、統合Oracle Replicatの場合は50です。

BYTESPERQUEUE n
1つのキューに維持できる最大バイト数を設定します。BYTESPERQUEUEの値に到達すると、ターゲット・トランザクションが実行されます。

- 最小値は1000000バイト(1MB)です。

- 最大値は1000000000バイト(1GB)です。

- デフォルトは2000000バイト(20MB)です。

OPSPERBATCH n
1つのバッチに含められる最大行操作数を設定します。OPSPERBATCHの値に到達すると、ターゲット・トランザクションが実行されます。

- 最小値は1です。

- 最大値は100000です。

- デフォルトは1200です。

OPSPERQUEUE n
1つのキューに維持できるすべてのバッチの最大行操作数を設定します。OPSPERQUEUEの値に到達すると、ターゲット・トランザクションが実行されます。

- 最小値は1です。

- 最大値は100000です。

- デフォルトは1200です。

THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])
BATCHESPERQUEUE、BATCHTRANSOPSおよびBYTESPERQUEUEに有効です。これらのオプションを、調整Replicatの指定した1つ以上のスレッドに適用します。

threadID[, threadID][, ...]

スレッドIDを指定するか、スレッドのカンマ区切りリストをthreadID, threadID, threadIDの形式で指定します。

[, thread_range[, thread_range][, ...]

スレッドの範囲をthreadIDlow-threadIDhighの形式で指定するか、範囲のカンマ区切りリストをthreadIDlow-threadIDhigh, threadIDlow-threadIDhighの形式で指定します。

threadID, threadID, threadIDlow-threadIDhighのように、これらの形式を組み合せることができます。

TRACE
コンソールおよびレポート・ファイルへのBATCHSQLアクティビティの詳細なトレースを有効化します。トレースを設定するときは、必ずOracleサポート・アナリストの指示を受けるようにしてください。

例

BATCHSQL BATCHESPERQUEUE 100, OPSPERBATCH 2000

3.16 BEGIN

適用対象

Replicat

説明

BEGINパラメータでは、BEGINで指定した時刻と同じまたはそれより大きいタイムスタンプを持つ、Oracle GoldenGateトレイル内の最初のレコードから処理を開始するようにReplicatに指示します。それ以降のレコードは、タイムスタンプが指定した時刻よりも小さいものを含めすべて処理されます。BEGINは、SPECIALRUNが同じReplicatグループに指定されているときに使用します。

デフォルト

なし

構文

BEGIN date[time]

date[time]

処理を開始する時刻を指定します。有効な値は、yyyy-mm-dd[ hh:mi[:ss[.cccccc]]] (24時間表記)フォーマットの日付とオプションの時刻です。秒およびセンチ秒はオプションです。

例

BEGIN 2011-01-01 04:30:00

3.17 BLOBMEMORY

このパラメータは、LOBMEMORYの別名です。詳細は、LOBMEMORYを参照してください。

3.18 BOOTDELAYMINUTES

適用対象

Manager

説明

Windowsシステム向けのBOOTDELAYMINUTESパラメータでは、Managerが起動時に実行するアクティビティ(パラメータの実行など)を遅延させます。たとえば、BOOTDELAYMINUTESを使用して、データベース・サービスが開始されるまでAUTOSTARTパラメータの実行を遅延させることができます。

BOOTDELAYMINUTESは、他のパラメータ・エントリより先に指定します。このパラメータは、Windowsのみサポートしています。

デフォルト

なし(遅延なし)

構文

BOOTDELAYMINUTES minutes

minutes

システムの起動後、Oracle GoldenGateの処理開始までの遅延時間(分)。

例

BOOTDELAYMINUTES 5

3.19 BR

適用対象

Extract (Oracleのみ)

説明

BRパラメータでは、Bounded Recovery (BR)機能を制御します。この機能は、現在Oracleデータベースをサポートしています。

Bounded Recoveryは一般的なExtractチェックポイント機能のコンポーネントです。計画的または計画外のなんらかの理由でExtractが停止した場合、その時点でオープンしている(コミットされていない)トランザクションの数、およびトランザクションの古さにかかわらず、Extractの停止後の効率的なリカバリを保証します。Bounded Recoveryにより、Extractが停止した位置までリカバリし、正常な処理を再開するまでにかかる最大時間の上限を設定できます。

注意:

このパラメータをデフォルト設定から変更する前に、Oracleサポートに連絡してください。ほとんどの本番環境では、このパラメータの変更は必要ありません。ただし、Bounded Recoveryチェックポイント・ファイル用のディレクトリは、Oracleサポートの支援なしで指定できます。

Extractによるオープンしていたトランザクションのリカバリ方法

Extractは、REDOログ内でトランザクションの開始位置(Oracleの場合は最初の実行可能SQL文)を検出すると、このトランザクション内の取得が指定されているすべてのデータをメモリーにキャッシングし始めます。取得が必要なデータを含まないトランザクションにも、今後の操作によって取得が必要なデータが含まれる可能性があるため、Extractはこのようなトランザクションもキャッシュする必要があります。

Extractは、トランザクションのコミット・データを検出すると、キャッシュしているこのトランザクション全体をトレイルに書込み、メモリーからクリアします。Extractは、トランザクションのロールバック・レコードを検出すると、このトランザクション全体をメモリーから破棄します。Extractがコミットまたはロールバックを処理するまで、トランザクションはオープンしているとみなされ、その情報収集が継続されます。

トランザクションのコミットまたはロールバック・レコードを検出する前にExtractが停止した場合には、Extractの再起動の際に、キャッシュされていた情報をすべてリカバリする必要があります。Extractが停止したときにオープンしていたすべてのトランザクションがリカバリの対象になります。

Extractは、次のようにこのリカバリを実行します。

- Extractが停止したときにオープンしているトランザクションがなかった場合は、現在のExtract読取りチェックポイントからリカバリを開始します。これは標準リカバリです。

- ログ内での開始位置の時刻がExtractの停止時刻と非常に近いオープンしていたトランザクションがある場合、Extractはその中で最も古いトランザクションの開始位置からログを再度読み取ってリカバリを開始します。この場合Extractは、停止前にトレイルに書き込み済または破棄したトランザクションについては重複作業を行う必要がありますが、この作業は処理するデータ量が比較的少ないため許容できます。これも標準リカバリとみなされます。

- Extractが長時間オープンしているトランザクションとみなすトランザクションが1つ以上あった場合は、ExtractはBounded Recoveryを利用してリカバリを開始します。

Bounded Recoveryの動作

トランザクションは、BRパラメータのBRINTERVALオプションで指定されている1つのBounded Recovery間隔より長くオープンしている場合に長時間に及ぶトランザクションとみなされます。たとえば、Bounded Recovery間隔が4時間の場合は、4時間よりも前に開始されたすべてのトランザクションが長時間オープンしているトランザクションになります。

Extractは、Bounded Recovery間隔ごとにBounded Recoveryチェックポイントを作成し、(存在する場合)長時間に及ぶトランザクションの状態とデータを含め、Extractの現在の状態とデータをディスクに永続化します。Extractは、Bounded Recoveryチェックポイント作成後に停止した場合、オープンしている長時間に及ぶ最も古いトランザクションが最初に登場するログ内の位置からではなく、直前のBounded Recovery間隔内の位置、または最新のBounded Recoveryチェックポイントからリカバリを開始します。

最大Bounded Recovery時間(Extractが停止位置までのリカバリにかかる最大時間)は、現在のBounded Recoveryチェックポイント間隔の2倍を上回ることはありません。実際のリカバリ時間は、次の要因によって決まります。

- 最新の有効なBounded Recovery間隔からExtract停止までの時間。

- その期間のExtract使用状況。

- 以前にトレイルに書き込まれたトランザクションの使用率。Bounded Recoveryは、これらのトランザクションをディスクに書き込まなければならなかった最初のExtract処理よりも、(破棄することによって)はるかに早くこれらのトランザクションを処理します。トランザクション・データに対して発生する再処理のほとんどは破棄です。

Extractは、リカバリの際、最新のBounded Recoveryチェックポイントで保存された永続データおよび状態(長時間に及ぶトランザクションのものを含む)をリストアします。

たとえば、あるトランザクションが24時間オープンしていて、Bounded Recovery間隔が4時間であるとします。このときの最大リカバリ時間は、Extract処理時間の8時間を超えず、たいていこの時間を下回ります。最新の有効なBounded Recoveryチェックポイントに対する停止位置、およびその時点におけるExtractのアクティビティによって、実際の時間は異なります。

Bounded Recoveryのメリット

ディスクの永続性を使用して長時間に及ぶトランザクションを保管し、リカバリすることによって、Extractは発生頻度は少ないながら、発生した場合にパフォーマンスに重大な(悪い)影響を及ぼす状況に対応できます。多くの場合、長時間に及ぶトランザクションの開始点は、Extractが停止したときのログ内の処理位置よりもはるか前に遡ります。長時間に及ぶトランザクションは、多数の古いログにまたがっている可能性があり、古いログの一部はアクセス可能な記憶域に存在しないか、削除されていることもあります。長時間に及ぶトランザクションの開始からもう一度ログを読み取るためには、許容できないほど長時間要するだけではなく、長時間に及ぶトランザクションはまれにしか発生しないため、大半はすでにトレイルに書き込み済、または破棄された他のトランザクションをもう一度取得する作業が必要になります。永続化された長時間に及ぶトランザクションの状態とデータをリストアできれば、この作業は不要になります。

Bounded Recoveryの例

次の図は、一連のトランザクションが開始されたタイムラインを表しています。これは、長時間オープンしているトランザクションが特定の間隔の後にディスクにどのように永続化され、処理失敗の後にリカバリされるかを示しています。これは、この例で使用されている用語の理解に役立ちます。

- 永続オブジェクトとは、Bounded Recoveryチェックポイントで永続化されたキャッシュ内の任意のオブジェクトです。通常はトランザクションの状態またはデータですが、キャッシュはExtractの内部のオブジェクトにも使用されます。これらすべてを集合的にオブジェクトと呼びます。

- 最も古い非永続オブジェクトとは、現在のBounded Recoveryチェックポイント直前の間隔内のキャッシュにある、オープンしている最も古いオブジェクトです。通常は、この間隔内にあるオープンしている最も古いトランザクションです。Bounded Recoveryを再起動すると、実行時プロセスは最も古い非永続オブジェクトの位置から再開し、通常のトランザクションの場合は、これがREDOログ内のこのトランザクションの位置になります。

図3-1 サンプルのBounded Recoveryチェックポイント

この例では、Bounded Recovery間隔は4時間です。オープンしているトランザクションは、現在のBounded Recoveryチェックポイントから1つのBounded Recovery間隔より長い間オープンしている場合、現在のチェックポイントで永続化されます。

BRチェックポイントn:

- オープンしているトランザクションは、T(27)、T(45)、T(801)、T(950)およびT(1024)の5つです。これ以外のトランザクションはすべて、コミットされてトレイルに送信されたか、ロールバックされました。トランザクションは、タイムラインに沿って開始位置が示されています。

- 1つのBounded Recovery間隔より長くオープンしているトランザクションは、T(27)およびT(45)です。BRチェックポイントnでこれらはディスクに永続化されます。

- 最も古い非永続オブジェクトはT(801)です。これは、オープンしている時間が1つのBounded Recovery間隔に満たないので、ディスクに永続化される資格がありません。このトランザクションは最も古い非永続化オブジェクトなので、ログ内のこのトランザクションの開始位置がBRチェックポイントnチェックポイント・ファイルに保管されます。ExtractはBRチェックポイントn以降に予期せず停止すると、このログ位置までリカバリし、そこからログの再読取りを開始します。直前のBounded Recovery間隔に最も古い非永続オブジェクトが存在しない場合、Extractは現在のBounded Recoveryチェックポイントのログ位置からログの再読取りを開始します。

BRチェックポイントn+1:

- T(45)は直前のBounded Recovery間隔で使用済(更新済)なので、新しい永続オブジェクト・ファイルに書き込まれます。古いファイルは、BRチェックポイントn+1完了後に削除されます。

- Extractは、BRチェックポイントn+1の書込み中、またはBRチェックポイントnとBRチェックポイントn+1間のBounded Recoveryチェックポイント間隔内のある時点で処理に失敗すると、最後の有効なチェックポイントであるBRチェックポイントnからリカバリを開始します。BRチェックポイントnの再開始位置は、最も古い非永続トランザクションであるT(801)の開始点です。したがって、最も長いリカバリ時間は常に、Extractが停止したポイントから2つのBounded Recovery間隔未満、このケースでは8時間未満になります。

BRチェックポイントn+3000

- このシステムは長い時間実行されています。T(27)およびT(45)のみが永続トランザクションです。T(801)およびT(950)は、BRチェックポイントn+2999より前のある時点でコミットされ、トレイルに書き込まれました。現在オープンしているトランザクションは、T(208412)およびT(208863)のみです。

- BRチェックポイントn+3000が書き込まれます。

- BRチェックポイントn+3000の後の間隔で電源障害が発生します。

- 新しいExtractがBRチェックポイントn+3000までリカバリします。T(27)およびT(45)は、BRチェックポイントn時点の状態を含む、それぞれの永続ファイルからリストアされます。ログ読取りは、T(208412)の開始から再開します。

長時間に及ぶトランザクションの管理

Oracle GoldenGateは、長時間に及ぶトランザクションを管理するために、次のパラメータとコマンドを提供します。

- WARNLONGTRANSパラメータでは、Extractによってトランザクションが長時間に及んでいることの警告メッセージが生成されるまでの、トランザクションのオープン時間を指定します。またWARNLONGTRANSも使用して、Oracle GoldenGateが長時間に及ぶトランザクションをチェックする頻度を制御します。この設定はBounded Recovery間隔とは無関係で、Bounded Recovery間隔に影響しません。

- SEND EXTRACTコマンドとSKIPTRANSオプションでは、指定したトランザクションをExtractにスキップさせます。

- SEND EXTRACTコマンドとFORCETRANSオプションでは、Extractに、指定したトランザクションをコミット済トランザクションとしてトレイルに書き込ませます。

- TRANLOGOPTIONSパラメータとPURGEORPHANEDTRANSACTIONSオプションでは、ノードに障害が発生し、Extractがロールバックを取得できないときに発生する孤立トランザクションのパージを有効化します。

ディスクに書き込まれるファイルについて

Bounded Recovery間隔が終了すると、Extractは常にBounded Recoveryチェックポイント・ファイルを作成します。永続化が必要な長時間に及ぶトランザクションが存在する場合、これらのトランザクションは各自の永続オブジェクト・ファイルに書き込まれます。永続オブジェクト・ファイルには、ディスクに永続化される単一のトランザクションの状態およびデータが格納されます。

これまでの経験では、長時間に及ぶトランザクションを永続化する必要はほとんどなく、このようなケースのほとんどでトランザクションは空です。

以前に永続化されたオブジェクトがまだオープンしていて、完了したばかりのBounded Recovery間隔中にその状態やデータが変更された場合、このオブジェクトは新しい永続オブジェクト・ファイルに再度永続化されます。このような変更が発生しない場合、オープンしているトランザクションの以前に作成された永続化オブジェクト・ファイルは変更されません。

理論的には、1つの長時間に及ぶトランザクションを永続化するために、複数の永続ファイルが必要になること可能性もあります。

注意:

Bounded Recoveryファイルは、Extractが別のシステムに移動された場合、同一のデータベースが使用されているとしても、新しいシステムのすべての関連要素が元のシステムと同一でなければ、Extractの状態のリカバリに使用できません。たとえば、Oracle 11g Solarisプラットフォームに書き込まれたチェックポイント・ファイルは、Oracle 11g Linuxプラットフォーム上のExtractのリカバリに使用できません。

Bounded Recoveryを標準リカバリに変更する状況

Extractは、永続オブジェクトが存在するまれな状況を除き、ほとんどのケースでBounded Recoveryではなく標準リカバリを使用します。特定の異常な状況では、ExtractはBounded Recoveryから標準リカバリ・モードに切り替えられない場合があります。たとえば、(長時間に及ぶトランザクションの永続データが保管されている)ディスクの物理的な破損、Bounded Recoveryチェックポイント・ファイルの不注意な削除、環境の継続性に影響を及ぼすその他のアクションやイベントなどが発生する状況があげられます。もっと容易に修正可能な障害が原因の場合もあります。

一部のケースを除き、Extractは、リカバリ中にBounded Recovery処理に失敗すると、標準モードに切り替えます。標準リカバリの完了後、Bounded Recoveryはもう一度有効化されます。

Bounded Recoveryは、次の状況では起動されません。

- Extractの開始位置がCSNまたは時間によって変更された。

- Extract I/Oチェックポイントが変更された。

- Extractパラメータ・ファイルがリカバリ中に変更された(TABLE指定の変更など)。

リカバリの完了後、Bounded Recoveryは次の実行に向けてもう一度有効化されます。

Bounded Recovery中にExtractが異常終了した場合の措置

ExtractがBounded Recovery中に異常終了した場合は、エラー・ログを確認して理由を特定してください。無効なパラメータ・ファイル、Bounded Recoveryファイルが含まれるディレクトリの不適切な権限など、迅速に解決できる問題が原因の場合もあります。こうしたケースでは、問題の修正後、Extractを再起動してBounded Recoveryを有効化できます。

問題が修正できない場合は、BRRESETオプションでExtractの再起動を試みます。Extractは標準モードでリカバリを実行し、その後Bounded Recoveryを再び有効化できます。

BRパラメータの変更

Bounded Recoverは、デフォルトで有効化されており、デフォルトのBounded Recovery間隔は4時間です(BRINTERVALオプションで制御します)。この間隔は、ほとんどの環境に適切なはずです。BRパラメータを変更するときは、先に必ずOracleサポート・アナリストの指示を受けるようにしてください。Oracle GoldenGateアナリストは、使用可能なBounded Recovery実行時統計に基づいてBounded Recovery使用状況を分析し、デフォルトでは不十分な不測のイベント発生時に適切なBRINTERVALの設定を特定できます。

BRの変更を要求された場合は、Bounded Recovery間隔が標準Extractチェックポイント間隔の倍数であることに注意してください。Extractチェックポイントは、CHECKPOINTSECSパラメータで制御されます。したがって、BRパラメータは、標準Extractチェックポイントに対するBounded Recoveryチェックポイントの割合を制御します。Oracle担当者から指示された場合は、両方のパラメータを変更する必要があります。

サポートされるデータベース

このパラメータはOracleデータベースに適用されます。他のデータベースでは、Extractは障害時の最も古いトランザクションの開始位置から古いログを読み取ってリカバリを行い、長時間に及ぶトランザクションは永続化されません。

デフォルト

BR BRINTERVAL 4, BRDIR BR

構文

BR
[, BRDIR directory]
[, BRINTERVAL number {M | H}]
[, BRKEEPSTALEFILES]
[, BROFF]
[, BROFFONFAILURE]
[, BRFSOPTION { MS_SYNC | MS_ASYNC }]

BRDIR directory

BRディレクトリを含める親ディレクトリの相対パス名または完全パス名を指定します。BRディレクトリには、Bounded Recoveryチェックポイント・ファイルが保管され、このディレクトリ名は変更できません。BRディレクトリのデフォルトの親ディレクトリは、Oracle GoldenGateインストール・ファイルを含むルート・ディレクトリにあるBRという名前のディレクトリです。

特定のOracle GoldenGateインストール内の各Extractグループは、BRDIRで指定されたディレクトリの下に各自のサブディレクトリを持ちます。各サブディレクトリには、関連するExtractグループの名前が付けられます。

directoryには、文字列tempまたはtmp (大/小文字を区別しない)を含む名前を使用しないでください。一時ディレクトリは、内部または外部のクリーンアップ・プロシージャで削除されることがあります。

BRINTERVAL number {M | H}

Bounded Recoveryチェックポイント間の時間を指定します。この時間をBounded Recovery間隔と呼びます。この期間は、CHECKPOINTSECSパラメータによって制御されている、Extractの標準のチェックポイント間隔の整数倍です。ただし、正確な値を設定する必要はありません。Bounded Recoveryは、必要に応じて内部で有効なBRINTERVALパラメータを調整します。

最小間隔は1分です。最大値は999999999時間です。デフォルト間隔は4時間です。

BRKEEPSTALEFILES

古いBounded Recoveryチェックポイント・ファイルを保持します。デフォルトでは、現在のチェックポイント・ファイルのみが保持されます。Extractは、古いBounded Recoveryチェックポイント・ファイルからはリカバリできません。古いファイルは、Oracleサポート・アナリストに指示された場合にのみ保持するようにしてください。

BROFF

Bounded Recoveryの実行およびリカバリを無効にします。このオプションを使用する前にOracleに連絡してください。通常の場合、Bounded Recoveryに問題があると、Bounded Recoveryは自身を無効化します。

BROFFONFAILURE

エラー発生後、Bounded Recoveryを無効化します。デフォルトでは、ExtractはBounded Recovery処理中にエラーを検出すると、標準リカバリに切り替えますが、リカバリの完了後Bounded Recoveryをもう一度有効化します。BROFFONFAILUREでは、Bounded Recoveryの実行時処理を無効化します。

BRRESET

BRRESETは起動オプションであり、Extractに、現在の実行の間は標準リカバリを使用させ、リカバリの完了後にBounded Recoveryを再び有効化させます。このパラメータは、エラーを検出してもBounded Recoveryが標準モードに戻らない、まれなケースで使用します。Bounded Recoveryは、実行時に有効化されます。このオプションを使用する前にOracleサポートに連絡してください。

このオプションを使用するには、Extractをコマンドラインから起動する必要があります。Extractをコマンドラインから起動するには、次の構文を使用します。

extract paramfile name.prm reportfile name.rpt

説明:

- paramfile name.prmは、Extractパラメータ・ファイルの相対名または完全修飾名です。このコマンド名はpfに短縮できます。

- reportfile name.rptは、Extractレポート・ファイルをデフォルト以外の場所に配置する場合の、Extractレポート・ファイルの相対名または完全修飾名です。このコマンド名はrfに短縮できます。

BR BRFSOPTION {MS_SYNC | MS_ASYNC}

Bounded Recoveryでマップ済データの同期/非同期書込みを実行します。

MS_SYNC

マップ済データのBounded Recovery書込みは、I/Oデータ整合性が完了するように同期されます。

MS_ASYNC

マップ済データのBounded Recovery書込みは、サービスのために開始または待機されます。

例

BR BRDIR /user/checkpt/brでは、Bounded Recoveryチェックポイント・ファイルの作成先を/user/checkpt/brディレクトリに指定します。

3.20 BULKLOAD

適用対象

Replicat

説明

初期ロードReplicat用のBULKLOADパラメータは、Oracle SQL*Loaderへのダイレクト・バルク・ロード方式を使用するときに使用します。この方法では、ダイレクト・ロードを実行するために、初期ロード・データをOracleのSQL*Loaderユーティリティのインタフェースに直接渡します。Collectorプロセスとトレイルは使用されません。

Oracle GoldenGateでのデータ・ロード方式の詳細は、『Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

デフォルト

なし

構文

BULKLOAD
[LOGGING | NOLOGGING]
[PARALLEL | NOPARALLEL]
[SKIPALLINDEXES | SKIPUNUSEDINDEX | NOSKIPALLINDEXES]

LOGGING | NOLOGGING

OracleのReplicatに有効です。LOGGINGがデフォルトで、ロード済オブジェクトのREDOロギングは有効です。NOLOGGINGは、ロード済オブジェクトのREDOロギングを無効にしてBULKLOADのパフォーマンスを向上します。同期および複数のマスター構成のカスケードにはNOLOGGINGを使用しないでください。

ただし、ターゲットがカスケードまたは双方向構成の一部で、ローカルExtractによってロード済オブジェクトが取得される場合、BULKLOADをLOGGINGに設定する必要があります。

PARALLEL | NOPARALLEL

OracleのReplicatに有効です。PARALLELは、BULKLOADで複数のロード・セッションを使用して同じセグメントを同時にロードできるようにします。NOPARALLELはデフォルトで、パラレル・ロードを無効にします。

SKIPALLINDEXES | SKIPUNUSEDINDEX | NOSKIPALLINDEXES

OracleのReplicatに有効です。索引の処理を制御します。NOSKIPALLINDEXESはデフォルトで、ダイレクト・ロード中の索引メンテナンスを可能にします。SKIPALLINDEXESはすべての索引メンテナンスをスキップします。SKIPUNUSEDINDEXは使用不可の索引をスキップします。

3.21 CACHEMGR

適用対象

ExtractおよびReplicat(z/OS上のDB2を除くすべてのデータベース)

説明

CACHEMGRパラメータでは、コミットされていないトランザクション・データのキャッシュに使用可能な仮想メモリーおよび一時ディスク領域の量を制御します。

注意:

このパラメータをデフォルト・キャッシュ設定から変更する前に、Oracleサポートに連絡してください。Oracle GoldenGateのキャッシュ・マネージャは、内部で自動構成および自動調整を行うため、ほとんどの本番環境ではこのパラメータを変更する必要はありません。ただし、ページ・ファイルのディレクトリは、Oracleサポートの支援なしで指定できます。

メモリー管理について

注意:

ここにはできるかぎり正確に説明していますが、メモリー管理コンポーネントの基本設計は、製品の継続的な改善のために変更されることがあります。

Oracle GoldenGateはコミットされたトランザクションのみをレプリケートするため、トランザクションのコミットまたはロールバックを受信するまで、キャッシュと呼ばれる管理仮想メモリー・プールに各トランザクションの操作を保持します。1つのグローバル・キャッシュが1つのExtractまたはReplicatプロセスの共有リソースとして機能します。このグローバル・キャッシュから、次の仮想メモリー・サブプールが割り当てられます。

- 大半のトランザクション行データ用としてExtractログ・リーダー・スレッドまたはReplicatトレイル・リーダー・スレッド当たり1つのサブプール

- BLOBデータおよびその他の大きなアイテム用として1つのサブプール

各サブプール内に、グローバル・キャッシュから個別のバッファが割り当てられます。各バッファには、Oracle GoldenGateが処理中の1つのトランザクションに関連する情報が保持されます。

Oracle GoldenGateキャッシュ・マネージャは、オペレーティング・システムのメモリー管理機能を利用して、Oracle GoldenGateプロセスを持続的かつ効率的に機能させます。キャッシュ内では、最新の仮想メモリー技法を活用して次のことを行います。

- アクティブなバッファの割当ておよび管理を効率的に行う。

- 可能な場合はディスクにページングせずに古いバッファを再利用する。

- 必要な場合は使用頻度が少ない情報をディスクにページングする。

Oracle GoldenGateプロセスによって使用される物理メモリーの実際の量は、Oracle GoldenGateプログラムではなく、オペレーティング・システムによって制御されます。

キャッシュ・マネージャは、グローバル・キャッシュ・サイズの弱い制限の範囲でOracle GoldenGateプロセスを機能させ、オンデマンドで仮想メモリーのみを割り当てます。(キャッシュ・マネージャは、制御されない物理メモリーを割り当てません。)キャッシュ・サイズ増加のためのシステム・コールは、最後の手段としてのみ使用され、使用された場合は、その後必ず仮想メモリーが解放されてシステムに戻されます。

システムは、今後実行する各Oracle GoldenGate ExtractおよびReplicatプロセスのために、十分なスワップ領域を確保している必要があります。必要なスワップ領域を特定するには、次の手順を実行します。

1. 1つのExtractプロセスおよび1つのReplicatプロセスを起動します。

2. GGSCIを実行します。

3. 実行中の各プロセスのレポート・ファイルを表示し、PROCESS VM AVAIL FROM OS (min)行を探します。

4. 必要な場合、各値を次の整数(GB)に切り上げます。たとえば、1.76GBの場合は2GBに切り上げます。

5. 繰り上げられたExtractの値に、Extractプロセスの数を掛けます。

6. 繰り上げられたReplicatの値に、Replicatプロセスの数を掛けます。

7. 2つの結果に、システム上のOracle GoldenGateプロセスおよびその他のプロセスで必要とする追加スワップ領域を足します。

(PROCESS_VM x number_Extracts) + (PROCESS_VM x number_Replicats) +
(swap_for_other_processes) = max_swap_space_on_system

この合計が、これらのプロセスに必要な最大スワップ領域になります。すべてのOracle GoldenGateプロセスが使用する実際の物理メモリー量は、Oracle GoldenGateプロセスではなく、オペレーティング・システムによって制御されます。グローバル・キャッシュ・サイズは、CACHEMGRのCACHESIZEオプションで制御します。

注意:

キャッシュ・マネージャは、Oracle GoldenGateによって、BLOB用サブプールやその他のトランザクション・データ用のサブプールの制御以外の目的でも内部で使用されます。統計を表示するときに、このような追加メモリー・プールの情報が表示されることがあります。

CACHEMGRを調整する時期

メモリー・マネージャが生成する統計は、SEND EXTRACTまたはSEND REPLICATコマンドをCACHEMANAGERオプションとともに使用すると表示できます。この統計は、メモリー・プールのサイズ、ページングの頻度、トランザクションのサイズ、システム・プロファイルを作成するその他の情報を表示します。

このプロファイルを確認し、パフォーマンスの問題がファイル・キャッシングに関連していると思われるときは、メモリー・キャッシュの調整が必要になることがあります。その場合は、まずCACHESIZEパラメータを変更します。生成されているトランザクションのサイズとタイプに応じて、より大きなまたは小さなキャッシュ・サイズを使用する必要があります。

ただし、オペレーティング・システムの制約によって、CACHEMGRパラメータでのコンポーネント変更の効果が制限されることがあります。特に、オペレーティング・システムでプロセス当たりの仮想メモリーの制限が低い値に設定されている場合は、CACHEMGRの構成にかかわらず、多くのファイル・キャッシングを強制されます。

詳細は、SEND EXTRACTおよびSEND REPLICATを参照してください。

レポート・ファイルの基本統計の表示

キャッシュ・マネージャは、自身の初期化を完了すると、プロセス・レポート・ファイルに次のような統計を書き込みます。

CACHEMGR virtual memory values (may have been adjusted)
CACHESIZE: 32G
CACHEPAGEOUTSIZE (normal): 8M
PROCESS VM AVAIL FROM OS (min): 63.97G
CACHESIZEMAX (strict force to disk): 48G

説明:

- CACHESIZEは、プロセスがトランザクション・データのキャッシュに使用できる仮想メモリーの弱い制限を示します。これは、PROCESS VM AVAIL FROM OS (min)の値に基づいて動的に決定されます。CACHEMGRのCACHESIZEオプションを使用して制御できます。

- PROCESS VM AVAIL FROM OS (min)は、このプロセスが使用可能と判断したおおよその仮想メモリー量を示します。内部的な理由で、この量はオペレーティング・システムによって使用可能と表示される量より少ない場合があります。

- CACHESIZEMAX (strict force to disk)は、PROCESS VM AVAIL FROM OSおよびCACHESIZEから導出されます。これは、キャッシュ・マネージャがディスクへのページング候補のトランザクションを決定する手段と解釈できます。通常は、現在仮想メモリー・バッファが特定の内部値を超えているトランザクションのみがページングの候補です。メモリー・リクエストの合計がCACHESIZEの値を超えると、キャッシュ・マネージャはディスクに書き込むトランザクションを探し、ページング候補のリストからトランザクションを選択します。ページング候補のトランザクションがすでにディスクにページングされていて、使用中の仮想メモリーがCACHESIZEMAX (strict force to disk)を超えている場合は、追加のバッファを必要とするすべてのトランザクションをページング候補にできます。このような方法で、常に仮想メモリーの可用性が確保されています。

ページング・ディレクトリの特定

デフォルトでは、Oracle GoldenGateによってOracle GoldenGateインストール・ディレクトリのdirtmpサブディレクトリにディスクにスワップされるデータが保持されます。キャッシュ・マネージャは、ファイル・システムのすべての空き容量を使用可能とみなします。このディレクトリは、トランザクションのサイズの増加に伴ってトランザクションの量が増加すると、すぐに一杯になります。I/O競合とディスク関連のExtractの失敗を防ぐには、ディスクをこのディレクトリ専用にします。CACHEMGRパラメータのCACHEDIRECTORYオプションを使用して、このディレクトリに名前とサイズを割り当てることができます。CACHEMGRのCACHESIZEオプションにより、トランザクション・データのキャッシュに使用できる仮想メモリー量(キャッシュ・サイズ)の弱い制限が設定されます。

CACHEMGR使用のガイドライン

- このパラメータは、Oracle GoldenGateでサポートされているすべてのデータベースに有効です。

- 少なくとも1つの引数を指定する必要があります。CACHEMGR単独では無効です。

- パラメータ・オプションは、任意の順番で指定できます。

- 1つのパラメータ・ファイルでは、1つのCACHEMGRパラメータのみの使用が許可されています。

- (ページ・ファイルのディレクトリを指定する以外に)このパラメータを正しく使用するためには、システムのプロファイル、およびアプリケーションから伝播されるトランザクションの種類を理解する必要があります。キャッシュ・マネージャは自己調整を行うため、標準の環境ではこのパラメータを変更する必要はありません。調整が必要と思われる場合は、http://support.oracle.comでOracleサービス・リクエストをオープンしてください。

デフォルト

なし

構文

CACHEMGR {
[, CACHESIZE size]
[, CACHEDIRECTORY path [size] [, ...]]
CACHEMGR CACHEFSOPTION { MS_SYNC | MS_ASYNC } |
}

CACHESIZE size

トランザクション・データのキャッシングにできる仮想メモリー量(キャッシュ・サイズ)の弱い制限を指定します。64ビットシステムでは、デフォルトは64GBです。32ビットシステムでは、キャッシュ・サイズはキャッシュ・マネージャによって動的に決定されます。

メモリーはオンデマンドで割り当てられます。デフォルトでは、キャッシュ・マネージャは、オペレーティング・システムから提供される使用可能な仮想メモリー量を動的に判断し、適切なキャッシュ・サイズを決定します。使用可能な仮想メモリーは、レポート・ファイルのPROCESS VM AVAIL FROM OS値にレポートされます。CACHESIZE値は、プロセスが使用可能な仮想メモリー量よりも大きい、またはこの量に非常に近い場合、低減されます。ただし、大規模なアドレス領域を持つシステムでは、内部制限に到達した後にキャッシュ・マネージャが使用可能なメモリーを判断することはありません。

CACHESIZE値は、PROCESS VM AVAIL FROM OS自体が2の2乗値の場合を除き(そのケースではその値の半分に値になります)、その値から切り捨てられて常に2の累乗値になります。指定されたサイズがデータによって消費されると、メモリー・マネージャはシステムに新しいメモリーをリクエストする前に、ディスクにデータをページングするか、古いバッファを再利用してメモリーの解放を試みます。

あるトランザクションが必要とするキャッシュ仮想メモリーが初期バッファ割当てを上回ると、このトランザクションの現在のキャッシュ・データのサイズ、新しいデータに必要なサイズ、すべてのトランザクションで使用されている仮想メモリー量などの要因に基づいて、キャッシュ・マネージャによって割り当てられる追加のキャッシュ・メモリー量が動的に決定されます。

CACHEDIRECTORY path [size]

Oracle GoldenGateが必要なときに一時的にトランザクション・データをディスクに書き込むディレクトリの名前を指定します。このパラメータを指定しない場合のデフォルトは、Oracle GoldenGateインストール・ディレクトリのdirtmpサブディレクトリです。一時ファイル用のディレクトリは、Oracleデータベース・ファイル・システムには配置できますが、AIXなどのmmap()システム・コールをサポートしていないダイレクトI/OまたはコンカレントI/Oがマウントされたファイル・システムには配置できません。

- pathは、完全修飾ディレクトリ名です。

- sizeには、指定したディレクトリに割当て可能な最大ディスク領域量を指定します。上限は、最大ファイル・サイズやファイル数など、ファイル・システムによって決められている値です。最小サイズは、強制的に2GBになります。デフォルト値はありません。リソースの制限によって、Oracle GoldenGateが使用するスワップ領域を制限する必要がないかぎり、このオプションは使用しないでください。

ディレクトリごとにCACHEDIRECTORY句を使用すると、複数のディレクトリを指定できます。ディレクトリの最大数は100です。

この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

CACHEMGR CACHEFSOPTION {MS_SYNC | MS_ASYNC}

Oracle GoldenGateメモリー・キャッシュ・マネージャでマップ済データの同期または非同期書込みを実行します。

例

CACHEMGR CACHESIZE 500MB, CACHEDIRECTORY /ggs/temp 2GB, CACHEDIRECTORY /ggs2/temp 2GB

3.22 CATALOGEXCLUDE

適用対象

Extract、Replicat、DEFGEN

説明

CATALOGEXCLUDEパラメータでは、TABLEまたはMAP文でワイルドカードを使用してコンテナまたはカタログ名が指定されている場合に、Oracle GoldenGate構成から特定のコンテナまたはカタログのソース・オブジェクトを明示的に除外します。このパラメータは、データベースが、3つの部分からなる完全修飾名が使用されるOracleコンテナ・データベースまたはSQL/MXデータベースである場合に有効です。

ファイルまたはトレイルを指定するパラメータとCATALOGEXCLUDEの位置関係によって、その効果が決まります。トレイルまたはファイルを指定するパラメータは、EXTFILE、RMTFILE、EXTTRAIL、RMTTRAILです。パラメータは次のように機能します。

- CATALOGEXCLUDE指定の場所がTABLEまたはSEQUENCEパラメータの前で、トレイルまたはファイルを指定するパラメータの前でもあると、すべてのトレイルまたはファイル、およびすべてのTABLEパラメータとSEQUENCEパラメータにグローバルに適用されます。

- CATALOGEXCLUDE指定の場所がトレイルまたはファイルを指定するパラメータの後であると、その効果はそのトレイルまたはファイルのみ、およびそれに関連するTABLEパラメータまたはSEQUENCEパラメータのみに適用されます。パラメータ・ファイルでは、複数のトレイルまたはファイルを指定し、そのそれぞれに続けてTABLE、SEQUENCEおよびCATALOGEXCLUDEのセットを指定できます。

CATALOGEXCLUDEは、関連するTABLEまたはSEQUENCEパラメータの評価前に評価されます。したがって、それらの出現順序による違いはありません。

EXCLUDEWILDCARDOBJECTSONLYパラメータも参照してください。

デフォルト

なし

構文

CATALOGEXCLUDE {container | catalog}

container | catalog

除外するソースOracleコンテナまたはSQL/MXカタログ。ワイルドカードを使用できます。Oracle GoldenGateの管理for Windows and UNIXに記載されている、ワイルドカードを使用する場合のルールに従ってください。

例

例1

この例では、文字列src_testを含むすべてのソース・カタログを除外します。

EXTRACT capt
RMTHOST sysb, MGRPORT 7809
RMTTRAIL /ggs/dirdat/aa
CATALOGEXCLUDE src_test*
TABLE *.*.*;

例2

この例では、pdb1プラガブル・データベースを除外します。

EXTRACT capt
USERIDALIAS alias1
RMTHOST sysb, MGRPORT 7809
RMTTRAIL /ggs/dirdat/aa
CATALOGEXCLUDE pdb1
TABLE *.*.*;

3.23 CHARMAP

適用対象

Replicat

説明

CHARMAPパラメータでは、文字マッピング・ファイルが文字コード・ポイント・マッピングをオーバーライドするように指定します。同じキャラクタ・セットのキャラクタ・セットの変換を有効にすると、パフォーマンスが低下することがあります。

デフォルト

パラメータ・ファイルのエンコーディングは、オペレーティング・システムのデフォルトのキャラクタ・セットです。

構文

CHARMAP charmap filename

文字マッピングファイルの書式は次のとおりです。

-- Sample character mapping file.
--    Can use -- or COMMENT as comment line.
--    Can use CHARSET parameter to specify file encoding.
--
-- Source character set
SOURCECHARSET     shiftjis
--
-- Target character set
TARGETCHARSET     ja16euc
--
-- Character map definition by one code point.
--   left hand is source and right hand target code point.
\xa2c1     \x89\xa2\xb7        -- override \xa2c1 to \x89\xa2\xb7
--
-- Character map definition by range. Number of source and target characters must be the same.
\x61 - \x7a        \x41 - \x5a

例

次の例では、文字マッピング・テキスト・ファイルを使用して文字マップ定義が指定されます。

CHARMAP charmapdesc.txt

REPLACEBADCHAR FORCECHECK

これにより、ソースおよびターゲットが同じ場合でも、厳密なキャラクタ・セットの変換およびチェック・コード・ポイントが可能になります。

文字マッピング・ファイルに次を追加します。

SOURCECHARSET   windows-932
TARGETCHARSET   windows-932
\x61 - \x7a    \x41 - \x5a

3.24 CHARSET

適用対象

Extract、Replicat、DEFGEN、ManagerおよびGLOBALS

説明

CHARSETパラメータでは、ローカルのOracle GoldenGateインスタンスでのパラメータ・ファイルのキャラクタ・セットを指定します。デフォルトでは、パラメータ・ファイルは、ローカル・オペレーティング・システムのデフォルトのキャラクタ・セットで作成されます。CHARSETでは、ローカル・プラットフォームが必要な文字をサポートしていない場合に、かわりに使用するキャラクタ・セットを指定します。

CHARSETは、問合せパラメータと一緒に使用できません。

CHARSETでは、ローカル・プラットフォームがオペレーティング・システムのデフォルトのキャラクタ・セットとしてマルチバイト文字をサポートしていない場合に、エスケープ・シーケンス(\uXXXX)を必要とせずに、パラメータ・ファイルでマルチバイト文字などのオペレーティング・システムの互換性のない文字を使用できます。

CHARSETは、あるシステムでパラメータ・ファイルを作成中に使用することもできますが、別のキャラクタ・セットを使用した別のシステムで使用されます。異なるキャラクタ・セット間の非互換性の可能性を回避するには、Oracle GoldenGateがパラメータ・ファイルを使用するシステムと同じシステム上にパラメータ・ファイルを作成する必要があります。

注意:

mgr.prmファイルでのCHARSETの使用は、12.1.2.x以前のリリースではサポートされていません。

パラメータ・ファイルでの配置

CHARSETは、パラメータ・ファイルの最初の行に配置する必要があります。

GLOBALSファイルでの使用方法

GLOBALSファイルのCHARSETでは、すべてのローカル・プロセスのパラメータ・ファイルに対してデフォルトのキャラクタ・セットを設定します。個別のパラメータ・ファイルのCHARSETは、GLOBALSで設定されるデフォルト値より優先されます。

ネストされたパラメータ・ファイルでの使用方法

OBEYまたはINCLUDEパラメータを含むパラメータ・ファイルでCHARSETを使用できますが、参照パラメータ・ファイルはCHARSETキャラクタ・セットを継承しません。参照ファイル内のワイルドカード・オブジェクト名を読み取るためにCHARSETキャラクタ・セットが使用されますが、エスケープ・シーケンス(\uXXXX)を使用して、参照ファイル内の他のすべての互換性のない文字を指定する必要があります。

デフォルト

なし

構文

CHARSET character_set

character_set

サポートされているキャラクタ・セット。

例

CHARSET UTF-8

3.25 CHECKMINUTES

適用対象

Manager

説明

CHECKMINUTESパラメータでは、Managerがメンテナンス・アクティビティを行う間隔を制御します。このパラメータの値を低くすると、トレイル・ファイルのロールオーバーを頻繁に行う場合にはパフォーマンスに大きな影響が及ぶことがあります。プロセスの異常終了などの他のイベントが発生した場合にも、メンテナンス・サイクルがトリガーされます。

デフォルト

10分間隔

構文

CHECKMINUTES minutes

minutes

メンテナンス・アクティビティを実行する間隔(分)。

例

CHECKMINUTES 15

3.26 CHECKPARAMS

適用対象

ExtractおよびReplicat

説明

CHECKPARAMSパラメータでは、パラメータ・ファイルの構文をテストします。テストを開始するには、次の手順を実行します。

1. パラメータ・ファイルを編集してCHECKPARAMSを追加します。

2. (オプション)表を検証する場合には、NODYNAMICRESOLUTIONパラメータを追加します。

3. プロセスを起動します。Oracle GoldenGateは、データ処理は行わず、構文を検証します。NODYNAMICRESOLUTIONが存在する場合、Oracle GoldenGateはデータベースに接続して、TABLEまたはMAPで指定されている表が存在するかどうか検証します。構文エラーがある場合、プロセスはエラー190で異常終了します。構文にエラーがない場合、プロセスは停止し、パラメータを正常に処理したことを示すメッセージをレポート・ファイルに書き込みます。

4. 次の内の1つを実行します。

- テストが成功した場合は、パラメータ・ファイルを編集してCHECKPARAMSパラメータ(および使用している場合はNODYNAMICRESOLUTIONパラメータ)を削除した後、プロセスを起動して処理を再開します。

- テストが失敗した場合は、パラメータ・ファイルを編集し、レポートの結果に基づいて構文を修正した後、NODYNAMICRESOLUTIONを削除してプロセスをもう一度起動します。

CHECKPARAMSは、パラメータ・ファイル内の任意の位置に配置できます。

デフォルト

なし

構文

CHECKPARAMS

3.27 CHECKPOINTSECS

適用対象

ExtractおよびReplicat

説明

CHECKPOINTSECSパラメータでは、ExtractおよびReplicatがルーチンのチェックポイントを作成する頻度を制御します。

- この値を低くすると、チェックポイントの作成頻度が増えます。この場合、プロセスが失敗したときに再処理が必要なデータ量が減りますが、データのディスクへの書込み頻度が増えるため、パフォーマンスが低下することがあります。

- この値を高くすると、チェックポイントの作成頻度が減ります。この場合、パフォーマンスは向上しますが、プロセスが失敗したときに再処理が必要なデータ量は増加します。Extractチェックポイントの作成頻度を少なくするときは、データの再処理が必要になるときに備えて、常にトランザクション・ログを利用できる状態にしてください。

注意:

Replicatは、ルーチン・チェックポイントの他に、トランザクションをコミットするときにもチェックポイントを作成します。

CHECKPOINTSECSを変更するときは、最初に必ずOracleサービス・リクエストをオープンしてください。

デフォルト

10秒

構文

CHECKPOINTSECS seconds

seconds

チェックポイントを発行するまでの待機する時間(秒)。

例

CHECKPOINTSECS 20

3.28 CHECKPOINTTABLE

適用対象

GLOBALS

説明

GLOBALSパラメータ・ファイルのCHECKPOINTTABLEパラメータでは、1つ以上のOracle GoldenGateインスタンス内のすべてのReplicatグループが使用できる、デフォルトのチェックポイント表の名前を指定します。ADD REPLICATコマンドで作成されたすべてのReplicatグループは、このコマンドのCHECKPOINTTABLEオプションを使用して上書きされないかぎり、デフォルトでこの表を使用します。

チェックポイント表を作成するには、GGSCIでADD CHECKPOINTTABLEコマンドを使用します。チェックポイント表は、Oracleターゲット・データベースに対して統合モードで構成されているReplicatに使用しないでください。これはそのモードで必須ではなく、無視されます。

チェックポイント表の作成の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

CHECKPOINTTABLE [container. | catalog.] owner.table

[container. | catalog.]owner.table

チェックポイント表の所有者および名前。さらに、Oracleコンテナ・データベースでは、適切なプラガブル・データベース(コンテナ)を指定します。SQL/MXデータベースでは、適切なカタログを指定します。

例

CHECKPOINTTABLE finance.ggs.chkpt

3.29 CMDTRACE

適用対象

ExtractおよびReplicat

説明

CMDTRACEパラメータでは、レポート・ファイルにマクロ展開手順を表示します。このパラメータは、異なるマクロに異なるオプションを設定するために、パラメータ・ファイルで複数回使用できます。

デフォルト

OFF

構文

CMDTRACE [ON | OFF | DETAIL]

ON

マクロ展開の表示を有効化します。

OFF

マクロ展開の表示を無効化します。

DETAIL

マクロ展開の詳細な表示を生成します。

例

次の例では、#testmacを起動する前にトレースを有効化し、マクロの実行後に無効化します。

MACRO #testmac
BEGIN
col1 = col2,
col3 = col4
END;
...
CMDTRACE ON
MAP test.table2 , TARGET test.table2,
COLMAP (#testmac);
CMDTRACE OFF

3.30 COLCHARSET

適用対象

Extract、ReplicatおよびDEFGEN

説明

COLCHARSET句では、特定の列のキャラクタ・セットを指定するか、キャラクタ・セット変換を無効化します。このパラメータは、指定された列のキャラクタ・セットよりも優先されます。

COLCHARSETパラメータで指定されたキャラクタ・セットは、証跡ファイル内のキャラクタ・セット、SOURCECHARSET OVERRIDEパラメータで指定されたキャラクタ・セット、およびCHARSETパラメータで指定されたキャラクタ・セットよりも優先されます。

COLCHARSET Replicatパラメータで指定されたキャラクタ・セットは、ソース表定義ファイル内に指定された列レベルのキャラクタ・セットよりも優先されます。

COLCHARSETがレベル4より低いDEFGENファイル・フォーマットに対して指定されている場合、パラメータは無視され警告メッセージが発行されます。古い表定義ファイル・フォーマットに対する列レベルのキャラクタ・セット属性は出力されません。

COLCHARSETパラメータはソース列レベルのキャラクタ・セットよりも優先され、ソース列のキャラクタ・セットを指定されたキャラクタ・セットとみなして、Replicatのキャラクタ・セット変換動作を変更します。

デフォルト

なし

構文

COLCHARSET character_set (column [, ...])

character_set

サポートされているキャラクタ・セット。

column

列名。複数の列を指定するには、カンマ区切りリストを作成します。

例

例1

次の例では、複数の列を指定します。

TABLE SchemaName.TableName, COLCHARSET( WE8MSWIN1252, col0, col2 );

例2

次の例では、異なるキャラクタ・セットを指定します。

MAP SchemaName.*, TargetName *.*,
COLCHARSET( WE8MSWIN1252, col1 ),
COLCHARSET( WE8ISO8859P1, col2 )

例3

次の例では、異なるキャラクタ・セットを指定します。

MAP SchemaName.*, TargetName *.*,
COLCHARSET( WE8MSWIN1252, col1 ),
COLCHARSET( WE8ISO8859P1, col2 )

例4

次の例では、ワイルドカードを指定します。

MAP SchemaName.*, TargetName *.*, COLCHARSET( WE8MSWIN1252, col* )

例5

次の例では、特定の列のキャラクタ・セット変換を無効化します。

MAP SchemaName.*, TargetName *.*, COLCHARSET( col )

3.31 COLMATCH

適用対象

ExtractおよびReplicat

説明

COLMATCHパラメータでは、列マッピングのグローバル・ルールを作成します。COLMATCHルールは、COLMATCH文に続くすべてのTABLEまたはMAP文に適用されます。グローバル・ルールを以降のTABLEまたはMAPエントリに対して無効にするには、RESETオプションを使用します。

COLMATCHを使用すると、同様の構造を持っていて、同じデータ・セットを異なる列名に保持している表同士をマップできます。COLMATCHでは、個別のTABLEまたはMAP文でCOLMAP句を使用するよりも、このタイプの列を効率的にマップできます。

COLMATCHでは、次のことを実行できます。

- 列名に基づいて明示的にマップする

- 名前の接頭辞またはサフィックスを無視する

名前が異なるソース列とターゲット列をマッピングする場合は、COLMATCHか、TABLEまたはMAP文のCOLMAP句を使用する必要があります。

列マッピングの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

COLMATCH
{NAMES target_column = source_column |
PREFIX prefix |
SUFFIX suffix |
RESET}

NAMES target_column = source_column

ターゲットおよびソースの列名を指定します(例: CUSTOMER_CODEおよびCUST_CODE)。大/小文字を区別するには二重引用符が必要になるデータベースの場合は、そのように列名を指定します。たとえば、NAMES "ABC" = "ABC2"とします。大/小文字が区別される他のデータベースでは、データベースに格納されているとおりに列名を指定します(例: NAMES ABC = abc)。

PREFIX prefix | SUFFIX suffix

無視する列名接頭辞または接尾辞を指定します。大/小文字を区別するには二重引用符が必要になるデータベースで、大/小文字を区別する場合は、そのように接頭辞または接尾辞を指定します。大/小文字が区別される他のデータベースでは、データベースに格納されているとおりに接頭辞または接尾辞を指定します。

たとえば、"ORDER_ID"という名前のターゲット列を"P_ORDER_ID"という名前のソース列にマップする場合は、次のように指定します。

COLMATCH PREFIX "P_"

"CUST_CODE_K"という名前のターゲット列をCUST_CODEという名前のソース列にマップする場合は、次のように指定します。

COLMATCH SUFFIX "_K"

RESET

前に定義したCOLMATCHルールを、後続のTABLE文またはMAP文で無効化します。

例

例1

COLMATCH NAMES "CUSTOMER_CODE" = "CUST_CODE"

例2

COLMATCH NAMES Customer_Code = "Cust_Code"

例3

COLMATCH PREFIX P_

例4

COLMATCH SUFFIX _K

例5

COLMATCH RESET

3.32 COMMENT | --

適用対象

Manager、Extract、Replicat

説明

COMMENTパラメータまたは2連ハイフン(--)では、パラメータ・ファイル内の任意の場所のコメントを示します。COMMENTまたは2連ハイフン以降の同一行内の記述は、処理中に無視されます。次の行にコメントが続く場合は、次の行頭にCOMMENTキーワードまたは2連ハイフンをもう一度記述する必要があります。

注意:

同期されている表の列に"comment"という単語が含まれている場合は、COMMENTパラメータと競合する可能性があります。その場合には2連ハイフンを使用してください。

COMMENTは、問合せパラメータと一緒に使用できません。

パラメータ・ファイルの使用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

{COMMENT comment} | {-- comment}

例

例1

COMMENT GoldenGate param file for fin Extract group.

例2

-- GoldenGate param file for fin Extract group.

3.33 COMPRESSDELETES | NOCOMPRESSDELETES

適用対象

Extract

説明

COMPRESSDELETESおよびNOCOMPRESSDELETESパラメータでは、DELETE操作の際に列をトレイル・レコードに書き込む方法を制御します。

COMPRESSDELETESおよびNOCOMPRESSDELETESは、パラメータ・ファイル内のすべてのTABLE文にグローバルに適用することも、各TABLE文に個別スイッチとして使用することもできます。

これらのパラメータは、次のデータベースをサポートしています。

- DB2 LUW

- DB2 z/OS

- DB2 for i

- Informix

- MySQL

- Oracle

- SQL/MX

- SQL Server

- Sybase

- Teradata

これらのパラメータは、データ・ポンプには影響しません。

デフォルト

COMPRESSDELETES

構文

{COMPRESSDELETES | NOCOMPRESSDELETES [FETCHMISSINGCOLUMNS]}

COMPRESSDELETES

DELETE操作の場合、Extractは主キーのみをトレイルに書き込みます。これはデフォルトです。主キーのみを書き込むと、処理が必要なデータ量を制限しながら、適切なターゲット・レコードの削除に十分な情報を提供できます。

NOCOMPRESSDELETES [FETCHMISSINGCOLUMNS]

NOCOMPRESSDELETESでは、すべての列をトレイルに送信します。表定義に主キーも一意索引も含まれていない場合、または代替キーがTABLEのKEYCOLSオプションを使用して定義されている場合、これがデフォルトになります。KEYCOLSオプションでは、実際のキーが存在するかどうかにかかわらず、指定した列をトレイルに書き込みます。KEYCOLSオプションの詳細は、「KEYCOLS (columns)を参照してください。

Oracle GoldenGateがサポートするすべてのプラットフォームでDB2データベースに競合の検出および解決(CDR)機能を使用する場合、NOCOMPRESSDELETESも必要です。CDRの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

FETCHMISSINGCOLUMNSは、Oracle Databaseにのみ有効です。DELETE操作で、フェッチによってのみサポートされるデータ型の値がデータベースからフェッチされます。これらのデータ型は、LOB、UDT、LONGおよび一部のXMLType列です。(REDOストリームからの直接取得ではなく)フェッチによりサポートされる列の詳細は、Oracle GoldenGate Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。フェッチされた列は、トレイル・ファイル内にDELETEレコードの一部として含まれます。Oracle Databaseデータに対してNOCOMPRESSDELETESをFETCHMISSINGCOLUMNSオプションなしで使用すると、DELETE操作で(フェッチなしで)ログから読取り可能なLOBデータのみがトレイルに含められます。

3.34 COMPRESSUPDATES | NOCOMPRESSUPDATES

適用対象

Extract

説明

COMPRESSUPDATESおよびNOCOMPRESSUPDATESパラメータでは、ExtractがUPDATE操作の際に列をトレイル・レコードに書き込む方法を制御します。

デフォルトのCOMPRESSUPDATESでは、更新操作の場合、Extractは主キーおよび行の変更された列のみをトレイルに書き込みます。これらを書き込むと、処理が必要なデータ量を制限しながら、(競合解決が不要であれば)適切なターゲット・レコードの更新に十分な情報を提供できます。

Oracle GoldenGateでの使用のためにデータベースによって他の列がサプリメンタル・ロギングされる場合、Extractはそれらの列もトレイルに書き込みます。また、TABLEパラメータのKEYCOLSオプションで代替キーが定義されている場合は、主キーまたは一意キーが定義されているかどうかにかかわらず、これらの列がトレイルに書き込まれます。詳細は、KEYCOLS (columns)を参照してください。

NOCOMPRESSUPDATESでは、すべての列をトレイルに送信します。表定義に主キーまたは一意索引が含まれていない場合は、これがデフォルトになります。Oracle GoldenGateがサポートするすべてのプラットフォームでDB2データベースに競合の検出および解決(CDR)機能を使用する場合、NOCOMPRESSUPDATESも必要です。CDRの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

COMPRESSUPDATESおよびNOCOMPRESSUPDATESは、パラメータ・ファイル内のすべてのTABLE文にグローバルに適用されます。

これらのパラメータは、次のデータベースをサポートしています。

- DB2 LUW

- DB2 z/OS

- DB2 for i

- Informix

- MySQL

- Oracle

- SQL/MX

- SQL Server

- Sybase

- Teradata

COMPRESSUPDATESおよびNOCOMPRESSUPDATESは、データ・ポンプには影響しません。

デフォルト

COMPRESSUPDATES

構文

COMPRESSUPDATES | NOCOMPRESSUPDATES

3.35 COORDSTATINTERVAL

適用対象

調整モードのReplicat

説明

COORDSTATINTERVALパラメータでは、Replicatコーディネータ・スレッドが適用スレッドに送信する統計の各リクエスト間の時間(秒)を設定します。スレッドが内部ハートビート間隔内に統計を返さない場合、Replicatによって警告メッセージが記録されます。ハートビート間隔は、構成することができず、常にCOORDSTATINTERVALの間隔の6倍になります。たとえば、デフォルトのCOORDSTATINTERVALの間隔(10秒)では、ハートビートのデフォルトは1分(60秒)になります。

デフォルト

10秒

構文

COORDSTATINTERVAL interval

interval

スレッド統計のリクエスト間の間隔(秒)。有効な値は、0または任意の正数です。

3.36 COORDTIMER

適用対象

調整モードのReplicat

説明

COORDTIMERパラメータでは、スレッドおよびコーディネータが互いの開始を待機するベース時間(秒)を設定します。スレッドは、コーディネータへの接続を再試行し、一定回数実行するまで、このベース時間間隔を待機します。コーディネータは、このベース時間間隔の長さを待機し、各スレッドが正常に登録されるとリセットされます。異常終了するまでコーディネータが待機する全体の時間は、このタイマーによって決まり、スレッドの登録時間によって変わります。

0の値では、このタイミング手順が無効になります。タイミングが無効の場合、コーディネータ・スレッドは、スレッドの開始を無制限に待機する可能性があり、Replicatは一時停止状態に移行します。この場合、Replicatの内部ハートビート・タイマーは、COORDSTATINTERVALの設定にかかわらず無効になります。

デフォルト

180秒(3分)

構文

COORDTIMER wait_time

wait_time

コーディネータ・スレッドが適用スレッドの開始を待機する時間(秒)。有効な値は、0または任意の正数です。

3.37 CREDENTIALSTORELOCATION

適用対象

GLOBALS

説明

CREDENTIALSTOREパラメータでは、Oracle GoldenGate資格証明ストアの場所をデフォルトの場所から変更します。デフォルトの場所は、Oracle GoldenGateインストール・ディレクトリのdircrdディレクトリです。デフォルトの場所は、推奨される場所です。

資格証明ストアは、データベース・ユーザーの名前とパスワードを、セキュリティ対策として暗号化された形式で格納します。CREDENTIALSTOREを使用すると、資格証明ストアを管理するすべてのGGSCIコマンドのために指定された場所であるとみなされます。資格証明ストアの詳細は、ADD CREDENTIALSTOREを参照してください。Oracle GoldenGateセキュリティの構成の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

CREDENTIALSTORELOCATION directory

directory

資格証明ストアを格納するディレクトリの完全パス名。

例

CREDENTIALSTORELOCATION /home/ogg/credentials

3.39 CUSEREXIT

適用対象

Extract (マルチテナント・コンテナ・データベース(CDB)をフェッチする場合)およびReplicat

説明

CUSEREXITパラメータを使用して、Oracle GoldenGate処理内の定義済イグジット・ポイントで、Windows DLLまたはUNIX共有オブジェクトから、Cプログラミング・コードで記述されたカスタム・イグジット・ルーチンをコールします。ユーザー・イグジット・ルーチンは、ExtractおよびReplicatプロセスから様々なイベントおよび情報を受け入れ、リクエストどおりに情報を処理し、コール元(このルーチンをコールしたOracle GoldenGateプロセス)にレスポンスと情報を返す必要があります。

ユーザー・イグジットは、Oracle GoldenGateソリューション内で使用可能なデータ変換ファンクションのかわりとしても、こうしたファンクションと一緒にも使用できます。

注意:

調整Replicatを使用してユーザー・イグジット・ルーチンをコールする場合、スレッドセーフの方法でユーザー・イグジットを記述する必要があります。

ユーザー・イグジットの作成および実装の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

CUSEREXIT {DLL | shared_object} routine
[, INCLUDEUPDATEBEFORES]
[, PARAMS 'string']

{DLL | shared_object}

ユーザー・イグジット・ファンクションを含むWindows DLLまたはUNIX共有オブジェクトの名前。

routine

実行するイグジット・ルーチン名。

INCLUDEUPDATEBEFORES

列値のビフォア・イメージをユーザー・イグジットに渡します。このパラメータを使用するときは、requesting_before_after_indフラグをサポートするコールバック・ファンクション内でこのフラグをBEFORE_IMAGE_VALに設定し、ビフォア・イメージを明示的にリクエストする必要があります。この設定を行わないと、アフター・イメージのみがユーザー・イグジットに渡されます。デフォルトでは、Oracle GoldenGateはアフター・イメージのみを使用します。

データ・ポンプまたはReplicatからコールされるユーザー・イグジットに対してINCLUDEUPDATEBEFORESを使用する場合は、常にプライマリExtractプロセスでGETUPDATEBEFORESパラメータを使用することにより、ビフォア・イメージを取得してトレイルに書き込み、ユーザー・イグジットでprocess_recordイベントを発生させます。プライマリExtractにもユーザー・イグジットが含まれている場合は、GETUPDATEBEFORESによってビフォアおよびアフター・イメージ両方が別々のEXIT_CALL_PROCESS_RECORDイベントとしてユーザー・イグジットに送信されます。

ユーザー・イグジットが(トランザクション・ログを読み込む)プライマリExtractからコールされる場合、このExtractに必要なのはINCLUDEUPDATEBEFORESのみです。このケースでは、他のダウンストリームのOracle GoldenGateプロセスがトレイルへのビフォア・イメージ書込みを必要としないかぎり、GETUPDATEBEFORESは必要ありません。INCLUDEUPDATEBEFORESを指定しても、ビフォア・イメージはトレイルに書き込まれません。

PARAMS 'string'

指定した文字列を起動時に渡します。プロパティ・ファイル、起動パラメータ、その他の文字列を渡すために使用できます。文字列は一重引用符で囲みます。

この文字列のデータは、EXIT_CALL_START exit_params_def.function_paramのユーザー・イグジットに渡されます。PARAMSで、引用符で囲まれた文字列が指定されない場合、exit_params_def.function_paramはNULLです。

例

例1

CUSEREXIT userexit.dll MyUserExit

例2

CUSEREXIT userexit.dll MyUserExit, PARAMS 'init.properties'

例3

CUSEREXIT userexit.dll MyUserExit, INCLUDEUPDATEBEFORES, PARAMS 'init.properties'

例4

CUSEREXIT userexit.dll MyUserExit, INCLUDEUPDATEBEFORES, &
PARAMS 'init.properties'

例5

CUSEREXIT cuserexit.dll MyUserExit, &
INCLUDEUPDATEBEFORES, PARAMS 'Some text to start with during startup'

3.40 DBOPTIONS

適用対象

ExtractおよびReplicat

説明

DBOPTIONSパラメータでは、データベース・オプションを指定します。これはグローバル・パラメータで、パラメータ・ファイル内のすべてのTABLEまたはMAP文に適用されます。一部のDBOPTIONSオプションは、ExtractまたはReplicatのみに適用されます。

DBOPTIONSパラメータは、他のパラメータに関係なく、パラメータ・ファイル内の任意の場所に配置できます。

デフォルト

なし

構文

DBOPTIONS
[ALLOWLOBDATATRUNCATE | NOALLOWLOBDATATRUNCATE]
[ALLOWUNUSEDCOLUMN | NOALLOWUNUSEDCOLUMN]
[BINDCHARFORBITASCHAR]
[CATALOGCONNECT | NOCATALOGCONNECT]
[CONNECTIONPORT port]
[DECRYPTPASSWORD shared_secret ENCRYPTKEY {DEFAULT | key_name}]
[DEFERREFCONST]
[DISABLECOMMITNOWAIT]
[DISABLELOBCACHING]
[ENABLE_INSTANTIATION_FILTERING]
[EMPTYLOBSTRING 'string']
[FETCHBATCHSIZE records]
[FETCHCHECKFREQ seconds]
[FETCHLOBS | NOFETCHLOBS]
[FETCHRETRYCOUNT number]
[FECHTIMEOUT seconds | NOFECHTIMEOUT]
[HOST {DNS_name | IP_address}]
[INTEGRATEDPARAMS(parameter[, ...])]
[LIMITROWS | NOLIMITROWS]
[LOBBUFSIZE bytes]
[LOBWRITESIZE bytes]
[SESSIONPOOLMAX max_value |
[SESSIONPOOLMIN min_value][SESSIONPOOLINCR increment_value]
[SETTAG [tag_value | NULL] ]
[SHOWINFOMESSAGES]
[SHOWWARNINGS]
[SKIPTEMPLOB | NOSKIPTEMPLOB]
[SOURCE_DB_NAME src_dbase_global_name]
[SPTHREAD | NOSPTHREAD]
[SUPPRESSTEMPORALUPDATES]
[SUPPRESSTRIGGERS | NOSUPPRESSTRIGGERS]
[TDSPACKETSIZE bytes]
[TRANSNAME trans_name]
[USEODBC | USEREPLICATIONUSER]
[XMLBUFSIZE bytes]

ALLOWUNUSEDCOLUMN | NOALLOWUNUSEDCOLUMN

OracleのExtractに有効です。Extractが未使用の列を含む表を検出したときに異常終了するかどうかを制御します。

デフォルトはALLOWUNUSEDCOLUMNです。Extractは未使用の列を含む表を検出すると、処理を継続し、警告を生成します。このパラメータを使用する場合は、正しいメタデータ・マッピングを実行できるように、ターゲットにも同じ未使用の列が存在しているか、Replicatにこの表のソース定義ファイルを指定する必要があります。

NOALLOWUNUSEDCOLUMNでは、Extractは未使用の列を検出すると異常終了します。

ALLOWLOBDATATRUNCATE | NOALLOWLOBDATATRUNCATE

DB2 LUW、SybaseおよびMySQL.のReplicatに有効です。ALLOWLOBDATATRUNCATEでは、レプリケートするLOBデータがターゲットのCHAR、VARCHAR、BINARYまたはVARBINARY列に対して大きすぎる場合に、Replicatが異常終了することを防ぎます(ターゲットLOB列のみに適用可能です)。DB2 LUWのReplicatのALLOWLOBDATATRUNCATEでは、レプリケートするLOBデータがターゲットのLOB列に対して大きすぎる場合に、Replicatが異常終了することを防ぎます。このLOBデータは、ターゲット列の最大サイズに切り捨てられ、エラー・メッセージや警告は生成されません。

デフォルトはNOALLOWLOBDATATRUNCATEで、レプリケートするLOBが大きすぎる場合に、Replicatを異常終了させ、エラー・メッセージを生成します。

BINDCHARFORBITASCHAR

DEFGEN、Extract、およびDB2 for iのReplicatに有効です。CCSID 65535のCHARまたはVARCHAR、またはCHARおよびVARCHAR FOR BIT DATAとして定義される列を、変換可能な通常のエンコーディングがフィールドにある場合のように処理できます。エンコーディングはジョブCCSIDから取得されます。このオプションが有効な場合、DEFGENは、フィールドがdefsファイルのバイナリであることを示しません。

CATALOGCONNECT | NOCATALOGCONNECT

ODBCデータベースのExtractおよびReplicatに有効です。デフォルトでは、Oracle GoldenGateはカタログ問合せのために新しい接続を作成しますが、NOCATALOGCONNECTを使用すると新しい接続の作成を防止できます。z/OS上のDB2の場合、NOCATALOGCONNECTでは、MVS DB2初期化パラメータmvsattachtypeがCAFに設定されているときに、Oracle GoldenGateによる複数の接続の試みを防ぎます。CAFモードでは複数の接続がサポートされていないため、Oracle GoldenGateはオープンしている接続のコミットを受信するまで、システム・カタログ表領域にコミット・ロックを発行する可能性があります。コミット・ロックを防ぐために、Oracle GoldenGateでは、複数の接続をサポートするRRSAF (mvsattachtype=RRSAF)を使用することをお薦めします。

CONNECTIONPORT port

マルチデーモンMySQLのReplicatに有効です。Replicatが接続する必要があるインスタンスのTCP/IPポートを指定します。

DECRYPTPASSWORD shared_secret algorithm ENCRYPTKEY {key_name | DEFAULT}

クラシック・キャプチャ・モードのExtractに有効です(Oracle)。

Oracle Transparent Data Encryption (TDE)を使用して暗号化されたREDOログ・データを復号化する、TDE鍵を復号化する共通鍵(パスワード)を指定します。TDE鍵は、まず、共通鍵を鍵として使用してOracleサーバー内で暗号化された後、Extractに配信され、そこで同じ共通鍵を使用して復号化されます。共通鍵は、Oracleサーバー・セキュリティ担当者によって、Oracle WalletまたはHardware Security Moduleで作成する必要があります。Oracle GoldenGate管理者のみが、共通鍵を知っている必要があります。

復号化オプションを使用するには、まずGGSCIでENCRYPT PASSWORDコマンドを使用して、暗号化された共通鍵を生成し、ENCKEYSファイルを作成する必要があります。

パラメータ・オプション:

shared_secret

ENCRYPT PASSWORDコマンドの結果からコピーされる、暗号化された共通鍵(パスワード)です。

algorithm

パスワードの暗号化に使用した暗号化アルゴリズムを、AES128、AES192、AES256またはBLOWFISHの中から指定します。AESは、z/OS上のDB2、DB2 for iおよびSQL/MXではサポートされません。

ENCRYPTKEY key_name

ENCKEYS参照ファイル内のユーザー作成の暗号化鍵の論理名を指定します。ENCRYPT PASSWORDがKEYNAME key_nameオプションとともに使用された場合に使用します。ENCKEYSファイルをローカル・システムに作成する必要があります。

ENCRYPTKEY DEFAULT

指定すると、Oracle GoldenGateでランダムな鍵が使用されます。ENCRYPT PASSWORDがKEYNAME DEFAULTオプションとともに使用された場合に使用します。

TDEをサポートするExtractの構成の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

ENCKEYSなど、Oracle GoldenGateの暗号化オプションの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

DEFERREFCONST
Oracleの非統合Replicatに有効です。Replicatトランザクションがコミットされるまで、Oracleターゲット・データベースによるカスケード削除およびカスケード更新の参照整合性制約のチェックおよび強制を延期するように、DEFERRABLEに制約を設定します。この時点で制約違反がある場合、エラーが生成されます。統合Replicatでは、ターゲット・システムでの参照制約の無効化は必要ありません。

ターゲット表での制約を無効化するかDEFERREDに設定するかわりに、DEFERREFCONSTを使用できます。使用すると、DEFERREFCONSTは、DEFERABLEおよびNOT DEFERABLEの両方の制約を延期します。DEFERREFCONSTは、Replicatが処理するすべてのトランザクションに適用します。DEFERREFCONSTは、Oracle Database 12c、11g (11.2.0.2)およびそれ以降の11g R2リリースに有効です。

この機能をサポートしていないOracle Databaseリリースととも使用する場合、DEFERREFCONSTは無視され、Oracle GoldenGateログに通知は返されません。コミット操作でのエラーを処理するために、パラメータ・ファイルのルート・レベルでREPERRORを使用し、TRANSDISCARDまたはTRANSEXCEPTIONオプションを指定できます。

注意:

親および子の表の関連する行が同じスレッドによって処理されることを保証する方法がないため、DEFERREFCONST調整Replicatとともに使用しないでください。

DISABLECOMMITNOWAIT
OracleのReplicatに有効です。Replicatによる非同期COMMITの使用を無効化します。非同期COMMIT文には、NOWAITオプションが含まれます。

DISABLECOMMITNOWAITを使用する場合、Replicatは、標準の同期COMMIT (WAITオプションを使用するCOMMIT)を発行します。

DISABLELOBCACHING
Oracleの非統合Replicatに有効です。OracleのLOBキャッシング・メカニズムを無効にします。デフォルトでは、ReplicatはOracleのLOBキャッシング・メカニズムを有効にします。

ENABLE_INSTANTIATION_FILTERING
Oracleに有効です。Oracle Datapumpを使用してインポートした表、またはSET_INSTANTIATION_CSNコマンドで手動でインスタンス化した表に対して、自動的な表ごとのインスタンス化CSNフィルタリングを有効化します。

EMPTYLOBSTRING 'string'
SybaseのReplicatに有効です。ターゲットにレプリケートされる、Sybase IMAGEまたはTEXT値などの空の(ゼロ長) LOB列を、文字列値に置換します。デフォルトでは、Oracle GoldenGateはターゲット上の空の列をNULLに設定します。ターゲット・データベースでLOB列がNULLであることが許容されない場合は異常終了します。このオプションは、Replicatの異常終了を防ぐために使用します。

'string'には、列が受け入れる任意の文字列を指定し、一重引用符で囲みます。デフォルトはNULLです。

例:

DBOPTIONS EMPTYLOBSTRING 'empty'
FETCHBATCHSIZE records
Oracle、DB2 for i、DB2 z/OS、SQL/MX、Sybase、SQL Server、SybaseおよびTeradataのExtractに有効です。初期ロードのパフォーマンスを高めるために、1行ごとのフェッチのかわりに配列フェッチを有効にします。

Oracle、DB2 for i、DB2 z/OS、SQL/MX、Sybase、SQL Server、SybaseおよびTeradataに有効な値は、フェッチ当たり0から1000000レコードです。DB2 LUWに有効な値は、フェッチ当たり1から1000000レコードです。ゼロ(0)は有効な値ではありません。

デフォルトは1000です。バッチ・サイズが非常に小さくなるか非常に大きくなると、パフォーマンスは低下します。表にLOBデータが含まれている場合、Extractは1行フェッチ・モードに戻り、その後バッチ・フェッチモードを再開します。

FETCHCHECKFREQ seconds
Oracleの統合Extractに有効です。ADGのキャッチ・アップを確認する各フェッチ・チェック間でExtractが待機する秒数を指定します。数値を小さくするとレイテンシは向上しますが、current_scn from v$databaseの問合せ数は増加します。デフォルト値は3秒で、最大値は120秒です。

FETCHLOBS | NOFETCHLOBS
z/OS上のDB2およびDB2 LUWに有効です。表のLOBオプションがNOT LOGGEDに設定されている場合に、データベース表からのLOBの直接のフェッチを抑止します。NOT LOGGEDが設定されている場合、この列の値はトランザクション・ログからは入手できず、表自体からのみ取得できます。デフォルトでは、Oracle GoldenGateはLOBへの変更をトランザクション・ログから取得します。デフォルトは、FETCHLOBSです。

FETCHRETRYCOUNT number
Oracleの統合Extractに有効です。ADGのキャッチ・アップの待機時に、ExtractがADGの進捗または進捗がない理由を報告するまでの、Extractの試行回数を指定します。この値にFETCHCHECKFREQを乗算することで、ADGの進捗を報告するおおよその頻度が決まります。

FECHTIMEOUT seconds | NOFECHTIMEOUT
Oracleの統合Extractに有効です。ADGに進捗が見られない場合に、Extractが異常終了するまでの秒数を指定します。進捗がないのは、MRPが実行されていない、またはREDO変更を適用していないことが原因の可能性があります。これが発生した場合は、ADGデータベースを調べる必要があります。デフォルト値は30秒。有効な値は0から4294967295 (ub4の最大値)秒です。NOFETCHTIMEOUTは、タイムアウトしない(FECHTIMEOUT 0と同じ)ことを意味し、秒数を指定できません。

HOST {DNS_name | IP_address}
マルチデーモンMySQLのReplicatに有効です。Replicatの接続先のインスタンスをホストするシステムのDNS名またはIPアドレスを指定します。

INTEGRATEDPARAMS(parameter[, ...])
OracleのReplicatに有効です。ターゲットOracleデータベース内のデータベース・インバウンド・サーバーを制御するパラメータの設定を渡します。このオプションは、統合Replicatのみで使用します。統合Replicatの詳細およびサポートされるインバウンド・サーバー・パラメータのリストは、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

LIMITROWS | NOLIMITROWS
MySQL、Oracle、SQL ServerおよびSybaseのReplicatに有効です。LIMITROWSでは、ターゲット表に主キーまたは一意キーが含まれていない場合に、同一のReplicat SQL文によって複数の行を更新または削除することを防ぎます。

デフォルトはLIMITROWSです。LIMITROWSおよびNOLIMITROWSは、パラメータ・ファイル内のすべてのMAP文にグローバルに適用されます。

MySQLでは、LIMITROWSはUPDATEまたはDELETE文のLIMIT 1句を使用します。

OracleターゲットではLIMITROWS (デフォルト)を使用する必要があります。これはWHERE ROWNUM = 1を使用するか、WHERE句でAND ROWNUM = 1を使用します。

SQL ServerおよびSybaseでは、LIMITROWSはUPDATEまたはDELETE文の前にSET ROWCOUNT 1句を使用します。

NOLIMITROWSでは、同一のReplicat SQL文によって複数の行を更新または削除することを許可します。

LOBBUFSIZE bytes
OracleのExtractに有効です。Oracleオブジェクト・タイプの各埋込みLOB属性に割り当てるメモリー・バッファ・サイズ(バイト単位)を決定します。有効な値は、1024から10485760バイトです。デフォルトは1048576バイトです。

埋込みLOBの長さが指定のLOBBUFSIZEサイズを超えると、次のようなエラー・メッセージが生成されます。

GGS ERROR    ZZ-0L3  Buffer overflow, needed: 2048, allocated: 1024.
LOBWRITESIZE bytes
Oracleの非統合Replicatに有効です。Replicatがターゲット・データベースに書き込む各LOBのフラグメント・サイズ(バイト単位)を指定します。LOBデータは、このサイズに達するまでバッファに保持されます。LOBはフラグメントでデータベースに書き込む必要があるため、より大きなブロックで書き込むことで過度のI/Oを防止できます。この値が大きいほど、LOB全体をデータベースに書き込むためのReplicatからデータベース・サーバーへのI/Oコールは少なくなります。

Oracle LOBフラグメント・サイズの倍数を指定します。指定した値は、必要に応じてOracle LOBフラグメント・サイズの倍数に切り上げられます。デフォルトのLOB書込みサイズは、DBOPTIONS NOSKIPTEMPLOBが指定されている場合は32KB、DBOPTIONS SKIPTEMPLOBが指定されている場合は1MBです。有効な値は、2,048から2,097,152バイト(2MB)です。

デフォルトでは、ReplicatはOracleのLOBキャッシング・メカニズムを有効にします。OracleのLOBキャッシングを無効にするには、DBOPTIONSのDISABLELOBCACHINGオプションを使用します。

SHOWINFOMESSAGES
SybaseのExtractおよびReplicatに有効です。エラー・ログに次のSybaseサーバー・メッセージを出力します。

0: /* General informational message */
5701: /* Changed Database Context */
5703: /* Changed language setting */
5704: /* Changed client character set */
7326: /* Non ANSI Escaping */

Oracle GoldenGate処理に影響がないため、通常はこれらのメッセージは出力されません。

SHOWWARNINGS
SybaseのExtractおよびReplicatに有効です。重大度レベル10を上回るSybaseサーバー・メッセージのロギングを有効化します。これらのメッセージは、Sybaseがデータ変更を伴う修正処理を実行するときに、デバッグに役立ちます。

SESSIONPOOLMAX max_value
Oracleの統合モードのExtractに有効です。Extractがコンテナ・データベースからのフェッチに使用する、OCIセッション・プールのセッション数の最大値を設定します。デフォルト値は10セッションです。USERIDまたはUSERIDALIASパラメータよりも前に指定する必要があります。そうしないと、指定が無視されてデフォルト値が使用されます。

SESSIONPOOLMIN min_value
Oracleの統合モードのExtractに有効です。Extractがコンテナ・データベースからのフェッチに使用する、OCIセッション・プールのセッション数の最小値を設定します。デフォルト値は2セッションです。USERIDまたはUSERIDALIASパラメータよりも前に指定する必要があります。そうしないと、指定が無視されてデフォルト値が使用されます。

SESSIONPOOLINCR increment_value
Oracleの統合モードのExtractに有効です。Extractがコンテナ・データベースからのフェッチに使用する、OCIセッション・プールに追加できる増分セッション数の値を設定します。デフォルト値は2セッションです。USERIDまたはUSERIDALIASパラメータよりも前に指定する必要があります。そうしないと、指定が無視されてデフォルト値が使用されます。

SETTAG [tag_value | NULL
OracleのReplicatに有効です。REDOログ内の関連付けられたReplicatのトランザクションの識別に使用される、Oracle REDOタグの値を設定します。REDOタグを使用して、Replicat以外のトランザクションを識別することもできます。

このオプションを使用して、双方向構成のReplicatの個別のレコードのサイクル(ループバック)を防いだり、他のトランザクションの取得をフィルタリングします。デフォルトのSETTAG値は00で、2Kバイトに制限されています。有効な値は、単一のOracle Streamsタグです。タグ値の最大長は、16進数の桁で2000 (0-9 A-F)です。Streamsタグの詳細は、を参照してください。

指定のタグでマーキングされたREDOのトランザクションは、ExtractでEXCLUDETAGオプションのTRANLOGOPTIONSパラメータをtag_valueに設定するとフィルタリングできます。タグに基づくフィルタリングを使用して、双方向構成のReplicatトランザクションのサイクル(ループバック)を防いだり、他のトランザクションの取得をフィルタリングします。詳細は、「TRANLOGOPTIONS」を参照してください。

DDLOPTIONSパラメータのNOTAGオプションを使用すると、DDLのタグ付けを無効にすることができます。

hex_value

0からFの16進数値。デフォルト値は00です。有効な例を次に示します。

DBOPTIONS SETTAG 00112233445566778899AABBCCDDEEFF
DBOPTIONS SETTAG 00112233445566778899aabbccddeeff
DBOPTIONS SETTAG 123

NULL

関連付けられているReplicatについて、タグに基づくフィルタリングを無効にします。

SKIPTEMPLOB | NOSKIPTEMPLOB
Oracle Databaseのバージョン11gおよび12cのReplicatに有効です。LOBがターゲットOracleデータベースに適用される方法を制御します。SKIPTEMPLOBのデフォルト。

SKIPTEMPLOBでは、LOBデータをターゲットLOB列に直接書き込むことでパフォーマンスが向上します。Replicatでは空のLOB値でSQL文が作成され、LOBロケータがバインド変数に返されます。SQL文が正常に実行された後、返されたLOBロケータを使用してLOBデータが直接LOB列に書き込まれます。

NOSKIPTEMPLOBでは一時LOBがSQL文で使用されます。ReplicatではSQL文内でバインド変数が宣言され、一時LOBが関連付けられてから、一時LOBに書き込まれます。Oracle DatabaseはLOB列データを一時LOBから適用します。

SKIPTEMPLOBは、LOBデータが含まれるINSERTおよびUPDATE操作に適用されます。表にLOB列を使用したファンクション索引がある場合、LOBデータがNULLまたは空である、あるいはインラインで保存されている場合は、適用されません。部分的なLOB操作には適用されません。

SKIPTEMPLOBを使用すると、ReplicatはLOB列の行を更新/挿入する場合に、1つのDML操作とn個のLOB_WRITE (ピース単位)操作を生成/実行します。ただし、SKIPTEMPLOBをFETCHPARTIALLOB (Extractパラメータ)とともに使用すると過剰なフェッチが発生するので、このように使用しないでください。

NOSKIPTEMPLOBが下位互換性のために提供され、それ以外の場合はデフォルトのSKIPTEMPLOBが保持されます。

SOURCE_DB_NAME src_dbase_global_name
Oracleに有効です。証跡のソース・データベースのグローバル名を指定します。DBOPTIONS ENABLE_INSTANTIATION_FILTERINGが有効な場合に、関連するインスタンス化情報の問合せに使用されます。このオプションは、メタデータが有効な12.2.証跡ファイルのインスタンス化フィルタリングでは省略可能です。

SPTHREAD | NOSPTHREAD
SQL ServerのExtractおよびReplicatに有効です。ストアド・プロシージャに別のデータベース接続スレッドを作成します。デフォルトはNOSPTHREADです。

SUPPRESSTEMPORALUPDATES
DB2 LUW 10.1 FixPack 2以上のテンポラル表のレプリケーションに有効です。

SUPPRESSTEMPORALUPDATESでは、システム期間表とバイテンポラル表を関連する履歴表とともにレプリケートします。Oracle GoldenGateでは、行開始列、行終了列およびトランザクション開始ID列を、他の表列とともにレプリケートします。データベース・インスタンスに、適用側でSYSPROC.SET_MAINT_MODE_RECORD_NO_TEMPORALHISTORY¿ストアド・プロシージャを実行する実行権限があることを確認する必要があります。

デフォルトで、Oracle GoldenGateは行開始列、行終了列およびトランザクション開始ID列をレプリケートしません。これらの列の元の値を保持するには、次のオプションの1つを実装します。

- ターゲット・テンポラル表に追加のタイムスタンプ列を追加し、列を適切にマップします。

- 適用側で非テンポラル表を使用し、列を適切にマップします。

異種環境でのレプリケーション:

適用側にテンポラル表がない異種環境では、行開始列、行終了列およびトランザクション開始ID列の値を設定する必要があります。これらのソース列には、ターゲット・データベースでサポートされない可能性のあるタイムスタンプ値があります。最初にマップ変換関数を使用して、これらの値をターゲット・データベースでサポートされる形式に変換してから、列を適切にマップする必要があります。たとえば、MySQLのDATETIME範囲は`1000-01-01 00:00:00.000000'から'9999-12-31 23:59:59.999999¿'までです。DB2 LUWのタイムスタンプ値`0001-01-01-00.00.00.000000000000¿はMySQLにレプリケートできません。このような値をレプリケートするには、この値をMySQLのDATETIME形式に変換する必要があります。たとえば、システム期間表またはバイテンポラル表に次のタイムスタンプ列がある場合、次のようになります。

SYS_START
--------------------------------
0001-01-01-00.00.00.000000000000

この列をMySQLにレプリケートするには、関数colmap()を次のように使用します。

map <source_schema>.<source_table>, target <target_schema>.<target_table>
colmap(sys_start= @IF( ( @NUMSTR( @STREXT(sys_start,1,4))) > 1000, sys_start,
'1000-01-01 00.00.00.000000'));

テンポラル表の初期ロード:

Oracle GoldenGateではテンポラル表の初期ロードを通常どおりサポートしています。

テンポラル表に関する次の考慮事項に注意してください。

- システム期間テンポラル表とアプリケーション期間テンポラル表との間のレプリケーションはサポートされません。

- 非テンポラル表からテンポラル表へのレプリケーションはサポートされません。

- システム期間表、バイテンポラル表、およびINSERTALLRECORDSパラメータを使用したSUPPRESSTEMPORALUPDATESのレプリケーションはサポートされません。

- ターゲット表でBUSINESS_TIME WITHOUT OVERLAPSを使用してアプリケーション期間テンポラル表に一意索引が作成されている場合は、ソース表に対して同じ一意索引を作成する必要があります。

- テンポラル表間の双方向レプリケーションが推奨されるのはデフォルトを使用する場合のみです。

- CDRはSUPPRESSTEMPORALUPDATESでのみサポートされます。双方向レプリケーションでのCDRのサポートはありません。

- デフォルトで、ソース・データベースとターゲット・データベースが異なるタイム・ゾーンで稼働している場合、テンポラル表の行開始列、行終了列およびトランザクション開始ID列に不整合が生じます。このようなシステム期間表とバイテンポラル表のタイムスタンプ列は、それぞれのデータベース・マネージャによって自動的に移入され、それぞれのデータベースのタイム・ゾーンに従って値が設定されます。

- レプリケート・パラメータ・ファイル内にGETUPDATEBEFORESが指定されたデフォルトを使用すると、どのデルタ計算にも行開始列、行終了列およびトランザクション開始ID列を使用できません。たとえば、いかなる種類の計算でも、このような列の前イメージと後イメージを取得することはできません。これらの列をデルタ計算で使用するには、SUPPRESSTEMPORALUPDATESを使用します。

SUPPRESSTRIGGERS | NOSUPPRESSTRIGGERS
Oracleの非統合Replicatに有効です。Replicatセッション中にトリガーが起動するかどうかを制御します。これは、手動でトリガーを無効化するかわりに使用できます。(統合Replicatでは、ターゲット・システムでのトリガーの無効化は必要ありません。)

SUPPRESSTRIGGERS(デフォルト)では、Oracle GoldenGateでのレプリケーション用に構成されたターゲット・オブジェクトでトリガーが発生しないようにします。SUPPRESSTRIGGERSは、Oracle Database 12c、11g (11.2.0.2)およびそれ以降の11g R2リリースに有効です。SUPPRESSTRIGGERSは11g R1では無効です。

特定のトリガーを起動できるようにするには、次のSQLEXEC文をReplicatパラメータ・ファイルで使用できます。このとき、trigger_ownerにはトリガーの所有者、trigger_nameにはトリガー名を指定します。

SQLEXEC 'dbms_ddl.set_trigger_firing_property(trigger_owner "trigger_name", FALSE);'

注意:

このSQLEXECを一度FALSEで実行すると、TRUEを設定して再びコマンドを実行するまで、トリガーは起動し続けます。

NOSUPPRESSTRIGGERSでは、ターゲット・トリガーが起動できます。[NO]SUPPRESSTRIGGERSを使用するには、Replicatユーザーにdbms_goldengate_auth.grant_admin_privilegeパッケージで付与される権限が必要です。この手順は、Oracleデータベース・インストールの一部です。詳細は、データベースのマニュアルを参照してください。

USERIDまたはUSERIDALIASパラメータは、SUPPRESSTRIGGERSまたはNOSUPPRESSTRIGGERSを含むDBOPTIONS文よりも前に指定する必要があります。

TDSPACKETSIZE bytes
SybaseのExtractおよびReplicatに有効です。Sybaseターゲットへのレプリケーションで使用するTDSパケット・サイズを設定します。

次の値が有効です。

- Sybaseバージョン12.5.4:

注意:

このバージョンは、Oracle GoldenGate 11.2.1よりサポート対象外です。

512から65024まで

デフォルトは、Extractの場合は0、Replicatの場合は512です。

- Sybase15以上:
2048から65024まで

デフォルトは、Extractの場合は0、Replicatの場合は2048です。

値は512の倍数である必要があります。Sybase Adaptive Serverのmax network packet sizeおよびadditional network memoryパラメータに設定する値の範囲は、TDSPACKETSIZEで設定する値をサポートしている必要があります。

注意:

max network packet sizeの値が大きいほど、データベース・サーバーがネットワーク・データへの割当てに必要とするメモリー(additional network memoryで設定される)が大きくなります。

最適なパフォーマンスのために、ネットワーク上の基礎となるパケット・サイズで効率的に動作するサーバー・パケット・サイズを選択してください。この手順の目的は、次のとおりです。

- ネットワークに対するサーバーの読取りおよび書込み数を減らす。

- ネットワーク・パケットでの未使用の領域を減らし、ネットワークのスループットを向上させる。

たとえば、お使いのネットワークのパケット・サイズで1500バイトのデータが処理される場合、サーバー上のパケット・サイズは、1536 (512*3)に設定するよりも、1024 (512*2)に設定する方が、転送のパフォーマンスを向上させることができます。

最適なパフォーマンスのために、次の構成で起動します。

DBOPTIONS TDSPACKETSIZE 8192

DBOPTIONSパラメータは、他のパラメータに関係なく、パラメータ・ファイル内の任意の場所に配置できます。

TRANSNAME trans_name
SQL ServerのReplicatに有効です。パラメータ・ファイルに指定されている特定のトランザクション名を各Replicatで使用できるようにします。trans_nameは、ReplicatがターゲットのDMLトランザクションに対して使用するトランザクションの名前で、デフォルトのggs_replトランザクション名(使用されている場合)よりも優先されます。

USEODBC
SQL ServerのReplicatに有効です。ReplicatがODBCを使用してDML操作を実行するように構成します。デフォルトでは、OLE DBを使用します。USEREPLICATIONUSERを有効化しているときはこの設定は無効になり、Replicatは異常終了します。

注意:

Replicatは、データベース・カタログに接続してメタデータを取得する場合は、常にODBCを使用します。

USEREPLICATIONUSER
SQL ServerのReplicatに有効です。SQL Serverレプリケーション・ユーザーとしてターゲットDML操作を実行するようにReplicatを構成します。レプリケーション・ユーザーは、SQL Serverユーザーまたはアカウントではなく、データベース接続のプロパティです。USEREPLICATIONUSERがオブジェクトまたはプロパティ(ID列やカスケード制約など)で設定されている場合、SQL ServerのNOT FOR REPLICATIONフラグが適用されます。

レプリケーション・ユーザーを使用する場合は、データの整合性に対する次の懸念を解消する必要があります。

- ターゲットのIDENTITYシードが更新されません。ターゲットが読取り専用の場合を除き、主キー違反の回避のためにパーティショニング・スキームが必要です。

- 外部キー制約が強制されません。

- ON UPDATE CASCADE、ON DELETE CASCADEおよびトリガーが無効化されます。重複する操作が回避されるのでこの無効化はReplicatには有益ですが、ターゲット・アプリケーションにとっては適切でなく、データ整合性の確保のために制約またはトリガーのコードの変更が必要になることがあります。

- CHECK制約が強制されないため、ターゲット上でデータ整合性を確保できません。

USEREPLICATIONUSERを使用する際、IDENTITYプロパティおよび制約は'not for replication'オプションとともにデータベース内のオブジェクト・レベルで設定する必要があります。これらの問題の詳細は、SQL ServerのためのOracle GoldenGateのインストールおよび構成を参照してください。

デフォルトでは、USEREPLICATIONUSERは無効化されており、OLE DBを使用します。USEREPLICATIONUSERは、送信パフォーマンスを高める必要がある場合にのみ使用することをお薦めします。USEODBCを有効化しているときはこの設定は無効になり、Replicatは異常終了します。

XMLBUFSIZE bytes
OracleのExtractに有効です。SDO_GEORASTERオブジェクト・タイプのsys.xmltype属性から抽出されたXMLデータを保持するメモリー・バッファのサイズを設定します。デフォルトは1048576バイト(1MB)です。データがデフォルトのバッファ・サイズを超えると、Extractは異常終了します。その場合は、バッファ・サイズを増やしてから、Extractを再起動してください。有効な値の範囲は、1024から10485760バイトです。

例

例1

DBOPTIONS HOST 127.0.0.1, CONNECTIONPORT 3307

例2

DBOPTIONS DECRYPTPASSWORD AACAAAAAAAAAAAIALCKDZIRHOJBHOJUH ENCRYPTKEY DEFAULT

例3

DBOPTIONS TDSPACKETSIZE 2048

例4

DBOPTIONS FETCHBATCHSIZE 2000

例5

DBOOPTION XMLBUFSIZE 2097152

3.41 DDL

適用対象

ExtractおよびReplicat

説明

DDLパラメータでは、次のことを行います。

- DDLサポートの有効化

- DDL操作のフィルタ

- DDLレコードに基づく処理アクションの構成

オプションを指定せずに使用すると、DDLパラメータによるフィルタリングが実行されず、すべてのDDL操作が次のように伝播されます。

- Extractパラメータとして、サポートされているすべてのデータベース・オブジェクトで生成された、サポートされている全DDL操作が取得されて証跡に送信されます。

- Replicatパラメータとして、Oracle GoldenGateの証跡からすべてのDDL操作がレプリケートされ、ターゲットに適用されます。これは、このパラメータを使用しない場合のデフォルトの動作と同じです。

オプションを指定して使用すると、DDLパラメータがフィルタリング・エージェントとして機能し、次に基づいてDDL操作が含まれるか除外されます。

- 範囲

- オブジェクト・タイプ

- 操作タイプ

- オブジェクト名

- DDLコマンド構文またはコメント、あるいはその両方の文字列

パラメータ・ファイルでは1つのDDLパラメータのみを使用できますが、DDLの複数の包含および除外オプションを組み合せて、必要なレベルまでDDLをフィルタリングすることができます。

- DDLパラメータのフィルタリング・オプションは、トランザクション・ソースからのキャプチャを行うプライマリExtractに対しては有効ですが、データ・ポンプExtractに対しては無効です。

- 複数のフィルタ・オプションの指定を組み合せた場合、AND文として論理的にリンクされます。

- レプリケートされるDDL文では、複数のオプションが指定されたすべてのフィルタ基準を満たしている必要があります。

- DDLパラメータ文で複雑なフィルタリング基準を使用する場合、本番環境で使用する前にテスト環境で構成をテストすることをお薦めします。

- 詳細は、例1 DDLパラメータ・オプションの組合せを参照してください。

次のプロセスでは、DDLパラメータを使用しないでください。

- Extractデータ・ポンプ

- VAMソートExtract(Teradataソース・データベース)

これらのプロセス・タイプでは、DDLのマッピングまたは変換が許可されず、パススルー・モードで自動的にDDLレコードが伝播されます。ソース表で実行されるDDL (ALTER TABLE TableA...など)は、Replicatによって同一の名前の表に適用されます(ALTER TABLE TableA)。ALTER TABLE TableBとしてマッピングすることはできません。

Oracle GoldenGate DDLサポートの使用方法の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成またはTeradataのためのOracle GoldenGateのインストールおよび構成を参照してください。

構文

DDL [
{INCLUDE | EXCLUDE}
[, MAPPED | UNMAPPED | OTHER | ALL]
[, OPTYPE type]
[, OBJTYPE 'type']
[, SOURCECATALOG catalog | ALLCATALOGS]
[, ALLOWEMPTYOBJECT]
[, ALLOWEMPTYOWNER]
[, OBJNAME name]
[, INSTR 'string']
[, INSTRWORDS 'word_list']
[, INSTRCOMMENTS 'comment_string']
[, INSTRCOMMENTSWORDS 'word_list']
[, STAYMETADATA]
[, EVENTACTIONS (action)
]
[...]

DDLのフィルタリング・オプション

Oracle GoldenGateによってレプリケートされるDDLに対するフィルタリングと操作の構文オプションを次に示します。これらのオプションは、DDLレプリケーションをサポートするDDLパラメータのINCLUDE句およびEXCLUDE句に適用されます。

INCLUDE | EXCLUDE

INCLUDEまたはEXCLUDEを使用して、包含または除外句の始まりを示します。

- 包含句には、このパラメータの影響を受けるDDLを識別するフィルタ基準が含まれます。

- 除外句には、このパラメータから特定のDDLを除外するフィルタ基準が含まれます。

包含句または除外句は、INCLUDEまたはEXCLUDEキーワードに、DDLパラメータの他のフィルタリング・オプションの有効な組合せを続けて構成する必要があります。

EXCLUDEを使用する場合は、対応するINCLUDE句を作成する必要があります。たとえば、次は無効です。

DDL EXCLUDE OBJNAME hr.*

ただし、次のいずれかを使用できます。

DDL INCLUDE ALL, EXCLUDE OBJNAME hr.*
DDL INCLUDE OBJNAME fin.* EXCLUDE OBJNAME fin.ss

同じ条件を含むINCLUDEsより、EXCLUDEが優先されます。包含句および除外句は複数使用できます。

DDLパラメータ、TABLEパラメータまたはMAPパラメータにも、TABLEEXCLUDEパラメータまたはMAPEXCLUDEパラメータにもOracle GoldenGateによってインストールされるDDLオブジェクトを含めないでください。それらのパラメータのワイルドカード指定にOracle GoldenGateによってインストールされるDDLオブジェクトが含まれていないことを確認します。これらのオブジェクトはOracle GoldenGate構成に含まれませんが、Extractプロセスはこれらのオブジェクトに対する操作を認識している必要があります。それが、EXCLUDE、TABLEEXCLUDEまたはMAPEXCLUDEのパラメータ文を使用して、構成からこれらを明示的に除外できない理由です。

MAPPED |UNMAPPED |OTHER | ALL

DDLの操作スコープに基づいてINCLUDEまたはEXCLUDEを適用するには、MAPPED、UNMAPPED、OTHERおよびALLを使用します。

- MAPPEDでは、INCLUDEまたはEXCLUDEをMAPPEDスコープのDDL操作に適用します。MAPPEDフィルタリングは、他のDDLパラメータ・オプションを使用して指定されたフィルタリングの前に実行されます。

- UNMAPPEDでは、UNMAPPEDスコープのDDL操作にINCLUDEまたはEXCLUDEが適用されます。

- OTHERでは、OTHERスコープのDDL操作にINCLUDEまたはEXCLUDEが適用されます。

- ALLでは、すべてのスコープのDDL操作にINCLUDEまたはEXCLUDEが適用されます。

DDL EXCLUDE ALLは、DDL操作自体のレプリケーションは回避しつつ、Oracle GoldenGateのオブジェクト・メタデータを最新に保つ特別な処理オプションです。Oracle GoldenGate以外の方法を使用してDDLをターゲットに適用するが、Oracle GoldenGateによってデータの変更をターゲット・オブジェクトにレプリケートする場合、DDL EXCLUDE ALLを使用できます。現在のメタデータをオブジェクトの変更としてOracle GoldenGateに提供するため、Oracle GoldenGateプロセスの停止と起動の必要がなくなります。次の特別な条件がDDL EXCLUDE ALLに適用されます。

- DDL EXCLUDE ALLでは、INCLUDE句を使用する必要がありません。

- DDL EXCLUDE ALLを使用する場合、WILDCARDRESOLVEパラメータをIMMEDIATEに設定し、必要に応じてただちにDMLを解決できるようにします。

OPTYPE type

CREATE、ALTERおよびRENAMEなど、特定タイプのDDL操作にINCLUDEまたはEXCLUDEを適用するには、OPTYPEを使用します。typeには、データベースに対して有効な任意のDDLコマンドを使用します。たとえば、ALTER操作を含める場合の正しい構文は、次のとおりです。

DDL INCLUDE OPTYPE ALTER

OBJTYPE 'type'

特定タイプのデータベース・オブジェクトにINCLUDEまたはEXCLUDEを適用するには、OBJTYPEを使用します。typeには、データベースに対して有効な任意のオブジェクト・タイプ(TABLE、INDEX、TRIGGERなど)を使用します。Oracleマテリアライズド・ビューとマテリアライズド・ビュー・ログの場合、正しいタイプはそれぞれsnapshotおよびsnapshot logです。オブジェクト・タイプの名前は、一重引用符で囲みます。例:

DDL INCLUDE OBJTYPE 'INDEX'
DDL INCLUDE OBJTYPE 'SNAPSHOT'

Oracleオブジェクト・タイプUSERにはOBJNAMEオプションを使用しないでください。これは、OBJNAMEはowner.objectまたはcontainer.owner.objectが必要ですが、USERにはスキーマしかないためです。

SOURCECATALOG catalog | ALLCATALOGS

これらのオプションを使用して、OBJNAME句の未修飾のオブジェクト名が正しいコンテナに解決される方法を指定します。ソース・データベースがOracleコンテナ・データベースの場合にこれらのオプションを使用します。

SOURCECATALOGは、同じINCLUDEまたはEXCLUDE句に指定されたすべてのオブジェクト名についてデフォルト・コンテナを指定します。有効にするには、SOURCECATALOGをOBJNAMEの指定の前に指定する必要があります。詳細(オブジェクトの完全識別に3つの部分からなるオブジェクト名を必要とする文のうち、2つの部分からなる名前が含まれる文の使用を含む)は、SOURCECATALOGを参照してください。

ALLCATALOGSは、同じINCLUDEまたはEXCLUDE句に指定されるオブジェクト名を解決するときに、データベースのコンテナすべてを検討する必要があることを指定します。ALLCATALOGSは、OBJNAMEの指定の前にも後にも配置できます。

パラメータ・ファイルに様々なカタログ指定がある場合には次の優先度が適用されます。

1. INCLUDEまたはEXCLUDE句のALLCATALOGSは、INCLUDEまたはEXCLUDE句およびパラメータ・ファイルのルートのすべてのSOURCECATALOG指定よりも優先されます。また、OBJNAME句の完全修飾オブジェクト名のコンテナ指定よりも優先されます。

2. OBJNAME句の明示的なカタログ指定は、SOURCECATALOGのすべてのインスタンスよりも優先されます(ALLCATALOGS以外)。

3. INCLUDEまたはEXCLUDE句のSOURCECATALOGは、TABLEまたはMAP文のルートに指定されるグローバルSOURCECATALOGパラメータよりも優先されます。

4. グローバルSOURCECATALOGパラメータが、OBJNAME句の修飾されていないオブジェクト名に対して有効になるのは、INCLUDEまたはEXCLUDE句にSOURCECATALOGまたはALLCATALOGSが指定されていない場合です。

5. これらのパラメータが指定されない場合は、すべてのカタログが検討されます。

ALLOWEMPTYOBJECT

ALLOWEMPTYOBJECTを使用すると、オブジェクト名を含まないDDLをOBJNAME指定で処理できます。例:

DDL INCLUDE OBJNAME sch.* ALLOWEMPTYOBJECT

ALLOWEMPTYOWNER

ALLOWEMPTYOWNERを使用すると、所有者名を含まないDDLをOBJNAME指定で処理できます。例:

DDL INCLUDE OBJNAME pdb.sch.* ALLOWEMPTYOWNER

OBJNAME name

OBJNAMEを使用して、INCLUDEまたはEXCLUDEをオブジェクトの完全修飾名に適用します。2つの部分または3つの部分からなるオブジェクト名やワイルドカードを正しく指定するには、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

大/小文字を区別するオブジェクト名は二重引用符で囲みます。

大/小文字が区別されない例:

DDL INCLUDE OBJNAME accounts.*

大/小文字が区別される例:

DDL INCLUDE OBJNAME accounts."cust"

Oracle USERオブジェクトにはOBJNAMEを使用しないでください。これは、OBJNAMEはowner.objectまたはcontainer.owner.objectが必要ですが、USERにはスキーマしかないためです。

Replicatパラメータ・ファイルにMAPPEDを指定したOBJNAMEを使用する場合、OBJNAMEの値は、MAP文のTARGET句で指定された名前を参照する必要があります。たとえば、次のMAP文の場合、正しい値はOBJNAME fin2.*です。

MAP fin.exp_*, TARGET fin2.*;

次の例では、CREATE TABLE文はソースで次のように実行されます。

CREATE TABLE fin.exp_phone;

同じ文が、ターゲットでは次のように実行されます。

CREATE TABLE fin2.exp_phone;

ターゲットの所有者がMAP文で指定されていない場合、Replicatによって、USERIDまたはUSERIDALIASパラメータで指定されたデータベース・ユーザーにマップされます。

トリガーなど、導出されたオブジェクトを作成するDDLの場合、OBJNAMEの値は、導出されたオブジェクトの名前ではなく、ベース・オブジェクトの名前にする必要があります。

たとえば、次のDDL文を含める場合、正しい値はhr.insert_trigではなく、hr.accountsです。

CREATE TRIGGER hr.insert_trig ON hr.accounts;

RENAME操作の場合、OBJNAMEの値は新しい表名にする必要があります。たとえば、次のDDL文を含める場合、正しい値はhr.acctです。

ALTER TABLE hr.accounts RENAME TO acct;

INSTR 'string'

INSTRを使用して、INCLUDEまたはEXCLUDEを、コマンド構文内に特定の文字列を含む(コメント内には含まない)DDL文に適用します。たとえば、次では索引を作成するDDLが除外されます。

DDL INCLUDE ALL EXCLUDE INSTR 'CREATE INDEX'

文字列を一重引用符で囲みます。文字列の検索では、大/小文字は区別されません。

INSTRでは、文字列の中に一重引用符(' ')を使用することも、NULL値を使用することもできません。

INSTRCOMMENTS 'comment_string'

(Oracleに有効)INSTRCOMMENTSでは、DDLコマンド内ではなくコメント内に特定の文字列を含むDDL文に、INCLUDEまたはEXCLUDEを適用します。INSTRCOMMENTSを使用すると、コメントをフィルタリング・エージェントとして使用できます。

たとえば、次の文ではコメント内に文字列"source only"を含むDDL文を除外します。

DDL INCLUDE ALL EXCLUDE INSTRCOMMENTS 'SOURCE ONLY'

この例では、次のようなDDL文はレプリケートされません。

CREATE USER john IDENTIFIED BY john /*source only*/;

文字列を一重引用符で囲みます。文字列の検索では、大/小文字は区別されません。INSTRとINSTRCOMMENTSを組み合せると、同一のDDL文のコマンド構文およびコメントの文字列でフィルタリングできます。

INSTRCOMMENTSでは、文字列内の一重引用符(' ')はサポートされません。また、NULL値もサポートされません。

INSTRWORDS 'word_list'

指定した語を含むDDL文にINCLUDEまたはEXCLUDEを適用するには、INSTRWORDSを使用します。

word_listに、任意の順序で語を指定し、一重引用符で囲みます。空白を含めるには、その空白(および該当する場合は空白と語)を二重引用符で囲みます。二重引用符は、文を囲む場合にも使用できます。

指定するすべての語が、有効化されるINSTRWORDSのDDLに存在する必要があります。

例:

DDL INCLUDE OPTYPE ALTER OBJTEYP 'TABLE' INSTRWORDS 'ALTER CONSTRAINT " xyz"'

この例は次のDDL文と一致します。

ALTER TABLE ADD CONSTRAINT xyz CHECK

ALTER TABLE DROP CONSTRAINT xyz

INSTRWORDSでは、文字列の中に一重引用符(' ')を使用することも、NULL値を使用することもできません。

INSTRCOMMENTSWORDS 'word_list'

(Oracleに有効)INSTRWORDSと同様に機能しますが、DDL構文自体ではなく、DDL文内のコメントのみに適用します。INSTRCOMMENTSを使用すると、コメントをフィルタリング・エージェントとして使用できます。

INSTRCOMMENTSWORDSでは、文字列内の一重引用符(' ')はサポートされません。また、NULL値もサポートされません。

INSTRWORDSとINSTRCOMMENTSWORDSを組み合せて、同じDDL文のコマンド構文内とコメント内の文字列に対してフィルタできます。

STAYMETADATA

(Oracleに有効です)。メタデータがExtractによって取得されたり、Replicatによって適用されたりしないようにします。

Extractが表で最初にDMLを検出すると、その表のメタデータが取得されます。表でDDLが検出されると、古いメタデータは無効化されます。その表の次のDMLは新しいメタデータと一致するため、ターゲット表の構造は、ソースの構造とともに常に最新です。

ただし、特定のDDL操作が表のメタデータに影響を及ぼさないことがわかっている場合、STAYMETADATAを使用して、現在のメタデータが取得またはレプリケートされないようにできます。これにより、インポートやエクスポートのような操作の際に役立つパフォーマンスの向上が可能になり、切捨てなどのDDLおよび制約の無効化がよく実行されます。表構造は後続のデータ・レプリケーションの整合性に関連するため、これらの操作は表構造に影響せず、このような場合に無視することができます。たとえば、ALTER TABLE ADD FOREIGN KEYによって表のメタデータは影響を受けません。

これを選択的に適用する方法の例は、次のとおりです。

DDL INCLUDE ALL INCLUDE STAYMETADATA OBJNAME xyz

この例は、すべてのDDLをレプリケーションに含めるが、オブジェクトxyzを操作するDDLのみSTAYMETADATAの対象となることを指定しています。

STAYMETADATAは、EXCLUDE句でも同様に使用できます。

STAYMETADATAは、メタデータの整合性を保証するために、ソースとターゲットで同じように使用される必要があります。

STAYMETADATAが使用される場合、メッセージがレポート・ファイルに追加されます。DDLレポーティングは、REPORTオプションを指定したDDLOPTIONSパラメータによって制御されます。

次のように@ddl_staymetadataスクリプトを使用して、ソースで検出されるすべてのDDLに同じ機能をグローバルに適用できます。

- @ddl_staymetadata_onは、メタデータのバージョニングをグローバルで無効にします。

- @ddl_staymetadata_offは、メタデータのバージョニングを再度有効にします。

どのDDLがオブジェクトのメタデータに影響するかは必ずしも明白ではないため、このオプションは、Oracle GoldenGateのテクニカル・サポート・スタッフと相談して使用することをお薦めします。不適切に使用された場合、レプリケーション環境の整合性が損われる可能性があります。

EVENTACTIONS (action)

イベント・レコードと呼ばれるトランザクション・ログまたは証跡のDDLレコードに基づき、ExtractまたはReplicatプロセスが定義されたアクションを実行します。DDLイベントは、DDLパラメータのその他のフィルタリング・オプションによって決められたとおりに、DDLレコードをExtractまたはデータ・ポンプで証跡に書き込める場合、またはReplicatで実行可能な場合にトリガーされます。このシステムを使用し、データベース・イベントに基づいて処理をカスタマイズできます。

actionについては、MAPおよびTABLEパラメータのEVENTACTIONSの項を参照してください。

DDLレコードでEVENTACTIONSを使用するためのガイドラインは、次のとおりです。

- CHECKPOINTBEFORE: 各DDLレコードは自律型であるため、DDLレコードは必ずトランザクションの開始になります。そのため、CHECKPOINT BEFOREイベント・アクションは、DDLレコードに対して暗黙的です。

- IGNORE: このオプションは、DDLレコードに対して無効です。DDL操作は自律型であるため、レコードを無視することは、トランザクション全体を無視することと同じです。

EVENTACTIONSは導出されたオブジェクトであるため、次のDDLオブジェクトがサポートされていません。

- 索引

- トリガー

- シノニム

- 表のRENAMEおよびALTER TABLE RENAME

Extractが最大保護モードで構成されているTeradata構成では、VAMソートExtractグループでEVENTACTIONSのみを使用します。この構成のプライマリExtractではこれはサポートされていません。同時変更は、処理ストリームのこの時点ではトランザクション順でソートされないためです。詳細は、TeradataのためのOracle GoldenGateのインストールおよび構成を参照してください。

例

例1   DDLパラメータ・オプションの組合せ

DDLパラメータ・オプションの組合せ方の例を次に示します。

DDL  &
INCLUDE UNMAPPED &
OPTYPE alter &
OBJTYPE 'table' &
OBJNAME users.tab* &
INCLUDE MAPPED OBJNAME * &
EXCLUDE MAPPED OBJNAME temporary.tab

この文で組み合せたフィルタ基準は、次を指定します。

- TABLEまたはMAP文でマップされていない表(UNMAPPEDスコープ)のすべてのALTER TABLE文がINCLUDEされますが、それはそれらの表の所有者がusersである場合およびその名前がtabで開始される場合のみです

- TABLEまたはMAP文でマップされる(MAPPEDスコープ)すべての表に対するすべてのDDL操作タイプをINCLUDE。

- MAPPEDスコープのすべての表に対するすべてのDDL操作タイプをEXCLUDE (表がtemporaryによって所有され、名前がtabで始まる場合のみ)。

例2   イベント・アクションの包含

次の例では、すべてのDDLレコードに対するREPORTのイベント・アクションを指定します。

DDL INCLUDE ALL EVENTACTIONS (REPORT)

例3   DDLのサブセットでのイベント・アクションの使用

次に、EVENTACTIONSをDDLのサブセットで使用する方法の例を示します。すべてのDDLがレプリケートされますが、明示的に名前が付けられたオブジェクトで実行されるDDLのみが、REPORTおよびLOGのイベント・アクションのトリガー対象となります。

DDL INCLUDE ALL &
INCLUDE OBJNAME sales.t* EVENTACTIONS (REPORT) &
INCLUDE OBJNAME fin.my_tab EVENTACTIONS (LOG) &

例4

次の例は、ソースOracleコンテナ・データベース内のオブジェクトに対して発行されるDDLのカタログ名を指定する様々な方法を示します。

- 次の例では、pdb1.sch1.obj1とpdb2.sch2.obj2がDDL処理に含められます。

SOURCECATALOG pdb1
DDL INCLUDE OBJNAME sch1.obj1 INCLUDE SOURCECATALOG pdb2 OBJNAME sch2.obj2

- 次の例では、すべてのカタログ内の名前がsch.objのすべてのオブジェクトがDDL処理に含めれられます。

DDL INCLUDE ALLCATALOGS OBJNAME sch.obj

- 次の例でも、すべてのカタログ内の名前がsch.objのすべてのオブジェクトがDDL処理に含められます。ALLCATALOGSは他のカタログ指定よりも優先されるためです。

DDL INCLUDE ALLCATALOGS OBJNAME pdb.sch.obj

例5

次の例は、ALLOWEMPTYOBJECTとALLOWEMPTYOWNERを組み合せて使用しています。

DDL INCLUDE pdb.*.* ALLOWEMPTYOWNER ALLOWEMPTYOBJECT

3.42 DDLERROR

適用対象

ExtractおよびReplicat

説明

DDLERRORパラメータでは、ソースおよびターゲット・システムのDDLエラーを処理します。ExtractおよびReplicat用のオプションが用意されています。

Extract用DDLERROR

Extract用のDDLERRORパラメータ・オプションでは、Extractによって認識される、メタデータが検出不可能なオブジェクトに関するエラーを処理します。

デフォルト

異常終了

構文

DDLERROR [RESTARTSKIP number_of_skips] [RETRYDELAY seconds] [SKIPTRIGGERERROR number_of_errors]

RESTARTSKIP number_of_skips

Extractの起動時に、特定の数のDDL操作をスキップおよび無視させ、エラーによるExtractの異常終了を防ぎます。デフォルトでは、DDLエラーが発生するとExtractは異常終了するため、操作はスキップされません。有効な値は1から100,000です。

スキップした操作をExtractレポート・ファイルに書き込むには、DDLOPTIONSパラメータとREPORTオプションを使用します。

SKIPTRIGGERERROR number_of_errors

(Oracle)Extractの起動時に、DDLトリガーが原因で発生する特定の数のDDLエラーをスキップおよび無視させます。有効な値は1から100,000です。

SKIPTRIGGERERRORは、RESTARTSKIPオプションの前にチェックされます。Extractがトリガー・エラーのためにDDL操作をスキップする場合、その操作はRESTARTSKIP指定の対象としてカウントされません。

Replicat用DDLERROR

Replicat用のDDLERRORパラメータ・オプションでは、DDLがターゲット・データベースに適用されるときに発生するエラーを処理します。DDLERRORオプションを使用して、ほとんどのエラーをデフォルトの方法(処理の停止など)で処理し、他のエラーを特定の方法で処理できます。予見されるすべてのエラーが処理されるよう、同一のパラメータ・ファイルに複数のDDLERRORインスタンスを使用できます。

デフォルト

異常終了

構文

DDLERROR
{error | DEFAULT} {response}
{INCLUDE inclusion_clause | EXCLUDE exclusion_clause}
[IGNOREMISSINGOBJECTS | ABENDONMISSINGOBJECTS]
[RETRYDELAY seconds]

{error | DEFAULT} {response}

error

このDDLERROR文で処理する明示的なDDLエラーを指定します。

DEFAULT

明示的なDDLERROR文がないすべてのDDLエラーについてデフォルトのresponseを指定します。

response

DDLエラーが発生したときにReplicatが実行するアクション。次のいずれかを指定できます。

ABEND

操作をロールバックし、処理を異常終了します。ABENDはデフォルトです。

DISCARD

問題のある操作を破棄ファイルに記録しますが、後続のDDLの処理を継続します。

IGNORE

エラーを無視します。

{INCLUDE inclusion_clause | EXCLUDE exclusion_clause}
特定のDDLがDDLERROR文によって処理されるかどうかを制御する包含または除外句の始まりを識別します。構文および使用方法は、DDLのフィルタリング・オプションを参照してください。

[IGNOREMISSINGOBJECTS | ABENDONMISSINGOBJECTS]
ターゲット上に見つからなかったオブジェクトでDMLが発行された場合、Extractが異常終了するかどうかを制御します。通常この条件が発生するのは、レプリケーション構成に含まれないDDLがターゲットで直接発行されるときです。または、ソース定義とターゲット定義の間に矛盾がある場合にも発生します。

IGNOREMISSINGOBJECTS

見つからない表でのDML操作をReplicatがスキップするようにします。

ABENDONMISSINGOBJECTS

見つからない表でのDML操作でReplicatが異常終了するようにします。

[RETRYDELAY seconds]
失敗した操作を再試行するまでの遅延(秒単位)を指定します。デフォルトは10秒です。

例

例1   DDLERRORの基本的な例

次の例では、DDLERROR文に基づき、Replicatは指定されたエラーを無視しますが、その前に、該当の操作を10秒間隔で3回試行します。Replicatは、ワイルドカード指定tab1*を満たすオブジェクト上で実行される操作を除き、tab* (任意のユーザー、任意の操作)を満たす名前のオブジェクトで実行されるDDL操作にエラー処理を適用します。

DDLERROR 1234 IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 10 &
INCLUDE ALL OBJTYPE TABLE OBJNAME tab* EXCLUDE OBJNAME tab1*

このエラーを除くすべてのエラーを処理するために、次のDDLERROR文を追加できます。

DDLERROR DEFAULT ABEND

この場合、ReplicatはDDLエラー発生時に異常終了します。

例2   複数のDDLERROR文の使用

パラメータ・ファイルにDDLERROR文をリストする順番は、各文の有効性に影響しませんが、複数のDDLERROR文に、追加の修飾子なしで同一のエラーが指定されている場合は例外です。このようなケースでは、Replicatは最初にリストされている文のみを使用します。たとえば、次のような文では、エラーが発生するとReplicatは異常終了します。

DDLERROR 1234 ABEND
DDLERROR 5678 IGNORE

ただし、適切な修飾子を指定すれば、前述の構成を有効に使用できます。例:

DDLERROR 1234 ABEND INCLUDE OBJNAME tab*
DDLERROR 5678 IGNORE

このケースでは、INCLUDE文が追加されているため、Replicatは、エラーのDDL文のオブジェクト名がワイルドカードtab*に一致する場合にのみ異常終了します。Replicatは、他のオブジェクト名を含むエラー操作を無視します。

3.43 DDLOPTIONS

適用対象

ExtractおよびReplicat

説明

DDLOPTIONSパラメータでは、フィルタリングおよび文字列置換以外のDDL処理を構成します。DDLOPTIONS文は複数使用可能ですが、1つの文のみを使用することをお薦めします。複数のDDLOPTIONS文を使用する場合は、相互に上書きしないように、それぞれを一意の文にする必要があります。複数のDDLOPTIONS文は、パラメータ・ファイルに指定された順に実行されます。

Oracle GoldenGate DDLサポートにおいてDDLOPTIONSを使用する方法の詳細は、インストール環境に対応するOracle DatabaseのためのOracle GoldenGateのインストールおよび構成またはTeradataのためのOracle GoldenGateのインストールおよび構成を参照してください。

デフォルト

引数の説明を参照してください。

構文

DDLOPTIONS
[, ADDTRANDATA {ABEND | RETRYOP RETRYDELAY seconds MAXRETRIES retries}
[, DEFAULTUSERPASSWORD password [algorithm [ENCRYPTKEY DEFAULT | ENCRYPTKEY key_name]
[, CAPTUREGLOBALTEMPTABLE ]
[, DEFAULTUSERPASSWORDALIAS alias [DOMAIN domain] ]
[, GETAPPLOPS | IGNOREAPPLOPS]
[, GETREPLICATES | IGNOREREPLICATES]
[, IGNOREMAPPING]
[, MAPDERIVED | NOMAPDERIVED]
[, MAPSCHEMAS]
[, MAPSESSIONSCHEMA source_schema TARGET target_schema]
[, NOTAG]
[, PASSWORD algorithm ENCRYPTKEY {key_name | DEFAULT}]
[, REMOVECOMMENTS {BEFORE | AFTER}]
[, REPLICATEPASSWORD | NOREPLICATEPASSWORD]
[, REPORT | NOREPORT]
[, UPDATEMETADATA]
[, USEPASSWORDVERIFIERLEVEL {10|11}]
[, _USEOWNERFORSESSION]

ADDTRANDATA {ABEND | RETRYOP RETRYDELAY seconds MAXRETRIES retries}

Extract (Teradata)に有効です。

プライマリ・データベース(読取り/書込み)でサプリメンタル・ロギングを有効にする必要があるため、クラシックExtractがActive Data Guardスタンバイ・データベースから読取り中の場合はサポートされません。マルチテナント・コンテナ・データベースではサポートされません。サプリメンタル・ロギングは、ADD SCHEMATRANDATAを使用する場合に有効にする必要があります。このオプションは、スキーマレベルのサプリメンタル・ロギングが環境のオプションでない場合のみ使用するようにしてください。

Oracleで無効になりました(使用すると警告が発行されます)。

ADDTRANDATAは次の目的で使用します。

- CREATE TABLE文で作成された新しい表にOracleサプリメンタル・ロギングを自動的に有効化する。

- 列を追加または削除するALTER TABLE文の影響を受けた表のサプリメンタル・ロギングを更新する。

- 名前が変更された表のサプリメンタル・ロギングを更新する。

- 一意キーまたは主キーが追加または削除された表のサプリメンタル・ロギングを更新する。

デフォルトでは、ADDTRANDATAは無効です。追加のオプションなしでADDTRANDATAを使用した場合、デフォルトは次のとおりです。

DDLOPTIONS ADDTRANDATA RETRYOP RETRYDELAY 10 MAXRETRIES 10

ADDTRANDATA機能を使用するには、DDL取得のために、Oracle GoldenGate、データベースおよび適切な表を構成する必要があります。Oracleの場合、Oracle GoldenGate DDLオブジェクトをインストールおよび構成する必要があります。詳細は、環境に応じてOracle DatabaseのためのOracle GoldenGateのインストールおよび構成またはTeradataのためのOracle GoldenGateのインストールおよび構成を参照してください。

CREATE TABLEで作成された新しい表の場合、ADDTRANDATAは、Oracle ALTER TABLEコマンドをADD SUPPLEMENTAL LOG GROUPオプションと一緒に発行することで、GGSCIでのデフォルトのADD TRANDATAコマンドと同じ結果を生成します。Oracle GoldenGateがこのコマンドを実行するのは、CREATE TABLEまたはALTER TABLEがソースで取得されるときです。サプリメンタル・ロギングに関して特別の要件がある場合は、DDLOPTIONS ADDTRANDATAではなく、ADD TRANDATAコマンドを使用してください。デフォルトでは、サプリメンタル・ロギングを追加するALTER TABLE文は、GETREPLICATESオプションが使用されていないかぎり、ターゲットにレプリケートされません。

名前が変更された表には、ADDTRANDATAは古い名前の表のサプリメンタル・ログ・グループを削除し、新しい表のサプリメンタル・ログ・グループを作成します。ADDTRANDATAを使用していない場合に表の名前を変更するときは、次の手順を実行して、ログ・グループを作成してから名前を変更してください。

1. データベース・インタフェースまたはGGSCIのDELETE TRANDATAコマンドを使用して、サプリメンタル・ログ・グループを削除します。

DELETE TRANDATA table_name

2. 表の名前を変更します。

3. データベース・インタフェースまたはGGSCIのADD TRANDATAコマンドを使用して、新しいサプリメンタル・ログ・グループを作成します。

ADD TRANDATA table_name

新しいDDL操作の実行からADD TRANDATAの発効までの間に、ラグがあることがあります。影響を受ける表のデータをレプリケートする場合は、この間にこの表でのDML操作(INSERT、UPDATE、DELETE)を許可しないでください。許可すると、データはキャプチャされません。ADDTRANDATAの発効後にいつDMLを再開できるかを特定するには、次の操作を実行します。

1. GGSCIでExtractパラメータ・ファイルを編集します。

警告:

ローカル・オペレーティング・システムのキャラクタ・セット以外のキャラクタ・セットで作成されたパラメータ・ファイルを表示または編集するために、VIEW PARAMSまたはEDIT PARAMSコマンドを使用しないでください。GGSCI外部からファイルを表示してください。そうしない場合、内容が破損することがあります。

2. DDLOPTIONSにREPORTオプションを追加し、ファイルを保存して閉じます。

DDLOPTIONS [, DDLOPTIONS_option] [,...] , REPORT

3. Extractを停止および起動してパラメータへの変更を有効化します。

STOP EXTRACT group_name
START EXTRACT group_name

4. Extractプロセス・レポートを表示します。

VIEW REPORT group_name

5. 表にログ・グループを追加したALTER TABLE文を探し、このコマンドが発効になった時刻をメモします。次のようなエントリです。

Successfully added TRAN DATA for table with the key, table [MYSCHEMA1.MYTABLE], operation [ALTER TABLE "MYSCHEMA1"."MYTABLE" ADD SUPPLEMENTAL LOG GROUP "GGS_MYTABLE_53475" (MYID) ALWAYS  /* GOLDENGATE_DDL_REPLICATION */ ].

6. 新しい表でのDML操作を許可します。

ADDTRANDATAのオプションは次のとおりです。

ABEND

Extractは異常終了します。

RETRYOP

ExtractはRETRYDELAYおよびMAXRETRIESに基づいてコマンドを再試行します。

RETRYDELAY seconds

Extractの再試行までの待機時間を設定します。デフォルトは10秒です。最大待機時間は10,000秒です。

MAXRETRIES retries

Extractが異常終了するまでに実行する再試行回数を設定します。デフォルトは10秒です。最大再試行回数は10,000です。

DEFAULTUSERPASSWORD password [algorithm ENCRYPTKEY {key_name | DEFAULT}]
Replicatに有効です(Oracleのみ)

Oracle GoldenGate資格証明ストアが使用されていない場合に、DEFAULTUSERPASSWORDALIASオプションのかわりに使用できます。レプリケートされる{CREATE | ALTER} USER name IDENTIFIED BY password文に、ソース文で使用されているパスワードとは異なるパスワードを指定します。Replicatは、Extractがトレイルに書き込むプレースホルダを、指定されたパスワードに置き換えます。DEFAULTUSERPASSWORDを使用する場合、ExtractにはDDLOPTIONSのNOREPLICATEPASSWORDオプションを使用します。

オプションなしのDEFAULTUSERPASSWORD passwordでは、クリアテキストのパスワードを指定します。パスワードに大/小文字の区別がある場合は、そのように入力してください。

注意:
プロファイル/パスワードの検証ファンクションはSYSスキーマに存在する必要があるため、CREATE | ALTER PROFILEのレプリケーションは失敗します。これらのDDLを正常にレプリケートするには、SYSスキーマへのDDLは除外されるため、ソース/ターゲットの両方でパスワード検証ファンクションを手動で作成する必要があります。

GGSCIのENCRYPT PASSWORDコマンドでパスワードが暗号化されている場合、次のオプションを使用します。

algorithm

ENCRYPT PASSWORDコマンドでパスワードの暗号化に使用した暗号化アルゴリズムを、AES128、AES192、AES256またはBLOWFISHの中から指定します。下位互換性のためにBlowfishが必要でないかぎり、AESを使用してください。AESはBlowfishよりもセキュアです。

ENCRYPTKEY key_name

ENCKEYS参照ファイル内のユーザー作成の暗号化鍵の論理名を指定します。ENCRYPT PASSWORDがKEYNAME key_nameオプションとともに使用された場合に使用し、同じ鍵名を指定します。

ENCRYPTKEY DEFAULT

指定すると、Oracle GoldenGateでランダムな鍵が使用されます。ENCRYPT PASSWORDがKEYNAME DEFAULTオプションとともに使用された場合に使用します。

Oracle GoldenGateのセキュリティ・オプションの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

CAPTUREGLOBALTEMPTABLE
Oracleに有効

グローバル一時表(GTT) DDLをExtractに表示できるようになり、レプリケートできます。デフォルトでは、GTT DDLはExtractに表示できないため、CAPTUREGLOBALTEMPTABLEを使用することで、GTT DDLを含むようにExtractを設定できます(GTT DDLはDDL文によってフィルタ可能で、渡されるとトレイルに書き込まれます)。GTT DDLは、トレイルに存在する場合はReplicatに含まれ、DDL文によってフィルタされ、渡されると実行されます。

トリガーバージョンのExtractの場合、表がGTTかどうかに関係なく、このオプションはfalseに設定されます。

DEFAULTUSERPASSWORDALIAS alias [DOMAIN domain]
Replicatに有効です(Oracleのみ)

Oracle GoldenGate資格証明ストアが使用されていない場合に、DEFAULTUSERPASSWORDオプションのかわりに使用できます。レプリケートされたCREATE USERまたはALTER USER文のIDENTIFIED BY句のパスワードを置き換える、資格証明の別名を指定します。別名は、Oracle GoldenGate資格証明ストアの暗号化パスワードに解決されます。Replicatは、Extractがトレイルに書き込むプレースホルダを、解決されたパスワードに置き換えてからDDLをターゲットに適用します。

DEFAULTUSERPASSWORDALIASを使用する場合、ExtractにはDDLOPTIONSのNOREPLICATEPASSWORDオプションを使用します。

alias

置換パスワードとして使用されるパスワードの資格証明の別名を指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。使用する別名が不明な場合は、INFO CREDENTIALSTOREコマンドを発行して資格証明ストアの内容を調べることができます。INFO CREDENTIALSTOREを参照してください。

DOMAIN domain

資格証明ストアの指定されたユーザーに割り当てられるドメインを指定します。

Oracle GoldenGateセキュリティの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

GETAPPLOPS | IGNOREAPPLOPS
Extractに有効です。(Oracleのみ)

Replicat以外のビジネス・アプリケーションが生成したDDL操作を、Extractがトレイルまたはファイルに書き込むコンテンツに含めるかどうかを制御します。GETAPPLOPSおよびIGNOREAPPLOPSは、GETREPLICATESおよびIGNOREREPLICATESオプションとともに使用して、双方向またはカスケード構成で伝播するDDLを制御できます。

- 双方向構成では、GETAPPLOPSとIGNOREREPLICATESを使用します。UPDATEMETADATAオプションも使用する必要があります。

- カスケード構成では、DDL操作をターゲットにカスケードするシステム上で、IGNOREAPPLOPSとGETREPLICATES使用します。

デフォルトはGETAPPLOPSです。

GETREPLICATES | IGNOREREPLICATES
Extractに有効です(Oracleのみ)。Replicatが生成したDDL操作をExtractがトレイルまたはファイルに書き込むコンテンツに含めるかどうかを制御します。デフォルトはIGNOREREPLICATESです。詳細は、DDLOPTIONSのGETAPPLOPS | IGNOREAPPLOPSオプションを参照してください。

IGNOREMAPPING
Replicatに有効ですDDLがMAPPED範囲かUNMAPPED範囲かを決定する名前マッピングの評価を無効化します。このオプションにより、ソースとターゲットのスキーマ名およびオブジェクト名が一致するためマッピング機能が不要な場合に、like-to-like DDLレプリケーション構成のパフォーマンスが向上します。IGNOREMAPPINGを有効にすると、MAPPEDまたはUNMAPPED範囲を決定できず、すべてのDDL文はOTHER範囲として処理されます。ソースのスキーマおよびオブジェクト名がターゲット上で異なるスキーマおよびオブジェクト名にマッピングされている場合、このパラメータを使用しないでください。

MAPDERIVED | NOMAPDERIVED
Replicat(OracleおよびTeradata)に有効です。導出オブジェクト名のマッピング方法を制御します。

MAPDERIVED

導出オブジェクトのMAP文が存在する場合、名前はその文のTARGET句に指定されている名前にマッピングされます。それ以外の場合、名前はベース・オブジェクトを含むMAP文のTARGET句に指定されている名前にマッピングされます。MAPDERIVEDはデフォルトです。

NOMAPDERIVED

名前のマッピングを行わないようにします。NOMAPDERIVEDは、導出オブジェクトの名前を含むすべての明示的なMAP文より優先されます。

DDLレプリケーション中の導出オブジェクト処理方法の詳細は、インストールに応じてOracle DatabaseのためのOracle GoldenGateのインストールおよび構成またはTeradataのためのOracle GoldenGateのインストールおよび構成を参照してください。

MAPSCHEMAS
Replicat(OracleおよびTeradata)に有効です。MAPSESSIONSCHEMAを使用している場合のみ使用します。

- MAPSESSIONSCHEMAは、セッション・スキーマのソース・ターゲット間のマッピングを確立し、スキーマがDDLで修飾されていないオブジェクトに使用されます。

- MAPSCHEMASは、修飾されたスキーマがソースDDLに存在するが、MAPを使用したマッピングは修飾しないオブジェクトを、MAPSESSIONSCHEMAと同じセッション・スキーマ間のマッピングにマップします。そのようなオブジェクトの例には、AS SELECT句内の導出オブジェクトが含まれているOracleのCREATE TABLE AS SELECT文や、TeradataのCREATE REPLICATION RULESET文があります。

このマッピングは、MAP文で指定されたマッピング後に行われます。

例として、次のDDL文がソースOracleデータベースで発行されるとします。

create table a.t as select from b.t;

ターゲット上でのMAP文は次のようになるとします。

MAP a.*, TARGET c.*;
DDLOPTIONS MAPSESSIONSCHEMA b, TARGET b1, MAPSCHEMAS

このマッピングの結果、Replicatはターゲット上に次のDDL文を発行します。

create table c.t as select from b1.t;

- ベース表は、TARGET句(スキーマc)に従ってマップされます。

- 修飾された導出オブジェクト(SELECT FROM内の表t)は、MAPSCHEMASが存在するため、MAPSESSIONSCHEMA (スキーマb1)に従ってマップされます。

MAPSCHEMASを指定しない場合、MAPSESSIONSCHEMAのみが未修飾のオブジェクトをマップするため、導出オブジェクトは、(TARGET句で指定した)スキーマcにマップされます。

MAPSESSIONSCHEMA source_schema TARGET target_schema
Replicatに有効です(Oracleのみ)。ソースのセッション・スキーマを、ターゲット上の異なるセッション・スキーマにマッピング(変換)します。

- source_schemaは、ソース上でALTER SESSION set CURRENT_SCHEMAで設定されているセッション・スキーマです。

- target_schemaは、ターゲット上でALTER SESSION set CURRENT_SCHEMAで設定されているセッション・スキーマです。

ワイルドカードはサポートされていません。複数のMAPSESSIONSCHEMAパラメータを使用して、異なるスキーマをマップできます。

MAPSESSIONSCHEMAは、マスターまたは導出オブジェクト名に基づくすべてのスキーマ名マッピングより優先されます。

このセクション最後の使用例を参照してください。

MAPSCHEMASも参照してください。

NOTAG
Replicatに有効です

ReplicatがREDOタグ(デフォルト・タグ'00'またはDBOPTIONSパラメータのSETTAGオプションによって設定されるタグ)を使用して適用するDDLのタグ付けを禁止します。このオプションは双方向構成で使用します。双方向構成では、GETREPLICATESが使用され、Replicatが適用したDDLをメタデータのリフレッシュのためExtractがキャプチャする必要があります。

PASSWORD algorithm ENCRYPTKEY {key_name | DEFAULT}
Extractに有効です(Oracleのみ)。

DDLをトレイルに書き込む前に、ExtractにソースDDLのすべてのパスワードを暗号化させます。

algorithm

パスワードの暗号化に使用する暗号アルゴリズムを指定します。有効な値は、AES128、AES192、AES256またはBLOWFISHです。下位互換性のためにBlowfishが必要でないかぎり、AESを使用してください。AESはBlowfishよりもセキュアです。

ENCRYPTKEY key_name

ENCKEYS参照ファイル内のユーザー作成の暗号化鍵の論理名を指定します。

ENCRYPTKEY DEFAULT

指定すると、Oracle GoldenGateでランダムな鍵が使用されます。

REMOVECOMMENTS {BEFORE | AFTER}
(オプション) ExtractおよびReplicatに有効です(Oracleのみ)。DDL操作からコメントを削除するかどうかを制御します。デフォルトでは、DDLSUBSTパラメータを使用して文字列の置換で使用できるように、コメントは削除されません。詳細は、DDLSUBSTを参照してください。

REMOVECOMMENTS BEFORE

ExtractまたはReplicatによってDDL操作が処理される前にコメントを削除します。コメントは、文字列置換で使用できません。

REMOVECOMMENTS AFTER

文字列置換で使用された後にコメントを削除します。これは、REMOVECOMMENTSが指定されていない場合のデフォルト動作です。

REPLICATEPASSWORD | NOREPLICATEPASSWORD
Extractに有効です(Oracleのみ)。{CREATE | ALTER} USER user IDENTIFIED BY passwordコマンドのパスワードに適用します。

- デフォルト(REPLICATEPASSWORD)では、Oracle GoldenGateはターゲットのCREATEまたはALTER文でソース・パスワードを使用します。

- ソース・パスワードのターゲットへの送信を防ぐには、NOREPLICATEPASSWORDを使用します。

NOREPLICATEPASSWORDを使用する場合は、DDLOPTIONS文とDEFAULTUSERPASSWORDまたはReplicatパラメータ・ファイルのDEFAULTUSERPASSWORDALIASオプションを使用して、ターゲットDDL文用のパスワードを指定します。

REPORT | NOREPORT
ExtractおよびReplicat(OracleおよびTeradata)に有効です。レポート・ファイルに詳しいDDL処理情報を書き込むかどうかを制御します。デフォルトのNOREPORTでは、基本的なDDL統計をレポートします。REPORTでは、使用しているパラメータ、および処理された操作のステップバイステップの履歴をレポートに追加します。

UPDATEMETADATA
Replicatに有効です(Oracleのみ)。アクティブアクティブの双方向構成で使用します。このパラメータは、DDLが開始されたシステム上のReplicatに、もう一方のシステムにこのDDLが伝播されたため、新しいメタデータにあわせてすぐにオブジェクト・メタデータ・キャッシュを更新するように通知します。これにより、Replicatのメタデータ・キャッシュと、ローカル・データベースの現在のメタデータの同期性を維持します。

USEPASSWORDVERIFIERLEVEL {10|11}
OracleからOracleの構成でのみ有効です。DDL CREATE USER文で送信されるパスワード・ベリファイアに変更が必要かどうかを確認します。この確認を行う理由は、Oracleにはデータベース・バージョンに応じて異なるパスワード・ベリファイアがあるためです。

- 10g: user$.passwordに保持されている弱いベリファイア。

- 11g: SHA-1ベリファイア。

- 12c: SHA-2およびHTTPダイジェスト・ベリファイア。

SHA-1、SHA-2およびHTTPベリファイアは、'S:<SHA-1-verifier>;H:<http-verifier>;T:<SHA-2-verifier>'という形式でuser$.spare4に取得されます。Integrated Extractは、12cではcreate user DDL文に対して次のDDLを返します。

- 12.0.1.0では、CREATE USER username IDENTIFIED BY VALUES 'S:SHA-1;H:http;weak'を返します。

- 12.0.2.0以降では、CREATE USER username IDENTIFIED BY VALUES 'S:SHA-1;H:http;T:SHA-2;weak'を返します。

ReplicatをOracle 12cに対して実行する場合、これらのCREATE USERフォームはRDBMSレベルで処理されますが、ReplicatをOracle 10gまたは11に対して実行する場合、これらのフォームはRDBMSによって処理されません。Oracle 10gは弱いベリファイアのみを受け入れ、Oracle 11gはS:SHA-1および弱いベリファイアのみを受け入れます。

Oracle 12cに接続されたExtractに対して生成されたCREATE USER DDLを、Oracle 10gまたは11gに接続されたReplicatで使用できるようにするには、次のように、このパラメータを使用して不要なベリファイアをフィルタリングで除外できます。

- USEPASSWORDVERIFIERLEVELを10に設定した場合、弱いベリファイア以外はすべてCREATE USER DDL検証文字列からフィルタリングで除外されます。

- USEPASSWORDVERIFIERLEVELを11に設定した場合、S:SHA-1および弱いベリファイア以外はすべてCREATE USER DDL検証文字列からフィルタリングで除外されます。

例

例1

次に、MAPSESSIONSCHEMAを使用して、ソース・セッション・スキーマをターゲット上の別のスキーマにマッピングする方法を示します。

ExtractおよびReplicatで、次のようにDDL取得およびマッピングが構成されているとします。

Extract:

DDL INCLUDE OBJNAME SRC.* INCLUDE OBJNAME SRC1.*
TABLE SRC.*;
TABLE SRC1.*;
DDL INCLUDE OBJNAME SRC.* INCLUDE OBJNAME SRC1.*
TABLE SRC.*;
TABLE SRC1.*;

Replicat:

DDLOPTIONS MAPSESSIONSCHEMA SRC TARGET DST
DDLOPTIONS MAPSESSIONSCHEMA SRC1 TARGET DST1
MAP SRC.*, TARGET DST.*;
MAP SRC1.*, TARGET DST1.*;
DDL INCLUDE OBJNAME DST.* INCLUDE OBJNAME DST1.*

ソースのログイン・ユーザーによって、次のDDL文が発行されるとします。

ALTER SESION SET CURRENT_SCHEMA=SRC;
CREATE TABLE tab (X NUMBER);
CREATE TABLE SRC1.tab (X NUMBER) AS SELECT * FROM tab;

Replicatは、次のようなDDLを実行します(各コード・セグメントの前に説明を記載しています)。

-- Set session to DST, because SRC.* is mapped to DST.* in MAP statement.
ALTER SESION SET CURRENT_SCHEMA=DST;
-- Create the first TAB table in the DST schema, using the DST session schema.
CREATE TABLE DST.tab (X NUMBER);
-- Restore Replicat schema.
ALTER SESSION SET CURRENT_SCHEMA=REPUSER
-- Set session schema to DST, per MAPSESSIONSCHEMA, so that AS SELECT succeeds.
ALTER SESION SET CURRENT_SCHEMA=DST;
-- Create the DST1.TAB table AS SELECT * FROM the first table (DST.TAB).
CREATE TABLE DST1.tab (X NUMBER) AS SELECT * FROM tab;
-- Restore Replicat schema.
ALTER SESSION SET CURRENT_SCHEMA=REPUSER

MAPSESSIONSCHEMAを指定しない場合、SELECT * FROM TABは存在しないSRC.TAB表からの選択を試み、失敗します。デフォルトでは、ソース・スキーマを、ターゲットDDL文の未修飾のオブジェクトに適用します。その場合、DDL文は次のようになり、失敗します。

-- Set session to DST, because SRC.* is mapped to DST.* in MAP statement.
ALTER SESION SET CURRENT_SCHEMA=DST;
-- Create the first TAB table in the DST schema, using the DST session schema.
CREATE TABLE DST.tab (X NUMBER);
-- Restore Replicat schema.
ALTER SESSION SET CURRENT_SCHEMA=REPUSER
-- Set session schema to SRC, because TAB in the AS SELECT is unqualified-- and SRC is the source session schema.
ALTER SESION SET CURRENT_SCHEMA=SRC;
-- Create DST1.TAB AS SELECT * from SRC.TAB (SRC=current session schema).
CREATE TABLE DST1.tab (X NUMBER) AS SELECT * FROM tab;
-- SRC.TAB does not exist.
-- Abend with an error unless the error is handled by a DDLERROR statement.

例2

次に、DEFAULTUSERPASSWORDALIASを使用して、レプリケートされる{CREATE | ALTER} USER name IDENTIFIED BY password文にソース文で使用されたものとは異なるパスワードを指定する方法を示します。この例では、別名ddlaliasが資格証明ストアのtargetドメインにあります。

DDLOPTIONS DEFAULTUSERPASSWORDALIAS ddlalias DOMAIN target

3.44 DDLSUBST

適用対象

ExtractおよびReplicat

説明

DDLSUBSTパラメータでは、DDL操作内の文字列を置換します。たとえば、ある表の名前を別の名前に置換したり、コメント内の文字列を置換したりできます。検索では、大/小文字は区別されません。文字列の中で引用符を表すには、二重引用符を使用します。

DDLSUBST使用のガイドライン

- DDLSUBSTは、列名およびデータ型をターゲット上の別の列名やデータ型に変換する目的では使用しないでください。この方法でターゲット・オブジェクトの構造を変更すると、データがターゲットにレプリケートされたときにエラーが発生します。同様に、DDLSUBSTは、ターゲットDDL文の所有者および表名を変更する目的では使用しないでください。レプリケートされるDDL操作を異なるターゲット・オブジェクトにマップするときは、常にMAP文を使用してください。

- DDLSUBSTは、パラメータ・ファイル内における相対順位にかかわらず、常にDDLパラメータよりも後に実行されます。フィルタリングが先に実行されるため、文字列置換で使用する基準に対応するフィルタリング基準を使用してください。次のパラメータ文を例に取り上げます。

DDL INCLUDE OBJNAME fin.*
DDLSUBST 'cust' WITH 'customers' INCLUDE OBJNAME sales.*

この例では、INCLUDE文とDDLSUBST文のオブジェクトが異なるため、文字列置換は発生しません。finに所有されているオブジェクトはOracle GoldenGate DDL構成に含まれていますが、salesに所有されているオブジェクトは含まれていません。

- DDLSUBSTパラメータは、複数使用できます。これらは、パラメータ・ファイルにリストされた順に実行されます。

- コメントを含むOracle DDLに対して、コメントの文字列置換を実行する場合、DDLOPTIONSパラメータとともにREMOVECOMMENTS BEFOREオプションを使用しないでください。REMOVECOMMENTS BEFOREを使用すると、文字列置換が発生する前にコメントを削除します。コメントを削除し、かつ文字列置換を行う場合は、REMOVECOMMENTS AFTERオプションを使用してください。

- データベースによって課される制限を除き、置換する文字列に最大サイズの制限はありません。文字列のサイズがデータベースの制限を越えると、この操作を実行しているExtractまたはReplicatプロセスは異常終了します。

デフォルト

置換なし

構文

DDLSUBST 'search_string' WITH 'replace_string'
[INCLUDE inclusion_clause | EXCLUDE exclusion_clause]

'search_string'

ソースDDL文に含まれる置換対象の文字列。文字列は一重引用符で囲みます。文字列で引用符を表すには、二重引用符を使用します。

WITH

必須のキーワード。

'replace_string'

ターゲットDDLで置換文字列として使用する文字列。文字列は一重引用符で囲みます。文字列で引用符を表すには、二重引用符を使用します。

INCLUDE inclusion_clause | EXCLUDE exclusion_clause

1つまたは複数のINCLUDEおよびEXCLUDE文を指定して、文字列置換ルールを適用するDDL操作をフィルタリングします。構文および使用方法は、DDLのフィルタリング・オプションを参照してください。

例

例1

次の例では、finスキーマ内の表の文字列custを文字列customersに置換します。

DDLSUBST 'cust' WITH 'customers'
INCLUDE ALL OBJTYPE 'table' OBJNAME fin.*

例2

次の例では、DDLコマンドに単語logfileが含まれている場合にのみ新しいディレクトリに置換します。検索文字列が複数回検出された場合、置換文字列は複数回挿入されます。

DDLSUBST '/file1/location1' WITH '/file2/location2' INCLUDE INSTR 'logfile'

例3

次の例では、複数のDDLSUBST文を使用します。文はリストされている順番に実行されます。

DDLSUBST 'a' WITH 'b' INCLUDE ALL
DDLSUBST 'b' WITH 'c' INCLUDE ALL

前述の最終結果では、すべてのaおよびb文字列がcに置換されます。

3.45 DDLRULEHINT

適用対象

GLOBALS

説明

DDLRULEHINTパラメータでは、RULEヒントをDDLトリガーに追加します。たとえば、RULE (/*+NO_UNNEST*/)ヒントを追加すると、SQL問合せを実行する際のトリガーのパフォーマンスを向上させることができます。

また、define _ddl_rule_hintパラメータをparams.sqlファイルで使用してヒントを追加することもできます。たとえば、define _ddl_rule_hint = '/*+NO_UNNEST*/'のように指定します。

デフォルト

なし

構文

DDLRULEHINT hint_syntax

hint_syntax

ヒントの構文。ヒントの構文では空白は使用できません。

例

DDLRULEHINT /*+NO_UNNEST*/

3.46 DDLTABLE

適用対象

GLOBALS

説明

DDLTABLEパラメータでは、DDL履歴表の名前をデフォルトのGGS_DDL_HIST以外にする場合に、その名前を指定します。DDL履歴表には、Oracle GoldenGateに処理されたDDL操作の履歴が保持されます。

履歴表の名前は、params.sqlスクリプトのddl_hist_tableパラメータにも指定する必要があります。このスクリプトは、ルートOracle GoldenGateインストール・ディレクトリにあります。

このパラメータは、キャプチャの構成がOracle GoldenGate DDLトリガーを使用してDDLレプリケーションをサポートするOracleデータベースのみで有効です。Oracle GoldenGate DDLオブジェクトの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

デフォルト

GGS_DDL_HIST

構文

DDLTABLE table_name

table_name

DDL履歴表の完全修飾名。2つの部分からなる名前(schema.table)を指定できます。コンテナ・データベースに格納される場合は、3つの部分からなる名前(container.schema.table)を指定できます。

例

DDLTABLE GG_DDL_HISTORY

3.47 DECRYPTTRAIL

適用対象

Extractデータ・ポンプおよびReplicat

説明

DECRYPTTRAILパラメータでは、トレイル・ファイルまたは抽出ファイルのデータを復号化します。このパラメータは次の場合に必要です。

- マスター・キーとウォレットの方法でトレイルが暗号化されているとき、出力トレイルをデータ・ポンプに書き込む際にデータを復号化する場合のみ、データ・ポンプでDECRYPTTRAILを使用します。それ以外の場合、このパラメータは必要ありません。データ・ポンプがさらにレコードを処理する必要がある場合、データを自動的に復号化します。その後、再暗号化してから出力トレイルに書き込みます。マスター・キーとウォレットの方法が使用されるとき、Replicatは必ずデータを自動的に復号化します。

- DECRYPTTRAILがデータ・ポンプで使用されるとき、暗号化する必要がある出力トレイルを指定する前に、ENCRYPTTRAILパラメータを使用します。

- トレイルがENCKEYSの方法で暗号化されているとき、Replicatでデータを復号化してからターゲットに適用するためにDECRYPTTRAILを使用します。

データの暗号化はENCRYPTTRAIL | NOENCRYPTTRAILパラメータによって制御されます。

Oracleの場合、ウォレット・ベースの暗号化を使用する場合、暗号は証跡ファイル・ヘッダーに記録されるため、DECRYPTTRAILに暗号は必要ありません。

トレイルまたはファイルの暗号化の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

DECRYPTTRAIL [{AES128 | AES192 | AES256}]

DECRYPTTRAIL

トレイルまたはファイルがオプションなしのENCRYPTTRAILで暗号化され、256鍵バイト置換を使用する場合のみ、オプションなしで有効です。

{AES128 | AES192 | AES256}

マスター・キーとウォレット方式およびENCKEYSの方法で有効です。トレイルまたはファイルの暗号化にENCRYPTTRAILで使用されたのと同じAES暗号を指定します。

例

例1

次に、ENCKEYSの方法の例を示します。

DECRYPTTRAIL AES192

例2

マスター・キーとウォレット方式を使用した復号化に必要なのは次の指定だけです。

DECRYPTTRAIL

3.48 DEFERAPPLYINTERVAL

適用対象

Replicat

説明

DEFERAPPLYINTERVALパラメータでは、Replicatが取得したトランザクションをターゲット・データベースに適用するまでの待機時間を設定します。Replicatは、トランザクションをいつ適用するかを決定するために、ソース・システムのローカルGMT時間で記録されているソース・ソーストランザクションのコミット・タイムスタンプにこの遅延値を追加します。

DEFERAPPLYINTERVALは、ソース・データに対して行われた誤った変更の伝播の防止や、異なるタイムゾーン間でのデータ到着の制御、またターゲットにデータを適用する前に他の計画イベントを実行する時間を確保するなどの目的に使用できます。DEFERAPPLYINTERVALを使用すると、ターゲット・データに意図的にレイテンシを発生させることになるため、ターゲット・アプリケーションで時間が重視される場合には、慎重に使用する必要があります。

Replicatが操作を延期しているかどうかを判断するには、SEND REPLICATコマンドとSTATUSオプションを使用して、Waiting on deferred applyのステータスを確認します。

注意:

TCPSOURCETIMERパラメータを使用している場合は、ソース・トランザクションとターゲット・トランザクションのタイムスタンプが数秒異なり、Replicatがトランザクションを数秒間オープンにしておく(したがって行ロックしている)可能性があります。この小さな差異によって、パフォーマンスに大きな影響が及ぶことはないはずです。

デフォルト

0 (遅延なし)

構文

DEFERAPPLYINTERVAL n unit

n

遅延時間を示す数値。最小遅延時間は、EOFDELAYパラメータで設定されている値です。最大日数は7日間です。

unit

遅延時間の単位。次の単位を使用できます。

S | SEC | SECS | SECOND | SECONDS | MIN | MINS | MINUTE | MINUTES | HOUR | HOURS | DAY | DAYS

例

この例では、Replicatにトランザクションの適用まで10時間待機させます。

DEFERAPPLYINTERVAL 10 HOURS

トランザクションがソースのGMT時間08:00:00に完了している場合、このトランザクションは同日のターゲットのGMT時間18:00:00に適用されます。

3.49 DEFSFILE

適用対象

DEFGEN

説明

DEFSFILEパラメータでは、DEFGENがデータ定義を書き込むファイルの名前を指定します。デフォルトでは、データ定義ファイルは、ローカル・オペレーティング・システムのキャラクタ・セットで書き込まれます。キャラクタ・セットを変更するには、CHARSETオプションを使用します。

定義ファイルの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

DEFSFILE file_name [APPEND | PURGE] [CHARSET character_set] [FORMAT RELEASE major.minor]

file_name

相対ファイル名または完全修飾ファイル名。このファイルはDEFGENを実行するときに作成されます。

APPEND

指定したファイルがすでに存在している場合、DEFGENに、既存のコンテンツの末尾に(現在の実行から)新しいコンテンツを書き込ませます。すでに存在している定義ファイルが古いOracle GoldenGateリリース・バージョンである場合は、FORMAT RELEASEオプションを既存のファイルと同じバージョンに設定するとエラーを防ぐことができます。そうしないと、DEFGENは新しいメタデータ機能を追加しようとして異常終了します。APPENDを使用する場合、次の制約があります。

- 既存のデータ定義ファイルがOracle GoldenGate 11.2.1より古いフォーマットの場合、DEFGENは、マルチバイトおよび特殊文字を含む表名および列名がサポートされていない古いフォーマットで、表定義を追加します。

- 既存のデータ定義ファイルがリリース11.2.1で導入されたフォーマットより新しい場合、DEFGENは、ファイルの既存のキャラクタ・セットで表定義を追加します。

- 既存のファイルがバージョン11.2以前の場合は、ファイルが作成されたときに、3つの部分からなるオブジェクト名がDEFGENでサポートされていません。新しいメタデータに3つの部分からなる名前が含まれるとエラーが発生します。DEFGENパラメータ・ファイルでNOCATALOGパラメータを使用してコンテナまたはカタログの部分を削除すると、Oracleコンテナ・データベースまたはSQL/MXのオブジェクトを指定できます。

PURGE

現在の実行で新しいコンテンツを書き込む前に、DEFGENに指定したファイルをパージさせます。PURGEを使用すると、古いバージョンのDEFGENによって作成された既存の定義ファイルを、新しい機能(3つの部分からなるオブジェクト名など)をサポートする新しいメタデータで上書きできます。

CHARSET character_set

定義ファイルを指定したキャラクタ・セットで生成します。CHARSETを指定しない場合、オペレーティング・システムのデフォルトのキャラクタ・セットが使用されます。リリース11.2.1以降の定義ファイルにAPPENDモードが指定されている場合、CHARSETは無視され、既存の定義ファイルのキャラクタ・セットが使用されます。

FORMAT RELEASE major.minor

DEFGENによって定義ファイルに送られる定義のメタデータ・フォーマットを指定します。リーダー・プロセスは、メタデータに基づいて、ファイル・レコードが自身がサポートしているバージョンかどうかを把握します。メタデータのフォーマットは、Oracle GoldenGateプロセスのリリースによって異なります。古いOracle GoldenGateリリースには、新しいリリースとは異なるメタデータが含まれます。定義ファイルを使用するプロセスが、現在のOracle GoldenGateバージョンよりも古い場合は、FORMATを使用します。

- FORMATは必須のキーワードです。

- RELEASEはOracle GoldenGateのリリース・バージョンを指定します。majorはメジャー・バージョン番号で、minorはマイナー・バージョン番号です。X.xには、Oracle GoldenGateの現在または以前のGenerally Available (GA)リリースを指定する必要があります。有効な値は、9.0から現在のOracle GoldenGate X.xバージョン番号(たとえば11.2または12.1)です。(9.0以前のOracle GoldenGateリリースを使用している場合は、9.0または9.5を指定してください。)
リリース・バージョンは、プログラムによって適切な内部互換性レベルにマッピングされます。デフォルトは、このトレイルに書き込むプロセスの現在のバージョンです。12.1より前のRELEASEのリリースでは、3つの部分からなるオブジェクト名はサポートされません。

例

DEFSFILE ./dirdef/orcldef CHARSET ISO-8859-11 FORMAT RELEASE 11.2

3.50 DISCARDFILE | NODISCARDFILE

適用対象

ExtractおよびReplicat

説明

DISCARDFILEパラメータでは、次の操作を実行します。

- 破棄ファイルの名前、場所、サイズおよび書込みモードをカスタマイズします。デフォルトでは、プロセスがGGSCIのSTARTコマンドによって開始されると常に破棄ファイルが生成されます。デフォルトのプロパティを保つ場合、DISCARDFILEパラメータは必要ありません。

- プロセスがオペレーティング・システムのコマンドラインから開始され、破棄ファイルがデフォルトで作成されない処理方法において、破棄ファイルの使用を指定します。

NODISCARDFILEパラメータでは、破棄ファイルの使用が無効になります。NODISCARDFILEをDISCARDFILEとともに使用すると、プロセスが異常終了します。

DISCARDFILEを使用するときは、PURGEまたはAPPENDオプションを使用します。それ以外の場合、各プロセス実行を開始する前に、異なる破棄ファイル名を指定する必要があります(いずれかオプションの指定がないと、Oracle GoldenGateは既存の破棄ファイルに書込みを行わなずに終了するため)。

破棄ファイルが新しいファイルにロールオーバーされる頻度を制御する方法は、DISCARDROLLOVERを参照してください。

破棄ファイルの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

プロセスがGGSCIのSTARTコマンドによって開始されると、次のように破棄ファイルが生成されます。

- ファイルの名前には、そのファイルを生成したプロセスの名前と.dsc拡張子が付きます。プロセスが調整Replicatの場合は、スレッドごとに1ファイルが生成されます。各ファイル名には、対応するスレッドのスレッドIDが付加されます。

- ファイルは、Oracle GoldenGateインストール・ディレクトリのdirrptサブディレクトリに作成されます。

- 最大ファイル・サイズは50MBです。

- 起動時に破棄ファイルが存在する場合、消去してから新しいデータが書き込まれます。

- 最大ファイル名はディレクトリを含めて250文字です。

オペレーティング・システムのコマンドラインを使用してプロセスを開始した場合、デフォルトでは破棄ファイルは生成されません。

構文

DISCARDFILE { [file_name]
[, APPEND | PURGE]
[, MAXBYTES n | MEGABYTES n] } |
NODISCARDFILE

DISCARDFILE

破棄ファイルの名前または他の属性の変更を指定します。

file_name

破棄ファイルの相対名または完全修飾名(実際のファイル名を含む)。調整Replicatの場合は、最大5文字のファイル名を指定します。各ファイル名に、ファイルを書き込むスレッドのIDが付加されるためです。ファイルをOracle GoldenGateのディレクトリに保存する場合、Oracle GoldenGateはOracle GoldenGateインストール・ディレクトリで名前を修飾するため、相対パス名で十分です。

APPEND

ファイルがすでに存在する場合に、既存のコンテンツに新しいコンテンツを追加します。APPENDもPURGEも使用されない場合は、各プロセスの実行を開始する前に別の破棄ファイル名を指定する必要があります。

PURGE

新しいコンテンツを書き込む前にファイルをパージします。PURGEもAPPENDも使用されない場合は、各プロセスの実行を開始する前に別の破棄ファイル名を指定する必要があります。

MAXBYTES n

ファイルの最大サイズを設定します(バイト)。有効な値は1から2147483646です。デフォルトは50000000です。指定したサイズを超えると、プロセスは異常終了します。

MEGABYTES n

ファイルの最大サイズを設定します(MB)。有効な値は1から2147です。デフォルトは50MBです。指定したサイズを超えると、プロセスは異常終了します。

NODISCARDFILE

プロセスで破棄ファイルが作成されません。

例

例1

この例は、デフォルトでないファイル名と拡張子、デフォルトでない書込みモードおよびデフォルトでない最大ファイル・サイズを指定します。この例は、オンライン(GGSCIで起動)プロセスの場合に破棄ファイルのデフォルト・プロパティを変更する方法を示します。または、オペレーティング・システムのコマンドラインから開始されて、デフォルトでは破棄ファイルのないプロセスの場合に、破棄ファイルの使用を指定します。

DISCARDFILE .dirrpt/discard.txt, APPEND, MEGABYTES 20

例2

この例は、オンライン・プロセス(GGSCIで起動)の場合にデフォルトの破棄ファイルの書込みモードのみを変更します。

DISCARDFILE .dirrpt/finance.dsc, APPEND

例3

この例は、オンライン・プロセス(GGSCIで起動)の場合に破棄ファイルの使用を無効にします。

NODISCARDFILE

3.51 DISCARDROLLOVER

適用対象

ExtractおよびReplicat

説明

DISCARDROLLOVERパラメータでは、破棄ファイルのエージングのスケジュールを設定します。エージング・スケジュールを設定することで、長時間または連続的な実行の場合に、破棄ファイルのサイズが上限に達してプロセスが異常終了することを防止できます。また、アーカイブ・ルーチンに追加されるアーカイブを予測できます。

DISCARDROLLOVERのエージング・ポイントに到達すると、新しい破棄ファイルが作成され、古いファイルは次に説明するGROUPn.extensionフォーマットの名前に変更されます。

- GROUPは、ExtractまたはReplicatグループ名です。

- nは、新しいファイル作成のたびに1ずつ増分される数です。たとえば、myext0.dsc、myext1.dsc、myext2.dscなどのようになります。

- extensionはファイル拡張子です(.dscなど)。

時刻、曜日、またはその両方を指定できます。時刻(ATオプション)のみで曜日(ONオプション)を指定しない場合、指定した時刻に毎日破棄ファイルが生成されます。

DISCARDROLLOVERの使用の有無にかかわらず、破棄ファイルは常にプロセス実行の開始時にロールオーバーします。

NODISCARDFILEパラメータをDISCARDROLLOVERパラメータとともに使用すると、プロセスが異常終了します。

破棄ファイルの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

無効。デフォルトでは、破棄ファイルはプロセスの開始時にロールオーバーされます。

構文

DISCARDROLLOVER
{AT hh:mi |
ON day |
AT hh:mm ON day}

AT hh:mi

ファイルをエージングする時刻。

次の値が有効です。

- hhは、00から23までの時間です。

- mmは00から59までの分です。

ON day

ファイルをエージングする曜日。

次の値が有効です。

SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY

大/小文字は区別されません。

例

例1

DISCARDROLLOVER AT 05:30

例2

DISCARDROLLOVER ON friday

例3

DISCARDROLLOVER AT 05:30 ON friday

3.52 DOWNREPORT

適用対象

Manager

説明

DOWNREPORTMINUTESまたはDOWNREPORTHOURSパラメータでは、Managerが実行中でないExtractおよびReplicatプロセスをレポートする間隔を指定します。エラー・ログには、プロセスが開始または終了するたびにイベントが生成されますが、ログが大きい場合には、こうしたメッセージは見逃されてしまいがちです。DOWNREPORTMINUTESおよびDOWNREPORTHOURSは、停止したプロセスが見逃されないように、定期的にレポートします。

DOWNREPORTが明示的に指定され、CHECKMINUTESパラメータの値がDOWNREPORTの値よりも大きい場合、CHECKMINUTESはDOWNREPORTの値を取得します。

実行中のプロセスをレポートするには、UPREPORTパラメータを使用します。

デフォルト

停止したプロセスをレポートしない。

構文

DOWNREPORTMINUTES minutes | DOWNREPORTHOURS hours

minutes

実行中でないプロセスをレポートする間隔(分)。

hours

実行中でないプロセスをレポートする間隔(時間)。

例

次の例では、30分間隔でレポートが生成されます。

DOWNREPORTMINUTES 30

3.53 DSOPTIONS

適用対象

Extract

説明

DSOPTIONSパラメータでは、Teradata Access Module (TAM)を使用するExtractの抽出処理オプションを指定します。Teradata抽出のためにOracle GoldenGateを構成する方法の詳細は、TeradataのためのOracle GoldenGateのインストールおよび構成を参照してください。このパラメータを使用することは、TRANLOGOPTIONSパラメータを使用することと同じであるため、オプションの多くはTRANLOGOPTIONSに説明されています。

デフォルト

なし

構文

DSOPTIONS
[CHECKOPCOMPLETE]
[CHECKTRANDATA]
[COMMITTEDTRANLOG]
[CREATETRANLOG]
[EXCLUDETRANS]
[EXCLUDEUSER]
[GETMETADATAFROMVAM]
[IGNOREMETADATAFROMVAM]
[NOCHECKPOINTERROR]
[NOCHECKTRANDATA]
[RESTARTAPPEND]
[VAMCOMPATIBILITY]

COMMITTEDTRANLOG

(最大パフォーマンス・モード)トランザクション・データをディスクに永続化しないように指定します。TAMがExtractプロセスにトランザクション・データの変更を送信すると、Extractプロセスはトランザクションのコミット順に標準のOracle GoldenGateトレイルにこれらのデータを保存します。トレイルは、Replicatまたはデータ・ポンプExtractグループが読み取ることができます。

CREATETRANLOG

(最大保護モード) ExtractにVAMトレイル(ローカル・トレイル)を作成させます。トランザクション・データの変更は、VAMソートExtractによる次の処理のために、VAMトレイルに永続化されます。データは、様々なトランザクションからの変更レコードをインタリーブするログスタイル・フォーマットでVAMトレイルに書き込まれます。このオプションは、Teradata Access Module(TAM)とインタフェースを取り、VAMトレイルへの書込みを行うプライマリExtractプロセスに対して使用します。VAMトレイルは、GGSCIのADD EXTTRAILコマンドで指定します。

SORTTRANLOG

(最大保護モード)Extractにトランザクションのソート・ファンクションを実行させます。このオプションは、プライマリExtractプロセスによって移入されたVAMトレイルを読み取るVAMソートExtractグループに対して使用します。VAMソートExtractは、Oracle GoldenGateによる次の処理の前に、インタリーブされた操作を正しい準備/コミット/ロールバック・トランザクション単位にソートします。

RESTARTAPPEND

(最大パフォーマンス・モードおよび最大保護モード) Extractの再起動時に、前回の実行で書き込んだデータを書き換えるかわりに、Oracle GoldenGateトレイルの末尾にデータを追加させます。このオプションは、COMMITTEDTRANLOGまたはCREATETRANLOG引数とともに使用します。

VAMCOMPATIBILITY 1

(最大パフォーマンス・モードおよび最大保護モード)値1は元のVAM APIメタデータ構造が使用中であることを意味します。この構造は元々Teradata用に作成され、他のデータベースとは別々の実装であり、Teradataは依然としてこのレベルを使用します。Extractとの下位互換性を維持するため、以前のバージョンのTAMモジュールを、VAMバージョニングが含まれる以後のリリースのExtractに対して実行中の場合、手動でVAMCOMPATIBILITYを1に設定することが必要なときがあります。VAMCOMPATIBILITY 1が必須なのに設定されていない場合、Extractはメッセージを示して異常終了します。

3.54 DYNAMICPORTLIST

適用対象

Manager

説明

DYNAMICPORTLISTパラメータでは、次のローカルOracle GoldenGateプロセスがリモートOracle GoldenGateプロセスとの通信のためにバインドできる、使用可能なポートのリストを指定します。

- Collector: 受信データを受け取るためにリモートExtractと通信します。

- Replicat: 初期ロード・タスク中のデータを受け取るためにリモートExtractと通信します。

- パッシブExtract: リモートCollectorと通信します。

- GGSCI: リモート・コマンドを発行します。

プロセスをリストに追加するためのManagerの停止および再起動を伴わないプロセス数の増加に対応するように、十分なポートを指定します。個別のポート、ポートの範囲、またはその両方を指定できます。

デフォルト

なし

構文

DYNAMICPORTLIST {port | port-port} [ , ...]

port

割当て可能なポート番号。ポート・エントリの最大数は5000です。

- 複数のポートを指定するには、カンマ区切りリストを使用します。例:

7830, 7833

- ポート範囲を指定するには、ダッシュ(-)を使用して範囲の最初のポートと最後のポートを区切ります。ダッシュの前後に空白を入力しないでください。例:

7830-7835

- ポート範囲および個別ポートを指定するには、範囲と個別ポート番号の間にカンマを置きます。例:

7830-7835, 7839

例

DYNAMICPORTLIST 7820-7830, 7833, 7835

3.55 DYNAMICRESOLUTION | NODYNAMICRESOLUTION

適用対象

ExtractおよびReplicat

説明

DYNAMICRESOLUTIONおよびNODYNAMICRESOLUTIONパラメータでは、表名の解決方法を制御します。

デフォルトのDYNAMICRESOLUTIONでは、TABLEまたはMAP文で指定された表が多数ある場合に、高速なプロセス起動を可能にします。処理する必要があるトランザクション・レコードのメタデータを取得するために、Oracle GoldenGateはデータベースに問い合せて、関連する表のレコードを構築します。DYNAMICRESOLUTIONを指定すると、一度にすべての表でなく、一度に1つの表のレコードが構築されます。Extractがトランザクション・ログ内でオブジェクトIDを最初に検出したときに、特定の表のメタデータが追加されるのに対して、他の表のレコード構築は、オブジェクトIDが検出されるまで延期されます。DYNAMICRESOLUTIONは、WILDCARDRESOLVE DYNAMICと同様に動作します。

NODYNAMICRESOLUTIONを指定すると、起動時に(すべての表の)オブジェクト・レコード全体が構築され、これはデータベースが大規模な場合、多くの時間がかかることがあります。このオプションは、Teradataではサポートされていません。NODYNAMICRESOLUTIONは、WILDCARDRESOLVE IMMEDIATEと同様に動作します。

詳細は、WILDCARDRESOLVEを参照してください。

デフォルト

DYNAMICRESOLUTION

構文

DYNAMICRESOLUTION | NODYNAMICRESOLUTION

3.56 EBCDICTOASCII

適用対象

Extractデータ・ポンプおよびReplicat

説明

EBCDICTOASCIIパラメータでは、z/OSシステム上のDB2ターゲット・データベースに送信する際に、入力トレイル内の文字データをEBCDICからASCII形式に変換します。このパラメータを指定して、すべてのEBCDIC列およびユーザー・トークン・データのASCIIへの変換をリクエストできます。このパラメータはSOURCEDBパラメータの前に指定する必要があります。このパラメータは、入力トレイル・ファイルがリリースv10.0より前のExtractによって作成された場合にのみ必要です。それ以外の場合、変換は自動的に行われるため、無視されます。

バージョン11.2.1より、データ・ポンプによる変換はできません。

デフォルト

なし

構文

EBCDICTOASCII

3.57 ENABLECATALOGNAMES

適用対象

GLOBALS

説明

ENABLECATALOGNAMESでは、Oracle GoldenGateが、SQL/MXデータベースの3つの部分からなるオブジェクト名をサポートできるようにします。3つの部分からなる名前では、スキーマとオブジェクトの名前にカタログを含めます。USEENABLECATALOGNAMESは、他のすべてのデータベースでは無視されます。

デフォルト

無効

構文

ENABLECATALOGNAMES

3.58 ENABLEMONITORING

適用対象

GLOBALS

説明

ENABLEMONITORINGパラメータでは、Oracle GoldenGate MonitorからOracle GoldenGateインスタンスのモニタリングを有効化します。Managerに、ステータスおよびその他の情報をOracle GoldenGate Monitorクライアントに提供するモニタリング・ポイントを公開するように指示します。モニタリング・ポイントからOracle GoldenGate Monitorサーバーに情報を送信するJavaエージェントを制御するコマンドの詳細は、Oracle GoldenGateデータ・ストア・コマンドの概要を参照してください。

特定のプラットフォームでモニタリングを有効化する前に、Oracle GoldenGate Monitorの管理を参照して、そのオペレーティング・システムがサポートされていることを確認してください。このガイドには、Oracle GoldenGate Monitorのインストールおよび構成に関する方法も記載されています。Oracle GoldenGate Monitorの使用に関するヘルプ情報は、オンライン・ヘルプを参照してください。

このパラメータは、NonStopまたはSQL/MXには無効です。

注意:

多数のOracle GoldenGateプロセス(約400)のモニタリングがUNIXシステムで有効になっていると、許可されている共有メモリーの最大容量のシステム制限を超過することがあります。Managerから次のようなメッセージが返されます。

WARNING OGG-01934  Datastore repair failed" reported during "start...

この場合は、カーネル・パラメータkernel.shmallをオペレーティング・システムのデフォルト値の8倍に増やしてください。

デフォルト

無効

構文

ENABLEMONITORING

3.59 ENABLE_HEARTBEAT_TABLE | DISABLE_HEARTBEAT_TABLE

適用対象

Extract、ReplicatおよびGLOBALS

説明

ENABLE_HEARTBEAT_TABLEとDISABLE_HEARTBEAT_TABLEコマンドでは、Oracle GoldenGateプロセスでGG_HEARTBEAT表のレコードを処理するかどうかを指定します。GLOBALSとして指定されている場合、特定のプロセスによってオーバーライドされないかぎり、インストール全体に当てはまります。

デフォルト

ENABLE_HEARTBEAT_TABLE

構文

ENABLE_HEARTBEAT_TABLE | DISABLE_HEARTBEAT_TABLE

ENABLE_HEARTBEAT_TABLE

Oracle GoldenGateプロセスによるGG_HEARTBEAT表のレコードの処理を有効にします。これはデフォルトです。

DISABLE_HEARTBEAT_TABLE

Oracle GoldenGateプロセスによるGG_HEARTBEAT表のレコードの処理を無効にします

3.60 ENCRYPTTRAIL | NOENCRYPTTRAIL

適用対象

Extract

説明

ENCRYPTTRAILおよびNOENCRYPTTRAILパラメータでは、トレイルまたは抽出ファイルに書き込まれるデータをOracle GoldenGateが暗号化するかどうかを制御します。

ENCRYPTTRAILでは、次の暗号化方法がサポートされます。

- マスター・キーとウォレット方式: 各トレイル・ファイルに対してワンタイムAES鍵を生成し、それを使用して内容を暗号化します。生成されたワンタイム鍵は、マスター・キーによって暗号化され、トレイル・ファイル・ヘッダーに保管されます。

- ENCKEYSの方法: AES暗号化鍵を生成して、指定の名前でENCKEYSファイルに格納し、Oracle GoldenGateがその鍵を使用してトレイル・ファイルの内容を直接暗号化または復号化するように構成します。

これらの暗号化方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。ENCRYPTTRAILの要件はこれらの方法で異なります。

Extractパラメータ・ファイル内の次のパラメータで指定されるローカルおよびリモートのトレイルで暗号化を使用できます。

RMTTRAIL

EXTTRAIL

Extractパラメータ・ファイル内の次のパラメータで指定しされるローカルおよびリモートの抽出ファイルで暗号化を使用できます。

RMTFILE

EXTFILE

ENCRYPTTRAILおよびNOENCRYPTTRAILは、トレイルまたはファイルに固有です。一方のパラメータは、もう一方のパラメータが見つかるまで、パラメータ・ファイル内でそれ以降のすべてのトレイルまたは抽出ファイルに影響します。このパラメータは、適用するトレイルのパラメータ・エントリの前に配置する必要があります。

ENCRYPTTRAILおよびNOENCRYPTTRAILは、ASCIIフォーマットでファイルにデータを書き込むためにFORMATASCIIを使用しているときは使用できません。トレイルまたはファイルは、デフォルトのOracle GoldenGate正規フォーマットで書き込まれる必要があります。

ENCRYPTTRAILでは、すべてのデータ・リンクに対するトレイル・データとファイルそのもの中のトレイル・データが暗号化されます。データ・ブロックのみが暗号化されます。ユーザー・トークンは暗号化されません。

デフォルト

NOENCRYPTTRAIL

構文

ENCRYPTTRAIL [{AES128 | AES192 | AES256}] | NOENCRYPTTRAIL]

ENCRYPTTRAIL

オプションなしのENCRYPTTRAILでは、256鍵バイト置換AES256をすべてのデータベース・タイプのデフォルトとして指定します(ただし、iSeries、z/OSおよびNonStopプラットフォームではAdvanced Encryption Standard (AES)暗号化がサポートされていないため、これらのプラットフォームは除きます)。

{AES128 | AES192 | AES256}

使用するAES暗号化鍵の長さを指定します。これは、高度なデータ・セキュリティを必要とする政府や他の組織が使用する、対称鍵の暗号化標準です。このオプションは、iSeries、z/OSおよびNonStopプラットフォームではサポートされていません。

マスター・キーとウォレット方式とENCKEYSの方法のどちらでも、ファイルを暗号化するために次のAES暗号の1つを指定する必要があります。

- AES128は、ブロック・サイズが128ビットでキー・サイズが128ビットです。

- AES192は、ブロック・サイズが128ビットでキー・サイズが192ビットです。

- AES256は、ブロック・サイズが128ビットでキー・サイズが256ビットです。

32ビット・プラットフォーム上のOracle以外のデータベースにAES暗号化を使用するには、プロセスを開始する前に、環境変数として、Oracle GoldenGateインストール・ディレクトリのlibサブディレクトリのパスを指定する必要があります。これは64ビット・プラットフォームでは必要ありません。次のようにパスを設定します。

- UNIX: LD_LIBRARY_PATHまたはSHLIB_PATH変数への入力として、パスを指定します。例:

setenv LD_LIBRARY_PATH ./lib:$LD_LIBRARY_PATH

- Windows: PATH変数にパスを追加します。

SETENVパラメータを使用して、プロセスのセッション変数として設定できます。

NOENCRYPTTRAIL

トレイルは暗号化されません。これはデフォルトです。

例

例1

次の例では、マスター・キーとウォレット方式が使用されます。Extractプロセスが2つのトレイルに書き込みます。emp表のデータは、AES-192暗号で暗号化されているトレイル/home/ggsora/dirdat/emに書き込まれます。stores表のデータは、暗号化されていないトレイル/home/ggsora/dirdat/stに書き込まれます。

ENCRYPTTRAIL AES192
RMTTRAIL /home/ggsora/dirdat/em
TABLE hr.emp;
NOENCRYPTTRAIL
RMTTRAIL /home/ggsora/dirdat/st
TABLE ops.stores;

例2

前述の例のかわりとして、ENCRYPTTRAILパラメータの前に暗号化されていないすべてのトレイルをリストする場合は、NOENCRYPTTRAILを省略できます。

RMTTRAIL /home/ggsora/dirdat/st
TABLE ops.stores;
ENCRYPTTRAIL AES192
RMTTRAIL /home/ggsora/dirdat/em
TABLE hr.emp;

例3

次の例では、ENCKEYSの方法が使用されます。

ENCRYPTTRAIL AES192, KEYNAME mykey1
RMTTRAIL /home/ggsora/dirdat/em
TABLE hr.emp;
TABLE ops.stores;

3.61 END

適用対象

Replicat

説明

ENDパラメータでは、タイムスタンプが指定した時点と一致する、データ・ソース内の最初のレコードを検出したときに、Replicatを終了します。

ENDを使用しない場合、プロセスは、次の時点まで継続的に実行されます。

- トランザクション・ログまたはトレイルの末尾に到達したとき。この時点で、プロセスは正常に終了します。

- コマンド・シェルから手動で終了したとき。

ENDをSPECIALRUNパラメータとともに使用して、ターゲット表を継続的に更新するのではなく、ポイントインタイム・スナップショットとしてデータを送信します。

デフォルト

継続処理

構文

END {date [time] | RUNTIME}

date [time]

タイムスタンプがこのパラメータの指定を超えるデータ・ソース内のレコードに到達したときに、Replicatを終了させます。

次の値が有効です。

- dateは、yyyy-mm-ddフォーマットの日付です。

- timeは、24時間表記のhh:mi[:ss[.cccccc]]フォーマットの時刻です。

RUNTIME

タイムスタンプが現在の日時を超えるデータ・ソース内のレコードに到達したときに、Replicatを終了させます。この時点までのタイムスタンプを持つ未処理レコードは、すべて処理されます。RUNTIMEを使用するメリットの1つは、実行のたびにパラメータ・ファイルで日時を変更する必要がない点です。かわりに、バッチ・プログラミング内でプロセスの開始時刻を制御できます。

例

例1

SPECIALRUN
END 2010-12-31 17:00:00

例2

SPECIALRUN
END RUNTIME

3.62 EOFDELAY | EOFDELAYCSECS

適用対象

ExtractおよびReplicat

説明

EOFDELAYまたはEOFDELAYCSECSパラメータでは、Extract、データ・ポンプまたはReplicatが、データ・ソース内の現在のデータの末尾に到達した後に、新しいデータを確認する間隔を制御します。このパラメータの値を増やすと、新しいデータの読取りによるシステムI/Oのオーバーヘッドを低減できます。

注意:

この値を大幅に増やすと、特にソース・データベース上のアクティビティが少ない場合には、ターゲット・データのレイテンシが増加する可能性があります。

このパラメータは、SOURCEISTABLEを使用している場合は無効です。このパラメータをゼロ(0)に設定することはできません。

デフォルト

最小値は1秒で、最大値は60秒です。

構文

EOFDELAY seconds | EOFDELAYCSECS centiseconds

seconds

処理するデータを探すまでの遅延(秒)。

centiseconds

処理するデータを探すまでの遅延(センチ秒)。

例

EOFDELAY 3

3.63 EXCLUDETAG

適用対象

(Oracle) ExtractおよびReplicatまたはデータ・ポンプ

(すべてのデータベース) ExtractポンプまたはReplicat

説明

データ・ポンプまたはReplicatパラメータ・ファイルのEXCLUDETAG tagでは、トレイル・ファイルから除外する変更を指定します。このパラメータの制限は、タグの最大値が16進数の桁で2000 (0-9 A-F)またはプラス記号(+)であることです。複数のEXCLUDETAG行を含めることができますが、各EXCLUDETAGには1つの値を含めるようにしてください。デフォルトでは、Replicatの各レコードにすべての変更が記録され、クラシック・モードおよび統合モードの両方で、00によってデータベースに適用されます。古いバージョンと比較すると、新しいトレイル・ファイルにはタグ・トークンが含まれ、古いトレイル・リーダーの問題は発生しません。

EXCLUDETAG +では、REDOログでタグ付けされる各レコードを無視します。

処理が競合してエラーが発生するため、NULLをtagまたは+とともに使用しないでください。

各レコードをタグ付けするには、Replicatパラメータ・ファイルでSETTAGオプションを指定してDBOPTIONSパラメータを使用します。これらのパラメータを使用して、双方向構成のReplicatの個別のレコードのサイクル(ループバック)を防いだり、他のトランザクションの取得をフィルタリングします。デフォルトのSETTAG値は00です。有効な値は、単一のOracle Streamsタグです。タグ値の最大長は、16進数の桁で2000 (0-9 A-F)です。Streamsタグの詳細は、を参照してください。

デフォルト

なし

構文

[EXCLUDETAG [tag | NULL] | [+]

例1

Replicatの場合:

excludetag tag

例2

データ・ポンプの場合:

excludetag 00

3.64 EXCLUDEWILDCARDOBJECTSONLY

適用対象

GLOBALS

説明

EXCLUDEWILDCARDOBJECTSONLYパラメータでは、除外パラメータにワイルドカードが含まれるとき、TABLEまたはMAPパラメータにワイルドカード指定されていないソース・オブジェクトを強制的に含めます。EXCLUDEWILDCARDOBJECTSONLYを使用しないと、そのオブジェクトは除外されます。除外パラメータは、CATALOGEXCLUDE、SCHEMAEXCLUDE、MAPEXCLUDEおよびTABLEEXCLUDEです。

除外パラメータが評価されて適用された後で、TABLEまたはMAP文が評価されます。EXCLUDEWILDCARDOBJECTSONLYを指定しないと、TABLEまたはMAP文のオブジェクトが除外指定のワイルドカードを満たすために誤って除外される可能性があります。EXCLUDEWILDCARDOBJECTSONLYをオブジェクトに対して機能させるには、名前のどのコンポーネントにもワイルドカードを使用せず、そのオブジェクトを明示的に指定する必要があります。

デフォルト

なし

構文

EXCLUDEWILDCARDOBJECTSONLY

例

この例では、TABLEEXCLUDEパラメータがワイルドカードを含み、TABLE指定にはワイルドカードが含まれないため、schema1.src_table1が処理に含まれます。EXCLUDEWILDCARDOBJECTSONLYがないと、TABLEEXCLUDEのワイルドカード指定のためにschema1.src_table1が除外されます。

TABLEEXCLUDE schema1.src_table*;
TABLE schema1.src_table1;

3.65 EXTFILE

適用対象

ExtractおよびReplicat

説明

EXTFILEパラメータでは、ローカル・システム上のデータ・ポンプExtractグループによって読み取られるローカル・ファイルである抽出ファイルを指定するか、SPECIALRUNを使用する場合はReplicatが読み取るローカル抽出ファイルを指定します。

EXTFILEは、関連するすべてのTABLEまたはMAP文よりも先に指定する必要があります。異なるファイルを定義するために、複数のEXTFILE文を使用できます。

ENCRYPTTRAILパラメータを使用して、このファイル内のデータを暗号化できます。詳細は、ENCRYPTTRAIL | NOENCRYPTTRAILを参照してください。

デフォルト

なし

構文

EXTFILE file_name
[, FORMAT RELEASE major.minor]
[, MEGABYTES megabytes]
[,     OBJECTDEFS | NO_OBJECTDEFS]
[, TRAILBYTEORDER {BIGENDIAN | LITTLEENDIAN | NATIVEENDIAN}]

file_name

ExtractおよびReplicatに有効です。抽出ファイルの相対名または完全修飾名を指定します。

FORMAT RELEASE major.minor

Extractから、トレイル、ファイル、または(リモート・タスクの場合)別のプロセスに送信されるデータのメタデータ・フォーマットを指定します。リーダー・プロセスは、メタデータに基づいて、データ・レコードが自身がサポートしているバージョンかどうかを把握します。メタデータのフォーマットは、Oracle GoldenGateプロセスのリリースによって異なります。古いOracle GoldenGateリリースには、新しいリリースとは異なるメタデータが含まれます。

- FORMATは必須のキーワードです。

- RELEASEはOracle GoldenGateのリリース・バージョンを指定します。majorはメジャー・バージョン番号で、minorはマイナー・バージョン番号です。X.xには、Oracle GoldenGateの現在または以前のGenerally Available (GA)リリースを指定する必要があります。有効な値は、9.0から現在のOracle GoldenGate X.xバージョン番号(たとえば11.2または12.1)です。(9.0以前のOracle GoldenGateリリースを使用している場合は、9.0または9.5を指定してください。)リリース・バージョンは、プログラムによって適切なトレイル・フォーマット互換性レベルにマッピングされます。デフォルトは、このトレイルに書き込むプロセスの現在のバージョンです。12.1より前のRELEASEのリリースでは、3つの部分からなるオブジェクト名はサポートされません。

MEGABYTES megabytes

Extractに有効です。トレイル内のファイルの最大サイズ(MB)。デフォルトは2000です。

OBJECTDEFS | NO_OBJECTDEFS

OBJECTDEFSとNO_OBJECTDEFSオプションでは、証跡にオブジェクト定義を含めるかどうかを制御します。この2つのオプションは、出力証跡がOracle GoldenGate正規フォーマットで書式設定され、証跡フォーマット・リリースが12.1より新しい場合にのみ適用可能です。それ以外の場合は証跡にメタデータ・レコードが追加されないため、どちらのオプションも無視されます。

オープン・システム・データベースからNonStopにレプリケートする場合、NonStopでは証跡からのオブジェクト定義の処理がサポートされていないため、12.2より前のフォーマット・バージョンを指定して、オブジェクト定義を証跡に含めないようにします。

TRAILBYTEORDER {BIGENDIAN | LITTLEENDIAN | NATIVEENDIAN}

ファイル・レコードのメタデータのバイト・フォーマットを設定します。このパラメータは、列データに影響しません。12.1以上のバージョンのFORMAT RELEASEが指定されているファイルにのみ有効です。有効な値は、BIGENDIAN (ビッグ・エンディアン)、LITTLEENDIAN (リトル・エンディアン)およびNATIVEENDIAN (ローカル・システムのデフォルト)です。デフォルトはBIGENDIANです。使用方法の詳細は、GLOBALSバージョンの「TRAILBYTEORDER」を参照してください。

例

例1

EXTFILE dirdat/datafile

例2

EXTFILE dirdat/extdat, MEGABYTES 2

例3

EXTFILE /ggs/dirdat/extdat, FORMAT RELEASE 10.4

3.66 EXTRACT

適用対象

Extract

説明

EXTRACTパラメータでは、オンライン(継続的)変更同期用のExtractグループを指定します。このパラメータによって、現在の実行と前回の実行が関連付けられるので、データの継続性がソース表とターゲット表の間で維持されます。ユーザーが停止しないかぎり、Extractは継続的に実行し、データ・ソースおよびトレイルにチェックポイントを保持することにより、計画的または計画外のプロセス終了、システム停止、ネットワーク障害が発生した場合にもデータ整合性とフォルト・トレランスを確保します。EXTRACTは、パラメータ・ファイルの最初のエントリにする必要があります。

変更同期の実装の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

EXTRACT group_name

group_name

ADD EXTRACTコマンドで定義したグループ名。

例

次の例では、financeという名前のExtractグループを指定します。

EXTRACT finance

3.67 EXTTRAIL

適用対象

Extract

説明

EXTTRAILパラメータでは、ADD EXTTRAILコマンドで作成されたローカル・システム上のトレイルを指定します。このトレイルは、データ・ポンプExtractグループ、またはローカル・システム上のReplicatグループによって読み取られます。

EXTTRAILは、関連するすべてのTABLE文よりも先に指定する必要があります。異なるトレイルを定義するために、複数のEXTTRAIL文を使用できます。

PASSIVEモードで構成されているExtractには、EXTTRAILを使用しないでください。PASSIVEモードやOracle GoldenGateセキュリティ機能の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

ENCRYPTTRAILパラメータを使用して、このトレイル内のデータを暗号化できます。詳細は、ENCRYPTTRAIL | NOENCRYPTTRAILを参照してください。

デフォルト

なし

構文

EXTTRAIL file_name
[, FORMAT RELEASE major.minor]
[, OBJECTDEFS | NO_OBJECTDEFS]
[, TRAILBYTEORDER {BIGENDIAN | LITTLEENDIAN | NATIVEENDIAN}]

file_name

トレイルの相対名または完全修飾名。最大文字数(2文字)を名前に使用します。エージングされたトレイル・ファイルは、この名前に6桁の順序番号が追加されます(例: /ogg/dirdat/rt000001)。

FORMAT RELEASE major.minor

Extractから、トレイル、ファイル、または(リモート・タスクの場合)別のプロセスに送信されるデータのメタデータ・フォーマットを指定します。リーダー・プロセスは、メタデータに基づいて、データ・レコードが自身がサポートしているバージョンかどうかを把握します。メタデータのフォーマットは、Oracle GoldenGateプロセスのリリースによって異なります。古いOracle GoldenGateリリースには、新しいリリースとは異なるメタデータが含まれます。

- FORMATは必須のキーワードです。

- RELEASEはOracle GoldenGateのリリース・バージョンを指定します。majorはメジャー・バージョン番号で、minorはマイナー・バージョン番号です。X.xには、Oracle GoldenGateの現在または以前のGenerally Available (GA)リリースを指定する必要があります。有効な値は、9.0から現在のOracle GoldenGate X.xバージョン番号(たとえば11.2または12.1)です。(9.0以前のOracle GoldenGateリリースを使用している場合は、9.0または9.5を指定してください。)
リリース・バージョンは、プログラムによって適切な内部互換性レベルにマッピングされます。デフォルトは、このトレイルに書き込むプロセスの現在のバージョンです。12.1より前のRELEASEのリリースでは、3つの部分からなるオブジェクト名はサポートされません。

FORMATとRECOVERYOPTIONSパラメータの間には、依存関係があります。詳細は、RECOVERYOPTIONSを参照してください。

Oracle GoldenGateトレイル・ファイルのバージョニングおよびリカバリ・モードの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

OBJECTDEFS | NO_OBJECTDEFS

OBJECTDEFSとNO_OBJECTDEFSオプションでは、証跡にオブジェクト定義を含めるかどうかを制御します。この2つのオプションは、出力証跡がOracle GoldenGate正規フォーマットで書式設定され、証跡フォーマット・リリースが12.1より新しい場合にのみ適用可能です。それ以外の場合は証跡にメタデータ・レコードが追加されないため、どちらのオプションも無視されます。

オープン・システム・データベースからNonStopにレプリケートする場合、NonStopでは証跡からのオブジェクト定義の処理がサポートされていないため、12.2より前のフォーマット・バージョンを指定して、オブジェクト定義を証跡に含めないようにします。

TRAILBYTEORDER {BIGENDIAN | LITTLEENDIAN | NATIVEENDIAN}

トレイル・レコードのメタデータのバイト・フォーマットを設定します。このパラメータは、列データに影響しません。12.1以上のバージョンのFORMAT RELEASEが指定されているトレイルにのみ有効です。有効な値は、BIGENDIAN (ビッグ・エンディアン)、LITTLEENDIAN (リトル・エンディアン)およびNATIVEENDIAN (ローカル・システムのデフォルト)です。デフォルトはBIGENDIANです。使用方法の詳細は、GLOBALSバージョンの「TRAILBYTEORDER」を参照してください。

例

例1

EXTTRAIL dirdat/ny

例2

EXTTRAIL /ggs/dirdat/ex, FORMAT RELEASE 10.4

3.68 FETCHOPTIONS

適用対象

Extract

説明

FETCHOPTIONSパラメータでは、Oracle GoldenGateが次の状況でデータをフェッチする方法を制御します。

- Extractが更新操作を再構築するために十分な情報がトランザクション・レコードに含まれていない

- TABLE文のFETCHCOLS句の結果として、Oracle GoldenGateが列値をフェッチする必要がある

FETCHOPTIONSは表に固有です。1つのFETCHOPTIONS文は、別のFETCHOPTIONS文が見つかるまで、後続のすべてのTABLE文に適用されます。

ほとんどのインストールでは、デフォルトのフェッチ・プロパティで十分に機能します。

FETCHOPTIONSは、SQL/MXには無効です。

デフォルト

紛失した行を無視し、処理を継続する

構文

FETCHOPTIONS
[, FETCHPKUPDATECOLS]
[, INCONSISTENTROW action]
[, MAXFETCHSTATEMENTS number]
[, MISSINGROW action]
[, NOFETCH]
[, SUPPRESSDUPLICATES]
[, USEKEY | NOUSEKEY]
[, USELATESTVERSION | NOUSELATESTVERSION]
[, USESNAPSHOT | NOUSESNAPSHOT]
[, USEROWID | NOUSEROWID]

FETCHPKUPDATECOLS

主キーが更新された場合、使用できないすべての列をフェッチします。このオプションは、デフォルトではオフです。オフにすると、有効化されている他のFETCHOPTIONSオプションに従って、列のフェッチが実行されます。

オンにすると、主キー列への更新中のみ有効になります。結果は、TABLE文でFETCHCOLS (*)を使用した場合と同じです。LOB列はフェッチに含まれます。

HANDLECOLLISIONS を使用する場合に、このパラメータを使用します。Replicatが紛失した更新を検出すると、すべての列は、更新を挿入に変更できるようになります。

INCONSISTENTROW action

行IDによる列データのフェッチは成功したものの、キーが一致しなかったことを示します。行IDが再利用されたか、この操作の後(およびフェッチの前)に主キー更新が行われました。

actionには、次のいずれかを指定できます。

ALLOW

状況を許可して処理を継続します。

IGNORE

状況を無視して処理を継続します。これはデフォルトです。

REPORT

状況と行のコンテンツを破棄ファイルにレポートしますが、部分的な行の処理を継続します。

DISCARD

データを破棄し、部分的な行は処理しません。

ABEND

データを破棄し、処理を中止します。

MAXFETCHSTATEMENTS number
Extractがソース・データベースから行データをフェッチするために使用可能な、許可される準備済問合せの最大数を制御します。フェッチされたデータは、トランザクション・ログ・レコードから論理SQL文を構築するために使用できる情報が不足しているときに使用されます。問合せは必要に応じて準備およびキャッシュされます。MAXFETCHSTATEMENTSで指定した値に到達すると、最も古い問合せが最も新しい問合せに置き換えられます。このパラメータの値は、Extractがフェッチ問合せのみのために保持しているオープンされているカーソル数を制御します。Extractは、ストアド・プロシージャなど他の目的のために追加のカーソルを使用できます。このパラメータは、Oracleデータベースにのみ有効です。デフォルトは100です。データベースが、ここで指定するカーソル数の他に、別のアプリケーションおよびプロセスが使用するカーソルもサポートできることを確認してください。

複数のデータベースが含まれるInformix Extractの場合は、FETCHOPTIONS MAXFETCHSTATEMENTS 1をExtractパラメータ・ファイルに追加する必要があります。これにより、キャプチャ・プロセスのパフォーマンスの低下を最小限に抑えることができます。これは単一データベースのExtractでは不要です。

MISSINGROW action
Oracle GoldenGateがフェッチする行を特定できない場合のレスポンスを指定し、行(変更された値)の一部のみでも処理できるようにします。通常、行が特定できない理由は、変更レコードが作成されてからフェッチがトリガーされるまでの間に行が削除されてしまっているか、必要な行イメージが指定されているUNDO保存期間以前のものであったためです。

actionには、次のいずれかを指定できます。

ALLOW

状況を許可して処理を継続します。これはデフォルトです。

IGNORE

状況を無視して処理を継続します。

REPORT

状況と行のコンテンツを破棄ファイルにレポートしますが、部分的な行の処理を継続します。

DISCARD

データを破棄し、部分的な行は処理しません。

ABEND

データを破棄し、処理を中止します。

NOFETCH
Extractによるデータベースからの列のフェッチを防ぎます。Extractはトレイルにレコードを書き込みますが、紛失した列であることを示すトークンを挿入します。

SUPPRESSDUPLICATES
Oracleに有効です。LOB列での更新時にターゲット表領域が過剰に大きくなるのを回避します。たとえば、レプリケーション後に、232MBソース表領域が7.52GBのターゲット表領域になる場合があります。

USEKEY | NOUSEKEY
フェッチする行を見つけるためにOracle GoldenGateが主キーを使用するかどうかを決定します。

USEKEYおよびUSEROWID両方を指定する場合、レコードにより高速にアクセスできるROWIDの方が優先されます。USEROWIDはデフォルトです。

USELATESTVERSION | NOUSELATESTVERSION
Oracleに有効です。USESNAPSHOTとともに使用します。デフォルトのUSELATESTVERSIONでは、UNDO表領域からフェッチできない場合に、Extractにソース表からデータをフェッチさせます。NOUSELATESTVERSIONは、スナップショット・フェッチが失敗した場合に、Extractにその状況を無視して処理を継続させます。

スナップショット・フェッチが失敗した場合の代替アクションを指定するには、MISSINGROWオプションを使用します。

USESNAPSHOT | NOUSESNAPSHOT
Oracleに有効です。デフォルトのUSESNAPSHOTでは、Extractに、REDOレコードから完全には取得できない特定の操作の再構築に必要なデータの適切なスナップショットを、Oracle Flashbackメカニズムを使用してフェッチさせます。NOUSESNAPSHOTでは、Extractに、フラッシュバック・ログではなくソース表から必要なデータをフェッチさせます。

USEROWID | NOUSEROWID
Oracleに有効です。フェッチする行を見つけるためにOracle GoldenGateが行IDを使用するかどうかを決定します。

USEKEYおよびUSEROWID両方を指定する場合、レコードにより高速にアクセスできるROWIDの方が優先されます。デフォルトはUSEROWIDです。

例

例1

次の例では、ExtractにFlashback Queryを使用してデータをフェッチさせ、フェッチが失敗した場合にはその状況を無視してレコードの処理を継続させます。

FETCHOPTIONS USESNAPSHOT, NOUSELATESTVERSION

例2

MAXFETCHSTATEMENTS 150

例3

次の例では、ExtractにFlashback Queryを使用してデータをフェッチさせ、データを使用できない場合にはExtractを異常終了させます。

FETCHOPTIONS USESNAPSHOT, NOUSELATESTVERSION, MISSINGROW ABEND

3.69 FETCHUSERID

適用対象

Oracleの統合プライマリExtract。データ・ポンプExtractは無効です

説明

FETCHUSERIDパラメータでは、データベースにログインするときに使用するOracle GoldenGateプロセスの認証タイプの指定、およびパスワード暗号化情報の指定を行います。このパラメータは、Oracle GoldenGate資格証明ストアが使用されていない場合にFETCHUSERIDALIASのかわりに使用できます。

プライマリExtractには必ずFETCHUSERIDまたはFETCHUSERIDALIASを使用します。データ・ポンプExtractにはFETCHUSERIDまたはFETCHUSERIDALIASを使用します。

FETCHUSERIDALIASと比較したFETCHUSERID

FETCHUSERIDでは、パラメータ・ファイルにクリアテキスト・パスワードを指定するか、ENCRYPT PASSWORDコマンドで暗号化し、オプションで暗号化鍵をENCKEYSファイルに格納する必要があります。FETCHUSERIDでは、Oracle GoldenGateでサポートされる幅広いデータベースがサポートされます。

FETCHUSERIDALIASでは、ユーザーIDとパスワードではなく別名をパラメータ・ファイルで指定できます。ユーザーIDと暗号化されたパスワードが資格証明ストアに格納されます。FETCHUSERIDALIASは、Linux、UNIXおよびWindowsプラットフォームで稼働するデータベースをサポートします。

Oracle GoldenGateセキュリティ機能の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

FETCHUSERIDの要件

FETCHUSERIDは常に必要なわけではなく、PASSWORDはFETCHUSERIDが必要なときに常に必要なわけではありません。データベース認証の構成方法に応じては、FETCHUSERIDの使用のみで十分な場合、SOURCEDBまたはTARGETDBパラメータのみでも十分な場合があります。

詳細は、SOURCEDBおよびTARGETDBを参照してください。

FETCHUSERIDは、Oracleデータベースに接続するOracle GoldenGateプロセスで使用します。この接続の目的は、フェッチ操作をActive Data Guardのスタンバイ・データベースにオフロードして、接続していなかったらソース・データベースにかかるはずのオーバーヘッドを削減することです。

- オペレーティング・システムのログインを使用するには、FETCHUSERIDを/引数とともに使用します。

- データベース・ユーザー名およびパスワードを使用するには、FETCHUSERIDをPASSWORDとともに使用します。

- オプションで、ログインするユーザーをsysdbaとして指定できます。

- (11.2.0.2より前のOracle Enterprise Edition) ExtractがLOGRETENTIONを使用するように構成されている場合、FETCHUSERIDユーザーには特別なデータベース権限が必要です。これらの権限は、Oracle GoldenGateのインストール時に付与されている可能性があります。LOGRETENTIONの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

- (Oracle StandardまたはEnterprise Edition 11.2.0.2以降) 統合キャプチャ用に構成されているExtractグループに対してFETCHUSERIDを使用する場合、ユーザーにはdbms_goldengate_auth.grant_admin_privilegeで付与された権限が必要です。

- Oracleコンテナ・データベースからのキャプチャをサポートするには、FETCHUSERIDで指定されたユーザーがルート・コンテナにログインする必要があり、共通ユーザーである必要があります。このユーザーに接続文字列を提供する必要があり、接続文字列にはC##GGADMIN@FINANCEなど、共通ユーザーに必要なC##接頭辞が含まれている必要があります。詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

- FETCHUSERIまたはFETCHUSERIDALIASで指定された接続は、ソース・データベースのActive Data Guardスタンバイ・データベースを対象としている必要があります。

- FETCHUSERIDはパラメータ・ファイルの任意の場所に指定できます。順序は関係ありません。TABLE文またはMAP文の前後に指定されていることがあります。

デフォルト

なし

構文

FETCHUSERID {/ | user}[, PASSWORD password]
[algorithm ENCRYPTKEY {key_name | DEFAULT}] [SYSDBA]

/

データベース・ユーザー・ログインではなく、Oracle用のオペレーティングシステム・ログインを使用するようにOracle GoldenGateに指示します。この引数は、データベースによってオペレーティングシステム・レベルでの認証が許可されている場合にのみ使用します。データベースレベルの認証をバイパスすることにより、アプリケーションのパスワードが頻繁に変更される場合に、Oracle GoldenGateパラメータ・ファイルを更新する必要がなくなります。このオプションを使用するには、次のように、Oracle OS_AUTHENT_PREFIX初期化パラメータの値との関連で、正しいユーザー名がデータベースに存在している必要があります。

- OS_AUTHENT_PREFIXで指定されている値は、ユーザーのオペレーティング・システム・アカウント名の先頭に追加され、データベース名と比較されます。この2つの名前は一致する必要があります。

- OS_AUTHENT_PREFIXが' ' (NULL文字列)に設定されている場合は、ユーザー名をIDENTIFIED EXTERNALLYとして作成する必要があります。たとえば、OSユーザー名がoggの場合は、次のようにしてデータベース・ユーザーを作成します。

CREATE USER ogg IDENTIFIED EXTERNALLY;

- OS_AUTHENT_PREFIXがOPS$または別の文字列に設定されている場合は、ユーザー名は次のフォーマットで作成する必要があります。

OS_AUTHENT_PREFIX_value OS_user_name

たとえば、OSユーザー名がoggの場合は、次のようにしてデータベース・ユーザーを作成します。

CREATE USER ops$ogg IDENTIFIED BY oggpassword;

user

データベース構成に応じて、データベース・ユーザーまたはスキーマの名前を指定します。SQL*Net接続文字列を使用できます。

password

データベース・ユーザーのパスワードを指定するためにデータベース認証が必要な場合に使用します。パスワードがENCRYPT PASSWORDコマンドによって暗号化されている場合は、暗号化されたパスワードを指定します。それ以外の場合は、クリアテキストのパスワードを使用します。パスワードに大/小文字の区別がある場合は、そのように入力してください。

ユーザーIDまたはパスワードのいずれかが変更されると、必要に応じて、パスワードの再暗号化など、Oracle GoldenGateパラメータ・ファイルの変更を行う必要があります。

algorithm

ENCRYPT PASSWORDでパスワードの暗号化に使用した暗号化アルゴリズムを指定します。

アルゴリズムは次のいずれかになります。

AES128

AES192

AES256

BLOWFISH

ENCRYPTKEY {key_name | DEFAULT}

ENCRYPT PASSWORDで指定した暗号化鍵を指定します。

- ENCRYPTKEY key_nameは、ENCKEYS参照ファイル内のユーザー作成の暗号化鍵の論理名を指定します。ENCRYPT PASSWORDがKEYNAME key_nameオプションとともに使用された場合に使用します。

- ENCRYPTKEY DEFAULTを指定すると、Oracle GoldenGateでランダムな鍵が使用されます。ENCRYPT PASSWORDがKEYNAME DEFAULTオプションとともに使用された場合に使用します。

SYSDBA

ユーザーがsysdbaとしてログインするように指定します。

例

fetchuserid gg_user@adg_inst password pwd

3.70 FETCHUSERIDALIAS

適用対象

Oracleの統合プライマリExtract。データ・ポンプExtractは無効です

説明

FETCHUSERIDALIASパラメータでは、データベースへのログイン時に使用するOracle GoldenGateプロセスの認証を指定します。FETCHUSERIDALIASを使用するには、Oracle GoldenGate資格証明ストアを使用する必要があります。パラメータ・ファイルで、TABLEまたはMAPエントリの前にFETCHUSERIDALIASを指定します。

FETCHUSERIDと比較したFETCHUSERIDALIAS

FETCHUSERIDALIASでは、ユーザーIDとパスワードではなく別名をパラメータ・ファイルで指定できます。ユーザーIDと暗号化されたパスワードが資格証明ストアに格納されます。FETCHUSERIDALIASは、Linux、UNIXおよびWindowsプラットフォームで稼働するデータベースをサポートします。

FETCHUSERIDでは、パラメータ・ファイルにクリアテキスト・パスワードを指定するか、ENCRYPT PASSWORDコマンドで暗号化し、オプションで暗号化鍵をENCKEYSファイルに格納する必要があります。FETCHUSERIDでは、Oracle GoldenGateでサポートされる幅広いデータベースがサポートされます。また、Oracleデータベースのオペレーティング・システム・ログインの使用をサポートします。

これらのパラメータおよびOracle GoldenGateセキュリティ機能の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

FETCHUSERIDの要件

注意:

データベース・ユーザーとパスワードを必要とするログインは、Oracle GoldenGate資格証明ストアに格納されている必要があります。資格証明ストアの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

FETCHUSERIDALIASは、Oracleデータベースに接続するOracle GoldenGateプロセスで使用します。この接続の目的は、フェッチ操作をActive Data Guardのスタンバイ・データベースにオフロードして、接続していなかったらソース・データベースにかかるはずのオーバーヘッドを削減することです。

- SOURCEDBまたはTARGETDBパラメータは不要です。

- Oracle GoldenGate資格証明ストアに格納されているデータベース資格証明の別名を指定します。

- (11.2.0.2より前のOracle Enterprise Edition) ExtractがLOGRETENTIONを使用するように構成されている場合、FETCHUSERIDALIASユーザーには特別なデータベース権限が必要です。これらの権限は、Oracle GoldenGateのインストール時に付与されている可能性があります。LOGRETENTIONの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

- (Oracle StandardまたはEnterprise Edition 11.2.0.2以降) 統合キャプチャ用に構成されているExtractグループに対してFETCHUSERIDALIASを使用する場合、ユーザーにはdbms_goldengate_auth.grant_admin_privilegeで付与された権限が必要です。

- Oracleコンテナ・データベースからのキャプチャをサポートするには、FETCHUSERIDで指定されたユーザーがルート・コンテナにログインする必要があり、共通データベース・ユーザーである必要があります。C##GGADM@FINANCEなどの接続文字列がこのユーザーに指定されている必要があります。詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

- FETCHUSERIまたはFETCHUSERIDALIASで指定された接続は、ソース・データベースのActive Data Guardスタンバイ・データベースを対象としている必要があります。

- FETCHUSERIDはパラメータ・ファイルの任意の場所に指定できます。順序は関係ありません。TABLE文またはMAP文の前後に指定されていることがあります。

デフォルト

なし

構文

FETCHUSERIDALIAS alias [DOMAIN domain] [SYSDBA]

alias

Oracle GoldenGateの資格証明ストアに格納されているデータベース・ユーザー資格証明の別名を指定します。

DOMAIN domain

指定した別名の資格証明ストアのドメインを指定します。有効なドメイン・エントリが指定した別名に対する資格証明ストアに存在する必要があります。

SYSDBA

ユーザーがsysdbaとしてログインするように指定します。

例

fetchuseridalias gg_user@adg_inst password pwd

3.71 FILTERDUPS | NOFILTERDUPS

適用対象

Replicat

説明

FILTERDUPSおよびNOFILTERDUPSパラメータでは、アプリケーションが同一トランザクション内で同一のレコードに複数の操作を実行するときにNonStopシステムで発生する可能性がある異常を処理します。このタイプのトランザクションによって、TMF監査証跡のレコードの順番が不正になり、Replicatが異常終了することがあります。例:

- ソース・アプリケーションが削除を実行してから挿入を実行した場合でも、監査証跡では、同一の主キーの削除の前に挿入が発生することがあります(結果として、Replicatが挿入を実行するときに重複レコード・エラーが発生します)。

- 監査証跡では、同一の主キーの挿入の前に更新が発生することがあります(結果として、Replicatが更新を実行するときに紛失レコード・エラーが発生します)。

FILTERDUPSは、Replicatの異常終了を防止するために、次のようにしてこの状況を解決します。

- 挿入するレコードが重複する場合、Replicatはこの挿入操作をトランザクションの最後に保存します。その後、同一主キーの削除を検出すると、Replicatは削除を実行し、その後に挿入を実行します。

- 更新するレコードが紛失した場合、Replicatはこの更新操作をトランザクションの最後に保存します。その後、同一の主キーの挿入を検出すると、Replicatは挿入を実行し、その後に更新を実行します。

このような異常は、一般にIDX医療アプリケーションや一部のBASE24バンク・アプリケーションなどで見られます(ただし、これらのアプリケーションに限定されません)。FILTERDUPSは、重複するレコードや紛失したレコードのためにReplicatが異常終了し、その原因がNonStopシステムで開始された不正な順序のトランザクションであることが判明している場合にのみ使用してください。この状況の診断には、Logdumpユーティリティを使用できます。

FILTERDUPSおよびNOFILTERDUPSは、必要に応じて異なるMAP文グループの例外処理を有効化または無効化する個別スイッチとして使用できます。

デフォルト

NOFILTERDUPS

構文

FILTERDUPS | NOFILTERDUPS

例

この例は、FILTERDUPSをORDERSに対して有効にしますが、同一のパラメータ・ファイルのそれ以降に定義されているすべてのMAP文に対しては無効にします。

FILTERDUPS
MAP $DATA1.SQLDAT.ORDERS, TARGET MASTER.ORDERS;
NOFILTERDUPS

3.72 FLUSHSECS | FLUSHCSECS

適用対象

Extract

説明

FLUSHSECSおよびFLUSHCSECSパラメータでは、Oracle GoldenGateがいつExtractメモリー・バッファをフラッシュするかを制御します。リモート・システムにデータを送信する際、Extractはデータをバッファしてネットワーク・パフォーマンスを最適化します。バッファは、一杯になるか、FLUSHSECSまたはFLUSHCSECSで指定された時間が経過した後に、ターゲット・システムにフラッシュされます。バッファがフラッシュされてデータが送信されるまで、ターゲットのユーザーは変更データを使用できません。バッファのサイズを制御するには、RMTHOSTのTCPBUFSIZEオプションを使用します。詳細は、RMTHOSTを参照してください。

FLUSHSECSまたはFLUSHCSECSの値を増やすと、ネットワーク使用効率が若干高まることがありますが、ソース・システムのアクティビティが少なく、バッファが一杯にならない場合には、ターゲット・データの遅レイテンシが増える可能性があります。ソース表のアクティビティが多い場合は、FLUSHSECSおよびFLUSHCSECSはほとんど効果がありません。

このパラメータをゼロ(0)に設定することはできません。

デフォルト

最小値は1秒で、最大値は60秒です。

構文

FLUSHSECS seconds | FLUSHCSECS centiseconds

seconds

バッファをフラッシュするまでの遅延(秒)。

centiseconds

バッファをフラッシュするまでの遅延(センチ秒)。

例

FLUSHSECS 80

3.73 FORMATASCII

適用対象

Extract

説明

FORMATASCIIパラメータでは、デフォルトのOracle GoldenGate正規フォーマットではなく、外部ASCIIフォーマットでデータを出力します。FORMATASCIIを使用すると、大半のデータベース・ロード・ユーティリティおよびASCII入力を必要とするその他のプログラムと互換性を持つように出力をフォーマットできます。このパラメータは、File-to-Database-Utility による初期ロード方式を使用するときに必要です。

FORMATASCII文は、パラメータ・ファイル内のこの文以降のすべての抽出ファイルまたはトレイルに影響します。パラメータ・ファイル内の文の相対的な順序は重要です。ファイルまたはトレイルの指定の後にリストされた場合、FORMATASCIIは効力がありません。

制約事項

- データがReplicatプロセスによって処理される場合は、FORMATASCIIを使用しないでください。Replicatはデフォルトの正規フォーマットを受け付けます。

- FORMATSQLまたはFORMATXMLを使用しているときは、FORMATASCIIを使用しないでください。

- データにLOBが含まれている場合、FORMATASCIIを使用しないでください。

- ExtractがマルチバイトのDB2サブシステムに接続している場合、FORMATASCIIを使用しないでください。

- Oracle GoldenGate DDLサポートがアクティブである場合、FORMATASCIIを使用しないでください。

- 指定した形式でトレイル出力の生成に使用可能な表メタデータはないため、FORMATASCIIをパススルー・モードでデータ・ポンプに使用しないでください。

デフォルト出力

表名や列名などのデータベース・オブジェクト名、およびCHARおよびVARCHARデータは、オペレーティング・システムのデフォルトのキャラクタ・セットで書込みが行われます。

パラメータ・オプションを使用しない場合、FORMATASCIIは次のフォーマットでレコードを生成します。

行1は、次のタブ区切りリストを含みます。

- 操作タイプ・インジケータ: I、D、U、V (挿入、削除、更新、圧縮更新)

- ビフォアまたはアフター・イメージ・インジケータ: BまたはA

- オペレーティング・システムのキャラクタ・セットでの表名

- 列名、列値、列名、列値など

- 改行文字(新しい行を開始)

行2は、次のタブ区切り開始トランザクション・レコードを含みます。

- 開始トランザクション・インジケータ、B

- トランザクションのコミット時のタイムスタンプ

- コミットが検出されたトランザクション・ログの順序番号

- トランザクション・ログ内のコミット・レコードの相対バイト・アドレス(RBA)

行3は、次のタブ区切りコメント・レコードを含みます。

- コミット文字、C

- 改行文字

ソース・トランザクション内のすべてのレコードは、開始インジケータとコミット・インジケータの間に含まれます。コミット・タイムスタンプとRBAの各組合せは一意です。

カスタム出力

出力フォーマットは、オプションの引数でカスタマイズできます。

デフォルト

特定のデフォルト値は、デフォルト出力」を参照してください。

構文

FORMATASCII [, option] [, ...]

optionには、次のいずれかを指定できます。

BCP

SQL ServerのBCP、DTS、またはSQL Server Integration Services (SSIS)バルクロード・ユーティリティと互換性を持つように出力をフォーマットします。

DATE | TIME | TS

次のいずれかを出力します。

- DATEは日付を出力します(年から日)。

- TIMEは時間を出力します(年から秒)。

- TSはトランザクションのタイムスタンプを出力します(年から秒の端数)。

CHARSET set

(Oracle SQL*Loader) Oracle NCHAR列のASCII文字のエンコーディングを指定します。有効な値はUTF8です。

ソース表にNCHARデータ、およびUTF-8に設定された可変長文字が含まれている場合、CHARSETによって、ロードは文字長セマンテックを含めることができます。

注意:

NCHAR列およびCHAR列の両方に8ビットASCII文字が含まれている場合、生成されるファイルには、オペレーティング・システムのネイティブの8ビットASCII文字コーディングとUTF-8コーディングが混在して含まれているため、ロードは失敗します。

DELIMITER delimiter

代替デリミタ文字。

次の値が有効です。

- TAB (タブで区切り)。これはデフォルトです。

- 一重引用符で囲んだ文字(例: '/')

EXTRACOLS number

各レコードの末尾に追加列のためのプレースホルダを含めます。このオプションは、ターゲット表にソース表よりも多くの列が含まれる場合に使用してください。

NAMES | NONAMES

出力に列名を包含するか除外するかを指定します。変更された値しか存在しない更新では、PLACEHOLDERSオプションも指定しないかぎり、列名は包含されます。

NOHDRFIELDS [IND], [OP]

次のように出力を抑止します。

NOHDRFIELDS

オプションなしでは、データ値を除くすべてを抑止します。

IND

ビフォアまたはアフター・インジケータ(BまたはA)およびデータ値を除くすべてを抑止します。

OP

操作タイプ・インジケータ(I、D、U、V)およびデータ値を除くすべてを抑止します。

NOQUOTE
文字データから引用符を除外します。NOQUOTEを指定しない場合、文字は一重引用符で囲まれます。

NOTRANSTMTS
トランザクション情報を除外します。

NULLISSPACE
NULL列を空の列として出力します。NULLISSPACEを指定しない場合、NULL列は単語NULLとして出力されます。

PLACEHOLDERS
紛失した列に対してプレースホルダを出力します。たとえば、4列の表で2番目および4番目の列が見つからない場合、次のように出力されます。

'ABC',,123,,
SQLLOADER
Oracle SQL*LoaderユーティリティまたはIBM Load Utilityプログラムと互換性を持つ固定長ASCIIフォーマット・ファイルを生成します。

例

次の例は、test.customerという名前のソース表とサンプル・トランザクションに基づいています。この例では、様々なFORMATASCIIオプションがどのように出力を構成するかを示します。

表test.customer:

CUSTNAME    CHAR(10)   Primary key
LOCATION    CHAR(10)
BALANCE     INTEGER

トランザクション:

INSERT INTO CUSTOMER VALUES ('Eric', 'San Fran', 550);
UPDATE CUSTOMER SET BALANCE = 100 WHERE CUSTNAME = 'Eric';
COMMIT;

例1

オプションなしのFORMATASCIIでは、次の出力が生成されます。

B,2011-01-21:14:09:46.421335,8,1873474,
I,A,TEST.CUSTOMER,CUSTNAME,'Eric',LOCATION,
'San Fran',BALANCE,550,
V,A,TEST.CUSTOMER,CUSTNAME,'Eric',BALANCE,100,
C,

例2

FORMATASCII, NONAMES, DELIMITER '|'では、次の出力が生成されます。

B|2011-01-21:14:09:46.421335|8|1873474|
I|A|CUSTOMER|'Eric'|'San Fran'|550|
V|A|CUSTOMER|CUSTNAME|'Eric'|BALANCE|100|
C|

最後のレコードはCUSTNAMEおよびBALANCE列の列名を返します。このレコードには更新された列の値だけが含まれ、PLACEHOLDERSが使用されていないためです。

例3

FORMATASCII, NOHDRFIELDS, OP, TS, NONAMES, NOQUOTEでは、次の出力が生成されます。

I,CUSTOMER,2011-01-21:14:09:46.421335,Eric,San Fran,550,
V,CUSTOMER,2011-01-21:14:09:46.421335,Eric,,100,

2番目の列の不在の値は、2つの連続するカンマで示されています。

3.74 FORMATSQL

適用対象

Extract

説明

FORMATSQLパラメータでは、デフォルトのOracle GoldenGate正規フォーマットではなく、外部SQLフォーマットでデータを出力します。FORMATSQLは、Oracle GoldenGate Replicat以外のユーティリティでSQLおよびEnscribe表に適用可能な、SQL文(INSERT、UPDATEおよびDELETE)を生成します。

注意:

データがReplicatプロセスによって処理される場合は、FORMATSQLを使用しないでください。Replicatはデフォルトの正規フォーマットを受け付けます。FORMATASCIIまたはFORMATXMLを使用しているときは、FORMATSQLを使用しないでください。Oracle GoldenGate DDLサポートがアクティブである場合、FORMATASCIIを使用しないでください。

FORMATSQL文は、それ以降に定義されているすべての抽出ファイルまたはトレイルに影響します。

ExtractがマルチバイトのDB2サブシステムに接続している場合、FORMATSQLを使用しないでください。

制約事項

- データがReplicatプロセスによって処理される場合は、FORMATSQLを使用しないでください。Replicatはデフォルトの正規フォーマットを受け付けます。

- FORMATASCIIまたはFORMATXMLを使用しているときは、FORMATSQLを使用しないでください。

- Oracle GoldenGate DDLサポートがアクティブである場合、FORMATSQLを使用しないでください。

- 指定した形式でトレイル出力の生成に使用可能な表メタデータはないため、FORMATSQLをパススルー・モードでデータ・ポンプに使用しないでください。

デフォルト出力

表名や列名などのデータベース・オブジェクト名、およびCHARおよびVARCHARデータは、オペレーティング・システムのデフォルトのキャラクタ・セットで書込みが行われます。

オプションなしのFORMATSQLトランザクションは、カンマ区切りフォーマットで次のように出力されます。

- 開始トランザクション・インジケータ、B

- トランザクションのコミット時のタイムスタンプ

- コミットが検出されたトランザクション・ログの順序番号

- トランザクション・ログ内のコミット・レコードの相対バイト・アドレス(RBA)

- SQL文

- コミット・インジケータ、C

- 改行インジケータ

トランザクション内のすべてのレコードは、開始インジケータとコミット・インジケータの間に含まれます。コミット・タイムスタンプとRBAの各組合せは一意です。

カスタム出力

出力フォーマットは、オプションの引数でカスタマイズできます。

デフォルト

特定のデフォルト値は、デフォルト出力」を参照してください。

構文

FORMATSQL [option] [, ...]

optionには、次のいずれかを指定できます。

NONAMES

挿入操作の列名を省略します(挿入にはすべての列名が含まれているため)。このオプションにより、ファイル・サイズを低減できます。

NOPKUPDATES

ターゲットの主キーの列に影響するUPDATE操作を、次にINSERTが続くDELETEに変換します。デフォルト(NOPKUPDATESなし)では、出力は標準のUPDATE操作です。

ORACLE

次の例のように、日付および時刻列をSQL*Plusが受け付けるフォーマットに変換し、Oracleデータベースと互換性を持つようにレコードをフォーマットします。

TO_DATE('2011-01-01','YYYY-MM-DD')

例

FORMATSQL ORACLE, NONAMES

3.75 FORMATXML

適用対象

Extract

説明

FORMATXMLパラメータでは、デフォルトのOracle GoldenGate正規フォーマットではなく、XMLフォーマットでデータを出力します。FORMATXML文は、それ以降に定義されているすべての抽出ファイルまたはトレイルに影響します。デフォルトでは、XMLはローカル・オペレーティング・システムのキャラクタ・セットで出力されます。

デフォルトでは、CLOBまたはBLOBとして格納されるXMLは4000バイトまで出力されます。BLOBまたはCLOBとして格納されている、これよりも大きなXMLを含めるには、ENCODINGオプションを使用します。

CLOBとして格納されているXMLは、サイズにかかわらず常にCDATAセクションに出力されます。これは、予約文字(<、>および&など)を適切なXML表現に変換するオーバーヘッドを回避するためです。

BLOBを含むバイナリ・データはBase64としてエンコーディングされます。これはバイナリ・データをASCII文字列形式で表示し、XMLへの出力が可能です。

XML、データベース・オブジェクト名(表名や列名)およびCHARデータやVARCHARデータは、UTF-8で出力するようにENCODINGオプションが使用されないかぎり、オペレーティング・システムのデフォルトのキャラクタ・セットで書込みが行われます。

制約事項

- データがReplicatプロセスによって処理される場合は、FORMATXMLを使用しないでください。Replicatはデフォルトの正規フォーマットを受け付けます。FORMATASCIIまたはFORMATSQLを使用しているときは、FORMATXMLを使用しないでください。

- ExtractがマルチバイトのDB2サブシステムに接続している場合、FORMATXMLを使用しないでください。

- Oracle GoldenGate DDLサポートがアクティブである場合、FORMATXMLを使用しないでください。

- 指定した形式でトレイル出力の生成に使用可能な表メタデータはないため、FORMATXMLをパススルー・モードでデータ・ポンプに使用しないでください。

デフォルト

なし

構文

FORMATXML
[ENCODING character_set]
[INLINEPROPERTIES | NOINLINEPROPERTIES]
[TRANS | NOTRANS]

ENCODING UTF-8

フル・サイズのXMLをUTF-8でXMLファイルに出力しますが、ヘッダーは出力しません。

XMLヘッダー・タグおよびルート・ノードはXML出力に含まれます。ルート・ノードはOracleGoldenGateFormatXMLとして出力されます。

サイズにかかわらず、CLOBとして格納されているXMLはCDATAセクションに出力され、BLOBを含むバイナリ・データはBase64エンコーディングに出力されます。

INLINEPROPERTIES | NOINLINEPROPERTIES

XMLタグ内にプロパティを含めるか、別に書き込むかどうかを制御します。デフォルトはINLINEPROPERTIESです。

TRANS | NOTRANS

トランザクション境界およびコミットのタイムスタンプをXML出力に含めるかどうかを制御します。TRANSはデフォルトです。

例

FORMATXML NOINLINEPROPERTIES, NOTRANS

3.76 FUNCTIONSTACKSIZE

適用対象

ExtractおよびReplicat

説明

FUNCTIONSTACKSIZEパラメータでは、Oracle GoldenGate列変換ファンクションの処理に使用されるメモリー・スタックのサイズを制御します。メモリー・スタックには、Oracle GoldenGateファンクションとやり取りする引数が保持されます。このパラメータは、Oracle GoldenGateからスタック・サイズを増やすように通知するメッセージが返されないかぎり、使用する必要はありません。メッセージは次のようになります。

Not enough stack space. Specify FUNCTIONSTACKSIZE greater than {0,number,0}

このようなメッセージは、多数のファンクションまたは引数を使用している場合に返されることがあります。

FUNCTIONSTACKSIZEなしのデフォルトは、200引数で、この値ではOracle GoldenGateのパフォーマンスおよびシステム・メモリー使用率が最適化されます。このパラメータの値を増やすと、パフォーマンスおよびシステム・メモリー使用率に悪影響が及ぶことがあります。

調整ReplicatにFUNCTIONSTACKSIZEを設定するときは、指定の値が、Replicat全体の合計しきい値としてではなく、構成の各スレッドに適用されることを考慮してください。たとえば、FUNCTIONSTACKSIZE 400が指定されると、各スレッドが399の引数を持つことができ、Replicatからの警告やエラーは発生しません。

FUNCTIONSTACKSIZEは、パラメータ・ファイル内で、ファンクションを含むすべてのパラメータよりも前にリストする必要があります。FUNCTIONSTACKSIZEはグローバル・パラメータです。これはパラメータ・ファイル内のすべての句に影響します。

デフォルト

200引数

構文

FUNCTIONSTACKSIZE number

number

パラメータ句で許可するファンクション引数の数を示す値(0から5000)。

例

FUNCTIONSTACKSIZE 300

3.77 GENLOADFILES

適用対象

Replicat

説明

GENLOADFILESパラメータでは、File-to-Database-utility初期ロード方式を使用するときに、次のユーティリティと互換性のある実行ファイルと制御ファイルを生成します。

- OracleのSQL*Loaderユーティリティ

- MicrosoftのBCP、DTSまたはSQL Server Integration Services (SSIS)ユーティリティ

- IBMのLoad Utility (LOADUTIL)

実行ファイルおよび制御ファイルは、Replicatパラメータ・ファイル内の各MAP文で生成されます。Replicatは、制御ファイルおよび実行ファイルを生成後に停止し、データを処理しません。

実行ファイルおよび制御ファイルは、ターゲットにロードするデータを含むデータ・ファイルとともに使用します。データ・ファイルを生成するには、Extractパラメータ・ファイル内でFORMATASCIIパラメータを使用します。Oracleおよびz/OS上のDB2のユーティリティを使用する場合は、FORMATASCIIのSQLLOADERオプションを使用し、Microsoftユーティリティを使用する場合はBCPオプションを使用します。

FORMATASCIIは、ロード・ユーティリティと互換性を持つ外部ASCIIフォーマットでOracle GoldenGateトレイルまたはファイルに表データを出力します。複数のファイルを指定すると、複数のデータ・ファイルを生成できます。

注意:

IBMのLoad Utilityを使用する場合は、RMTHOSTパラメータのPARAMSオプションに、-Eおよび-d defs_file Collectorパラメータを指定する必要があります。これらのパラメータは、ASCIIからEBCDICへの変換、およびソース定義ファイルの指定のために必要です。

デフォルトでは、GENLOADFILESは次のファイル名を生成します。

- SQL*Loader実行ファイルはsource_table.run、制御ファイルはsource_table.ctlという名前が付けられます。source_tableは、MAP文で指定されたソース表の名前です。

- BCP/DTS/SSIS実行ファイルはtarget_table.bat、制御ファイルはtarget_table.fmtという名前が付けられます。target_tableはMAP文で指定されたターゲット表の名前です。

- Load Utility実行ファイルはtarget_table.run、制御ファイルはtarget_table.ctlという名前が付けられます。target_tableはMAP文で指定されたターゲット表の名前です。

制御ファイル

制御ファイルには、テンプレートに基づいて生成されるロード・パラメータが含まれます。Oracle GoldenGateでは、SQL*Loader、BCP/DTS/SSISおよびLoad Utilityのデフォルト・テンプレートが提供されます。必要に応じてテンプレートを変更してロード・ルールを変更することも、新しいテンプレートを作成することもできます。

次にOracle GoldenGateテンプレートの例を示します。テンプレートには、ターゲット表、FORMATASCIIによって生成されるデータ・ファイル、およびその他の実行パラメータ用のプレースホルダが含まれています。Oracle GoldenGateは、これらのプレースホルダをReplicatパラメータ・ファイルに指定されたパラメータに基づいた値に置き換えます。

例3-1 SQL*Loaderテンプレートsqlldr.tpl

# File Names
controlfile ?target.ctl
runfile     ?target.run
#
# Run File Template
sqlldr userid=?pw control=?target log=?target direct=true
#
# Control File Template
unrecoverable
load data
infile ?source.dat
truncate
into table ?target

例3-2 BCP/DTS/SSISテンプレートbcpfmt.tpl

# Run File Template
# Substitute your database name for db
bcp db..?target in ?source.dat -U ?user -P ?pw -f ?target.fmt -e ?target.err
#
# Control File Template
# The value below must specify the BCP version, not the Sybase Adaptive
# Server or Microsoft SQL Server version. "bcp -v" can be used to
# determine the correct version number.
12.0

例3-3 Load Utilityテンプレートdb2cntl.tpl

# File Names
controlfile ?target.ctl
runfile     ?target.run
#
# Run File Template
odb2 load
#
# Control File Template
LOAD REPLACE INTO TABLE ?target

実行ファイル

実行ファイルには、ロードを開始するための入力パラメータが含まれます。実行ファイルを実行するには、次のいずれかのコマンドを発行します。

- UNIXコマンド・シェルからSQL*Loader実行ファイルを実行します。

% table.run

- DOSシェルからBCP実行ファイルを実行します。

> table.bat

- z/OS上のDB2表にデータをロードするためのJCLスクリプトを使用して、Load Utility実行ファイルを実行します。必要に応じて、ジョブ・スクリプトの他の環境関連パラメータを追加してください。

注意:

WILDCARDRESOLVEパラメータのDYNAMIC設定は、GENLOADFILESパラメータと互換性がありません。GENLOADFILESが指定されると、Oracle GoldenGateではデフォルトでIMMEDIATEが使用されます。

オペレーティング・システムとデータベースのキャラクタ・セットが異なる場合、または固定長の出力形式が使用されている場合、Oracle GoldenGateではマルチバイト文字がサポートされないことに注意してください。

Oracle GoldenGateのロード・ファイル出力の構成方法および初期ロードの実行方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

GENLOADFILES [template_file]
[CHARSET value]

template_file

テンプレート・ファイルの完全修飾名。デフォルトのテンプレート・ファイルは、sqlldr.tpl (SQL*Loader)、bcpfmt.tpl (BCP、DTSまたはSSIS)、およびdb2cntl.tpl (z/OS上のDB2)で、すべてOracle GoldenGateホーム・ディレクトリにあります。

CHARSET set

(Oracle SQL*Loader) Oracle NCHAR列のASCII文字のエンコーディングを指定します。有効な値はUTF8です。FORMATASCIIのCHARSETオプションを使用する場合に必要です。

ソース表にNCHARデータ、およびUTF-8に設定された可変長文字が含まれている場合、CHARSETによって、ロードは文字長セマンテックを含めることができます。現在、Oracle SQL*Loaderは、バイト長セマンテックを使用しており、文字長セマンテックとは互換性がありません。

注意:

NCHAR列およびCHAR列の両方に8ビットASCII文字が含まれている場合、生成されるファイルには、オペレーティング・システムのネイティブの8ビットASCII文字コーディングとUTF-8コーディングが混在して含まれているため、ロードは失敗します。

例

GENLOADFILES sqlldr.tpl

3.78 GETAPPLOPS | IGNOREAPPLOPS

適用対象

Extract (Informixでは無効です。)

説明

GETAPPLOPSまたはIGNOREAPPLOPSパラメータでは、ローカルReplicatを除くすべてのアプリケーションによって生成されたDML操作を取得または無視します。デフォルトでは、アプリケーション・データは取得されます。

これらのパラメータは、次の目的でGETREPLICATESおよびIGNOREREPLICATESパラメータとともに有効に活用できます。

- ローカルReplicatによって実行されたデータ操作を、Oracle GoldenGateで抽出するように構成されているビジネス・アプリケーションによって実行されたデータ操作と分離する。IGNOREAPPLOPSおよびGETREPLICATESを、1つのトレイルまたはファイルに対して使用してReplicat操作のみを包含し、GETAPPLOPSおよびIGNOREREPLICATESを、別のトレイルまたはファイルに対して使用してビジネス・アプリケーションの操作のみを包含します。

- カスケード構成の一部として使用する。カスケード構成では、Replicatがローカルで適用した変更をローカルExtractがキャプチャし、別のシステムに伝播する必要があります。このケースでは、IGNOREAPPLOPSおよびGETREPLICATESを使用します。

- 双方向レプリケーションを行う場合にループ検出スキームの一部として使用する。デフォルトのGETAPPLOPSおよびIGNOREREPLICATESの組合せでは、Extractはアプリケーション・データを取得し、同一のデータベース・オブジェクトに送信されたReplicat操作を無視します。このケースでは、これらのパラメータを使用することに加え、Replicatトランザクションを特定できるようにExtractを構成する必要があります。

詳細は、GETREPLICATES | IGNOREREPLICATESを参照してください。

Oracleの順序に対するGETAPPLOPSの使用

Replicatによってレプリケートされる順序を取得するには、GETAPPLOPSを有効にする必要があります。Replicatは、トレース表に反映されないように、自律型トランザクションで順序の更新を発行します。順序更新は、アプリケーション操作のように見えます。

DDL操作に対するGETAPPLEOPSの使用

GETAPPLOPSまたはIGNOREAPPLOPS機能をDDL操作に対して使用する方法の詳細は、DDLOPTIONSを参照してください。

双方向レプリケーションの構成方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

GETAPPLOPS

構文

GETAPPLOPS | IGNOREAPPLOPS

3.79 GETDELETES | IGNOREDELETES

適用対象

ExtractおよびReplicat

説明

GETDELETESおよびIGNOREDELETESパラメータでは、Oracle GoldenGateがDELETE操作を処理するかどうかを制御します。これらのパラメータは表に固有です。一方のパラメータは、もう一方のパラメータが見つかるまで、それ以降のすべてのTABLEまたはMAP文に有効です。

これらのパラメータは、MAP文で有効化または無効化を選択できるため、調整Replicatの様々なスレッドに対して有効にしたり、無効にしたりできます。あるセットのMAP文にGETDELETESスレッドを指定し、別のセットのMAP文にIGNOREDELETESを指定します。

デフォルト

GETDELETES

構文

GETDELETES | IGNOREDELETES

例

この例では、GETDELETESとIGNOREDELETESを選択して様々なMAP文に適用する方法を示します(各文が、調整Replicatの異なるスレッドに該当します)。

GETDELETES
MAP sales.cust, TARGET sales.cust, THREAD (1);
MAP sales.ord, TARGET sales.ord, THREAD (2);
IGNOREDELETES
MAP sales.loc, TARGET sales.loc, THREAD (3);

3.80 GETENV

適用対象

ExtractおよびReplicat

説明

GETENVパラメータでは、SETENVパラメータで設定された環境変数を表示します。結果は、画面およびレポート・ファイルに出力されます。取得する変数ごとに1つのGETENV文を使用します。

GETENVは、問合せパラメータと一緒に使用できません。

例を含む、列変換に対するGETENVの使用の詳細は、GETENVを参照してください。

デフォルト

なし

構文

GETENV (environment_variable)

environment_variable

環境変数名。

例

次に、GETENV文と返される値の例を示します。

GETENV (ORACLE_HOME)
ORACLE_HOME = /home/oracle/ora9/product
GETENV (ORACLE_SID)
ORACLE_SID = ora9

3.81 GETINSERTS | IGNOREINSERTS

適用対象

ExtractおよびReplicat

説明

GETINSERTSおよびIGNOREINSERTSパラメータでは、Oracle GoldenGateがINSERT操作を処理するかどうかを制御します。これらのパラメータは表に固有です。一方のパラメータは、もう一方のパラメータが見つかるまで、それ以降のすべてのTABLEまたはMAP文に有効です。

これらのパラメータは、MAP文で有効化または無効化を選択できるため、調整Replicatの様々なスレッドに対して有効にしたり、無効にしたりできます。あるセットのMAP文にGETINSERTSスレッドを指定し、別のセットのMAP文にIGNOREINSERTSを指定します。

デフォルト

GETINSERTS

構文

GETINSERTS | IGNOREINSERTS

例

この例では、GETINSERTSとIGNOREINSERTSを選択して様々なMAP文に適用する方法を示します(各文が、調整Replicatの異なるスレッドに該当します)。

GETINSERTS
MAP sales.cust, TARGET sales.cust, THREAD (1);
MAP sales.ord, TARGET sales.ord, THREAD (2);
IGNOREINSERTS
MAP sales.loc, TARGET sales.loc, THREAD (3);

3.82 GETREPLICATES | IGNOREREPLICATES

適用対象

Extract

説明

GETREPLICATESおよびIGNOREREPLICATESパラメータでは、Replicatが発行したDMLトランザクションを、同じシステム上で同じ表を処理しているExtractプロセスに取得させるか無視させるかを制御します。

これらのパラメータは、Informixには無効です。

Replicatトランザクションの無視

デフォルトでは、ExtractはIGNOREREPLICATESおよびGETAPPLOPSの組合せを使用します。この構成では、ExtractはOracle GoldenGateによって同期するように構成されているすべてのアプリケーション・データを取得し、すべてのReplicat操作を無視します。双方向構成では、この設定によって、Replicatが適用するデータが元のシステムにループ・バックする(そのために重複レコード・エラーが発生する)ことを防止できます。

Replicatトランザクションの取得

カスケード構成でGETREPLICATESとIGNOREAPPLOPSを使用すると、レプリケートされたデータをもう一度仲介システム上のExtractが取得し、最終的なターゲットにレプリケートできます。たとえば、データベースAをデータベースBにレプリケートし、データベースBをデータベースCにレプリケートする場合には、データベースBのExtractに対してGETREPLICATESを使用します。

注意:

ただし、GETREPLICATESが有効な場合でも、TABLEまたはMAP文のWHEREまたはFILTER句を使用して、特定のレプリート・データを取得から除外できます。

OracleでのGETREPLICATESおよびIGNOREREPLICATESの使用

GETREPLICATESおよびIGNOREREPLICATESパラメータは、トレース表(TRACETABLEパラメータ)を使用していない場合は使用しないでください。デフォルトでは、Extractは、Replicatによってコミットされるトランザクションを含むすべてのトランザクションを取得します。Replicatトランザクションを無視する場合は、TRANLOGOPTIONS EXCLUDEUSERパラメータを使用するようにしてください。これを使用して、Replicatのユーザーに加えて、特定のユーザーによるトランザクションを無視することもできます。

TRACETABLEパラメータを使用している場合、またはTRACETABLEを明示的に使用せずに作成されたデフォルトのトレース表GGS_TRACEがある場合、Extractは、TRACETABLE更新がデフォルトで含まれるトランザクションを自動的に無視します。Replicatがコミットしたトランザクションを取得する場合は、GETREPLICATESを指定する必要があります。この場合、Replicatではトランザクション・フィルタリングで予期できない動作が発生するため、TRANLOGOPTIONS EXCLUDUSERとともに使用することはお薦めしません。

デフォルト

IGNOREREPLICATES

構文

GETREPLICATES | IGNOREREPLICATES

3.83 GETTRUNCATES | IGNORETRUNCATES

適用対象

ExtractおよびReplicat

説明

GETTRUNCATESおよびIGNORETRUNCATESパラメータでは、Oracle GoldenGateが表切捨て操作を処理するかどうかを制御します。デフォルトでは、切捨て操作はソースでの取得やターゲットへのレプリケーションが行われません。

GETTRUNCATESおよびIGNORETRUNCATESは、表に固有です。一方のパラメータは、もう一方のパラメータが見つかるまで、それ以降のすべてのTABLEまたはMAP文に有効です。

調整Replicat構成では、切捨ては、バリア・トランザクションを行うスレッドによって常に処理されます。

サポートされるデータベース

- GETTRUNCATESおよびIGNORETRUNCATESは、Teradataではサポートされていません。

- GETTRUNCATESおよびIGNORETRUNCATESは、OracleおよびSybaseのExtractによってサポートされています。

- GETTRUNCATESおよびIGNORETRUNCATESは、Oracle、SQL Server、Sybase、DB2 LUW、DB2 z/OS、MySQL、SQL/MX、およびTRUNCATEコマンドをサポートする他のODBCターゲットのReplicatによってサポートされています。

注意:

z/OS上のDB2データベースからキャプチャ中に、TRUNCATEを無視できません。デフォルトでは、TRUNCATEはz/OS上のDB2ソースから常に取得されますが、Replicatパラメータ・ファイルでIGNORETRUNCATESが使用されている場合、ReplicatはTRUNCATEを無視できます。

DB2 LUWの制約事項

- DB2 LUWではTRUNCATEコマンドがサポートされていないため、ReplicatはNULL (空白)ファイルからIMPORT REPLACEを実行することによって、切捨て操作をレプリケートします。

Oracleの制約事項

- Oracle GoldenGateでは、Oracle TRUNCATE TABLEコマンドはサポートされていますが、TRUNCATE PARTITIONはサポートされていません。完全なOracle GoldenGate DDLレプリケーション・サポートの一部として、TRUNCATE PARTITIONをレプリケートできます。

- データベースは空の表の切捨て操作のログを取らないため、これらの操作はOracle GoldenGateに取得されません。この目的には、Oracle GoldenGateのDDLサポートを使用できます。

- データベースは空のパーティションに対する切捨て操作のログを取らないため、表に空のパーティションが含まれている場合、Oracle GoldenGateはTRUNCATE TABLEを確実に処理できません。GETTRUNCATESは、パーティション化された表で使用しないでください。空のパーティションを含む可能性がある表に対する切捨て操作の取得には、Oracle GoldenGateのDDLサポートを使用できます。

Sybaseの制約事項

Oracle GoldenGateがSybaseのTRUNCATE TABLEをサポートするには、すべての表名は、特定のデータベース内のすべてのスキーマで一意である必要があります。

デフォルト

IGNORETRUNCATES

構文

GETTRUNCATES | IGNORETRUNCATES

3.84 GETUPDATEAFTERS | IGNOREUPDATEAFTERS

適用対象

ExtractおよびReplicat

説明

GETUPDATEAFTERSおよびIGNOREUPDATEAFTERSでは、UPDATE操作の列のアフター・イメージを、Oracle GoldenGateによって処理されるレコードに含めるかどうかを制御します。アフター・イメージには、UPDATEの結果が含まれます。

これらのパラメータは表に固有です。一方のパラメータは、もう一方のパラメータが見つかるまで、それ以降のすべてのTABLEまたはMAP文に有効です。

これらのパラメータは、MAP文で有効化または無効化を選択できるため、調整Replicatの様々なスレッドに対して有効にしたり、無効にしたりできます。あるセットのMAP文にGETUPDATEAFTERSスレッドを指定し、別のセットのMAP文にIGNOREUPDATEAFTERSを指定します。

デフォルト

GETUPDATEAFTERS

構文

GETUPDATEAFTERS | IGNOREUPDATEAFTERS

例

この例では、GETUPDATEAFTERSとIGNOREUPDATEAFTERSを選択して様々なMAP文に適用する方法を示します(各文が、調整Replicatの異なるスレッドに該当します)。

GETUPDATEAFTERS
MAP sales.cust, TARGET sales.cust, THREAD (1);
MAP sales.ord, TARGET sales.ord, THREAD (2);
IGNOREUPDATEAFTERS
MAP sales.loc, TARGET sales.loc, THREAD (3);

3.85 GETUPDATEBEFORES | IGNOREUPDATEBEFORES

適用対象

ExtractおよびReplicat

説明

GETUPDATEBEFORESおよびIGNOREUPDATEBEFORESパラメータでは、Oracle GoldenGateに処理されるレコードに、UPDATE操作の列のビフォア・イメージを含めるかどうかを制御します。ビフォア・イメージには、行が更新される前に存在していた列の詳細情報が含まれます。

Oracle GoldenGate 12cは、デフォルトで、1つの統合更新レコードでの更新操作に対して変更前および変更後の値の両方をキャプチャします。前のリリースでは、デフォルトは変更後の値のみをキャプチャするものでした。このリリースからは、カスタムSQL文(SQLEXEC)が、新しいデフォルトの更新形式を使用して、各更新操作で1回のみ実行します。このリリース以前は、カスタムSQL文は、変更前の値が見つかったときの1回と、変更後の値が見つかったときの1回の、2回実行していました。Oracle GoldenGate 12c (12.1.xまたは12.2.x)を新しい統合更新形式で使用した場合、@BEFORE、@AFTERおよび@BEFOREAFTERファンクションを使用して、前または後の値をカスタムSQL文に明示的に渡すことができます。Oracle GoldenGate 12.2.xはデフォルトでこの新しい更新形式を使用しようとしますが、以前に2つの別々の変更前および変更後のレコードを生成していた競合するパラメータがある場合には、古い形式を保持することもできます。この場合、レポート・ファイルに情報メッセージが記録されます。

GETUPDATEBEFORESパラメータは、次のように使用します。

- Extractパラメータ・ファイルでは、データ・ソースからビフォア・イメージを抽出します。

- Replicatパラメータ・ファイルでは、Replicat操作にビフォア・イメージを含めます。

ビフォア・イメージとアフター・イメージを比較して、トランザクションの最終結果を確認したり、その他の差分計算を実行したりできます。たとえば、更新前のBALANCEフィールドが100ドルで更新後が120ドルの場合、これらを比較して20ドルの差異を確認できます。Oracle GoldenGateの列変換ファンクションを使用して、比較および計算を実行できます。

パラメータ・ファイルでビフォア・イメージを参照するには、@BEFORE変換ファンクションを使用します。例:

COLMAP (previous = @BEFORE (balance))

Oracle GoldenGateがサポートするすべてのプラットフォームでOracleデータベースに競合の検出および解決(CDR)機能を使用する場合、GETUPDATEBEFORESが必要です。CDRの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

GETUPDATEBEFORESおよびIGNOREUPDATEBEFORESパラメータは、表に固有です。一方のパラメータは、もう一方のパラメータが見つかるまで、それ以降のすべてのTABLEまたはMAP文に有効です。

これらのパラメータは、MAP文で有効化または無効化を選択できるため、調整Replicatの様々なスレッドに対して有効にしたり、無効にしたりできます。あるセットのMAP文にGETUPDATEBEFORESスレッドを指定し、別のセットのMAP文にIGNOREUPDATEBEFORESを指定します。

デフォルト

IGNOREUPDATEBEFORES

構文

GETUPDATEBEFORES | IGNOREUPDATEBEFORES

例

この例では、GETUPDATEBEFORESとIGNOREUPDATEBEFORESを選択して様々なMAP文に適用する方法を示します(各文が、調整Replicatの異なるスレッドに該当します)。

GETUPDATEBEFORES
MAP sales.cust, TARGET sales.cust, THREAD (1);
MAP sales.ord, TARGET sales.ord, THREAD (2);
IGNOREUPDATEBEFORES
MAP sales.loc, TARGET sales.loc, THREAD (3);

3.86 GETUPDATES | IGNOREUPDATES

適用対象

ExtractおよびReplicat

説明

GETUPDATESおよびIGNOREUPDATESパラメータでは、Oracle GoldenGateがUPDATE操作を処理するかどうかを制御します。これらのパラメータは表に固有です。一方のパラメータは、もう一方のパラメータが見つかるまで、それ以降のすべてのTABLEまたはMAP文に有効です。

これらのパラメータは、MAP文で有効化または無効化を選択できるため、調整Replicatの様々なスレッドに対して有効にしたり、無効にしたりできます。あるセットのMAP文にGETUPDATESスレッドを指定し、別のセットのMAP文にIGNOREUPDATESを指定します。

デフォルト

GETUPDATES

構文

GETUPDATES | IGNOREUPDATES

例

この例では、GETUPDATESとIGNOREUPDATESを選択して様々なMAP文に適用する方法を示します(各文が、調整Replicatの異なるスレッドに該当します)。

GETUPDATES
MAP sales.cust, TARGET sales.cust, THREAD (1);
MAP sales.ord, TARGET sales.ord, THREAD (2);
IGNOREUPDATES
MAP sales.loc, TARGET sales.loc, THREAD (3);

3.87 GGSCHEMA

適用対象

GLOBALS

説明

GGSCHEMAパラメータでは、トリガー・ベースのレプリケーション用のDDLレプリケーションをサポートするデータベース・オブジェクトやハートビート表の実装に含まれるデータベース・オブジェクトなど、Oracle GoldenGateが所有するデータベース・オブジェクトを含むスキーマ名を指定します。GGSCHEMAで指定されたスキーマ名は除外スキーマとみなされます。このスキーマの表は、ワイルドカードなしで包含指定が明示的に設定されている場合にのみキャプチャできます。

Oracle GoldenGateデータベース・オブジェクトの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

デフォルト

なし

構文

GGSCHEMA [container.]schema_name

[container.]schema_name

DDLスキーマの完全修飾名。スキーマがOracleコンテナ・データベース内にある場合は、3つの部分からなる完全な名前を使用します。

3.88 GROUPTRANSOPS

適用対象

Replicat

説明

GROUPTRANSOPSパラメータでは、標準モード(BATCHSQL以外)での動作時に1つのReplicatトランザクションに含まれるSQL操作数を制御します。Replicatトランザクションに含まれる操作数を増やすと、次のことを通じてOracle GoldenGateのパフォーマンスが向上します。

- Replicatが実行するトランザクション数の削減。

- チェックポイント・ファイルおよび(使用されている場合)チェックポイント表へのI/Oアクティビティの削減。Replicatは、定期的なチェックポイントに加えて、ターゲットにトランザクションを適用するたびにチェックポイントを発行します。

Replicatは、ソース・トランザクションからトランザクションの順序で操作を蓄積し、ターゲット上で1つのトランザクション内のグループとして操作を適用します。GROUPTRANSOPSでは、ソース・トランザクションの分割を回避するために、絶対値ではなく最小値を設定します。Replicatは、グループ内の最後のソース・トランザクションからすべての操作を受信するまで待機してから、ターゲット・トランザクションを適用します。

たとえば、トランザクション1に200の操作が含まれ、トランザクション2に400の操作が含まれ、トランザクション3に500の操作が含まれている場合、GROUPTRANSOPSがデフォルトの1,000に設定されているとしても、Replicatトランザクションには1,100すべての操作が含まれることになります。逆に、トレイルに処理するデータが残っていなければ、ReplicatはGROUPTRANSOPSに設定されている値に到達する前にトランザクションを適用することがあります。

表3-32 Replicat GROUPTRANSOPS

ソース・トランザクション(同じ表と列リストを想定)

標準(GROUPTRANSOPS)モードのReplicatトランザクション

トランザクション1:

INSERT

DELETE

トランザクション2:

INSERT

DELETE

トランザクション3:

INSERT

DELETE

トランザクション:

INSERT

DELETE

INSERT

DELETE

INSERT

DELETE

ソース・トランザクションの境界とターゲット・トランザクションの境界の差によって、ターゲット・データのレイテンシが長びくことがあるため、GROUPTRANSOPSを不必要に高い値に設定しないでください。

(Oracleのみ)統合ReplicatでGROUPTRANSOPSの効果があるのは、統合ReplicatのパラメータPARALLELISMが1に設定された場合のみです。

デフォルト

非統合Replicat: 1000の操作、統合Replicat: 50の操作

構文

GROUPTRANSOPS number

number

Replicatトランザクションで適用される最小操作数。ソース・トランザクションと同じトランザクション境界の内部では、値1によって操作が実行されます。値は1以上にする必要があります。

例

GROUPTRANSOPS 2000

3.89 HANDLECOLLISIONS | NOHANDLECOLLISIONS

適用対象

Replicat

説明

HANDLECOLLISIONSおよびNOHANDLECOLLISIONSパラメータでは、ReplicatがターゲットにSQLを適用するときに、重複レコード・エラーおよび紛失レコード・エラーの解決を試行させるかどうかを制御します。このようなエラー(コリジョン)は、Oracle GoldenGateがソース表に対して行われたトランザクション変更をレプリケートしている間に、初期ロード(ソース表のデータをターゲット表にロード)が実行される場合に発生します。初期ロードが終了してOracle GoldenGateがレプリケートされた変更を適用するとき、HANDLECOLLISIONSによって、これらのコリジョンに対するエラー処理ロジックがReplicatに提供されます。

HANDLECOLLISIONSおよびNOHANDLECOLLISIONSは、次の方法で使用できます。

- HANDLECOLLISIONSおよびNOHANDLECOLLISIONSをグローバルに有効化するには、パラメータ・ファイルのルート・レベルに指定します。一方のパラメータは、逆の意味のパラメータが出現するまで、パラメータ・ファイル内の後続のすべてのMAP文に対して有効です。

- 特定のMAPパラメータ内でHANDLECOLLISIONSまたはNOHANDLECOLLISIONSを有効化すると、そのソースとターゲットのマッピングについてのみエラー処理の有効と無効を切り替えることができます。

これらの方法を組み合せて使用できます。グローバルなコリジョン処理ルールを指定し、その規則をMAP文の別のコリジョン処理ルールでオーバーライドできます。MAPの指定は常にグローバル指定よりも優先されます。

HANDLECOLLISIONSの動作

次の例で、HANDLECOLLISIONSの動作を説明します。

- Replicatが、Oracle GoldenGateがキーとして使用している列への更新を検出すると、処理は次のようになります。

- 古いキーが含まれる行がターゲットに見つからない場合、トレイル内の変更レコードは挿入に変換されます。

- 新しいキーが含まれる行がターゲットに存在する場合、Replicatは古いキーが含まれる行を削除し(更新が正常に実行された場合は、このような行は存在しません)、新しいキーが含まれる行は、トレイル値が現在の値を置き換える上書きとして更新されます。

このロジックでは、デフォルトで、または強制的に(OracleデータベースのADD TRANDATAのCOLSオプションを使用するなど)、表内のすべての列(変更された列のみではない)をトランザクション・ログに書き込む必要があります。詳細は、紛失した列値を回避するために考えられる解決策を参照してください。

- Replicatが重複レコード・エラーを検出すると、初期ロードで適用された静的レコードは、トレイル内の変更レコードによって上書きされます。操作の観点からすると、重複レコード・エラーは、無視するよりも変更を適用するほうが安全です。

- Replicatは、キー列に影響しない更新または削除操作中に紛失レコード・エラーを検出すると、トレイル内の変更レコードを破棄します。このようなエラーは、表データが初期ロード・プロセスによって抽出される前に、ソース表でレコードが変更および削除されている場合に発生します。例:

1. アプリケーションがソース表のレコードA1を更新します。

2. Extractがこの更新を抽出します。

3. アプリケーションがソース表1のレコードAを削除します。

4. Extractがこの削除を抽出します。

5. Oracle GoldenGateが、レコードAが存在しないソース表1から初期ロード・データを抽出します。

6. Oracle GoldenGateがレコードAなしで初期ロードを適用します。

7. ReplicatがレコードAの更新の適用を試みます。

8. データベースは"レコード紛失"エラーを返します。

9. ReplicatがレコードAの削除の適用を試みます。

10. データベースは"レコード紛失"エラーを返します。

初期ロード中に取得されたトランザクション変更がターゲット表に適用されたら、HANDLECOLLLIONSを無効化し、その後のエラーがReplicatによって自動的に処理されないようにします。初期同期以降に発生するエラーは異常な状態を意味するため、解決方法を特定できる担当者によって検証される必要があります。たとえば、紛失エラーは、ソース表に存在するデータがターゲット・システムから誤って削除されたことが原因の可能性があります。

HANDLECOLLISIONSは、次の方法で無効化できます。

- Replicatを停止し、Replicatパラメータ・ファイルからHANDLECOLLISIONSを削除します(ターゲットにレイテンシが生じる可能性があります)。または、パラメータ・ファイルを編集して、エラー処理を無効化するMAP文の前にNOHANDLECOLLISIONSを追加できます。

- Replicatの実行中にGGSCIを実行し、SEND REPLICATコマンドと該当の表に対するNOHANDLECOLLISIONSオプションを使用します。詳細は、SEND REPLICATを参照してください。

注意:

SEND REPLICATを使用する場合は、HANDLECOLLISIONSが再度有効化されないように、Replicatの実行を次に開始する前に、パラメータ・ファイルからHANDLECOLLISIONSを削除するか、NOHANDLECOLLISIONSパラメータを追加してください。

紛失した列値を回避するために考えられる解決策

データベースがデフォルトでソース表のすべての列値を記録しないと、Replicatが主キー更新を挿入に変換しようとするときにターゲット表にNOT NULL制約がある場合、エラーが発生します。次の方法で、このシナリオに対処できます。

- Extractパラメータ・ファイルでNOCOMPRESSUPDATESパラメータを使用して、表のすべての列をトレイルに送信し、すべての列値を記録するようにデータベースを構成します。デフォルトでは、Extractは主キーおよび変更された列のみをトレイルに書き込みます。この方法は、操作が実行された時点で現在の値が書き込まれ、フェッチする必要がなくなるため、最も安全です。

- Extractパラメータ・ファイルでFETCHOPTIONSパラメータをFETCHPKUPDATECOLSオプションとともに使用します。この構成では、Extractに、キー列がソース上で更新されたときに使用できない列をフェッチさせます。フェッチは現在の値で、特定の更新時の値であるとはかぎらないため、データ整合性の問題が発生する可能性があります。詳細情報、および失敗したフェッチを処理する追加のフェッチ・オプションは、FETCHOPTIONSを参照してください。

- フェッチを回避するには、HANDLECOLLISIONSを_ALLOWPKMISSINGROWCOLLISIONSとともに使用して、更新をINSERTに変換するかわりに、更新をスキップします。この構成では、特定の条件でデータ整合性の問題が発生する可能性もあります。詳細は、キーの更新から挿入への変換の防止を参照してください。

キーの更新から挿入への変換の防止

場合によっては、ターゲット行が存在しない場合に、キー列を更新する操作をINSERTに変換することは適切ではありません。このような場合、_ALLOWPKMISSINGROWCOLLISIONSオプションを使用して、挿入として適用するかわりに、Replicatに操作をスキップさせることができます。

次の例では、そのようなケースを示します。このシナリオでは、デフォルトのHANDLECOLLISIONSロジックを使用してOracle GoldenGateレプリケーションのインスタンス化を実行して、Replicatが更新を挿入に変換しようとしたときに列値が紛失した場合にどのような状況が発生するかを示しています。

ソース表およびターゲット表:

両方の表の名前はsampleです。

f1  f2                   f3  f4
1   10-01-2011 11:30:45  1   1
2   10-02-2011 14:15:20  2   2
3   10-03-2011 15:12:55  3   3

- すべての列はNOT NULLです。

- f1は主キーです。

- f2は、レコードが変更されるたびに自動的に更新される日付フィールドです。

- KEYCOLSは、f1およびf2をキーとして使用するようにOracle GoldenGateに指示するために、パラメータ・ファイルで使用されます。

- 列f2を記録するために、ADD TRANDATAが適宜発行されました。列f1は主キーであるため、自動的に記録されます。

DMLの一連のイベント

1. Extractを起動して、進行中のトランザクションを取得します。

2. 次のように、表にUPDATEを実行します。

update sample set f3=3 where f1=2;

この操作では、列f2は現在の日時で自動的に更新されます。Oracle GoldenGateでは、これはキー更新とみなされます。

現在、行は次のようになります。

2   10-20-2011 08:01:32  3   3

3. 同じ行のDELETEを実行します。

delete sample where f1=2;

現在、表には次の行が含まれています。

f1  f2                   f3  f4
1   10-01-2011 11:30:45  1   1
3   10-03-2011 15:12:55  3   3

4. HANDLECOLLISIONSを使用して、ターゲットへのソース・データのエクスポート/インポートを実行して、紛失した行や重複する行を処理します。

5. レプリケートされた更新(update sample, set f3=3 where f1=2)は、Replicatによってトレイルから適用される最初の操作です。インポート/エクスポートが実行される前にソースから行が削除されたため、これは失敗します。

6. キー列(f2の日時の列)を更新する操作を行うHANDLECOLLISIONSロジックに従って、ReplicatはUPDATEをINSERTに変換します。

7. すべての列値がトレイルで使用できる場合、新しいINSERTは成功します。さらに、レプリケートされた削除(delete sample where f1=2)によって行が再度削除されるため、行がソース上で削除されていても、不整合は発生しません。ただし、この例には2つの問題があります。

- 列f1、f2、および、変更されたf3の値のみが記録されます。f4の値は記録されないため、この値は挿入操作で使用されません。

- すべての列にはNOT NULL制約があります。

f4の値が紛失したことにより、INSERTは失敗します。_ALLOWPKMISSINGROWCOLLISIONSを使用すると、Replicatは、UPDATEをINSERTに変換するかわりにスキップします。これにより、行が存在しないため後続のDELETEは失敗し、そのため、ReplicatはデフォルトのHANDLECOLLISIONSロジックの一部としてDELETEレコードをスキップします。現在、データはソースのデータと一貫性があります。

_ALLOWPKMISSINGROWCOLLISIONSからのメッセージ

_ALLOWPKMISSINGROWCOLLISIONSはデータ損失のリスクを伴うため、これを使用する場合は警告が発行されます。警告は次のテキストのようになります。

Using _ALLOWPKMISSINGROWCOLLISIONS may cause data corruption under certain conditions.

キーへのUPDATEに、挿入への変換のための完全なアフター・イメージが含まれていない場合、次の警告メッセージも発行されます。

A complete after image is not available in SOURCE.x, at RBA 123, in file .\dirdat\aa000000, while inserting a row into TARGET.x due to a missing target row for a key update operation. NOCOMPRESSUPDATES or FETCHOPTIONS FETCHPKUPDATECOLS may be specified in the EXTRACT parameter file to include a complete image for key update operations.

初期ロードに関するその他の情報

Oracle GoldenGateの初期ロード方式の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

NOHANDLECOLLISIONS

構文

HANDLECOLLISIONS | NOHANDLECOLLISIONS [_ALLOWPKMISSINGROWCOLLISIONS]
[THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])]

HANDLECOLLISIONS

コリジョン処理を有効にします。

_ALLOWPKMISSINGROWCOLLISIONS

HANDLECOLLISIONSを_ALLOWPKMISSINGROWCOLLISIONSとともに使用すると、対応するターゲット行が存在しない場合に、主キーのUPDATE操作をスキップします。

注意:

スキップ操作によりデータの破損が発生することがあります。このトピックの説明を参照してください。

NOHANDLECOLLISIONS

コリジョン処理をオフにします。

THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])

指定したスレッドについてHANDLECOLLISIONSを有効にします。パラメータ・ファイルのルート・レベルにあるグローバルなHANDLECOLLISIONS文で使用されると、指定のスレッドの場所にかかわらずすべてのMAP文で、HANDLECOLLISIONSがそのスレッドに対して有効になります。MAP文のHANDLECOLLISIONS句で使用されると、HANDLECOLLISIONSはそのMAP文のみで有効になります。

threadID[, threadID][, ...]

スレッドIDを指定するか、スレッドのカンマ区切りリストをthreadID, threadID, threadIDの形式で指定します。

thread_range[, thread_range][ ]

スレッドの範囲をthreadIDlow-threadIDhighの形式で指定するか、範囲のカンマ区切りリストをthreadIDlow-threadIDhigh, threadIDlow-threadIDhighの形式で指定します。

threadID, threadID, threadIDlow-threadIDhighのように、これらの形式を組み合せて指定することもできます。

例

例1

次の例では、パラメータ・ファイル内のすべてのMAP文に対してHANDLECOLLISIONSを有効にします。

HANDLECOLLISIONS
MAP hr.emp, TARGET hr.emp;
MAP hr.job_hist, TARGET hr.job_hist;
MAP hr.dep, TARGET hr.dep;
MAP hr.country, TARGET hr.country;

例2

次の例では、パラメータ・ファイル内の一部のMAP文に対してのみHANDLECOLLISIONSを有効にし、それ以外に対しては無効にします。

HANDLECOLLISIONS
MAP hr.emp, TARGET hr.emp;
MAP hr.job_hist, TARGET hr.job_hist;
NOHANDLECOLLISIONS
MAP hr.dep, TARGET hr.dep;
MAP hr.country, TARGET hr.country;

例3

次の例は、MAP文でのHANDLECOLLISIONSの基本的な使用方法です。

MAP dbo.tcust, TARGET dbo.tcust, HANDLECOLLISIONS;

例4

次に、グローバルおよびMAPレベルを組み合せた使用例を示します。指定された表では、MAPレベルの指定がグローバル指定よりも優先されます。

HANDLECOLLISIONS
MAP hr.emp, TARGET hr.emp;
MAP hr.job_hist, TARGET hr.job_hist;
MAP hr.dep, TARGET hr.dep, NOHANDLECOLLISIONS;
MAP hr.country, TARGET hr.country, NOHANDLECOLLISIONS;

例5

次の例では、最初のMAP文のデフォルトのスレッド0と、2番目のMAP文のスレッド3を除き、HANDLECOLLISIONSがすべてのMAP文に対してグローバルに有効化されます。

HANDLECOLLISIONS
MAP fin.*, TARGET fin.*;
MAP sales.*, TARGET sales.*;
MAP orders.*, TARGET orders.*;
MAP scott.cust, TARGET scott.cust, NOHANDLECOLLISIONS;
MAP amy.cust, TARGET amy.cust, THREAD(3), NOHANDLECOLLISIONS;

例6

この例では、HANDLECOLLISIONSがグローバルに有効化されますが、スレッド3に対しては無効です。その他のスレッド1、2および4はコリジョンを処理します。

HANDLECOLLISIONS
NOHANDLECOLLISIONS THREAD(3)
MAP scott.emplyees, TARGET scott.employees, THREADRANGE(1,4, OID);
MAP scott.inventory, TARGET scott.inventory, THREADRANGE(1,4, OID);
MAP scott.cust, TARGET scott.cust, THREADRANGE(1,4, OID);

例7

この例では、HANDLECOLLISIONSがグローバルに有効化されますが、スレッド5から7に対してはグローバルに無効化されます。HANDLECOLLISIONSパラメータでスレッドまたは範囲が指定されないため、最初のMAP文ではすべてのスレッドがコリジョンを処理します。2番目のMAP文では、スレッド4、8および9がコリジョンを処理します。グローバルのNOHANDLECOLLISIONSがスレッド5から7に適用されるためです。

HANDLECOLLISIONS
NOHANDLECOLLISIONS THREADRANGE(5-7)
MAP scott.cust, TARGET scott.cust, THREADRANGE(4,9,OID), HANDLECOLLISIONS;
MAP scott.offices, TARGET scott.offices, THREADRANGE(4,9,OID);
MAP scott.emp, TARGET scott.emp, THREADRANGE(4,9,OID);
MAP scott.ord, TARGET scott.ord, THREADRANGE(4,9,OID);
MAP acct.*, TARGET acct.*;
MAP admin.*, TARGET admin.*;

3.90 HANDLETPKUPDATE

適用対象

Replicat (非統合モード)

説明

HANDLETPKUPDATEパラメータでは、主キーへの更新の結果、一時的な重複が発生するときの制約エラーを防止します。これは、非統合ReplicatのOracleパラメータで、ターゲット・データベースがOracleリリース11.2.0.2より前のリリースである場合に必要です。ターゲットのOracleデータベースがリリース11.2.0.2以降である場合、一時的な主キーの重複は、HANDLETPKUPDATEを必要とせずに、自動的に処理されます。統合Replicatは、この発行を自動的に処理するため、このパラメータを設定する必要はありません。

更新によって、トランザクション内の複数の行の主キーに影響を与える場合に、一時的な主キーの重複が発生します。この種類の文は、通常、SET x = x+nの式、または、新しい値が既存の値と同じになるように値をシフトするその他の操作を使用します。

次に、この状況を発生させる可能性がある値の変更の流れを示します。この例では、表をITEM、主キー列名をCODE、この表の行の現在のキーの値を1、2、3とします。

update item set code = 2 where code = 1;
update item set code = 3 where code = 2;
update item set code = 4 where code = 3;

この例では、最初のUPDATEがターゲットに適用されると、表にすでに主キー値2が存在するため、エラーが発生します。ターゲット・トランザクションは、制約違反エラーを返します。デフォルトでは、Replicatはこうした違反を検出または処理せずに異常終了します。

HANDLETPKUPDATEを使用すると、ターゲット表にDEFERRABLE INITIALLY IMMEDIATEが制約として作成されます。ターゲットの制約をDEFERRABLEにできない場合、ReplicatはHANDLECOLLISIONSおよびREPERRORパラメータに指定された既存のルールに従ってエラーを処理するか、異常終了します。

このパラメータは、パラメータ・ファイルで使用可能で、次のようにMAP文内で使用できます。

MAP ggs.equip_account, TARGET ggs.equip_account, HANDLETPKUPDATE;

デフォルト

一時主キー更新で異常終了する

構文

HANDLETPKUPDATE

3.91 HAVEUDTWITHNCHAR

適用対象

Replicat (Oracleのみ)

説明

HAVEUDTWITHNCHARパラメータは、ソース・データにNCHAR、NVARCHAR2またはNCLOB属性のユーザー定義型が含まれるときに使用します。このデータがトレイルで検出されると、HAVEUDTWITHNCHARによってReplicatは、ユーザー定義データ型にこれらの属性の1つが含まれる場合に必要となるAL32UTF8でOracleターゲットに接続します。

ターゲットのキャラクタ・セットがAL32UTF8の場合、HAVEUDTWITHNCHARは必要ありません。ただし、これが必要になるのは、ターゲットでNLS_LANGがAL32UTF8に設定されている場合のみです。デフォルトのReplicatは、NLS_LANGを無視し、データベースのネイティブ・キャラクタ・セットでOracleデータベースに接続します。ReplicatはOracle Call InterfaceのOCIStringオブジェクトを使用していますが、これはNCHAR、NVARCHAR2またはNCLOB属性をサポートしないため、ReplicatがそれらをCHARとしてバインドする必要があります。このような状況では、AL32UTF8のターゲットに接続することでデータの損失を防ぎます。

HAVEUDTWITHNCHARは、パラメータ・ファイルでUSERIDまたはUSERIDALIASパラメータの前に指定する必要があります。

デフォルト

なし

構文

HAVEUDTWITHNCHAR

3.92 HEARTBEATTABLE

適用対象

GLOBALS

説明

ハートビート表のデフォルト以外の名前を指定するには、HEARTBEATTABLEを使用します。表名GG_HEARTBEATがデフォルトです。ハートビート表を示すこの名前を使用して、シード表と履歴表(それぞれGG_HEARTBEAT_SEEDおよびGG_HEARTBEAT_HISTORY)が作成されます。1つの名前を指定すると、ハートビート・インフラストラクチャで使用されるすべての名前が予約されます。スキーマ名を指定しない場合、スキーマ名にはGGSCHEMAの値が使用されます。

SQL/MXの場合、GGSCHEMAは使用されないので、2部または3部構成のハートビート表名を使用する必要があります。

デフォルト

なし

構文

HEARTBEATTABLE schema_name heartbeat_table_name

schema_name

ハートビート表で使用するスキーマの名前。GLOBALSファイルでGGSCHEMAパラメータを使用してスキーマを指定している場合、これは必要ありません。

heartbeat_table_name

使用するハートビート表名。デフォルトの表名はGG_HEARTBEATです。

3.93 INCLUDE

適用対象

ExtractおよびReplicat

説明

INCLUDEパラメータでは、パラメータ・ファイルにマクロ・ライブラリを含めます。マクロの使用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

INCLUDE library

library

ライブラリ・ファイルへの相対パスまたは完全パス。

例

次の例では、マクロ・ライブラリmdatelib.macを含めます。

INCLUDE /ggs/dirprm/mdatelib.mac

3.94 INSERTALLRECORDS

適用対象

Replicat

説明

INSERTALLRECORDSパラメータでは、レコードの現在のバージョンのみではなく、ターゲット・レコードに行われたすべての操作のレコードを保持します。INSERTALLRECORDSを使用すると、Replicatはレコードに対するすべての変更を新しいレコードとしてデータベースに挿入します。最初の挿入、その後の更新および削除は、ポイントインタイム・スナップショットとして保持されます。

INSERTALLRECORDSを使用する例を次に示します。

- 例外MAP文で使用する場合。例外MAP文でINSERTALLRECORDSを使用すると、エラー処理方法の一環として、エラーを生成した操作の値が新しいレコードとして例外表に挿入されます。

- トランザクション履歴を保持する場合。特定の行に対するすべての変更を新しいレコードとしてデータベースに挿入することで、最新バージョンだけを保持するかわりに、その行に対して実行されたすべての変更の履歴を保持できます。それぞれの挿入はポイントインタイム・スナップショットであり、監査の目的で必要に応じて問合せを実行できます。履歴データと特別なトランザクション情報を組み合せることで、より有益なターゲット・レポート・データベースを作成できます。

INSERTALLRECORDSは、パラメータ・ファイルのルート・レベルで使用すると、後続のすべてのMAP文に適用できます。また、MAP文で使用すると、特定の表またはワイルドカードで指定した複数の表に適用できます。

INSERTALLRECORDSに関するその他の情報

トランザクション履歴表の作成方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

例外MAP文の使用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

MAPの構文は、TABLE | MAPを参照してください。

デフォルト

なし

構文

INSERTALLRECORDS

例

例1

この例は、例外処理構成に含まれる、パラメータ・ファイルのルート・レベルのINSERTALLRECORDSです。

REPLICAT deliv
USERIDALIAS tiger1
ASSUMETARGETDEFS
REPERROR (DEFAULT, EXCEPTION)
MAP ggs.equip_account, TARGET ggs.equip_account2,
COLMAP (USEDEFAULTS);
MAP ggs.equip_account, TARGET ggs.equip_account_exception,
EXCEPTIONSONLY,
INSERTALLRECORDS
COLMAP (USEDEFAULTS,
DML_DATE = @DATENOW(),
OPTYPE = @GETENV('LASTERR', 'OPTYPE'),
DBERRNUM = @GETENV('LASTERR', 'DBERRNUM'),
DBERRMSG = @GETENV('LASTERR', 'DBERRMSG'));

例2

この例は、MAP文のINSERTALLRECORDSです。

REPLICAT deliv
USERIDALIAS tiger1
SOURCEDEFS /ggs/dirdef/defs
REPERROR DEFAULT, ABEND
MAP fin.accTAB, TARGET fin.custTAB, INSERTALLRECORDS;

3.95 INSERTAPPEND | NOINSERTAPPEND

適用対象

Replicat (Oracle非統合モード)

説明

INSERTAPPENDおよびNOINSERTAPPENDパラメータでは、非統合モードで実行しているReplicatが、Oracleターゲット表にINSERT操作(配列のバインディングに使用)を適用するときにAPPENDヒントを使用するかどうかを制御します。これらのパラメータは、Oracleデータベースにのみ有効で、BATCHSQLモードとのみ互換性があります。

INSERTAPPENDを指定すると、Oracleターゲット表にINSERT操作を適用するときに、ReplicatはAPPEND_VALUESヒントを使用します。レプリケートされるトランザクションが大きく、同一の表への複数の挿入が含まれている場合、ヒントの使用は適切なパフォーマンスの向上策です。トランザクションが小さい場合にINSERTAPPENDを使用すると、パフォーマンスが低下することがあります。APPENDヒント使用の詳細は、Oracleのマニュアルを参照してください。

INSERTAPPENDを使用する場合は、BATCHSQLパラメータを使用する必要があります。 BATCHSQLを使用しない場合、Replicatは異常終了します。

これらのパラメータは2つの方法で使用でき、パラメータ・ファイルのルートで単独パラメータとして使用する場合は、一方のパラメータは、もう一方のパラメータが見つかるまで、それ以降のすべてのTABLEまたはMAP文に有効です。1つのMAP文内で使用する場合は、このMAP文よりも先に指定されているすべての単独のINSERTAPPENDまたはNOINSERTAPPENDエントリよりも優先されます。

MAPパラメータの詳細は、TABLE | MAPを参照してください。

デフォルト

NOINSERTAPPEND

構文

INSERTAPPEND | NOINSERTAPPEND

例

例1

次の例は、Replicatパラメータ・ファイルの一部です。INSERTAPPENDが、inventory表を除くfinスキーマ内のすべての表に対して使用されています。

BATCHSQL
INSERTAPPEND
MAP fin.*, TARGET fin2.*;
MAPEXCLUDE fin.inventory;
NOINSERTAPPEND
MAP fin.inventory, TARGET fin2.inventory;

例2

次の例は、Replicatパラメータ・ファイルの一部です。INSERTAPPENDが、inventory表を除くMAP文のすべての表に対して使用されます。

BATCHSQL
MAP fin.orders, TARGET fin.orders;
MAP fin.customers, TARGET fin.customers;
MAP fin.inventory, TARGET fin.inventory, NOINSERTAPPEND;

3.96 INSERTDELETES | NOINSERTDELETES

適用対象

Replicat

説明

INSERTDELETESおよびNOINSERTDELETESパラメータでは、Oracle GoldenGateがソースの削除操作をターゲット・データベース上で挿入操作に変換するかどうかを制御します。これらのパラメータは表に固有です。一方のパラメータは、もう一方のパラメータが見つかるまで、それ以降のすべてのMAP文に有効です。

INSERTDELETESを使用する場合、Extractが削除を圧縮しないように、NOCOMPRESSDELETESパラメータを使用します。

これらのパラメータは、MAP文で有効化または無効化を選択できるため、調整Replicatの様々なスレッドに対して有効にしたり、無効にしたりできます。あるセットのMAP文にINSERTDELETESスレッドを指定し、別のセットのMAP文にNOINSERTDELETESを指定します。

デフォルト

NOINSERTDELETES

構文

INSERTDELETES | NOINSERTDELETES

例

この例では、INSERTDELETESとNOINSERTDELETESを選択して様々なMAP文に適用する方法を示します(各文が、調整Replicatの異なるスレッドに該当します)。

INSERTDELETES
MAP sales.cust, TARGET sales.cust, THREAD (1);
MAP sales.ord, TARGET sales.ord, THREAD (2);
NOINSERTDELETES
MAP sales.loc, TARGET sales.loc, THREAD (3);

3.97 INSERTMISSINGUPDATES | NOINSERTMISSINGUPDATES

適用対象

Replicat

説明

INSERTMISSINGUPDATESおよびNOINSERTMISSINGUPDATESパラメータでは、ターゲット・レコードが存在しない場合にOracle GoldenGateがソース・レコードに基づいてレコードを挿入するかどうかを制御します。

INSERTMISSINGUPDATESは、行方不明のレコードに対する更新を挿入します。ソース・データベースが変更の有無にかかわらずすべての列値を記録している場合にのみ使用するようにしてください。これは圧縮更新(変更された値だけが記録される)を使用するデータベースで使用できますが、ターゲット・データベースにおいて行方不明の列の値にNULLを使用できる場合です。

デフォルトのNOINSERTMISSINGUPDATESが有効な場合は、紛失レコードによってエラーが発生し、REPERRORの設定に応じて、トランザクションは異常終了することがあります。

INSERTMISSINGUPDATESおよびNOINSERTMISSINGUPDATESパラメータは、表に固有です。一方のパラメータは、もう一方のパラメータが見つかるまで、それ以降のすべてのMAP文に有効です。

デフォルト

NOINSERTMISSINGUPDATES

構文

INSERTMISSINGUPDATES | NOINSERTMISSINGUPDATES

3.98 INSERTUPDATES | NOINSERTUPDATES

適用対象

Replicat

説明

INSERTUPDATESおよびNOINSERTUPDATESパラメータでは、Oracle GoldenGateが更新操作を挿入操作に変換するかどうかを制御します。挿入に変換される更新の場合、データベースは、デフォルトまたはサプリメンタル・ロギングのいずれかを使用して、すべての列値を記録する必要があります。

これらのパラメータは表に固有です。一方のパラメータは、もう一方のパラメータが見つかるまで、それ以降のすべてのMAP文に有効です。

INSERTUPDATESを使用する場合に、更新がExtractによって圧縮されていないことを確認するには、NOCOMPRESSUPDATESパラメータを使用します。

これらのパラメータは、MAP文で有効化または無効化を選択できるため、調整Replicatの様々なスレッドに対して有効にしたり、無効にしたりできます。あるセットのMAP文にINSERTUPDATESスレッドを指定し、別のセットのMAP文にNOINSERTUPDATESを指定します。

デフォルト

NOINSERTUPDATES

構文

INSERTUPDATES | NOINSERTUPDATES

例

この例では、INSERTUPDATESとNOINSERTUPDATESを選択して様々なMAP文に適用する方法を示します(各文が、調整Replicatの異なるスレッドに該当します)。

INSERTUPDATES
MAP sales.cust, TARGET sales.cust, THREAD (1);
MAP sales.ord, TARGET sales.ord, THREAD (2);
NOINSERTUPDATES
MAP sales.loc, TARGET sales.loc, THREAD (3);

3.99 LAGCRITICAL

適用対象

Manager

説明

LAGCRITICALSECONDS、LAGCRITICALMINUTES、またはLAGCRITICALHOURSパラメータでは、クリティカルとみなすラグしきい値を指定し、しきい値に達したときにエラー・ログに警告メッセージを書き込みます。このパラメータは、ローカル・システムのExtractおよびReplicatプロセスに影響します。

デフォルト

ラグ情報をレポートしない

構文

LAGCRITICALSECONDS seconds | LAGCRITICALMINUTES minutes | LAGCRITICALHOURS hours

LAGCRITICALSECONDS seconds

クリティカルなラグしきい値(秒)を設定します。

LAGCRITICALMINUTES minutes

クリティカルなラグしきい値(分)を設定します。

LAGCRITICALHOURS hours

クリティカルなラグしきい値(時間)を設定します。

例

LAGCRITICALSECONDS 60

3.100 LAGINFO

適用対象

Manager

説明

LAGINFOSECONDS、LAGINFOMINUTESまたはLAGINFOHOURSパラメータでは、基本のラグしきい値を指定します。ラグが指定した値を超えると、Oracle GoldenGateはエラー・ログにラグ情報をレポートします。ラグがLAGCRITICALパラメータで指定した値を超えると、Managerはこのラグをクリティカルとしてレポートし、それ以外の場合は情報メッセージとしてレポートします。値ゼロ(0)を指定すると、LAGREPORTMINUTESまたはLAGREPORTHOURSパラメータで指定した間隔でメッセージがレポートされます。

デフォルト

ラグ情報をレポートしない

構文

LAGINFOSECONDS seconds | LAGINFOMINUTES minutes | LAGINFOHOURS hours

LAGINFOSECONDS seconds

基本のラグしきい値(秒)を設定します。

LAGINFOMINUTES minutes

基本のラグしきい値(分)を設定します。

LAGINFOHOURS hours

基本のラグしきい値(時間)を設定します。

例

この例では、Oracle GoldenGateは1時間を超えるとラグをレポートします。

LAGINFOHOURS 1

3.101 LAGREPORT

適用対象

Manager

説明

LAGREPORTMINUTESまたはLAGREPORTHOURSパラメータでは、ManagerがExtractおよびReplicatのラグを確認する間隔を指定します。このパラメータを使用するときは、LAGINFOおよびLAGCRITICALパラメータも使用する必要があります。LAGREPORTが指定されない場合、ラグはレポートされません。

LAGREPORTが使用され、CHECKMINUTESパラメータの値がLAGREPORTよりも大きい場合、CHECKMINUTESはLAGREPORTの値を取得します。

デフォルト

なし

構文

LAGREPORTMINUTES minutes | LAGREPORTHOURS hours

LAGREPORTMINUTES minutes

ラグ情報を確認する間隔(分)。

LAGREPORTHOURS hours

ラグ情報を確認する間隔(時間)。

例

LAGREPORTHOURS 1

3.102 LIST | NOLIST

適用対象

ExtractおよびReplicat

説明

LISTおよびNOLISTパラメータでは、レポート・ファイルにマクロ・ライブラリのマクロをリストするかどうかを制御します。レポートへのリストを有効化または無効化するには、パラメータ・ファイル内かマクロ・ライブラリ・ファイル内にLISTまたはNOLISTパラメータを配置します。NOLISTを使用すると、レポート・ファイルのサイズが小さくなります。マクロの使用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

LIST

構文

LIST | NOLIST

例

次の例では、NOLISTによって、hugelibマクロ・ライブラリのマクロをレポートへのリストから除外します。INCLUDE文の後にLISTを使用し、それ以降のマクロを通常のリスト設定に戻します。

NOLIST
INCLUDE /ggs/hugelib.mac
LIST

3.103 LOBMEMORY

適用対象

z/OS上のDB2およびNonStop SQL/MXのExtractとReplicat

説明

LOBMEMORYパラメータを使用して、LOBを含むトランザクションのキャッシュに使用するメモリーおよび一時ディスク領域の量を制御します。Oracle GoldenGateはコミットされたトランザクションのみをターゲット・データベースに適用するため、コミットまたはロールバックのインジケータを受信するまでLOBデータを保持するための十分なシステム・メモリーが必要です。

このパラメータは、z/OS上のDB2データベースおよびNonStop SQL/MXデータベースとともに使用します。他のすべてのデータベースでは、CACHEMGRパラメータを使用します。

LOBMEMORYを使用したメモリー管理について

LOBMEMORYを使用して、Oracle GoldenGateのLOBトランザクション用のキャッシュ・サイズを調整し、キャッシュ・サイズを超えるデータを保持するディスク上の一時的な場所を定義できます。合計キャッシュ・サイズ、トランザクション当たりのメモリー・サイズ、初期および増分メモリー割当て、ディスク記憶域領域を定義するためのオプションを使用できます。

LOBトランザクションは、RAMによって指定されたメモリー・プールに追加され、TRANSRAMの値に達したときにディスクにフラッシュされます。初期メモリー量は、INITTRANSRAMに基づいて各トランザクションに割り当てられ、必要に応じて、RAMINCREMENTで指定された量ずつ、TRANSRAMで設定された最大値まで増分されます。したがって、TRANSRAMには(INITTRANSRAM + RAMINCREMENT)の合計によって割り切れる値を指定する必要があります。

デフォルト

オプションのデフォルトを参照してください

構文

LOBMEMORY
[RAM size]
[TRANSRAM size]
[TRANSALLSOURCES size]
[INITTRANSRAM size]
[RAMINCREMENT size]
[DIRECTORY (directory, max_directory_size, max_file_size)]

RAM size

キャッシュされたすべてのLOBトランザクションが使用する合計メモリー量を指定します。デフォルトは200MBです。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

TRANSRAM size

1つのLOBトランザクションが使用する合計メモリー量を指定します。デフォルトは50MBです。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

TRANSRAMは、最適な成果を得るために、INITTRANSRAMおよびRAMINCREMENT両方の値によって割り切れる値に設定する必要があります。

TRANSALLSOURCES size

1つのLOBトランザクションが利用するメモリーおよびディスク領域の量の合計を指定します。デフォルトは、使用可能なメモリー(メモリーおよびディスク)合計の50%です。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

INITTRANSRAM size

1つのLOBトランザクションに割り当てる初期メモリー量を指定します。デフォルトは500KBです。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

RAMINCREMENT size

LOBトランザクションがさらに多くのメモリーを必要とするときに増分するメモリー量を指定します。デフォルトは500KBです。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。

GB | MB | KB | G | M | K | gb | mb | kb | g | m |

DIRECTORY (directory, max_directory_size, max_file_size)

LOBトランザクション・データのサイズがTRANSRAMで指定した最大値を超えたときにこのデータが使用する一時ディスク記憶域を指定します。DIRECTORYは、複数回指定できます。

- directoryは、ディレクトリの完全修飾名です。デフォルトは、Oracle GoldenGateディレクトリのdirtmpサブディレクトリです。

- max_directory_sizeは、ディレクトリのすべてのファイルの合計の最大サイズです。デフォルトは2GBです。指定した領域が使用できない場合は、使用可能なディスク領域の75%が使用されます。

- max_file_sizeは、ディレクトリ内の各ファイルの最大サイズです。デフォルトは200MBです。

この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

ディレクトリ・サイズおよびファイル・サイズは、RAMで指定したメモリー・サイズより大きい必要があります。

ファイル名は、次のフォーマットを使用します。

group_blob_00001.mem

または...

PID_blob_00001.mem

グループ名は、オンライン処理で使用されます。システム・プロセスID番号(PID)は、SPECIALRUNパラメータで指定したワンタイム実行で使用されます。

スレッドExtractのフォーマットは次のようになります(データベースによって異なります)。

group_thread #_00001.mem

例

例1

次の例では、データをディスクにフラッシュする前に、各トランザクションに10回のメモリー追加を許可します(INITTRANSRAMで指定された初期割当て1回と、RAMINCREMENTで許可された9回)。

LOBMEMORY DIRECTORY (c:\test\dirtmp, 3000000000, 300000000), &
RAM 8000K, TRANSRAM 1000K, INITTRANSRAM 100K, RAMINCREMENT 100K

例2

次の例は前述の例と同じですが、2つ目のディレクトリも追加します。

LOBMEMORY DIRECTORY (c:\test\dirtmp, 3000000000, 300000000), &
DIRECTORY (c:\test\dirtmp2, 1000000000, 5000000), &
RAM 8000K, TRANSRAM 1000K, INITTRANSRAM 100K, RAMINCREMENT 100K

3.104 LOGALLSUPCOLS

適用対象

Extract

説明

LOGALLSUPCOLSパラメータでは、ADD TRANDATAまたはADD SCHEMATRANDATAによって指定された列のサプリメンタル・ログのトレイルへの書込みを制御します。

LOGALLSUPCOLSは、統合Replicat (Oracleデータベース用)とOracle GoldenGate競合の検出および解決(CDR)機能をサポートします。サプリメンタル・ロギングされる列は、パラレルReplicatスレッド間のデータ整合性を保証するために必要なスケジュール列と、競合の検出および解決(CDR)列を合せたものです。スケジュール列は、主キー、一意索引および外部キーの列です。サプリメンタル・ロギングされるこれらの列をすべて含めると、CDRの要件とパラレルReplicat処理の依存性計算の要件の両方を満たします。

LOGALLSUPCOLSでは、このようなサプリメンタル・ロギングされる列に対してExtractが次の操作を実行します。

- UPDATE操作のビフォア・イメージをトレイル・レコードに自動的に含めます。

- UPDATE操作とDELETE操作の両方についてサプリメンタル・ロギングされる列すべてのビフォア・イメージをトレイル・レコードに自動的に含めます。

12cより前のExtractバージョンでは、GETUPDATEBEFORESおよびNOCOMPRESSDELETESパラメータを使用して、同じ要件を満たすことができます。詳細は、「GETUPDATEBEFORES | IGNOREUPDATEBEFORES」および「COMPRESSUPDATES | NOCOMPRESSUPDATES」を参照してください。

LOGALLSUPCOLS | NOLOGALLSUPCOLSは、次のパラメータ(使用された場合)よりも優先されます。

- GETUPDATEBEFORES | IGNOREUPDATEBEFORES

- COMPRESSDELETES | NOCOMPRESSDELETES

- ビフォア・イメージのCOMPRESSUPDATES | NOCOMPRESSUPDATES (アフター・イメージについてはCOMPRESSUPDATES | NOCOMPRESSUPDATESがLOGALLSUPCOLSよりも優先)

デフォルト

LOGALLSUPCOLS

構文

LOGALLSUPCOLS

3.105 MACRO

適用対象

ExtractおよびReplicat

説明

MACROパラメータでは、Oracle GoldenGateマクロを作成します。マクロの使用方法の詳細(マクロの正しい起動方法など)は、『Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

デフォルト

なし

構文

次に示す順序で使用する必要があります。

MACRO #macro_name
PARAMS (#param_name [, ...])
BEGIN
macro_body
END;

MACRO

マクロの指定を開始します。

#

マクロ文字。マクロおよびパラメータ名は、マクロ文字で開始する必要があります。パラメータ・ファイル内でマクロ文字で始まる要素はすべて、マクロまたはマクロ・パラメータとみなされます。

デフォルトのマクロ文字は、次の例に示すようにシャープ(#)文字です。

MACRO #macro1
PARAMS (#param1, #param2)

マクロ文字を変更するには、MACROCHARパラメータを使用します。

macro_name

マクロ名。マクロ名は、英数字を使用した1単語(アンダースコアは許可されます)である必要があり、大/小文字が区別されません。パラメータ・ファイル内の各マクロ名は、一意である必要があります。引用符は使用しないでください(使用すると、マクロ名はテキストとして扱われ、無視されます)。

PARAMS

パラメータ句を開始します。パラメータ句はオプションです。十分なメモリーが使用できる場合、パラメータの最大サイズおよび数の制限はありません。

param_name

マクロに対するパラメータを記述します。パラメータ名は大/小文字が区別されません。引用符は使用しないでください(使用すると、パラメータ名はテキストとして扱われ、無視されます)。

マクロで使用するすべてのパラメータは、PARAMS文で宣言する必要があり、マクロを呼び出すときは、呼出し文に各パラメータの値が含まれている必要があります。

BEGIN

マクロ本文を開始します。マクロ本文の前に指定する必要があります。

macro_body

マクロ名本文。十分なメモリーが使用できる場合、マクロ本文のサイズの制限はありません。マクロ本文には、次のいずれかのタイプの文を含めることができます。

- 次のような単純なパラメータ文:

COL1 = COL2

- 次のような複雑な文:

COL1 = #val2

- 次のような他のマクロの呼出し:

#colmap(COL1, #sourcecol)

END;

マクロ定義を終了します。定義の末尾にはセミコロンが必要です。

例

例1

次の例では、パラメータを取るマクロを定義します。

MACRO #make_date
PARAMS (#year, #month, #day)
BEGIN
@DATE('YYYY-MM-DD', 'CC', @IF(#year < 50, 20, 19),
'YY', #year, 'MM', #month, 'DD', #day)
END;

例2

次の例では、パラメータを必要としないマクロを定義します。

MACRO #option_defaults
BEGIN
GETINSERTS
GETUPDATES
GETDELETES
INSERTDELETES
END;

例3

次の例では、#make_dateという名前の他のマクロを呼び出す#assign_dateという名前のマクロを定義します。

MACRO #assign_date
PARAMS (#target_col, #year, #month, #day)
BEGIN
#target_col = #make_date (#year, #month, #day)
END;

3.106 MACROCHAR

適用対象

ExtractおよびReplicat

説明

MACROCHARパラメータでは、マクロ定義のマクロ文字を#以外の文字に変更します。たとえば、表名に#文字が含まれている場合は、マクロ文字を変更する必要があります。

MACROCHARパラメータは、パラメータ・ファイルで1回のみ使用できます。MACROCHARパラメータは、パラメータ・ファイル内の最初のMACROパラメータの前に配置してください。指定したマクロ文字で始まるパラメータ・ファイル内の要素はすべて、マクロまたはマクロ・パラメータとみなされます。パラメータ・ファイル内のマクロ定義ではすべて、指定された文字を使用する必要があります。

MACROCHARは、問合せパラメータと一緒に使用できません。

MACROも参照してください。

マクロの使用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

# (シャープ記号)

構文

MACROCHAR character

character

マクロ文字として使用する文字。有効なユーザー定義マクロ文字は、文字、数字および特殊文字(アンパサンド(&)やアンダースコア(_)など)です。

例

次の例では、$をマクロ文字として定義しています。

MACROCHAR $
MACRO $mymac
PARAMS ($p1)
BEGIN
col = $p1
END;

3.107 Extract用MAP

適用対象

Extract

説明

Extract用のMAPパラメータは、クラシック・キャプチャ・モードで動作しているとき、および、このパラメータのALTIDコンポーネントを使用してオブジェクトIDをオブジェクト名にマップする必要があるときに使用します。ALTIDでは、Extractが接続先データベース以外のデータベースによって生成されたOracleトランザクション・ログを取得する場合に、正しいオブジェクトIDを指定します。この構成は、Extractが、本番環境のトランザクションを取得するために本番環境の(ソース)データベースへの直接接続を許可されていないときに必要です。

Extractは、ソース・データベースに直接接続できないと、ライブ・スタンバイ・データベースまたはその他の複製データベースに接続しますが、本番環境のデータベースから送信されたトランザクション・ログを読み取ります。代替データベースのカタログへの問合せによって、Extractは、トランザクション・データを有効なSQL文に展開するために必要なメタデータを取得できます。ただし、この問合せで取得したオブジェクトIDは使用できません。表のローカル・オブジェクトIDは、ソース・データベース内(およびトランザクション・ログ内)のその表のオブジェクトIDとは異なるためです。MAP文とALTIDを使用して、各表名をソースのオブジェクトIDに手動でマップする必要があります。

MAPとALTIDの使用方法

- 取得する表ごとに1つのMAP文とALTIDを作成します。ALTIDが含まれているMAPパラメータでは、表名のワイルドカード指定は許可されていません。

- 同じ表(1つまたは複数)にデータのフィルタリングや操作などの他の処理を指定するには、それぞれの表に対してTABLE文も作成する必要があります。該当する場合は、ワイルドカードを使用して1つのTABLE文で複数の表を指定できます。

- Replicatパラメータ・ファイルでは、通常どおり標準のReplicat MAP文を使用します。Extract用MAPは、ソース表をターゲット表にマップするために必要なReplicat用MAPのかわりには使用できません。

- ALTIDを使用するときは、DDL取得およびレプリケーションはサポートされません。

デフォルト

なし

構文

MAP [container.]schema.table, ALTID object_ID [, object_ID]

[container.]schema.table

ソース表の完全修飾名。

object_ID

本番環境(ソース)データベース内での表のオブジェクトID。

表がパーティション化されている場合は、レプリケートするパーティションのオブジェクトIDをカンマで区切ってリストできます。

例

例1

この例は、パーティション化されていない表、またはパーティション化された表の1パーティションのみをマップします。

MAP QASOURCE.T2, ALTID 75740;

例2

この例は、パーティション化された表の複数のパーティションをマップします。

MAP QASOURCE.T_P1, ALTID 75257,75258;

3.108 MAP

TABLE | MAPを参照してください。

3.109 MAPEXCLUDE

適用対象

Replicat

説明

MAPEXCLUDEパラメータとMAPパラメータでは、ワイルドカード指定からソース表と順序を明示的に除外します。MAPEXCLUDEは、除外するソース・オブジェクトを含むすべてのMAP文よりも先に指定する必要があります。特定のMAP文について複数のMAPEXCLUDE文を指定できます。

MAPEXCLUDEが評価された後で、関連するMAPパラメータが評価されます。したがって、それらの出現順序による違いはありません。

ワイルドカードを使用するときは、すべてのオブジェクトを除外して処理対象がなくならないように注意してください。たとえば、次の例では何も取得されません。

MAP cat1.schema*.tab*, TARGET schema*.tab*;
MAPEXCLUDE cat1.*.*

EXCLUDEWILDCARDOBJECTSONLYパラメータも参照してください。

ワイルドカードの解決のデフォルトはWILDCARDRESOLVE DYNAMICです。このため、MAPEXCLUDEで除外される表の名前が変更されて、ワイルドカードを満たすようになると、そのデータが取得されます。DYNAMIC設定により、ワイルドカードを満たす新しい表名が検出されるとすぐに解決され、Oracle GoldenGate構成に組み込まれます。詳細は、「WILDCARDRESOLVE」を参照してください。

デフォルト

なし

構文

MAPEXCLUDE [container. | catalog.]owner.{table | sequence}

container. | catalog.

3つの部分からなる名前を必要とするソース・データベースの場合は、除外するオブジェクトを含むOracleコンテナまたはSQL/MXカタログの名前またはワイルドカードを指定します。

owner

除外するオブジェクトの所有者(スキーマなど)の名前またはワイルドカードを指定します。

table | sequence

除外するソース・オブジェクトの名前またはワイルドカード指定。オブジェクト名とワイルドカードを正しく指定するには、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

例

この例では、test.tab*はスキーマtest内のtabで始まるすべての表がすべてのトレイル・ファイルから除外されることを指定します。表fin.acctはトレイルeeから除外されます。表fin.salesはトレイルffから除外されます。

MAPEXCLUDE  pdb1.test.tab*
MAP pdb1.*.*, TARGET *.*;
MAPEXCLUDE pdb2.fin.acct
MAP pdb2.*.*, TARGET *.*;

3.110 MAPINVISIBLECOLUMNS | NOMAPINVISIBLECOLUMNS

適用対象

OracleのReplicat。スタンドアロン・パラメータまたはMAPのオプションとして有効です。

説明

MAPINVISIBLECOLUMNSおよびNOMAPINVISIBLECOLUMNSでは、Replicatがデフォルトの列マッピングでOracleターゲット表の非表示列を含めるかどうかを制御します。明示的な列マッピングを使用しているOracleターゲット表では非表示列が常にマップされるので、このオプションは不要です。

MAPINVISIBLECOLUMNSおよびNOMAPINVISIBLECOLUMNSは、異なる2つの方法で使用できます。グローバル・レベルで指定されている場合、一方のパラメータは、もう一方のパラメータが指定されるまで、それ以降のすべてのMAP文に有効です。MAP文内で使用する場合は、グローバル指定よりも優先されます

デフォルト

NOMAPINVISIBLECOLUMNS

構文

MAPINVISIBLECOLUMNS | NOMAPINVISIBLECOLUMNS
[, THREAD (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])]

THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])

MAPINVISIBLECOLUMNS | NOMAPINVISIBLECOLUMNSは、指定されたスレッドまたは調整Replicatのスレッドに対してのみ指定します。

threadID[, threadID][, ...]

スレッドIDを指定するか、スレッドのカンマ区切りリストをthreadID, threadID, threadIDの形式で指定します。

[, thread_range[, thread_range][, ...]

スレッドの範囲をthreadIDlow-threadIDhighの形式で指定するか、範囲のカンマ区切りリストをthreadIDlow-threadIDhigh, threadIDlow-threadIDhighの形式で指定します。

threadID, threadID, threadIDlow-threadIDhighのように、これらの形式を組み合せることができます。

例

例1

次の例では、一部のMAP文に対してのみMAPINVISIBLECOLUMNSを有効にし、それ以外に対しては無効にします。

MAPINVISIBLECOLUMNS
MAP hr.emp, TARGET hr.emp2;
NOMAPINVISIBLECOLUMNS
MAP hr.dep, TARGET hr.dep2;

例2

次に、MAPINVISIBLECOLUMNSのグローバルおよびMAPレベルを組み合せた使用例を示します。指定された表では、MAPレベルの指定がグローバル指定よりも優先されます。

NOMAPINVISIBLECOLUMNS
MAP hr.dep, TARGET hr.dep2;
MAP hr.emp, TARGET hr.emp2, MAPINVISIBLECOLUMNS;

例3

この例では、MAPINVISIBLECOLUMNSがグローバルに有効化されますが、スレッド3に対しては無効です。他のスレッド1、2および4では、デフォルトの列マッピングに非表示のターゲット列を含めます。

MAPINVISIBLECOLUMNS
NOMAPINVISIBLECOLUMNS THREAD(3)
MAP hr.dep, TARGET hr.dep2, THREADRANGE(1, 4);
MAP hr.emp, TARGET hr.emp2, THREADRANGE(1, 4);

3.111 MARKERTABLE

適用対象

GLOBALS

説明

MARKERTABLEパラメータでは、DDLマーカー表の名前を指定します(デフォルトのGGS_MARKER以外である場合)。マーカー表には、DDL操作に関する情報が保持されます。

マーカー表の名前は、params.sqlスクリプトのmarker_table_nameパラメータにも指定する必要があります。このスクリプトは、ルートOracle GoldenGateインストール・ディレクトリにあります。

このパラメータは、キャプチャの構成がOracle GoldenGate DDLトリガーを使用してDDLレプリケーションをサポートするOracleデータベースのみで有効です。Oracle GoldenGate DDLオブジェクトの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

デフォルト

GGS_MARKER

構文

MARKERTABLE [container.]table_name

[container.]table_name

3つの部分または2つの部分からなる、マーカー表の完全修飾名。オブジェクト名とワイルドカードを正しく指定するには、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

3.112 MAXDISCARDRECS

適用対象

ExtractおよびReplicat

説明

MAXDISCARDRECSパラメータでは、破棄ファイルにレポートされるMAP文当たりのエラー数を制限します。

このパラメータは、次の理由で使用します。

- 多数のエラーの発生が予想されるが、レポートする必要がない。

- 破棄ファイルのサイズを管理する。

MAXDISCARDRECSの複数のインスタンスを1つのパラメータ・ファイルで使用して、MAP文の様々なセットに異なる最大値を指定できます。MAXDISCARDRECSの1つのインスタンスは、MAXDISCARDRECSの次のインスタンスが検出されるまで、後続のすべてのMAP文に適用されます。

デフォルト

なし

構文

MAXDISCARDRECS number

number

レポートするエラーの最大数。

例

MAXDISCARDRECS 1000

3.113 MAXGROUPS

適用対象

GLOBALS

説明

MAXGROUPSパラメータでは、Oracle GoldenGateのインスタンスで実行できるプロセス・グループの最大数を指定します。Managerプロセスは、このパラメータを確認して、プロセスのリソース割当てを決定します。GGSCIプロセスは、このパラメータを確認して、作成が許可されるグループの最大数を制御します。

調整Replicatグループ内の各Replicatスレッドは、MAXGROUPSのコンテキストでは1つのグループと想定されます。したがって、ADD REPLICATコマンドのCOORDINATEDのMAXTHREADSオプションの値(デフォルトは25)、プラスOracle GoldenGateインスタンス内の他のReplicatおよびExtractグループの数は、MAXGROUPSの値を超えることはできません。超えると、ADD REPLICATによってエラーが返されます。

特定のシステムで実行できる実際のプロセス数は、使用可能なシステム・リソースによって異なります。このようなリソースを超過すると、MAXGROUPSの設定にかかわらずOracle GoldenGateがエラーを返します。

デフォルト

1000グループ

構文

MAXGROUPS number

number

Oracle GoldenGateの1インスタンスで許可されるグループ数。有効な値は1000から5000です。

例

MAXGROUPS 1500

3.114 MAXSQLSTATEMENTS

適用対象

Replicat

説明

MAXSQLSTATEMENTSパラメータでは、Replicatが標準処理モードおよびBATCHSQLモード両方で使用可能な準備済SQL文の数を制御します。MAXSQLSTATEMENTSの値によって、Replicatが保持するオープンされているカーソル数が決定されます。データベースが、ここで指定するカーソル数の他に、別のアプリケーションおよびプロセスが使用するカーソルもサポートできることを確認してください。MAXSQLSTATEMENTSを変更する前に、Oracleサポートに連絡してください。

調整ReplicatにMAXSQLSTATEMENTSを設定するときは、指定の最大カーソル数が、Replicat全体の合計しきい値としてではなく、構成の各スレッドに適用されることを考慮してください。たとえば、MAXSQLSTATEMENTS 100が指定されると、各スレッドは99のカーソルをオープンすることができ、Replicatからの警告やエラーは発生しません。

BATCHSQLモードの詳細は、BATCHSQLを参照してください。

デフォルト

250カーソル

構文

MAXSQLSTATEMENTS number

number

Replicat (または調整Replicatの各スレッド)が使用できる最大カーソル数。有効な値は1から250です。

例

MAXSQLSTATEMENTS 200

3.115 MAXTRANSOPS

適用対象

Replicat (統合Replicatモードではサポートされない)

説明

MAXTRANSOPSパラメータでは、大きなソース・トランザクションを小さく分割してターゲット・システムに送信します。このパラメータは、ターゲット・データベースが大きなトランザクションに対応するように構成されていないときに使用できます。たとえば、ターゲットのOracleロールバック・セグメントが百万の削除を実行するソース・トランザクションを再作成できるほど大きくない場合にMAXTRANSOPS 10000を指定すると、Replicatは各10,000削除グループの後にコミットを発行できます。

MAXTRANSOPSを使用すると、Replicatは正しい順番で操作を適用しますが、ソース・アプリケーションによって課せられたトランザクション境界が変更されます。このため、そのトランザクション中にExtractが失敗すると、エラーが発生することがあります。Extractは古いトランザクションに上書きするかわりに、トレイルの最後にトランザクションを再び書き込みます。トレイルは順次形式であるため、Replicatは古いトランザクションの処理を開始しますが、リカバリ・マーカーと新しいトランザクションを受け取ると、ロールバックしてから新しいトランザクションの適用を開始する必要があります。MAXTRANSOPSによってReplicatが元のトランザクションを複数の小さなトランザクションに分割していた場合、Replicatは、ターゲットにコミットされなかった部分しかロールバックできないことがあります。Replicatがコミット済操作をもう一度処理した場合、SQL操作のタイプに応じて、行重複エラーまたは紛失エラーが発生します。

注意:

Replicatの異常終了エラーをトラブルシューティングする際、GROUPTRANSOPSを1に、MAXTRANSOPSを1に設定するようOracleサポートから求められる場合があります。これは単にトラブルシューティングのための一時的な構成で、本番環境で常時使用しないでください。そうしないと、データ整合性のエラーになります。

デフォルト

10,000,000

構文

MAXTRANSOPS number

number

単一のトランザクション・グループに分割する操作数。

例

MAXTRANSOPS 10000

3.116 MGRSERVNAME

適用対象

GLOBALS

説明

GLOBALSパラメータ・ファイルのMGRSERVNAMEパラメータでは、ManagerプロセスをWindowsサービスとしてインストールする場合にその名前を指定します。このパラメータは、Oracle GoldenGateの複数のインスタンスをインストールするときや、Managerプロセスを使用するOracle GoldenGate Veridataエージェントもインストールするときなど、同一のシステムにサービスとして複数のManagerのインスタンスをインストールする場合にのみ必要です。

INSTALLユーティリティでインストールするManagerサービスごとに、MGRSERVNAMEを含むGLOBALSファイルが必要です。システムにサービス名を登録するときに、インストール・プログラムがMGRSERVNAMEを参照するため、これらのファイルはサービスのインストール前に作成する必要があります。

デフォルト

なし

構文

MGRSERVNAME name

name

Managerサービス名(1単語)。

例

MGRSERVNAME Goldengate

3.117 MONITORING_HEARTBEAT_TIMEOUT

適用対象

Manager

説明

MONITORING_HEARTBEAT_TIMEOUTでは、指定秒数の間プロセスを応答なしとして設定します。

デフォルト

10秒。

構文

MONITORING_HEARTBEAT_TIMEOUT seconds

seconds

Managerがプロセスを応答なしとして設定する時間間隔(秒単位)を指定します。最小値は10秒、最大値は60秒です。

例

MONITORING_HEARTBEAT_TIMEOUT 20

3.118 NAMECCSID

適用対象

IBM i上のDB2に対するGLOBALS、Extract、Replicat、DEFGEN

説明

NAMECCSIDパラメータを使用して、SQLカタログ表に保存されているデータベース・オブジェクト名のCCSID (コード化キャラクタ・セット識別子)を指定します。SQLカタログ表はシステムのCCSIDを使用して作成されますが、実際のデータベース・オブジェクト名はカタログ内で別のCCSIDの文字を使用して表すことができます。問合せでは、この違いはカタログから示されないため、正しいCCSID値を指定するNAMECCSIDがない場合、Oracle GoldenGateで名前が誤って取得される可能性があります。

GGSCIセッションのCCSIDを設定するには、SET NAMECCSIDコマンドを使用します。

現在のCCSIDを表示するには、SHOWコマンドを使用します。CCSIDがGGSCIセッションまたはパラメータNAMECCSIDを介して設定されていない場合、SHOW値がDEFAULTになります。

デフォルト

DEFAULT

構文

NAMECCSID {CCSID | DEFAULT}

CCSID

カタログ問合せのオブジェクト名に対して使用される、有効なDB2 for iコード化キャラクタ・セット識別子。

DEFAULT

システムCCSIDがカタログ問合せのオブジェクト名に対して使用されることを示します。

例

NAMECCSID 1141

3.119 NAMEMATCHパラメータ

適用対象

GLOBALS

説明

NAMEMATCHパラメータでは、フォールバック名マッピングの動作を制御します。Oracle、DB2、およびSQL/MXなど、ソース・データベースが大/小文字を区別し、ターゲット・データベースが大/小文字を区別するオブジェクト名と区別しないオブジェクト名の両方をサポートする場合、フォールバック名マッピングはデフォルトで有効になります。

デフォルト(NAMEMATCHIGNORECASE)ではフォールバック名マッチングは次のように行われます。ソース表名が大/小文字を区別する場合、Oracle GoldenGateはターゲット・データベースで大/小文字を区別するワイルドカード・マッピングを適用して、完全一致するものを検索します。ターゲット・データベースに、大/小文字の区別を含む完全に一致するターゲット表名がない場合、フォールバック名マッピングは大/小文字を区別しないターゲット表マッピングを実行して、名前の一致を検索します。

デフォルト

NAMEMATCHIGNORECASE

構文

NAMEMATCHIGNORECASE | NAMEMATCHNOWARNING | NAMEMATCHEXACT

NAMEMATCHIGNORECASE

ターゲット・データベースに、大/小文字の区別を含めて完全に一致するターゲット表名がない場合は、大/小文字を区別せずにターゲット表のマッピングを実行して、名前の一致を検索します。

NAMEMATCHNOWARNING

フォールバック名の一致が使用されるとき、警告メッセージをレポート・ファイルに出力します。

NAMEMATCHEXACT

フォールバック名のマッピングを無効にします。大/小文字を区別して完全に一致するものが見つからない場合、Oracle GoldenGateはエラーを返して異常終了します。

3.120 NOCATALOG

適用対象

DEFGEN

説明

DEFGENパラメータ・ファイルのNOCATALOGでは、定義が定義ファイルに書き込まれる前に、コンテナ名(Oracle)またはカタログ名(SQL/MX)が表名から削除されます。このパラメータが有効なのは、データベースがコンテナ名またはカタログ名をサポートし、DEFSFILEパラメータのFORMAT RELEASEオプションが12.1に設定されている場合です。このパラメータは、2つの部分からなる名前(owner.object)のみをサポートするデータベースへのマッピングに定義ファイルが使用される場合に使用します。

コンテナ名またはカタログ名が除去された後で、schema.table名の重複が検出されると、DEFGENはエラーにより異常終了します。このため、カタログ名がないために区別できない、同じschema.table名が含まれる様々なセットのメタデータによって発生するエラーを処理できません。

デフォルト

なし

構文

NOCATALOG

3.121 NODUPMSGSUPPRESSION

適用対象

GLOBALS

説明

NODUPMSGSUPPRESSIONでは、レポート・ファイル、エラー・ログおよびシステム・ログ・ファイルでの、重複した情報メッセージや警告メッセージの自動抑制を防ぎます。メッセージの繰返し回数を示すメッセージが発行されます。

デフォルト

重複したメッセージを自動的に抑制します。

構文

NODUPMSGSUPPRESSION

3.122 NUMFILES

適用対象

ExtractおよびReplicat

説明

NUMFILESパラメータでは、TABLEまたはMAP文で指定されている表の情報を保持するために割り当てる初期メモリー構造体数を制御します。NUMFILESは、すべてのTABLEまたはMAPエントリが有効になる前に、SOURCEDEFSまたはTARGETDEFSパラメータより前で指定する必要があります。

調整ReplicatにNUMFILESを設定するときは、指定の値が、Replicat全体の合計しきい値としてではなく、構成の各スレッドに適用されることを考慮してください。たとえば、NUMFILES 500が指定されると、各スレッドは499の初期メモリー構造体を持つことができ、Replicatからの警告やエラーは発生しません。

NUMFILESの値に到達後に動的に割り当てる追加のメモリー構造体数を制御するには、ALLOCFILESパラメータを使用します。詳細は、ALLOCFILESを参照してください。システム・リソースが許可するメモリーが、プロセスによって必要に応じて割り当てられるので、NUMFILESとALLOCFILESは、ともにデフォルト値で問題なく機能するはずです。

デフォルト

1000

構文

NUMFILES number

number

割り当てる初期メモリー構造体数。メモリーの無駄な消費を防ぐため、NUMFILESを不必要に高い数に設定しないでください。Oracle GoldenGateのメモリーは、最大で200万表をサポートします。

例

NUMFILES 4000

3.123 OBEY

適用対象

ExtractおよびReplicat

説明

OBEYパラメータでは、現在のパラメータ・ファイル以外のファイルからパラメータ設定を取得します。

OBEYを使用するには、取得するパラメータを含むパラメータ・ファイルを作成して保存します。これはOBEYファイルと呼ばれます。よく使用される様々なパラメータ設定を含むOBEYファイルのライブラリを作成できます。その後、アクティブなパラメータ・ファイルのOBEYパラメータを使用して、OBEYファイル内のパラメータを呼び出します。

Oracle GoldenGateは、アクティブなパラメータ・ファイルでOBEYパラメータを検出すると、OBEYファイルのパラメータを処理してから、アクティブなパラメータ・ファイルに戻って残りのパラメータを処理します。

OBEY文は、他のOBEY文内にネストできません。

頻繁に使用するパラメータを呼び出すために、OBEYのかわりに、またはOBEYに加えて、Oracle GoldenGateマクロを使用できます。マクロの使用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

OBEY file

file

パラメータまたはコマンドの取得元ファイルの相対名または完全修飾名。

例

OBEY /home/ogg/myparams

3.124 OUTPUTFILEUMASK

適用対象

GLOBALS

説明

OUTPUTFILEUMASKパラメータでは、すべてのファイルの作成時に使用するOracle GoldenGateプロセスの8進数umaskを指定します。OUTPUTFILEUMASKは、Windowsシステムには有効ではありません。

デフォルト

umask 027(すべての権限)

構文

OUTPUTFILEUMASK umask

umask

umask値。0から077に設定する必要があります(それ以外の値にすると、エラー「Missing or invalid option for OUTPUTFILEUMASK.」が発生します)。

例

OUTPUTFILEUMASK 066

3.125 OVERRIDEDUPS | NOOVERRIDEDUPS

適用対象

Replicat

説明

OVERRIDEDUPSおよびNOOVERRIDEDUPSパラメータでは、両方のレコードが同一のキーを持つときに、Replicatがターゲット・データベースの既存のレコードをレプリケートされたレコードで上書きするかどうかを制御します。

- OVERRIDEDUPSでは、既存のレコードを上書きします。ロード前にターゲット表の切捨てを行わない初期ロードや、信頼できるソースとターゲット表の再同期のときに使用できます。SQLDUPERRパラメータをOVERRIDEUPSとともに使用して、データベースによって返される重複INSERT操作の数値エラー・コードを指定します。詳細は、SQLDUPERRを参照してください。

- NOOVERRIDEDUPS (デフォルト)は、既存のレコードを上書きするかわりに、重複レコード・エラーを生成します。例外MAP文とSQLEXEC句を使用して、エラーに対するレスポンスを開始できます。そうしない場合、トランザクションは異常終了することがあります。例外マップの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
例外マップが使用できない場合にReplicatを異常終了させずに重複レコードをバイパスするには、次のようなREPERRORパラメータ文を指定します(errorは、主キー制約エラーに対するデータベース・エラー番号です)。

REPERROR (error, IGNORE)

たとえば、Oracleデータベースの場合、この文は次のようになります。

REPERROR (1, IGNORE)

Replicatは、無視された重複レコードを破棄ファイルに書き込みます。

OVERRIDEDUPSまたはNOOVERRIDEDUPSは、適用するTABLEまたはMAP文よりも前に指定します。TABLEまたはMAP文の様々なグループごとに異なるルールを作成できます。パラメータの動作は切り替わります。つまり、1つのパラメータが後続のTABLEまたはMAP文に対して有効であるのは、別のパラメータが出現するまでです。

OVERRIDEDUPSは、HANDLECOLLISIONSが使用されると自動的に有効になります。詳細は、HANDLECOLLISIONS | NOHANDLECOLLISIONSを参照してください。

警告:

OVERRIDEDUPSが有効な場合は、複数のReplicatプロセスにわたってレコードが時系列順に処理されない場合があります。

デフォルト

NOOVERRIDEDUPS

構文

OVERRIDEDUPS | NOOVERRIDEDUPS

3.126 PTKCAPTUREPROCSTATS

適用対象

Extract、ReplicatおよびManager

説明

PTKCAPTUREPROCSTATSでは、PTKモニタリングのプロセスとスレッド統計のキャプチャを有効にします。

デフォルト

true

構文

PTKCAPTUREPROCSTATS seconds

capture

PTKモニタリング統計をキャプチャするかどうかをtrueまたはfalseで制御します。

例

PTKCAPTUREPROCSTATS false

3.127 PTKMONITORFREQUENCY

適用対象

Extract、ReplicatおよびManager

説明

PTKMONITORFREQUENCYでは、収集のモニタリング頻度間隔を設定します。

デフォルト

10秒。

構文

PTKMONITORFREQUENCY seconds

seconds

収集のモニタリングが発生する時間間隔(秒単位)を指定します。最小値は1秒、最大値は60秒です。

例

PTKMONITORFREQUENCY 10

3.128 PORT

適用対象

Manager

説明

PORTパラメータでは、動的サービスをリクエストするリモート・プロセス(通常は初期ロードのReplicatまたはCollectorプロセス)とやり取りするManagerプロセス用のTCP/IPポート番号を指定します。可能な場合にはデフォルト・ポート番号を使用してください。

デフォルト

ポート7809

構文

PORT number

number

使用可能なポート番号。

例

PORT 7809

3.129 PRESERVETARGETTIMEZONE

適用対象

Replicat

説明

PRESERVETARGETTIMEZONEパラメータでは、デフォルトのReplicatセッション・タイムゾーンをオーバーライドします。デフォルトでは、Replicatは、セッションをソース・データベースのタイムゾーンに設定します(Extractによるトレイルへの書込みと同じです)。PRESERVETARGETTIMEZONEでは、Replicatがセッションをターゲット・データベースのタイムゾーンに設定します。

デフォルト

なし

構文

PRESERVETARGETTIMEZONE

3.130 PURGEDDLHISTORY | PURGEDDLHISTORYALT

適用対象

Manager

説明

PURGEDDLHISTORYおよびPURGEDDLHISTORYALTパラメータでは、DDL取得をサポートするDDL履歴表のサイズを制御します。これらの表はOracleデータベースに作成され、トリガーベースのDDL取得をサポートします。

これらのパラメータを指定すると、Managerが必要なくなった行をパージします。行を保持する最小時間および最大時間は、最終更新日に基づいて指定できます。最大時間および最小時間両方のルールを指定する必要があります。両方の指定がなければ、Managerが行をいつ削除するかの完全な基準がありません。たとえば、MINKEEPHOURS 3をMAXKEEPHOURS 5とともに使用した場合、過去3時間変更されなかった行を保持し、少なくとも5時間変更されなかったときに削除するよう指定できます。

これらのパラメータでは、USERIDまたはUSERIDALIASパラメータでログオンを指定する必要があります。

警告:

履歴表をパージするときは注意が必要です。これらはDDL同期プロセスの整合性にとって重要です。早期のパージはOracle GoldenGateではリカバリできません。DDLデータの損失の可能性をなくすために、定期的にOracle GoldenGate DDLスキーマのバックアップを取るようにしてください。

デフォルト

1時間ごとにパージ

構文

PURGEDDLHISTORY | PURGEDDLHISTORYALT
{, max_rule}
[, min_rule]
[, frequency]

PURGEDDLHISTORY

DDL履歴表をパージします。この表はDDL操作を追跡するものです。パージする履歴表の名前を決定するために、Oracle GoldenGateは、まずGLOBALSファイルのDDLTABLEパラメータに指定された名前を探します。このパラメータが存在しない場合、Oracle GoldenGateはデフォルト名GGS_DDL_HISTを使用します。

PURGEDDLHISTORYALT

内部DDL履歴表をパージします。この表は、表のオブジェクトIDに関連付けられているパーティション化されたオブジェクトIDを追跡します。パージする内部履歴表の名前を決定するために、Oracle GoldenGateは、まずGLOBALSファイルのDDLTABLEパラメータに指定された名前を探して_ALTを付けます。このパラメータが存在しない場合、Oracle GoldenGateはデフォルト名GGS_DDL_HIST_ALTを使用します。

max_rule

必須。次のいずれかを使用して行を保持する最大時間を設定します。

MAXKEEPHOURS n

行がn時間変更されなかった場合にパージします。

MAXKEEPDAYS n

行がn日間変更されなかった場合にパージします。

min_rule
次のいずれかを使用して行を保持する最小時間を設定します。

MINKEEPHOURS n

少なくとも指定した時間変更されていない行を保持します。

MINKEEPDAYS n

少なくとも指定した日数にわたって変更されていない行を保持します。

frequency
DDL履歴をパージする間隔を設定します。Managerが潜在的なメンテナンス・タスクについて評価するデフォルトの間隔は10分です。CHECKMINUTESパラメータによって指定されます。Managerは、この間隔でPURGEDDLHISTORYまたはPURGEDDLHISTORYALTの間隔を評価し、指定のfrequencyでパージを実行します。

frequencyには、次のいずれかを指定できます。

FREQUENCYMINUTES n

DDL履歴をパージする間隔(分)を設定します。デフォルトのパージ間隔は60分です。

FREQUENCYHOURS n

DDL履歴をパージする間隔(時間)を設定します。

Managerのメンテナンス・チェックの間隔を制御する方法の詳細は、CHECKMINUTESを参照してください。

例

次の例では、過去3日間変更されなかったすべての行を保持し、少なくとも5日間変更されなかったときに削除します。パージ間隔は30分です。

PURGEDDLHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30

3.131 PURGEMARKERHISTORY

適用対象

Manager

説明

PURGEMARKERHISTORYパラメータでは、Oracle GoldenGateマーカー表のサイズを制御します。このパラメータでは、必要なくなった行をパージします。マーカー表はいつでもパージできます。このパラメータは、キャプチャの構成がOracle GoldenGate DDLトリガーを使用してDDLレプリケーションをサポートするOracleデータベースのみで有効です。Oracle GoldenGate DDLオブジェクトの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

マーカー表の名前を決定するために、Oracle GoldenGateは、まずGLOBALSファイルのMARKERTABLEパラメータに指定された名前を探します。このパラメータが存在しない場合、Oracle GoldenGateはデフォルト名GGS_MARKERを使用します。

行を保持する最小時間および最大時間は、最終更新日に基づいて指定できます。最大時間および最小時間両方のルールを指定する必要があります。両方の指定がなければ、Managerが行をいつ削除するかの完全な基準がありません。たとえば、MINKEEPHOURS 3をMAXKEEPHOURS 5とともに使用した場合、過去3時間変更されなかった行を保持し、少なくとも5時間変更されなかったときに削除するよう指定できます。

PURGEMARKERHISTORYでは、USERIDまたはUSERIDALIASパラメータを使用してログオンを指定する必要があります。データベースのタイプによってはSOURCEDBパラメータも使用してください。

デフォルト

1時間ごとにパージ

構文

PURGEMARKERHISTORY
{, max_rule}
[, min_rule]
[, frequency]

max_rule

必須。次のいずれかを使用して行を保持する最大時間を設定します。

MAXKEEPHOURS n

行がn時間変更されなかった場合にパージします。

MAXKEEPDAYS n

行がn日間変更されなかった場合にパージします。

min_rule
次のいずれかを使用して行を保持する最小時間を設定します。

MINKEEPHOURS n

少なくとも指定した時間変更されていない行を保持します。

MINKEEPDAYS n

少なくとも指定した日数にわたって変更されていない行を保持します。

frequency
マーカー履歴をパージする間隔を設定します。Managerが潜在的なメンテナンス・タスクについて評価するデフォルトの間隔は10分です。CHECKMINUTESパラメータによって指定されます。Managerは、この間隔でPURGEMARKERHISTORYの間隔を評価し、指定のfrequencyでパージを実行します。

frequencyには、次のいずれかを指定できます。

FREQUENCYMINUTES n

マーカー履歴をパージする間隔(分)を設定します。デフォルトのパージ間隔は60分です。

FREQUENCYHOURS n

マーカー履歴をパージする間隔(時間)を設定します。

Managerのメンテナンス・チェックの間隔を制御する方法の詳細は、CHECKMINUTESを参照してください。

例

次の例では、過去3日間変更されなかったすべての行を保持し、少なくとも5日間変更されなかったときに削除します。パージ間隔は30分です。

PURGEMARKERHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30

3.132 ExtractおよびReplicat用PURGEOLDEXTRACTS

適用対象

ExtractおよびReplicat

説明

ExtractまたはReplicatパラメータ・ファイルのPURGEOLDEXTRACTSパラメータでは、Oracle GoldenGateが新しいトレイル・ファイルから処理を開始するたびに、古いトレイル・ファイルを削除します。トレイル・ファイルを蓄積しないのでディスク領域を節約できます。パージは、プロセスがファイルの処理を終了したことがチェックポイントによって示された後に実行されます。

Extractによるパージの実行は、プロセスがデータ・ポンプの場合に適しています。データがターゲット・システムに送信された後にファイルをパージできます。それ以外の場合は、通常はReplicatによってパージを実行します。

ExtractまたはReplicatパラメータ・ファイルでは、プロセスのインスタンスが1つの場合にのみPURGEOLDEXTRACTSを使用するようにしてください。複数のグループが同一のトレイル・ファイル・セットを読み込む場合には、1つのプロセスが読込みを完了する前に、別のプロセスによってファイルがパージされてしまう可能性があります。かわりに、一元的にトレイル・ファイルを管理することができ、すべてのOracle GoldenGate構成での使用が推奨される、Manager用のPURGEOLDEXTRACTSを使用するようにしてください。

デフォルト

順序の次のファイルに切り替えるときにトレイル・ファイルをパージする。

構文

PURGEOLDEXTRACTS

3.133 Manager用PURGEOLDEXTRACTS

適用対象

Manager

説明

Managerパラメータ・ファイルのPURGEOLDEXTRACTSパラメータでは、Oracle GoldenGateがトレイル・ファイルの処理を完了したときにトレイル・ファイルをパージします。PURGEOLDEXTRACTSを使用しない場合、パージは実行されないため、トレイル・ファイルが大量のディスク領域を消費する可能性があります。

ExtractまたはReplicat用のPURGEOLDEXTRACTSを使用するよりもPURGEOLDEXTRACTSをManagerパラメータとして使用することをお薦めします。ManagerパラメータとしてPURGEOLDEXTRACTSを使用すると、一元的にトレイル・ファイルを管理し、複数のプロセスを考慮できます。

Manager用PURGEOLDEXTRACTSを使用する方法

パージを制御するには、次のルールに従います。

- USECHECKPOINTSは、すべてのプロセスがファイルの処理を完了したことがチェックポイントによって示されたときにパージをトリガーします。パージの基準をチェックポイントにすると、すべてのプロセスがデータの処理を終了するまでManagerはデータを削除しません。これはデータ整合性を保証するために本番環境で不可欠です。USECHECKPOINTSでは、パージを実行する前に、ExtractおよびReplicat両方のチェックポイントが考慮されます。USECHECKPOINTSはデフォルトであるため、PURGEOLDEXTRACTS文に指定する必要はありません。Managerは、明示的なNOUSECHECKPOINTSエントリがないかぎりUSECHECKPOINTSに従います。

- MINKEEPルールでは、データを保持する最小時間を設定します。

- MINKEEPHOURSまたはMINKEEPDAYSでは、n時間または日間データを保持します。

- MINKEEPFILESでは、少なくともn個のトレイル・ファイル(アクティブなファイルを含む)を保持します。保持するファイル数のデフォルトは1です。

MINKEEPオプションは1つのみ使用します。このオプションが複数使用されている場合、Oracle GoldenGateは次に基づいてそのうち1つを選択します。

- MINKEEPHOURSおよびMINKEEPDAYS両方が指定されている場合、最後のオプションを受け付け、もう一方を無視します。

- MINKEEPHOURSまたはMINKEEPDAYSがMINKEEPFILESとともに使用されている場合、MINKEEPHOURSまたはMINKEEPDAYSを受け付け、MINKEEPFILESを無視します。

Managerは、CHECKMINUTESパラメータに設定された値に基づいて、潜在的なメンテナンス・タスクについて評価します。その値に到達すると、Managerは、ローカル・システムで構成されているExtractおよびReplicatプロセスに基づいて、どのファイルをパージするかを決定します。少なくとも1つのプロセスがトレイル・ファイルを読み取っている場合、Managerは指定されているルールを適用しますが、それ以外の場合はルールは有効になりません。指定できるPURGEOLDEXTRACTルールの組合せとManagerが実行するアクションを次に示します。

- USECHECKPOINTS (MINKEEPルールを含まない): ファイルが完全に処理されたことがチェックポイントによって示される場合、そのファイルは、少なくとも1つのファイルを保持するというデフォルトのルールに違反しないかぎりパージされます。

- USECHECKPOINTS (MINKEEPルールを含む): ファイルが完全に処理されたことがチェックポイントによって示される場合、そのファイルは、MINKEEPルールに違反しないかぎりパージされます。

- NOUSECHECKPOINTS (MINKEEPルールを含まない): チェックポイントは考慮されません。ファイルは、少なくとも1つのファイルを保持するというデフォルトのルールに違反しないかぎりパージされます。

- NOUSECHECKPOINTS (MINKEEPルールを含む): ファイルは、MINKEEPルールに違反しないかぎりパージされます。

Manager用PURGEOLDEXTRACTSの詳細なガイドライン

- 同一のManagerパラメータ・ファイル内では、500を超えるPURGEOLDEXTRACTSパラメータ文を使用しないでください。

- このパラメータを使用する場合は、ユーザーおよびOracle GoldenGate以外のプログラムにトレイル・ファイルの削除を許可しないでください。それにより、PURGEOLDEXTRACTSが正常に機能しなくなります。

- トレイルがNFSに格納されている場合、NFSドライブとManagerが実行中のローカル・システムの間に、システム時間差があります。トレイルはNFS時間で作成されますが、トレイル内のレコードのタイムスタンプはローカル・システム時間で比較され、パージするかどうかを決定します。MINKEEPルールを作成すると、すべての時間差を考慮します。

デフォルト

USECHECKPOINTS

構文

PURGEOLDEXTRACTS trail
[, USECHECKPOINTS | NOUSECHECKPOINTS]
[, MINKEEP_rule]
[, frequency]

trail

パージするトレイル名。相対名または完全修飾名を使用します。

USECHECKPOINTS

指定されているMINKEEPルールに従い、すべてのExtractおよびReplicatプロセスが処理を終了したことがチェックポイントによって示された後、データのパージを許可します。USECHECKPOINTSを使用するときは、USERIDまたはUSERIDALIASパラメータをManagerパラメータ・ファイルで使用できるため、必要ではありませんが、ManagerがReplicatチェックポイント表を問い合せてチェックポイント情報を取得できます。

NOUSECHECKPOINTS

少なくとも1ファイルを保持するデフォルト・ルール(MINKEEPルールが使用されない場合)、またはMINKEEPルールで指定されるファイル数に基づいて、チェックポイントを考慮せずにパージを許可します。

MINKEEP_rule

アクティブでないファイルの最小保持時間を設定する次のいずれかのルールを使用できます。

MINKEEPHOURS n

少なくとも指定した時間アクティブになっていないファイルを保持します。

MINKEEPDAYS n

少なくとも指定した日数にわたってアクティブになっていないファイルを保持します。

MINKEEPFILES n

少なくともn個のトレイル・ファイル(アクティブなファイルを含む)を保持します。

frequency
アクティブでないトレイル・ファイルをパージする間隔を設定します。Managerが潜在的なメンテナンス・タスクについて評価するデフォルトの間隔は10分です。CHECKMINUTESパラメータによって指定されます。Managerは、この間隔でPURGEOLDEXTRACTSの間隔を評価し、指定のfrequencyの後でパージを実行します。

frequencyには、次のいずれかを指定できます。

FREQUENCYMINUTES n

間隔(分)を設定します。デフォルトのパージ間隔は60分です。

FREQUENCYHOURS n

間隔(時間)を設定します。

Managerのメンテナンス・チェックの間隔を制御する方法の詳細は、CHECKMINUTESを参照してください。

例

例1

状況: トレイル・ファイルとしてAA000000、AA000001およびAA000002が存在します。Replicatは4時間にわたって停止しており、いずれのファイルの処理も完了していません。Managerパラメータには、次が含まれています。

PURGEOLDEXTRACTS /ggs/dirdat/AA*, USECHECKPOINTS, MINKEEPHOURS 2

結果: ファイルを保持しておく必要がある時間が過ぎても、ファイルはパージされません。Replicatでファイルの処理が完了していないことがチェックポイントによって示されるためです。

例2

状況: トレイル・ファイルとしてAA000000、AA000001およびAA000002が存在します。Replicatは4時間にわたって停止しており、いずれのファイルの処理も完了していません。Managerパラメータには、次が含まれています。

PURGEOLDEXTRACTS /ggs/dirdat/AA*, NOUSECHECKPOINTS, MINKEEPHOURS 2

結果: ファイルの最小保持時間のルールが満たされているため、すべてのトレイル・ファイルがパージされます。パージの前にチェックポイントは考慮されません。

例3

状況: ReplicatおよびExtractはデータの処理を完了しています。過去5時間にわたってトレイル・ファイルへのアクセスは発生していません。トレイル・ファイルとしてAA000000、AA000001およびAA000002が存在します。Managerパラメータには、次が含まれています。

PURGEOLDEXTRACTS /ggs/dirdat/AA*, USECHECKPOINTS, MINKEEPHOURS 4, &
MINKEEPFILES 4

結果: これは、MINKEEPオプションの使用を1つのみにする理由を示す例です。USECHECKPOINTSの要件は満たされているため、AA000002をパージするかどうかを決定するときにMINKEEPルールが考慮されます。AA000002がパージされると、残りのファイルが2つになり、MINKEEPFILESルール違反になります。しかし、MINKEEPFILESおよびMINKEEPHOURS両方が指定されているため、MINKEEPFILESは無視されます。5時間アクセスされておらず、かつMINKEEPHOURSの4時間の条件も満たすため、このファイルはパージされます。

3.134 PURGEOLDTASKS

適用対象

Manager

説明

PURGEOLDTASKSパラメータでは、指定した時間の経過後またはExtractおよびReplicatが正常に停止した後に、ExtractおよびReplicatタスクをパージします。次のルールに従って、いつタスクを削除するかを指定できます。

- 特定の時間または日数前に最後に開始されたタスク。開始されたことがないタスクの場合は、このルールの適用基準として作成日時が使用されます。

- 正常に停止したか、開始されたことがないタスク。このルールは、最後に開始された時刻よりも優先されます。このルールを使用して、異常終了したタスクのパージを防止します。

同一のManagerパラメータ・ファイルで使用できるPURGEOLDTASKS パラメータ文は、300未満です。

デフォルト

なし

構文

PURGEOLDTASKS {EXTRACT | REPLICAT | ER} group
{AFTER number {DAYS | HOURS} | USESTOPSTATUS}

EXTRACT | REPLICAT | ER

パージするタスクのプロセス。ERオプションを使用すると、ExtractとReplicat両方のプロセス・タイプが指定されます。

group

グループ名、または複数のグループを指定するワイルドカード。

AFTER number {DAYS | HOURS}

指定した数の日数または時間にわたって更新されていない場合にタスクをパージします。

USESTOPSTATUS

正常に停止したか、開始されたことがない場合にタスクをパージします。

例

次の例では、少なくとも3日間更新されていないすべてのExtractタスクを削除し、正常に停止したか少なくとも2時間更新されていない場合にtest_rep Replicatタスクを削除します。

PURGEOLDTASKS EXTRACT *, AFTER 3 DAYS
PURGEOLDTASKS REP test_rep, AFTER 2 HOURS, USESTOPSTATUS

3.135 RECOVERYOPTIONS

適用対象

Extract

説明

RECOVERYOPTIONSパラメータでは、Extractがトランザクション・データの書込みプロセスに失敗した後で、トレイルへのデータの再書込みを処理する方法を制御します。

パラメータの依存関係

EXTFILE、EXTTRAIL、RMTFILEおよびRMTTRAILのRECOVERYOPTIONSパラメータとFORMATオプションの間には、依存関係があります。

デフォルト

なし

構文

RECOVERYOPTIONS

例

RECOVERYOPTIONS

3.136 REPERROR

適用対象

Replicat

説明

REPERRORパラメータでは、Replicatのエラーへの対応方法を制御します。Replicatのエラーへのデフォルトのレスポンスは、異常終了です。

1つのREPERROR文を使用して大半のエラーをデフォルトの方法で処理しながら、1つまたは複数の別のREPERROR文を使用して、特定のエラーを別の方法で処理できます。たとえば、重複レコード・エラーは無視し、他のすべてのケースでは処理を異常終了させることができます。

REPERRORを(パラメータ・ファイルのルートで)グローバルに使用すると、その後のすべてのMAP文に適用できます。または、MAP文内で使用すると、その文に指定された表に適用できます。MAP文でREPERRORを使用すると、調整Replicatのスレッドごとに固有の方法でエラーを処理できるようになります。

レコード・レベルのエラー処理の使用

TRANSDISCARDおよびTRANSEXCEPTIONを除くすべてのREPERRORオプションは、個別のレコードの個別のSQL操作に対するレスポンスに、エラー処理アクションを適用します。また、規定どおりに、MAP文およびパラメータ・ファイルのその他のパラメータで構成されているのと同じトランザクション内のエラーのないレコードを処理します。

トランザクション・レベルのエラー処理の使用

TRANSDISCARD、TRANSEXCEPTIONおよびABENDオプションは、トランザクション全体にエラー処理アクションを適用します。トランザクション内の個別のレコードまたはコミット操作で、トリガー・エラーが発生することがあります。(コミット・エラーには、関連付けられている特定のレコードがありません。)これらのオプションは、次の目的で使用できます。

- エラーが関連付けられている場合に、ソース・トランザクション全体がターゲットにレプリケートされるのを回避する。

- 延期された制約チェックがターゲット上で有効になっている場合、コミット・エラーに対応する。

TRANSDISCARDとTRANSEXCEPTIONは、相互に排他的です。

トランザクション・レベルのオプションでの他のパラメータの影響

TRANSDISCARDおよびTRANSEXCEPTIONでは、ソース・トランザクションの境界が適用されます。ただし、BATCHSQL、GROUPTRANSOPSまたはMAXTRANSOPSがパラメータ・ファイルに存在すると、トランザクションの境界を変更するため、エラー処理ロジックや結果に影響を与える可能性があります。

BATCHSQLおよびGROUPTRANSOPSの影響

BATCHSQLまたはGROUPTRANSOPS (デフォルト)は、パフォーマンス向上のため、トランザクションの順序を維持しながら、異なるトランザクションのSQL操作を、より大きいトランザクションにグループ化します。これらのパラメータが有効なときにエラーが発生すると、Replicatは、まず別の処理モードを入力してエラーの解決を試行します(各パラメータのドキュメントを参照してください)。エラーが解決しない場合、TRANSDISCARDまたはTRANSEXCEPTIONが有効になり、Replicatは次のようにソース処理モードに戻ります。

1. グループ化または配列化されたトランザクションをロールバックします。

2. ソース・トランザクションと同じトランザクション境界を使用して、問題のあるトランザクションのSQL操作を、一度に1つリプレイします。

3. 破棄ロジック(TRANSDISCARD)または例外マッピング(TRANSEXCEPTION)を実行します。(詳細は、各オプションの説明を参照してください。)

4. TRANSDISCARDエラー処理が完了したら、BATCHSQLまたはGROUPTRANSOPSモードを再開します。

MAXTRANSOPSの影響

TRANSDISCARDおよびTRANSEXCEPTIONのトランザクション・レベルのエラー処理の整合性は、MAXTRANSOPSパラメータ設定の悪影響を受けることがあります。MAXTRANSOPSによって、Replicatは、ターゲットでのトランザクションの適用時に、非常に大きなレプリケートされたソース・トランザクションを小さいトランザクションに分割します。

TRANSDISCARDおよびTRANSEXCEPTIONロジックによって、Replicatは、最後に成功したコミット後の最初のレコードまでロールバックします。これは、問題のあるトランザクションの、実際の最初である場合とそうでない場合があります。そのトランザクションが分割されているか、およびトランザクションの一部が以前にコミットしたトランザクションにあるかどうかによって異なります。その場合、TRANSDISCARDまたはTRANSEXCEPTIONアクションはソース上に発行されましたが、ターゲットからロールバックされた部分にのみ発行されたため、Replicatはこれらのアクションをトランザクション全体には適用できません。

MAXTRANSOPSを使用する場合、TRANSDISCARDおよびTRANSEXCEPTIONが処理する可能性がある最大のトランザクションより大きい値に設定されていることを確認してください。これにより、トランザクションがターゲット上で小さいトランザクションに分割されていないことを確認できます。

統計でのトランザクション・レベルのオプションの影響

STATS REPLICATなど、GGSCIの情報コマンドの出力では、TRANSDISCARDまたはTRANSEXCEPTIONロジックで処理されたトランザクションの合計レコード数が表示されます。この数は、次のことを表します。

- Replicatは、MAP文のFILTERまたはWHERE句によってOracle GoldenGate処理から除外されたすべてのレコードを含む、トランザクションのすべてのレコードを破棄ファイルに書き込みます。

- トランザクション内のソース表に複数のターゲットがある場合、破棄トランザクションには、各レコードの複数のコピーが各ターゲットに1つ含まれます。

- トランザクションを破棄する場合、Replicatは、例外マッピング文(MAP文のEXCEPTIONSONLYまたはMAPEXCEPTIONで指定)を無視します。

破棄処理(TRANSDISCARD)または例外マッピング(TRANSEXCEPTION)が原因のエラーが発生すると、Replicatは異常終了します。

エラー処理に関するその他の情報

エラー処理の構成方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

MAPパラメータの詳細は、TABLE | MAPを参照してください。

デフォルト

TRANSABORT (デッドロックの場合)、ABEND (その他すべての場合)

構文

REPERROR {
(
{DEFAULT | DEFAULT2 | SQL_error | user_defined_error},
{ABEND |
DISCARD |
EXCEPTION |
IGNORE |
RETRYOP [MAXRETRIES n] |
TRANSABORT [, MAXRETRIES] [, DELAYSECS n | DELAYCSECS n] |
TRANSDISCARD |
TRANSEXCEPTION
}
) |
RESET }

エラー指定のオプション

DEFAULT

明示的なREPERROR文が指定されているエラーを除くすべてのエラーに対するグローバルなレスポンスを設定します。

DEFAULT2

DEFAULTのレスポンスがEXCEPTIONに設定されている場合に、バックアップのデフォルト・アクションを提供します。DEFAULT2は、エラーの発生が予想されるMAP文に例外MAP文が指定されていないときに使用します。

SQL_error

SQLエラー番号。ここには、TRANSDISCARDおよびTRANSEXCEPTIONを使用している場合、レコード・レベルのエラーまたはコミット・レベルのエラーを指定できます。

user_defined_error

MAP文のFILTER句のRAISEERRORオプションで指定されているユーザー定義エラー。

エラー・レスポンス・オプション

ABEND

トランザクションをロールバックし、処理を異常終了します。ABENDはデフォルトです。

DISCARD

問題のある操作を破棄ファイルに記録しますが、このトランザクションおよび後続のトランザクションの処理を継続します。

EXCEPTION

エラーの原因となる操作を例外として処理しますが、トランザクション内のエラーではない操作は正常に処理します。このオプションを例外MAP文と組み合せて使用するか、MAPのMAPEXCEPTIONオプションと一緒に使用します。たとえば、失敗した更新文の列を"紛失した更新"表にマップできます。パラメータ・ファイルでは、エラーの発生が予想されるMAP文の後ろに例外MAP文を指定します。

EXCEPTIONは、個別のレコードでの個別のSQL操作にのみ例外処理を適用します。例外処理をトランザクション全体に適用するには、TRANSEXCEPTIONオプションを使用します。

注意:

競合の検出および解決(CDR)機能がアクティブなとき、影響を受ける表への例外MAP文が存在する場合、CDRは、エラーを引き起こすすべての操作を自動的に例外として処理します。この場合、REPERRORとEXCEPTIONは必要ありませんが、CDRが解決できない競合を処理するその他のオプションとともに、またはCDRに処理させない競合に対して、REPERRORを使用する必要があります。

IGNORE

エラーを無視します。

RETRYOP [MAXRETRIES n]

問題のある操作を再試行します。MAXRETRIESオプションでは、再試行回数を制御します。たとえば、表がエクステント不足の場合、RETRYOPとMAXRETRIESによって、トランザクションの失敗を防ぐためにエクステントを追加する時間を確保できます。指定したMAXRETRIES回数の後、Replicatは異常終了します。

TRANSABORT [, MAXRETRIES n] [, DELAYSECS n | DELAYCSECS n]

トランザクションを中止し、トランザクションの開始位置に再配置します。このシーケンスは、レコードの処理が成功するか、MAXRETRIESが終了するまで継続されます。MAXRETRIESが設定されていない場合、TRANSABORTアクションは何度も繰り返されます。

いずれかのDELAYオプションでは、再試行を遅延させます。DELAYSECS nは、遅延を秒単位で設定し、デフォルトは60秒です。DELAYCSECS nは、遅延をセンチ秒単位で設定します。

TRANSABORTオプションは、タイムアウトやデッドロックをサポートしているデータベースで、このような状況に対処するときに活用できます。

TRANSDISCARD

トランザクション内の任意の操作(コミット操作など)が原因で、REPERRORエラー指定されているReplicatエラーが発生する場合、ソース・トランザクション全体を破棄します。Replicatはトランザクションを中止し、レコードに関してエラーが発生した場合は、そのレコードを破棄ファイルに書き込みます。Replicatはトランザクションをリプレイし、コミット・レコードを含むすべてのレコードを破棄ファイルに書き込みます。Replicatは、破棄処理が原因のエラーの発生時に異常終了します。

破棄レコードがすでにターゲット・レコードにデータ・マッピングされている場合、Replicatはターゲットのフォーマットで破棄ファイルに書き込み、それ以外の場合はソースのフォーマットで書き込みます。リプレイされたトランザクション自体は、常にソースのフォーマットで書き込まれます。

TRANSDISCARDは、コミット・エラーに加え、レコード・レベルのエラーもサポートします。

詳細情報は、このトピックの最初に記載されています。

TRANSEXCEPTION

トランザクションの任意のレコードで、REPERRORで指定されたエラーが発生した場合、例外MAP文のMAPEXCEPTIONまたはEXCEPTIONSONLY句で定義したように、対応する例外マッピング指定に従って、トランザクションのすべてのレコードに例外マッピングを実行します。レコードに対応する例外マッピング指定がない場合、または例外表への書込み時にエラーがある場合、Replicatはエラー・メッセージとともに異常終了します。

エラーが発生したときにTRANSEXCEPTIONが使用されていると、Replicatはトランザクションを中止します。レコードに関してエラーが発生した場合は、破棄ファイルにそのレコードを書き込みます。Replicatはトランザクションをリプレイし、ソース・レコードを調べて例外マッピング指定を探し、それを実行します。

TRANSEXCEPTIONは、コミット・エラーに加え、レコード・レベルのエラーもサポートします。同じトランザクション内のエラーのない操作に影響せずに、レコード・レベルで(個別のSQL操作に対して)エラーを処理するには、MAP文のEXCEPTIONオプションを使用します。

RESET

REPERROR RESET文では、前のREPERRORパラメータに指定されたエラー処理ルールを削除し、後続のすべてのMAP文にデフォルトのエラー処理を適用します。

REPERRORのグローバルでの使用例

次の例は、グローバルなエラー処理ルールを設定するためにパラメータ・ファイルのルートで使用するREPERRORです。いずれかの表(1つまたは複数)についてMAP文のREPERRORを使用すると、これらのルールの一部またはすべてをオーバーライドできます。REPERRORのグローバルおよびMAP文での使用例を参照してください。

例1

次に、大半のエラーでは処理を停止し、重複レコード・エラーは無視する方法の例を示します。

REPERROR (DEFAULT, ABEND)
REPERROR (-1, IGNORE)

例2

次に、account表のエラーを処理するために作成された例外MAP文を呼び出す例を示します。product表には例外MAP文が定義されていないため、この表のエラーによってReplicatは異常終了します。

REPERROR (DEFAULT, EXCEPTION)
REPERROR (DEFAULT2, ABEND)
MAP sales.product, TARGET sales.product;
MAP sales.account, TARGET sales.account;
INSERTALLRECORDS
MAP sales.account, TARGET sales.account_exception,
EXCEPTIONSONLY,
COLMAP (account_no = account_no,
optype = @GETENV ('lasterr', 'optype'),
dberr = @GETENV ('lasterr', 'dberrnum'),
dberrmsg = @GETENV ('lasterr', 'dberrmsg'));

例3

次に、最初のMAP文にエラー・ルールを適用した後、2つ目の文ではデフォルトのABENDに戻す例を示します。

REPERROR (-1, IGNORE)
MAP sales.product, TARGET sales.product;
REPERROR RESET
MAP sales.account, TARGET sales.account;

例4

次に、トランザクション内のレコードでの操作によってエラー1403が生成される場合、問題のあるレコードを破棄し、トランザクション全体をリプレイする例を示します。他のエラー・タイプではReplicatは異常終了します。

REPERROR DEFAULT ABEND
REPERROR 1403 TRANSDISCARD

例5

次に、tgtexceptionという名前の例外表に書き込む例外マッピング指定を探すために、問題のあるレコードを破棄し、トランザクション全体をリプレイする例を示します。他のエラーによって、Replicatは問題のあるレコードを破棄し(該当する場合)、異常終了します。

REPERROR DEFAULT ABEND
REPERROR 1403 TRANSEXCEPTION
MAP src, TARGET tgt, &
MAPEXCEPTION (TARGET tgtexception, INSERTALLRECORDS, COLMAP (…) );

REPERRORのグローバルおよびMAP文での使用例

次に、グローバルなREPERROR文とともに、MAP文でREPERRORを使用する様々な例を示します。

例1

REPLICAT group_name
REPERROR (error1 , response1)
MAP src1, TARGET tgt1, REPERROR (error1, response2);
MAP src2, TARGET tgt2, REPERROR (error2, response3);

前述の例では、最初のMAP文でerror1が発生した場合、優先される文が指定されているため、アクションはresponse1ではなくresponse2になります。ただし、2番目のMAP文でerror1が発生した場合には、グローバル・レスポンスのresponse1がレスポンスになります。error2に対するレスポンスは、MAP固有のresponse3になります。

例2

REPLICAT group_name
REPERROR (error1 , response1)
MAP src1, TARGET tgt1, REPERROR (error2, response2),
REPERROR (error3, response3);

前述の例では、すべてのREPERROR文が異なるエラーに対応するため(MAP固有の優先なし)、src1からsrc2にレプリケートするときに、すべてのエラーおよびアクション(1から3)が適用されます。

例3

REPLICAT group_name
REPERROR (error1 , response1)
MAP src1, TARGET tgt1, REPERROR (error1, response2);
MAP src2, TARGET tgt2, REPERROR (error2, response3);
REPERROR (error1 , response4)
MAP src2, TARGET tgt2, REPERROR (error3, response3);

前述の例では、最初のMAP文でerror1が発生した場合、アクションはresponse2になります。2番目の文ではアクションはresponse1 (グローバル・レスポンス)になり、3番目の文ではresponse4になります(2番目のREPERROR文が適用されるため)。グローバルREPERROR文は、パラメータ・ファイル内で別のREPERROR文で新しいルールが開始されるまで、後続のすべてのMAP文に適用されます。

例4

REPERROR DEFAULT ABEND
REPERROR 1403 TRANSDISCARD.
MAP src, TARGET tgt, REPERROR(600 TRANSDISCARD);

前述の例では、ソース表srcをターゲット表tgtに適用中にエラー600が発生した場合、トランザクション全体が破棄ファイルに書き込まれます。エラー1403が発生した場合も、グローバルREPERROR指定に基づいて、同じアクションが行われます。その他のエラーが発生すると、プロセスは問題のあるレコードのみを破棄し、異常終了します。

3.137 REPFETCHEDCOLOPTIONS

適用対象

Replicat

説明

REPFETCHEDCOLOPTIONSパラメータでは、Replicatによるソース・データベースからのフェッチが必要とされていた操作に対応する方法を制御します。Extractプロセスは、トランザクション・レコードにSQL文を構築するための十分な情報が含まれていないとき、またはFETCHCOLS句が使用されているときに、列データをフェッチします。詳細は、{FETCHCOLS | FETCHCOLSEXCEPT} (column_list)を参照してください。

デフォルト

なし

構文

REPFETCHEDCOLOPTIONS
[, INCONSISTENTROW ALLOW|IGNORE|REPORT|DISCARD|ABEND]
[, LATESTROWVERSION ALLOW|IGNORE|REPORT|DISCARD|ABEND]
[, MISSINGROW ALLOW|IGNORE|REPORT|DISCARD|ABEND]
[, NOFETCH ALLOW|IGNORE|REPORT|DISCARD|ABEND]
[, REDUNDANTROW ALLOW|IGNORE|REPORT|DISCARD|ABEND]
[, SNAPSHOTROW ALLOW|IGNORE|REPORT|DISCARD|ABEND]
[, SETIFMISSING string]

INCONSISTENTROW

行IDによる列データのフェッチは成功したものの、キーが一致しなかった場合に実行するアクションを決定します。行IDが再利用されたか、この操作の後(およびフェッチの前)に主キー更新が行われました。有効な値

ALLOW

レコード長がゼロ(0)でないかぎり、操作を処理します。

IGNORE

状況を無視して処理を継続します。

REPORT

レコードを破棄ファイルに書き込み、操作を処理します。

DISCARD

データを破棄し、行は処理しません。

ABEND

データを破棄し、処理を中止します。

LATESTROWVERSION action
表の現在の行から列データがフェッチされた場合のレスポンスを指定します。有効な値:

ALLOW

レコード長がゼロ(0)でないかぎり、操作を処理します。

IGNORE

状況を無視して処理を継続します。

REPORT

レコードを破棄ファイルに書き込み、操作を処理します。

DISCARD

データを破棄し、行は処理しません。

ABEND

データを破棄し、処理を中止します。

NOFETCH action
フェッチを防ぎます。このオプションを使用するケースの1つは、データベースがスタンバイで、Oracle GoldenGateがデータベースに接続していないときです。このケースでは、データベースからのフェッチが試行されるとエラーが発生します。他のシナリオでも、このパラメータの使用が必要になることがあります。

Oracle GoldenGateが通常フェッチしているデータをフェッチできない場合、ターゲットでデータ整合性の問題が発生する可能性があります。

次に、NOFETCHが検出された場合に実行可能な有効なアクションを示します。

ABEND

操作を破棄ファイルに書き込み、Replicatプロセスを異常終了させます。これはデフォルトです。

ALLOW

レコード長がゼロ(0)でないかぎり、操作を処理します。

IGNORE

操作を無視します。(STATOPTIONS設定に基づいて)フェッチ統計がプロセス・レポートにレポートされている場合、レポートはこの結果によって更新されます。

REPORT

レコードを破棄ファイルに書き込み、操作を処理します。

DISCARD

レコードを破棄ファイルに書き込み、操作を処理しません。(STATOPTIONS設定に基づいて)フェッチ統計がプロセス・レポートにレポートされている場合、レポートはこの結果によって更新されます。

MISSINGROW action
Replicatが処理で行の一部(変更された値)のみ使用できる場合のレスポンスを指定します。トレイルで紛失した列データは、変更レコードが作成されてからフェッチがトリガーされるまでの間に行が削除されてしまっているか、必要な行イメージが指定されているUNDO保存期間以前のものであったため、通常はフェッチできません。

有効な値:

ALLOW

レコード長がゼロ(0)でないかぎり、操作を処理します。

IGNORE

状況を無視して処理を継続します。

REPORT

レコードを破棄ファイルに書き込み、操作を処理します。

DISCARD

データを破棄し、部分的な行は処理しません。

ABEND

データを破棄し、処理を中止します。

REDUNDANTROW
このレコードの列データがフェッチ済のため、列データがフェッチされなかったことを示します。

SETIFMISSING [string]
フェッチは成功しなかった(およびトレイル・レコードで値が行方不明である)ものの、ターゲット列がNot NULL制約を持つ場合に、値を指定します。CHARおよびBINARYデータ型の値としてオプションのASCII文字列を受け付けるか、次のデフォルトを受け付けます。

CHAR、VARCHAR: 単一の空白

BINARY、VARBINARY: NULLバイト

TIMESTAMP: 現在の日付/時刻

FLOAT、INTEGER: ゼロ

SETIFMISSINGに加え、MAP文のCOLMAP句を使用してターゲット列に値をマップできます。詳細は、COLMAP (column_mapping)を参照してください。

SNAPSHOTROW
列データがスナップショットからフェッチされたことを示します。通常、このオプションは操作のレポートまたは破棄のためにのみ使用されます。有効な値:

ALLOW

レコード長がゼロ(0)でないかぎり、操作を処理します。

IGNORE

状況を無視して処理を継続します。

REPORT

レコードを破棄ファイルに書き込み、操作を処理します。

DISCARD

データを破棄し、行は処理しません。

ABEND

データを破棄し、処理を中止します。

3.138 REPLACEBADCHAR

適用対象

ExtractおよびReplicat

説明

REPLACEBADCHARパラメータでは、文字型の列をマップするときに有効なコード・ポイントがソースまたはターゲットのキャラクタ・セットのいずれにも存在しない場合、プロセスのレスポンスを制御します。デフォルトでは、無効なコード・ポイントの確認はソース・データベースとターゲット・データベースの文字セットが異なる場合のみ実行され、デフォルト・レスポンスは異常終了です。ソース・データベースとターゲット・データベースの文字セットが同じ場合に無効なコード・ポイントの確認をプロセスに強制する場合は、FORCECHECKオプションを使用できます。REPLACEBADCHARはグローバルに適用されます。

デフォルト

ABORT

構文

REPLACEBADCHAR {ABORT | SKIP | ESCAPE | SUBSTITUTE string | NULL | SPACE} [FORCECHECK] [NOWARNING]

ABORT

プロセスは、無効なコード・ポイントで異常終了します。これはデフォルトです。

SKIP

無効なコード・ポイントを持つレコードをスキップします。レコードのスキップがターゲットでのデータ不一致の原因になる可能性があるため、このオプションは慎重に使用してください。

ESCAPE

データ値をエスケープ・バージョンのデータ値に置換します。ソース・データベースのキャラクタ・セットに応じて、値は次のいずれかとして出力されます。

- ソース・データがUTF-16 (NCHAR/NVARCHAR)でない場合、出力は16進(\xXX)です。

- ソース・データがUTF-16の場合、出力はUnicode (\uXXXX)です。

SUBSTITUTE string

データをUnicode表記法または4文字以下の指定された文字列に置換します。デフォルトでは、ターゲット・キャラクタ・セットのデフォルト置換文字が置換に使用されます。

NULL

ターゲット列がNull値可能である場合は無効な文字をNULL値に置換し、それ以外の場合は空白(U+0020)を割り当てます。

SPACE

無効な文字を空白(U+0020)に置換します。

FORCECHECK

ソース・データベースおよびターゲット・データベースのキャラクタ・セットが同一の場合、無効なコード・ポイントをチェックします。このオプションはデフォルトより優先されます。デフォルトでは、ソースおよびターゲットのキャラクタ・セットが同一の場合、検証はスキップされます。

NOWARNING

変換エラーおよび検証エラーに関連する警告メッセージを抑止します。

例

例1

次の例では、無効なコード・ポイントをNULL値に置換します。

REPLACEBADCHAR NULL

例2

ESCAPEが指定されているので、ソースのNCHAR列のユーロ記号がエスケープ・バージョンのu20ACに置換されます。これは、ターゲットがISO-8859-1で、ユーロ・コード・ポイントがサポートされないためです。

REPLACEBADCHAR ESCAPE

例3

次の例では、無効な文字を制御文字に置換します。

REPLACEBADCHAR SUBSTITUTE \u001A

3.139 REPLACEBADNUM

適用対象

Replicat

説明

REPLACEBADNUMパラメータでは、数字列をマップするときに検出される無効な数字データの代替値を指定します。REPLACEBADNUMはグローバルに適用されます。

デフォルト

無効な数字をNULLに置き換えます。

構文

REPLACEBADNUM {number | NULL | UNPRINTABLE}

number

指定した数字に置換します。

NULL

ターゲット列がNULL値を受け付ける場合はNULLに置換し、それ以外の場合はゼロに置換します。

UNPRINTABLE

出力不可能なデータを含むすべての列を拒否します。プロセスは停止し、不正な値をレポートします。

例

例1

REPLACEBADNUM 1

例2

REPLACEBADNUM NULL

3.140 REPLICAT

適用対象

Replicat

説明

REPLICATパラメータでは、オンライン変更同期用のReplicatグループを指定します。このパラメータによって、現在の実行と前回の実行が関連付けられるので、データ変更を継続的に処理し、ソース表とターゲット表の同期性を維持できます。Replicatは継続的に実行し、データ・ソースおよびトレイルにチェックポイントを保持することにより、計画的または計画外のプロセス終了、システム停止、ネットワーク障害が発生した場合にもデータ整合性とフォルト・トレランスを確保します。

Replicatパラメータ・ファイルにはREPLICATまたはSPECIALRUNのいずれかの指定が必要で、パラメータ・ファイルの最初のエントリにする必要があります。詳細は、SPECIALRUNを参照してください。

デフォルト

なし

構文

REPLICAT group_name

group_name

ADD REPLICATコマンドで定義したグループ名。既存のReplicatグループの名前を表示するには、INFO REPLICAT *コマンドを使用します。

例

REPLICAT finance

3.141 REPORT

適用対象

ExtractおよびReplicat

説明

REPORTパラメータでは、ExtractまたはReplicatがプロセス・レポートに一時的な実行時統計を生成する間隔を指定します。統計は既存のレポートに追加されます。デフォルトでは、実行時統計は、プロセスが意図的に中断されないかぎり実行終了時に表示されます。

REPORTの統計は、前回のレポートから繰り越されます。たとえば、プロセスが初日に1000万の挿入、2日目に2000万の挿入を実行し、レポートが毎日3:00に生成される場合、最初のレポートは最初の1000万の挿入をレポートし、次のレポートは前日の1000万件と当日の2000万件の合計、3000万件をレポートします。新しいレポートが生成されたときに統計をリセットするには、STATOPTIONSパラメータとRESETREPORTSTATSオプションを使用します。詳細は、STATOPTIONSを参照してください。

プロセス・レポートの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

各実行の終了時に実行時統計を生成する。

構文

REPORT
{AT hh:mi |
ON day |
AT hh:mi ON day}

AT hh:mi

指定の時刻にレポートを生成します。ATのみでONを指定しない場合、指定した時刻に毎日レポートが生成されます。

ON day

指定の曜日にレポートを生成します。有効な値:

SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY

値の大/小文字は区別されません。

例

例1

REPORT AT 17:00

例2

REPORT ON SUNDAY AT 1:00

3.142 REPORTCOUNT

適用対象

ExtractおよびReplicat

説明

REPORTCOUNTパラメータでは、ExtractまたはReplicatが起動以降に処理したトランザクション・レコード数をレポートします。各トランザクション・レコードは、Oracle GoldenGateによって取得されたトランザクション内で実行された論理データベース操作を表します。レコード数は、レポート・ファイルおよび画面に出力されます。

注意:

この数は、Oracle GoldenGateトレイルに含まれているレコード数とは異なる場合があります。データが4Kを上回る操作は、複数のトレイル・レコードに保持する必要があります。したがって、レコード数は1,000レコード(データベース操作)を示していても、トレイル数ではそれより多くのレコード数を示す場合があります。トレイルのレコード数を取得するには、Logdumpユーティリティを使用します。

レコード数のレポートは、定期的な間隔、または特定のレコード数に到達後の生成をスケジュールできます。レコード数は、レポートからレポートに繰り越されます。

REPORTCOUNTは、パラメータ・ファイルで1回のみ使用できます。REPORTCOUNTの複数のインスタンスがある場合、Oracle GoldenGateは最後に指定されているインスタンスを使用します。

デフォルト

なし

構文

REPORTCOUNT [EVERY] count
{RECORD | RECORDS | SECOND | SECONDS | MINUTE | MINUTES | HOUR |HOURS} [, RATE]

count

レコード数を出力する間隔。

RECORD | RECORDS | SECOND | SECONDS | MINUTE | MINUTES | HOUR |HOURS

countの測定単位(レコード、秒、分、または時間)。

RATE

1秒当たりの操作数、およびパフォーマンス指標として変更レートをレポートします。Rate統計は、レコード数合計をプロセス起動からの合計時間で割った値です。Delta統計は、最後のレポート以降のレコード数を最後のレポート出力時からの時間で割った値です。

注意:

この計算では、マイクロ秒の粒度が使用されます。時間間隔では秒の端数なしで表示され、レート値は整数で表示されます。

例

例1

次に、5,000レコードごとにレコード数を生成する例を示します。

REPORTCOUNT EVERY 5000 RECORDS

例2

次に、10分間隔でレコード数のレポートを生成し、処理統計もレポートする例を示します。

REPORTCOUNT EVERY 10 MINUTES, RATE

処理統計は次のようになります。

12000 records processed as of 2011-01-01 12:27:40 (rate 203,delta 308)

3.143 REPORTROLLOVER

適用対象

ExtractおよびReplicat

説明

REPORTROLLOVERパラメータでは、プロセスの起動時ではなく、定期的なスケジュールでレポート・ファイルをエージングさせます。エージング・スケジュールを設定することで、長時間または連続的な実行の場合に、アクティブなレポート・ファイルのサイズを制御でき、またアーカイブ・ルーチンに追加されるアーカイブを予測できます。

注意:

レポート統計は、レポートからレポートに繰り越されます。新しいレポートで統計をリセットするには、STATOPTIONSパラメータとRESETREPORTSTATSオプションを使用します。

時刻、曜日、またはその両方を指定できます。時刻(ATオプション)のみで曜日(ONオプション)を指定しない場合、指定した時刻に毎日レポートが生成されます。

このパラメータによって発生するロールオーバーでは、プロセス・レポートに実行時統計が生成されません。

- レポート・ファイルに実行時統計をいつ生成するかを制御するには、REPORTパラメータを使用します。

- 新しい実行時統計をオンデマンドで生成するには、SEND EXTRACTまたはSEND REPLICATコマンドとともにREPORTオプションを使用します。

デフォルト

起動時にレポートをロールオーバーする。

構文

REPORTROLLOVER
{AT hh:mi |
ON day |
AT hh:mi ON day}

AT hh:mi

ファイルをエージングする時刻。

次の値が有効です。

- hhは24時間表記の時間で、1から23までの値を受け付けます。

- miは00から59までの値を受け付けます。

ON day

ファイルをエージングする曜日。有効な値:

SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY

値の大/小文字は区別されません。

例

例1

REPORTROLLOVER AT 05:30

例2

REPORTROLLOVER ON friday

例3

REPORTROLLOVER AT 05:30 ON friday

3.144 RESTARTCOLLISIONS | NORESTARTCOLLISIONS

適用対象

Replicat

説明

RESTARTCOLLISIONSおよびNORESTARTCOLLISIONSパラメータでは、競合が原因でOracle GoldenGateが停止した後に、ReplicatがHANDLECOLLISIONSロジックを適用するかどうかを制御します。デフォルトでは、NORESTARTCOLLISIONSが適用されます。ただし、Oracle GoldenGate起動後の最初のトランザクションにHANDLECOLLISIONSロジックを適用する必要がある場合もあります。たとえば、サーバーが強制的にシャット・ダウンされ、データベースが最後のReplicatトランザクションをコミットしたものの、Oracle GoldenGateが確認を受信していない場合です。このケースでは、Replicatは起動時にトランザクションを再試行します。HANDLECOLLISIONSは、結果として発生するエラーを自動的に処理します。

RESTARTCOLLISIONSは、最初のReplicatチェックポイント(トンランザクション)が完了するまでHANDLECOLLISIONS機能を有効化します。パラメータ・ファイルにHANDLECOLLISIONSパラメータを指定する必要はありません。最初のチェックポイントの完了後、HANDLECOLLISIONSは自動的に無効化されます。

コリジョン処理の詳細は、HANDLECOLLISIONS | NOHANDLECOLLISIONSを参照してください。

デフォルト

NORESTARTCOLLISIONS

構文

RESTARTCOLLISIONS | NORESTARTCOLLISIONS

3.145 RMTFILE

適用対象

Extract

説明

RMTFILEパラメータでは、抽出データを書き込むリモート・システム上の抽出ファイル名を定義します。このパラメータは、初期ロード構成に使用します。オンライン変更同期では、RMTTRAILパラメータを使用します。

抽出ファイルのサイズの上限は2GBです。

RMTFILEは、RMTHOST文の後に指定する必要があり、すべてのTABLE文より先に指定する必要があります。

ENCRYPTTRAILパラメータを使用して、このファイル内のデータを暗号化できます。詳細は、ENCRYPTTRAIL | NOENCRYPTTRAILを参照してください。

デフォルト

なし

構文

RMTFILE file_name
[, APPEND]
[, PURGE]
[, MEGABYTES megabytes]
[, FORMAT RELEASE major.minor]
[, OBJECTDEFS | NO_OBJECTDEFS]
[, TRAILBYTEORDER {BIGENDIAN | LITTLEENDIAN | NATIVEENDIAN}]

file_name

ファイルの相対名または完全修飾名。

APPEND

現在のデータをファイルの既存のデータに追加します。APPENDを使用する場合、PURGEは使用しないでください。

PURGE

新しいファイルを作成する前に、既存のファイルを削除します。PURGEを使用する場合、APPENDは使用しないでください。

MEGABYTES megabytes

Extractに有効です。トレイル内のファイルの最大サイズ(MB)。デフォルトは2000です。

FORMAT RELEASE major.minor

Extractからファイルに送信されるデータのメタデータ・フォーマットを指定します。リーダー・プロセスは、メタデータに基づいて、データ・レコードが自身がサポートしているバージョンかどうかを把握します。メタデータのフォーマットは、Oracle GoldenGateプロセスのリリースによって異なります。古いOracle GoldenGateリリースには、新しいリリースとは異なるメタデータが含まれます。

- FORMATは必須のキーワードです。

- RELEASEはOracle GoldenGateのリリース・バージョンを指定します。majorはメジャー・バージョン番号で、minorはマイナー・バージョン番号です。X.xには、Oracle GoldenGateの現在または以前のGenerally Available (GA)リリースを指定する必要があります。有効な値は、9.0から現在のOracle GoldenGate X.xバージョン番号(たとえば11.2または12.1)です。(9.0以前のOracle GoldenGateリリースを使用している場合は、9.0または9.5を指定してください。)
リリース・バージョンは、プログラムによって適切な内部互換性レベルにマッピングされます。デフォルトは、このトレイルに書き込むプロセスの現在のバージョンです。12.1より前のRELEASEのリリースでは、3つの部分からなるオブジェクト名はサポートされません。

FORMATとRECOVERYOPTIONSパラメータの間には、依存関係があります。RECOVERYOPTIONSをAPPENDMODEに設定する場合、FORMATはRELEASE 10.0以上に設定する必要があります。RECOVERYOPTIONSをOVERWRITEMODEに設定する場合、FORMATはRELEASE 9.5以下に設定する必要があります。

OBJECTDEFS | NO_OBJECTDEFS

OBJECTDEFSとNO_OBJECTDEFSオプションでは、証跡にオブジェクト定義を含めるかどうかを制御します。この2つのオプションは、出力証跡がOracle GoldenGate正規フォーマットで書式設定され、証跡フォーマット・リリースが12.1より新しい場合にのみ適用可能です。それ以外の場合は証跡にメタデータ・レコードが追加されないため、どちらのオプションも無視されます。

オープン・システム・データベースからNonStopにレプリケートする場合、NonStopでは証跡からのオブジェクト定義の処理がサポートされていないため、12.2より前のフォーマット・バージョンを指定して、オブジェクト定義を証跡に含めないようにします。

TRAILBYTEORDER {BIGENDIAN | LITTLEENDIAN | NATIVEENDIAN}

ファイル・レコードのメタデータのバイト・フォーマットを設定します。このパラメータは、列データに影響しません。12.1以上のバージョンのFORMAT RELEASEが指定されているファイルにのみ有効です。有効な値は、BIGENDIAN (ビッグ・エンディアン)、LITTLEENDIAN (リトル・エンディアン)およびNATIVEENDIAN (ローカル・システムのデフォルト)です。デフォルトはBIGENDIANです。使用方法の詳細は、GLOBALSバージョンの「TRAILBYTEORDER」を参照してください。

例

例1

RMTFILE /ggs/dirdat/salesny, MEGABYTES 2, PURGE

例2

RMTFILE /ggs/dirdat/salesny, MEGABYTES 2, FORMAT RELEASE 10.4

3.146 RMTHOST

適用対象

Extract

説明

RMTHOSTパラメータでは、次のことを行います。

- ローカルExtractプロセスの接続先のリモート・システムを特定する

- Managerプロセスが実行されているシステムのTCP/IPポート番号を指定する

- TCP/IP接続の様々な属性を制御する

このパラメータでは、圧縮、データ暗号化、バッファ属性、TCP/IPストリーミング、接続タイムアウトしきい値、および接続リクエストの待機時間を制御します。Collectorパラメータの設定にも使用できます。

パラメータ・ファイルで複数のリモート・システムを特定するには、次に示す例のように、各システムに対して1つのRMTHOST文を指定し、関連するトレイルおよび表マップの指定を続けます。

EXTRACT sales
USERIDALIAS tiger1
RMTHOST ny, MGRPORT 7888, ENCRYPT AES 192 KEYNAME mykey
RMTTRAIL /ggs/dirdat/aa
TABLE ora.orders;
RMTHOST la, MGRPORT 7888, ENCRYPT AES 192 KEYNAME mykey2
RMTTRAIL /ggs/dirdat/bb
TABLE ora.orders;

PASSIVEモードで作成されているExtractには、RMTHOSTを使用しないでください。パッシブExtractの詳細は、ADD EXTRACTを参照してください。

Oracle GoldenGateは、IPv4およびIPv6プロトコルをサポートしています。インターネット・プロトコルの選択の詳細は、USEIPV4を参照してください。

RMTHOSTおよびRMTHOSTOPTIONSパラメータを一緒に指定できます。動的IP割当てが適切に構成されている場合、RMTHOSTパラメータはRMTHOSTOPTIONSに必要ではありません。RMTHOSTOPTIONSが使用されている場合、MGRPORTオプションは無視されます。

デフォルト

なし

構文

RMTHOST
{ host name | IP address}
[, COMPRESS]
[, COMPRESSTHRESHOLD]
[, ENCRYPT {BLOWFISH KEYNAME key_name | algorithm [KEYNAME key_name]} ]
{, MGRPORT port | PORT port}
[, CPU number]
[, PRI number]
[, HOMETERM device_name]
[, PROCESSNAME process_name]
[, PARAMS collector_parameters]
[, SOCKSPROXY {host_name | IP address} [:port] [PROXYCSALIAS credential_
store_alias [PROXYCSDOMAIN credential_store_domain]]
[, STREAMING | NOSTREAMING]
[, TCPBUFSIZE bytes]
[, TCPFLUSHBYTES bytes]
[, TIMEOUT seconds]

{host_name | IP_address}

ターゲット・システムのDNSホスト名またはIPアドレス。いずれか1つを使用してホストを定義できます。IPアドレスを使用している場合、宛先システムのスタックに応じて、IPv6またはIPv4のいずれかのマップ・アドレスを使用します。

COMPRESS

このオプションは、オンラインまたはバッチのExtractプロセスと、トレイルを使用するOracle GoldenGate初期ロード方式に有効です。送信レコードのブロックを圧縮して、必要な帯域幅を低減します。Oracle GoldenGateは、トレイルに書き込む前にデータを解凍します。COMPRESSでの通常の圧縮率は少なくとも4:1で、それより高くなる場合もあります。ただし、データを圧縮するとCPUリソースを消費します。

COMPRESSTHRESHOLD

このオプションは、オンラインまたはバッチのExtractプロセスと、トレイルを使用するOracle GoldenGate初期ロード方式に有効です。圧縮を行うための最小ブロック・サイズを設定します。有効な値は、0から28000までです。デフォルトは1,000バイトです。

ENCRYPT algorithm [KEYNAME key_name]

このオプションは、オンラインまたはバッチのExtractプロセスと、すべてのOracle GoldenGate初期ロード方式に有効です。ターゲット・システムにTCP/IPを介して送信されるデータ・ストリームを暗号化します。このオプションは、次の暗号化オプションをサポートしています。

- マスター・キーとウォレット方式: 指定したアクティブなマスター・キーとアルゴリズムに基づいてセッション鍵を生成します。BLOWFISHアルゴリズムには無効です。z/OS上のDB2、DB2 for iおよびSQL/MXには無効です。

- ENCKEYS方式: AES暗号化鍵を生成してENCKEYSファイルの指定名の下に保管し、その鍵を使用してデータを暗号化するようにOracle GoldenGateを構成します。

algorithm

使用する暗号化アルゴリズムを指定します。

- AES128の場合、AES-128暗号が使用されます(鍵サイズは128ビットです)。アルゴリズムを指定しない場合、デフォルトはAES128です。

- AES192の場合、AES-192暗号が使用されます(鍵サイズは192ビットです)。

- AES256の場合、AES-256暗号が使用されます(鍵サイズは256ビットです)。

- BLOWFISHの場合、Blowfish暗号化が使用されます(ブロック・サイズは64ビット、鍵サイズは32から128ビットの可変長です)。BLOWFISHは、以前のOracle GoldenGateバージョンとの下位互換性を維持するため、またz/OS上のDB2、DB2 for iおよびNonStop上のSQL/MX用のOracle GoldenGateのインストールに使用します。これらのプラットフォームでは、BLOWFISHは唯一サポートされている暗号化方式です。AESはこれらのプラットフォームのBLOWFISHより安全であるため、サポートされている場合はAESを使用します。

KEYNAME key_name

ENCKEYS暗号化方式を使用することを指定します。マスター・キーとウォレット方式には無効です。key_nameには、ユーザー定義の暗号化鍵の論理名を指定します。Oracle GoldenGateは、この鍵名を使用してENCKEYS参照ファイルで実際の鍵を検索します。ENCKEYS方式を使用するには、次を行う必要があります。

- 暗号化鍵を生成します。

- それをENCKEYS参照ファイルに保管します。

- 暗号化または復号化(またはその両方)を実行するすべてのシステムに、ENCKEYSをコピーします。

32ビット・プラットフォーム上のOracle以外のデータベースにAES暗号化を使用するには、プロセスを開始する前に、環境変数として、Oracle GoldenGateインストール・ディレクトリのlibサブディレクトリのパスを指定する必要があります。これは64ビット・プラットフォームでは必要ありません。次のようにパスを設定します。

- UNIX: LD_LIBRARY_PATHまたはSHLIB_PATH変数への入力として、パスを指定します。例:

setenv LD_LIBRARY_PATH ./lib:$LD_LIBRARY_PATH

- Windows: PATH変数にパスを追加します。

SETENVパラメータを使用して、プロセスのセッション変数としてライブラリを設定できます。

暗号化の使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

MGRPORT port | PORT port
MGRPORTまたはPORTの指定が必要です。MGRPORTは、Managerが稼働しているリモート・システムのポートです。PORTは、静的Collectorプロセスのポート番号です。Managerポート(動的Collectorを使用している場合)または静的Collectorポート番号の指定が必要です。静的Collectorの詳細は、Collectorパラメータを参照してください

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のいずれかの書式で入力できます)。デフォルトは、システム生成のプロセス名です。

PARAMS collector_parameters
NonStopターゲット・システム上のCollectorパラメータを指定します。

注意:

ManagerがCollectorを動的に起動する場合は、Collectorポート(-p引数)を指定しないでください。

NonStopプラットフォームのCollectorパラメータの詳細は、Oracle GoldenGateリファレンス・ガイドfor HP NonStop (Guardian)を参照してください。

SOCKSPROXY {host_name | IP address} [:port] [PROXYCSALIAS credential_store_alias [PROXYCSDOMAIN credential_store_domain]]
SOCKSPROXYパラメータでは、ソースExtractとターゲット・プロセス間のTCP通信のトンネルを作成するSOCKS5プロキシ・サーバーを使用して、情報をレプリケートします。接続はソース側で開始されます。プロキシ・アドレスを指定する必要があります。オプションで、ポートを指定できます(または、SOCKSプロトコルのデフォルトが使用されます)。資格証明ストアの別名が指定されている場合、Oracle GoldenGateは、その情報を使用してプロキシ・サーバーで認証します。これは、RMTHOSTパラメータのオプションです。

資格証明ストアの情報がない場合は、プロキシでの認証は実行されません

host_name | IP_address

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

port

(オプション)プロキシ・サーバーが接続を受け入れる際のリモート・システムのポートを指定します。ポートのデフォルト値は1080です。

PROXYCSALIAS credential_store_alias

プロキシ・サーバーでの認証に使用されるユーザー名およびパスワードに解決する資格証明の別名を指定します。

PROXYCSDOMAIN credential_store_domain

(オプション)別名と一緒に使用する資格証明ストアのドメインを指定します。

STREAMING | NOSTREAMING
このオプションは、オンラインまたはバッチのExtractプロセスと、トレイルを使用するOracle GoldenGate初期ロード方式に有効です。TCP/IPストリーミングを制御します。

STREAMING

デフォルトで、非同期インターネット・ストリーミング・プロトコルを有効化します。STREAMINGモードでは、通常、送信者(プライマリExtractまたはデータ・ポンプ)がチェックポイントを行うか、書込み位置を決定する必要があるとき、レスポンスをリクエストするフラグがパケットに含まれていない場合は、受信者(Collector)は送信者にデータ・パケットの確認を送信しません。この方法では確認が省略されるため、ネットワークが中断した場合、送信者または受信者のプロセスは終了するため、STREAMINGを使用する場合、Managerパラメータ・ファイルでAUTORESTARTパラメータを使用して、ExtractおよびCollectorが終了した場合に再起動します。

NOSTREAMING

同期インターネット・プロトコルを有効化します。NOSTREAMINGモードでは、送信者は、パケットを送信し、受信者が確認するまで待機してから次のパケットを送信します。この方法は、ネットワークが中断した場合、送信者または受信者のプロセスをリカバリできるため、より信頼性があります。

受信者のプロセスのホスト・システムがストリーミングを使用するように構成されていない場合、Extractは自動的に同期プロトコルに戻ります。

ストリーミングによって、特に送信のレイテンシがすでに問題になっているネットワークではレイテンシが減少するため、無効化するようリクエストしないかぎり、デフォルトのSTREAMINGを保持してください。ストリーミングは、ExtractがReplicatと直接通信する初期ロード・タスクではサポートされていません。

TCPBUFSIZE bytes
このオプションは、オンラインまたはバッチのExtractプロセスと、トレイルを使用するOracle GoldenGate初期ロード方式に有効です。Extractが保持を試みるTCPソケット・バッファのサイズ(バイト)を制御します。

バッファ・サイズを増やすと、ターゲット・システムにより大きなパケットを送信できます。実際のバッファ・サイズは、TCPスタックの実装およびネットワークによって決定されます。デフォルトは30,000バイトですが、最新のネットワーク構成では、通常これより大きい値がサポートされています。有効な値は、1000から200000000(2億)バイトです。ネットワーク管理者とともに最適な値を決定してください。バッファ・サイズのチューニングの詳細と、ネットワークを介したデータ送信の向上に関するその他の推奨事項は、Oracle GoldenGateの管理for Windows and UNIXも参照してください。

テストでは、初期ロードにTCPBUFSIZEを使用すると、使用しないで実行した場合よりも3倍速いスループットが生成されることが示されています。ターゲット・システムがNonStopの場合は、このパラメータを使用しないでください。

TCPFLUSHBYTES bytes
このオプションは、オンラインまたはバッチのExtractプロセスと、トレイルを使用するOracle GoldenGate初期ロード方式に有効です。ネットワークを介して送信されるデータを収集するバッファのサイズ(バイト)を制御します。

この値またはFLUSHSECSパラメータの値に到達したときに、データがターゲットにフラッシュされます。デフォルトは30,000バイトです。有効な値は1000から200000000(2億)バイトですが、少なくともTCPBUFSIZEの値を設定する必要があります。

初期ロードExtractでは、このパラメータを使用しないでください。これは、オンラインExtractグループにのみ有効です。ターゲット・システムがNonStopの場合は、このパラメータを使用しないでください。

TIMEOUT seconds
このオプションは、オンラインまたはバッチのExtractプロセスと、トレイルを使用するOracle GoldenGate初期ロード方式に有効です。CollectorがExtractからの接続を待機する時間、および接続を終了する前にCollectorがExtractからのハートビート・シグナルを待機する時間を指定します。有効な値は1秒から1800秒(30分)までです。デフォルト値は300秒(5分)です。本番環境では、タイムアウト設定を非常に低くすることをお薦めしません。エラー・ログに、TCP/IPエラー10054 (既存の接続がリモート・ホストによって強制的にクローズされる)が発生したことを示す警告が記録されている場合、TIMEOUTの値を増やす必要がある可能性があります。このエラーは、通常、TIMEOUTの値を超えたときにCollector自体が終了した場合に発生します。このパラメータは、静的なCollectorには影響しません。

例

例1

RMTHOST 20.20.20.17, MGRPORT 7809, ENCRYPT AES192, KEYNAME newyork

例2

RMTHOST 20.20.20.17, MGRPORT 7809, ENCRYPT AES192

例3

RMTHOST newyork, MGRPORT 7809, COMPRESS, COMPRESSTHRESHOLD 750, NOSTREAMING

例4

RMTHOST newyork, MGRPORT 7809, TCPBUFSIZE 100000, TCPFLUSHBYTES 300000

例5

RMTHOST newyork, MGRPORT 18819, CPU 1, PRI 140, HOMETERM $ZTN0.#PTJ52A1, PROCESSNAME $xyz1

例6

RMTHOST lc01abc, MGRPORT 7809, SOCKSPROXY 192.111.82.180:3128 PROXYCSALIAS
proxyAlias PROXYCSDOMAIN support

3.147 RMTHOSTOPTIONS

適用対象

Passive Extract

説明

RMTHOSTOPTIONSパラメータでは、信頼性の低いソース上でPASSIVEモードで実行されているExtractグループと、より安全性の高いネットワーク・ゾーン内のターゲット・システム間のTCP/IP接続属性を制御します。このパラメータでは、圧縮、データ暗号化、バッファ属性、ストリーミングおよび接続リクエストの待機時間を制御します。Collectorパラメータの設定にも使用できます。

このパラメータは、リモート接続の確立に必要なホスト情報を提供しないため、RMTHOSTパラメータとは異なります。ExtractがPASSIVEモードで実行されている場合、ソースとターゲット間のすべての接続はターゲット上の別名Extractグループによって確立されます。

すべてのパラメータ・オプションは、1つのRMTHOSTOPTIONS文内に指定する必要があります。複数のRMTHOSTOPTIONS文が使用されている場合は、パラメータ・ファイルで最後に指定されている文が使用され、他の文は無視されます。RMTHOSTOPTIONSは、ファイル内のすべてのRMTHOST文よりも優先されます。

サポートされているIPプロトコルの詳細は、「RMTHOST」を参照してください。

RMTHOSTおよびRMTHOSTOPTIONSパラメータを一緒に指定できます。動的IP割当てが適切に構成されている場合、RMTHOSTパラメータはRMTHOSTOPTIONSに必要ではありません。RMTHOSTOPTIONSが使用されている場合、MGRPORTオプションは無視されます。

ゾーン化されたネットワークでのOracle GoldenGateの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

RMTHOSTOPTIONS
[, COMPRESS]
[, COMPRESSTHRESHOLD]
[, ENCRYPT algorithm [KEYNAME key_name]]
[, PARAMS collector_parameters]
[, STREAMING | NOSTREAMING]
[, TCPBUFSIZE bytes]
[, TCPFLUSHBYTES bytes]
[, TIMEOUT seconds]

COMPRESS

送信レコードのブロックを圧縮して、必要な帯域幅を低減します。Oracle GoldenGateは、トレイルに書き込む前にデータを解凍します。COMPRESSでの通常の圧縮率は少なくとも4:1で、それより高くなる場合もあります。ただし、データを圧縮するとCPUリソースを消費します。

COMPRESSTHRESHOLD

圧縮を行うための最小ブロック・サイズを設定します。有効な値は、0から28000までです。デフォルトは1,000バイトです。

ENCRYPT algorithm [KEYNAME key_name]

ターゲット・システムにTCP/IPを介して送信されるデータ・ストリームを暗号化します。このオプションは、次の暗号化オプションをサポートしています。

- マスター・キーとウォレット方式: TCP/IPネットワークを介してデータを暗号化するワンタイムAES鍵を生成します。生成されたワンタイム鍵は、マスター・キーによって暗号化され、トレイル・ファイル・ヘッダーに保管されます。

- ENCKEYS方式: AES暗号化鍵を生成してENCKEYSファイルの指定名の下に保管し、その鍵を使用してTCP/IPネットワークを介してデータを直接暗号化するようにOracle GoldenGateを構成します。

algorithm

使用する暗号化アルゴリズムを指定します。

- AES128の場合、AES-128暗号が使用されます(鍵サイズは128ビットです)。アルゴリズムを指定しない場合、デフォルトはAES128です。

- AES192の場合、AES-192暗号が使用されます(鍵サイズは192ビットです)。

- AES256の場合、AES-256暗号が使用されます(鍵サイズは256ビットです)。

- BLOWFISHの場合、Blowfish暗号化が使用されます(ブロック・サイズは64ビット、鍵サイズは32から128ビットの可変長です)。 BLOWFISHは、以前のOracle GoldenGateバージョンとの下位互換性を維持するため、またz/OS上のDB2、DB2 for iおよびNonStop上のSQL/MX用のOracle GoldenGateのインストールに使用します。これらのプラットフォームでは、BLOWFISHは唯一サポートされている暗号化方式です。AESはこれらのプラットフォームのBLOWFISHより安全であるため、サポートされている場合はAESを使用します。

KEYNAME key_name

ENCKEYS暗号化方式を使用することを指定します。マスター・キーとウォレット方式には無効です。key_nameには、ユーザー定義の暗号化鍵の論理名を指定します。Oracle GoldenGateは、この鍵名を使用してENCKEYS参照ファイルで実際の鍵を検索します。ENCKEYS方式を使用するには、次を行う必要があります。

- 暗号化鍵を生成します。

- それをENCKEYS参照ファイルに保管します。

- 暗号化または復号化(またはその両方)を実行するすべてのシステムに、ENCKEYSをコピーします。

32ビット・プラットフォーム上のOracle以外のデータベースにAES暗号化を使用するには、プロセスを開始する前に、環境変数として、Oracle GoldenGateインストール・ディレクトリのlibサブディレクトリのパスを指定する必要があります。これは64ビット・プラットフォームでは必要ありません。次のようにパスを設定します。

- UNIX: LD_LIBRARY_PATHまたはSHLIB_PATH変数への入力として、パスを指定します。例:

setenv LD_LIBRARY_PATH ./lib:$LD_LIBRARY_PATH

- Windows: PATH変数にパスを追加します。

SETENVパラメータを使用して、プロセスのセッション変数としてライブラリを設定できます。

暗号化の使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

PARAMS collector_parameters
NonStopターゲット・システム上のCollectorパラメータを指定します。

注意:

ManagerがCollectorを動的に起動する場合は、Collectorポート(-p引数)を指定しないでください。

NonStopプラットフォームのCollectorパラメータの詳細は、Oracle GoldenGateリファレンス・ガイドfor HP NonStop (Guardian)を参照してください。

STREAMING | NOSTREAMING
TCP/IPストリーミングを制御します。

STREAMING

デフォルトで、非同期インターネット・ストリーミング・プロトコルを有効化します。STREAMINGモードでは、通常、送信者(プライマリExtractまたはデータ・ポンプ)がチェックポイントを行うか、書込み位置を決定する必要があるとき、レスポンスをリクエストするフラグがパケットに含まれていない場合は、受信者(Collector)は送信者にデータ・パケットの確認を送信しません。この方法では確認が省略されるため、ネットワークが中断した場合、送信者または受信者のプロセスは終了するため、STREAMINGを使用する場合、Managerパラメータ・ファイルでAUTORESTARTパラメータを使用して、ExtractおよびCollectorが終了した場合に再起動します。

NOSTREAMING

同期インターネット・プロトコルを有効化します。NOSTREAMINGモードでは、送信者は、パケットを送信し、受信者が確認するまで待機してから次のパケットを送信します。この方法は、ネットワークが中断した場合、送信者または受信者のプロセスをリカバリできるため、より信頼性があります。

受信者のプロセスのホスト・システムがストリーミングを使用するように構成されていない場合、Extractは自動的に同期プロトコルに戻ります。

ストリーミングによって、特に送信のレイテンシがすでに問題になっているネットワークではレイテンシが減少するため、無効化するようリクエストしないかぎり、デフォルトのSTREAMINGを保持してください。ストリーミングは、ExtractがReplicatと直接通信する初期ロード・タスクではサポートされていません。

TCPFLUSHBYTES bytes
ネットワークを介して送信されるデータを収集するバッファのサイズ(バイト)を制御します。この値またはFLUSHSECSパラメータの値に到達したときに、データがターゲットにフラッシュされます。

デフォルトは30,000バイトです。有効な値は1000から200000000(2億)バイトですが、少なくともTCPBUFSIZEの値を設定する必要があります。

初期ロードExtractでは、このパラメータを使用しないでください。これは、オンラインExtractグループにのみ有効です。ターゲット・システムがNonStopの場合は、このパラメータを使用しないでください。

TIMEOUT seconds
PASSIVEモードで実行されているExtractがCollectorからの接続を待機する時間、および接続を終了する前にExtractがCollectorからのハートビート・シグナルを待機する時間を指定します。有効な値は1秒から1800秒(30分)までです。デフォルト値は300秒(5分)です。本番環境では、タイムアウト設定を非常に低くすることをお薦めしません。エラー・ログに、TCP/IPエラー10054 (既存の接続がリモート・ホストによって強制的にクローズされる)が発生したことを示す警告が記録されている場合、TIMEOUTの値を増やす必要がある可能性があります。このエラーは、通常、TIMEOUTの値を超えたときにExtract自体が終了した場合に発生します。

例

RMTHOSTOPTIONS ENCRYPT AES192, KEYNAME newyork, COMPRESS, COMPRESSTHRESHOLD 750, TCPBUFSIZE 100000, TCPFLUSHBYTES 300000, NOSTREAMING

3.148 RMTTASK

適用対象

Extract

説明

初期ロードExtract用のRMTTASKパラメータでは、Oracle GoldenGateダイレクト・ロードまたはSQL*Loaderへのダイレクト・バルク・ロード中に、Replicat処理タスクを開始します。RMTTASKでは、ExtractにTCP/IPを介してReplicatと直接通信させ、Collectorプロセスまたはトレイル・ストレージの使用をバイパスします。またRMTTASKでは、ExtractからManagerに、Replicatを自動起動させ、実行の終了時にReplicatを停止するようにリクエストさせます。タスクはチェックポイントを作成しません。

次に依存関係にあるパラメータを示します。

- 初期ロードExtractパラメータ・ファイルの各RMTTASK文の後に、RMTHOST文を続ける必要があります。

- 初期ロードExtractパラメータ・ファイルで、EXTRACTを使用する必要があります。

- 初期ロードReplicatパラメータ・ファイルで、REPLICATを使用する必要があります。

- ADD EXTRACTコマンドで、SOURCEISTABLEを使用する必要があります。

- ADD REPLICATコマンドで、SPECIALRUNを使用する必要があります。

RMTTASKは、どのような種類の暗号化もサポートしていません。暗号化を使用するには、ファイルにデータを書き込み、Replicatがこのデータを読み込んでロードする初期ロード方式を使用する必要があります。

RMTTASKでは、BLOB、CLOB、NCLOB、LONG、UDTおよびXMLを含むすべてのOracleデータ型がサポートされます。

RMTTASKを使用するときは、ReplicatをSTART REPLICATコマンドで起動しないでください。Replicatは、このタスク中に自動的に起動されます。

初期データ・ロードの実行の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

RMTTASK REPLICAT, GROUP group_name
[FORMAT RELEASE major.minor]

GROUP group_name

ターゲット・システム上の初期ロードReplicatグループ名。

FORMAT RELEASE major.minor

ExtractからReplicatに送信されるデータのメタデータ・フォーマットを指定します。Replicatは、メタデータに基づいて、データ・レコードが自身がサポートしているバージョンかどうかを把握します。メタデータのフォーマットは、Oracle GoldenGateプロセスのリリースによって異なります。古いOracle GoldenGateリリースには、新しいリリースとは異なるメタデータが含まれます。

- FORMATは必須のキーワードです。

- RELEASEはOracle GoldenGateのリリース・バージョンを指定します。majorはメジャー・バージョン番号で、minorはマイナー・バージョン番号です。X.xには、Oracle GoldenGateの現在または以前のGenerally Available (GA)リリースを指定する必要があります。有効な値は、9.0から現在のOracle GoldenGate X.xバージョン番号(たとえば11.2または12.1)です。(9.0以前のOracle GoldenGateリリースを使用している場合は、9.0または9.5を指定してください。)
リリース・バージョンは、プログラムによって適切な内部互換性レベルにマッピングされます。デフォルトは、このトレイルに書き込むプロセスの現在のバージョンです。12.1より前のRELEASEのリリースでは、3つの部分からなるオブジェクト名はサポートされません。

FORMATとRECOVERYOPTIONSパラメータの間には、依存関係があります。RECOVERYOPTIONSをAPPENDMODEに設定する場合、FORMATはRELEASE 10.0以上に設定する必要があります。RECOVERYOPTIONSをOVERWRITEMODEに設定する場合、FORMATはRELEASE 9.5以下に設定する必要があります。

初期ロードの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

例

RMTTASK REPLICAT, GROUP initrep, FORMAT RELEASE 10.0

3.149 RMTTRAIL

適用対象

Extract

説明

RMTTRAILパラメータでは、GGSCIのADD RMTTRAILコマンドで作成されているリモート・トレイルを指定します。RMTTRAILで指定するトレイルは、関連するTABLE文よりも先に配置する必要があります。異なるリモート・トレイルを定義するために、複数のRMTTRAIL文を使用できます。RMTTRAILより先にRMTHOSTパラメータを配置する必要があります。

ENCRYPTTRAILパラメータを使用して、このトレイル内のデータを暗号化できます。詳細は、ENCRYPTTRAIL | NOENCRYPTTRAILを参照してください。

デフォルト

なし

構文

RMTTRAIL trail_name
[, FORMAT RELEASE major.minor]
[, OBJECTDEFS | NO_OBJECTDEFS]
[, TRAILBYTEORDER {BIGENDIAN | LITTLEENDIAN | NATIVEENDIAN}]

name

トレイルの相対パス名または完全修飾パス名。名前には2文字を使用します。エージングされたトレイル・ファイルは、この名前に6桁の順序番号が追加されます(例: /ggs/dirdat/rt000001)。

FORMAT RELEASE major.minor

Extractからトレイルに送信されるデータのメタデータ・フォーマットを指定します。リーダー・プロセスは、メタデータに基づいて、データ・レコードが自身がサポートしているバージョンかどうかを把握します。古いOracle GoldenGateリリースには、新しいリリースとは異なるメタデータが含まれます。

- FORMATは必須のキーワードです。

- RELEASEはOracle GoldenGateのリリース・バージョンを指定します。majorはメジャー・バージョン番号で、minorはマイナー・バージョン番号です。X.xには、Oracle GoldenGateの現在または以前のGenerally Available (GA)リリースを指定する必要があります。有効な値は、9.0から現在のOracle GoldenGate X.xバージョン番号(たとえば11.2または12.1)です。(9.0以前のOracle GoldenGateリリースを使用している場合は、9.0または9.5を指定してください。)
リリース・バージョンは、プログラムによって適切な内部互換性レベルにマッピングされます。デフォルトは、このトレイルに書き込むプロセスの現在のバージョンです。12.1より前のRELEASEのリリースでは、3つの部分からなるオブジェクト名はサポートされません。

FORMATとRECOVERYOPTIONSパラメータの間には、依存関係があります。RECOVERYOPTIONSをAPPENDMODEに設定する場合、FORMATはRELEASE 10.0以上に設定する必要があります。RECOVERYOPTIONSをOVERWRITEMODEに設定する場合、FORMATはRELEASE 9.5以下に設定する必要があります。

Oracle GoldenGateトレイル・ファイルのバージョニングおよびリカバリ・モードの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

OBJECTDEFS | NO_OBJECTDEFS

OBJECTDEFSとNO_OBJECTDEFSオプションでは、証跡にオブジェクト定義を含めるかどうかを制御します。この2つのオプションは、出力証跡がOracle GoldenGate正規フォーマットで書式設定され、証跡フォーマット・リリースが12.1より新しい場合にのみ適用可能です。それ以外の場合は証跡にメタデータ・レコードが追加されないため、どちらのオプションも無視されます。

オープン・システム・データベースからNonStopにレプリケートする場合、NonStopでは証跡からのオブジェクト定義の処理がサポートされていないため、12.2より前のフォーマット・バージョンを指定して、オブジェクト定義を証跡に含めないようにします。

TRAILBYTEORDER {BIGENDIAN | LITTLEENDIAN | NATIVEENDIAN}

トレイル・レコードのメタデータのバイト・フォーマットを設定します。このパラメータは、列データに影響しません。12.1以上のバージョンのFORMAT RELEASEが指定されているトレイルにのみ有効です。有効な値は、BIGENDIAN (ビッグ・エンディアン)、LITTLEENDIAN (リトル・エンディアン)およびNATIVEENDIAN (ローカル・システムのデフォルト)です。デフォルトはBIGENDIANです。使用方法の詳細は、GLOBALSバージョンの「TRAILBYTEORDER」を参照してください。

例

例1

RMTTRAIL dirdat/ny

例2

RMTTRAIL /ggs/dirdat/ny, FORMAT RELEASE 10.4

例3

キャプチャされるのと同じ表のセット内の2つのトレイル・フォーマット:

FORMAT RELEASE  11.2
TABLE tab1
TABLE tab2
FORMAT RELEASE 12.1
TABLE tab1
TABLE tab2

例4

オブジェクト定義を含むHRスキーマとオブジェクト定義を含まないORDスキーマを送信するデータ・ポンプ・パラメータ・ファイルの例:

RMTTRAIL $data/ggs12.2/a1, OBJECTDEFS
TABLE hr.*;
RMTTRAIL $data/ggs12.2/a2, NO_OBJECTDEFS
TABLE ord.*;

3.150 ROLLOVER

適用対象

Extract

説明

ROLLOVERパラメータでは、トレイル・ファイルをエージングし、新しいファイルを作成する間隔を指定します。ROLLOVERはグローバル・パラメータで、パラメータ・ファイルのRMTTRAILまたはRMTFILE文で定義されているすべてのトレイルに適用されます。

ROLLOVERを使用して、特定の期間を表す(例: 各日)トレイル・ファイルを作成します。これにより、継続処理を促進し、出力を体系化する手段を提供します。また、1つのファイルを非アクティブ化し、次の実行用に新しいファイルを作成することにより、バッチ実行を体系化する手段を提供します。

ファイルは、トランザクションの途中でなく、トランザクションとトランザクションの間でロールオーバーされるので、データの整合性が確保されます。ファイルがロールオーバーされるときにチェックポイントが作成されるため、処理の際に以前のファイルは不要になります。

ロールオーバーは、実行中にロールオーバーの条件が満たされた場合にのみ行われます。たとえば、ROLLOVER ON TUESDAYが指定され、データ抽出が火曜日に開始される場合、(より詳しいROLLOVERルールが指定されていないかぎり)ロールオーバーは次の火曜日まで行われません。最大30のロールオーバー・ルールを指定できます。

ATまたはONのいずれかのオプションを指定する必要があります。両方のオプションを一緒に、任意の順番で使用できます。ATのみでONを指定しない場合、指定した時刻に毎日新しいトレイル・ファイルが作成されます。

トレイルの順序番号は000001から999999まで増やすことが可能で、順序番号は000000から再開始します。

デフォルト

デフォルトのファイル・サイズに到達したときか、ADD RMTTRAILまたはADD EXTTRAILコマンドのMEGABYTESオプションで指定されているサイズに到達したときにロールオーバーする。

構文

ROLLOVER {AT hh:mi | ON day | AT hh:mi ON day} [REPORT]

AT hh:mi

ファイルをエージングする時刻。

次の値が有効です。

- hhは24時間表記の時間で、1から23までの値が有効です。

- miは00から59までの値を受け付けます。

ON day

ファイルをエージングする曜日。

次の値が有効です。

SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY

値の大/小文字は区別されません。

REPORT

最後のレポート生成以降に各表から抽出されたレコード数のレポートを生成します。このレポートは、REPORTパラメータによって他のレポートが生成されないかぎり、対応するトレイルにレコード出力数を示します。

例

例1

次に、トレイルを毎日午後3:00にエージングする例を示します。

ROLLOVER AT 15:00

例2

次に、トレイルを毎週日曜日午前8:00にエージングする例を示します。

ROLLOVER AT 08:00 ON SUNDAY

3.151 SCHEMAEXCLUDE

適用対象

Extract、Replicat、DEFGEN

説明

SCHEMAEXCLUDEパラメータでは、ワイルドカードを使用してTABLE文またはMAP文で所有者を指定している場合、指定したソース所有者(スキーマなど)によって所有されるソース・オブジェクトをOracle GoldenGate構成から除外します。このパラメータは、2つまたは3つの部分からなる名前に有効です。

ワイルドカードは、オプションのcatalogまたはcontainerの他、schemaの指定に使用できます。すべてのオブジェクトを除外するというようなワイルドカードを使用していないことを確認してください。Oracle GoldenGateの管理for Windows and UNIXに記載されているワイルドカードの使用に関するルールに従ってください。

ファイルまたはトレイルを指定するパラメータとの関連でSCHEMAEXCLUDEの位置により、その効果が決まります。トレイルまたはファイルを指定するパラメータは、EXTFILE、RMTFILE、EXTTRAIL、RMTTRAILです。パラメータは次のように機能します。

- SCHEMAEXCLUDEを任意のTABLEパラメータまたはSEQUENCEパラメータの前かつトレイルまたはファイルを指定するパラメータの前に指定した場合は、すべてのトレイルまたはファイルと、すべてのTABLEパラメータおよびSEQUENCEパラメータにグローバルに適用されます。

- SCHEMAEXCLUDEをトレイルまたはファイルを指定するパラメータの後に指定した場合は、そのトレイルまたはファイルと、関連付けられているTABLEパラメータまたはSEQUENCEパラメータに対してのみ有効です。パラメータ・ファイルには複数のトレイルまたはファイルを指定でき、それぞれの後に一連のTABLE、SEQUENCEおよびTABLEEXCLUDEを指定します。

SCHEMAEXCLUDEは、関連付けられたTABLEパラメータまたはSEQUENCEパラメータより前に評価されます。したがって、それらの出現順序による違いはありません。

EXCLUDEWILDCARDOBJECTSONLYパラメータも参照してください。

デフォルト

なし

構文

SCHEMAEXCLUDE [container. | catalog.]schema

container. | catalog.

3つの部分からなる名前を必要とするデータベースの場合は、除外するソース所有者が含まれるソースOracleコンテナまたはSQL/MXカタログを指定します。除外する適切な所有者を特定するのに修飾子が必要な場合に使用します。

schema

除外するソース所有者の名前を指定します。3つの部分からなる名前を必要とするデータベースの場合、SCHEMAEXCLUDEの後にSOURCECATALOGパラメータでデフォルトのコンテナまたはカタログを指定する一連のTABLEパラメータまたはMAPパラメータを指定するか、SOURCEDBパラメータまたはTARGETDBパラメータでSQL/MXカタログを定義すると、schemaをcatalogなしで使用できます。

例

例1

この例では、ソースのtest*スキーマを除外します。ここでは、SQL/MX構成でSOURCEDBパラメータを使用してカタログが指定されているため、所有者名からカタログの指定を省略します。

EXTRACT capt
SOURCEDB catalog1, USERID schema1
RMTHOST sysb, MGRPORT 7809
RMTTRAIL /ggs/dirdat/aa
SCHEMAEXCLUDE test*
TABLE *.*;

例2

このOracleの例では、catalog (コンテナ)とschemaの両方を指定する必要があり、指定の一部としてワイルドカードを使用する方法を示しています。

EXTRACT capt
USERIDALIAS alias1
RMTHOST sysb, MGRPORT 7809
RMTTRAIL /ggs/dirdat/aa
SCHEMAEXCLUDE pdbtest.test*
TABLE pdb*.*.*;

例3

次に、データベースに2つの部分からなる名前のみが必要な場合にSCHEMAEXCLUDEを使用する方法の例を示します。

TABLE abc*.*;
SCHEMAEXCLUDE abctest*

3.152 SEQUENCE

適用対象

Extract

説明

SEQUENCEパラメータでは、順序値をトランザクション・ログから取得します。現在Oracle GoldenGateは、Oracleデータベースで順序をサポートしています。

注意:

順序のDDLサポート(CREATE、ALTER、DROP、RENAME)は、順序値のレプリケートと互換性がありますが、順序値のレプリケートには必要ありません。順序値のレプリケートのみを行う場合、Oracle GoldenGate DDLサポート環境をインストールする必要はありません。SEQUENCEパラメータのみを使用して実行できます。

Oracle GoldenGateは、ターゲットの順序値が次のようになることを保証します。

- 増分間隔が正の数の場合、ソース値より高い

- 増分間隔が負の数の場合、ソース値より低い

Replicatは挿入を実行するときに、増分方向に応じて、次のいずれかの公式をテストとして適用します。

source_highwater_value + (source_cache_size * source_increment_size) = target_highwater_value

または

source_highwater_value + (source_cache_size * source_increment_size) >= target_highwater_value

この公式がFALSEと評価される場合、ターゲットの順序は(順序が増分されるときは)ソース値よりも高い値に更新され、(順序が減分されるときは)ソース値よりも低い値に更新されます。ターゲットは、常にこの公式のカッコ内の式以上の値である必要があります。たとえば、ソースの最大値が40で、CACHEが20の場合、ターゲットの最大値は少なくとも60になるようにします。

40 + (20*1) <60

ターゲットの最大値が80未満の場合、ターゲットがソースの前になるように、Oracle GoldenGateは順序を更新して最大値を上げます。現在の最大値を取得するには、次の問合せを実行します。

SELECT last_number FROM all_sequences WHERE sequence_owner=upper('SEQUENCEOWNER') AND sequence_name=upper('SEQUENCENAME');

サポートされている処理モード

順序の取得をサポートしている処理モードは、次のとおりです。

- Oracle GoldenGateは、アクティブ/パッシブ高可用性構成で順序をサポートしています。Oracle GoldenGateは、アクティブ/アクティブ構成での順序値のレプリケーションはサポートしていません。アクティブ/パッシブ構成には両方のサーバーにプライマリExtract、データ・ポンプおよびReplicatが含まれますが、プロセスは一方向でのみアクティブです。フェイルオーバー・サーバー上のExtractプロセスは非アクティブである必要があり、順序の取得は含まれません。Oracle GoldenGateの高可用性を構成する方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

- データ・ポンプに書き込むプライマリExtractにSEQUENCEを使用する場合、データ・ポンプでも同一のSEQUENCEパラメータを使用する必要があります。

- SOURCEISTABLEパラメータが、Extractパラメータとして、またはADD EXTRACT内に含まれるOracle GoldenGate初期ロード方式では、順序値のレプリケーションはサポートされていません。

SEQUENCE使用のガイドライン

- ソースおよびターゲットの順序のキャッシュ・サイズおよび増分間隔は、同一である必要があります。

- キャッシュは0を含む任意のサイズにできます(NOCACHE)。

- 順序は、循環を有効または無効に設定できますが、ソース・データベースとターゲット・データベースの設定は同一にする必要があります。

- DDLサポートが有効化されている構成にSEQUENCEを追加するには、INITIALSETUPモードでOracle GoldenGate DDLオブジェクトを再インストールする必要があります。

エラー処理

- Extractは、順序名を解決できない場合、操作を無視します。

- Replicatによる順序のエラー処理を有効化するには、REPERRORパラメータを使用します。このパラメータは、MAPパラメータのオプションとしても、単独のパラメータとしても使用できます。REPERRORは、ターゲットで順序が削除されたかどうかを検出できるので、このパラメータを使用して順序が再作成されるまで順序操作を再試行できます。

- REPERRORは、起動時に紛失したオブジェクトを処理しません。DDLERRORとIGNOREMISSINGTABLESを使用してください。

その他の重要情報

- データベースによる順序の維持手法にギャップは固有で、発生が予想されるため、Oracle GoldenGateがレプリケートする順序値にはギャップが存在する可能性があります。ただし、ターゲット値は常にソース値より大きくなります。

- ExtractがRACシステム上でシングルスレッド・モードで実行中で、ラグがあるノード上で順序が更新された場合、順序の取得に時間がかかる場合があります。これは正常な動作です。

- フェイルオーバーでは、トランザクション・ログまたはOracle GoldenGateトレイル・ファイルのデータの損失または破損を引き起こす問題が発生すると、レプリケートされた順序の更新値が失われます。

- SEND EXTRACTおよびSEND REPLICATをREPORTオプションとともに使用するときに表示される統計には、順序操作はUPDATEとして表示されます。

デフォルト

なし

構文

SEQUENCE [container.]schema.sequence;

[container.]schema.sequence

ソース順序の完全修飾名を指定します。ソースがOracleコンテナ・データベースである場合、プラガブル・データベースの名前を含めます。オブジェクト名とワイルドカードを正しく指定するには、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

;

SEQUENCEパラメータ文を終了します。

例

SEQUENCE hr.employees_seq;

3.153 SESSIONCHARSET

適用対象

GLOBALS (MySQL、SybaseまたはTeradatには無効)

説明

SESSIONCHARSETパラメータでは、ローカルOracle GoldenGateインスタンスのOracle GoldenGateプロセスによって開始されるすべてのデータベース接続に、データベース・セッションのキャラクタ・セットを設定します。データベースにログインするプロセスには、GGSCI、DEFGEN、ExtractおよびReplicatがあります。

このパラメータは、Sybase、TeradataおよびMySQLをサポートしています。他のデータベースのデータベースのキャラクタ・セットは、プログラムによって取得されます。

Sybaseデータベースに対してこのオプションを使用したときに、プロセス・レポート・ファイルに言語情報を表示するには、Sybaseインストール・ディレクトリにlocale.datが適切に設定されていることを確認します。サポートされているSybaseデータベース・キャラクタ・セットにキャラクタ・セットが見つからない場合は、Oracle GoldenGateでサポートされるキャラクタ・セット・リストに対して検証されます。キャラクタ・セット情報はレポート出力のLOCALE INFORMATIONエントリに表示されます。

DBLOGINコマンドのSESSIONCHARSETオプションを使用して、同じGGSCIセッションで発行されたどのコマンドに対するこの設定よりも優先させることができます。SOURCEDBおよびTARGETDBパラメータのSESSIONCHARSETを使用して、個別のプロセス・ログインに対するこの設定よりも優先させることができます。

デフォルト

オペレーティング・システムのキャラクタ・セット

構文

SESSIONCHARSET character_set

character_set

データベース・セッションのキャラクタ・セット。

例

SESSIONCHARSET ISO-8859-11

3.154 SETENV

適用対象

ExtractおよびReplicat

説明

SETENVパラメータでは、環境変数の値を設定します。ExtractまたはReplicatは、起動時に、オペレーティング・システム環境で設定された値ではなく、このパラメータで指定された値を使用します。SETENV文で設定された変数は、オペレーティング・システム・レベルで設定されているすべての既存の変数よりも優先されます。設定する変数ごとに1つのSETENV文を使用します。

SETENVは、問合せパラメータと一緒に使用できません。

デフォルト

なし

構文

SETENV (
{environment_variable |
GGS_CacheRetryCount |
GGS_CacheRetryDelay}
= 'value'
)

environment_variable

設定する環境変数名。

'value'

指定する変数の値。値は一重引用符で囲みます。

GGS_CacheRetryCount

(SQL Server)システム・アクティビティが多いために、Extractによるソース・トランザクション・ログ・ファイルの読取りがブロックされる場合に、この読取りの再試行回数を制御するOracle GoldenGate環境変数です。デフォルトの再試行回数は10回です。Extractは、指定された回数の試行後、次のようなエラーとともに異常終了します。

GGS ERROR 600 [CFileInfo::Read] Timeout expired after 10 retries with 1000 ms delay waiting to read transaction log or backup files.

レポート・ファイルやエラー・ログにタイムアウト・メッセージが記録され続ける場合は、このパラメータで再試行回数を増やしてください。

GGS_CacheRetryDelay

(SQL Server)前回の試行が失敗したときに、Extractのトランザクション・ログ読取りの再試行までの待機時間(ミリ秒)を制御するOracle GoldenGate環境パラメータです。デフォルトの待機時間は1000ミリ秒です。

例

例1

独立したSETENV文を使用すると、環境設定を変更せずに、単一のOracle GoldenGateインスタンスを複数のOracleデータベース・インスタンスに接続させることができます。次のパラメータ文では、ORACLE_HOMEおよびORACLE_SIDの値を設定します。

SETENV (ORACLE_HOME = '/home/oracle/ora9/product')
SETENV (ORACLE_SID = 'ora9')

例2

次のパラメータ文では、Extractが異常終了する前に実行するトランザクション・ログ読取り再試行回数を最大20回、再試行間隔を3000ミリ秒として、SQL Server環境のOracle GoldenGateの値を設定します。

SETENV (GGS_CacheRetryCount = 20)
SETENV (GGS_CacheRetryDelay = 3000)

3.155 SHOWSYNTAX

適用対象

Replicat

説明

SHOWSYNTAXパラメータでは、適用する前に各Replicat SQL文を表示できるインタラクティブ・セッションを開始します。失敗したSQL文を表示すると、問題の原因を簡単に診断できる場合があります。たとえば、WHERE句で非索引列を使用していることが判明することがあります。

データ型が動的SQLで適用可能であり、列データがSQL文と関連付けられているかぎり、Replicatでは、一部または全部のデータがデータ型に応じて、文字列形式や16進形式で、またはデータ識別子として表示されます。デフォルトでは、Replicatでは、LOBデータや、データベースまたはOracle GoldenGateでLOBとして処理されるその他のデータ型は、データがSQLで関連付けられていてもいなくても、表示されません。たとえば、LOB、XML、UDTデータ型が該当します。かわりに、Replicatでは、"<LOB data>"などのデータ識別子が表示されます。このデータ型を表示するには、SHOWSYNTAXのINCLUDELOBオプションを指定します。列データがSQL文で関連付けられていない場合、Replicatでは、INCLUDELOBを使用している場合でもデータは表示されません。

CHAR/VARCHAR/CLOBまたはNCHAR/NVARCHAR/NCLOB文字データに出力不可能な文字(U+0000からU+001F)が含まれる場合、その文字はエスケープされ、\xx形式で表示されます。xxは、00から31までの10進数値です。

SHOWSYNTAXを初めて使用するときは、Oracleサポートの指示を受けてください。これはデバッグ・パラメータで、適切に使用しないと望ましくない結果が生じる場合があります。手動操作が要求され自動処理が一時停止されるため、バックログやレイテンシが発生することがあります。SHOWSYNTAXはテスト環境で使用してください。本番環境に影響がないように、Replicatグループとターゲット表の複製を作成してください。

SHOWSYNTAXは、調整Replicatグループに対してサポートされていません。

統合Replicatグループに使用する場合、sqltraceは関連するデータベース適用プロセスに対して有効になります。

統合Extractを使用してXML列データを取得すると、その列を更新しない場合でも、更新された列として取得されます。この動作の結果、SHOWSYNTAXには、更新された列としてXMLが表示されます。ただし、クラシックExtractを使用して表を取得すると、列が更新に含まれていない場合、XML列はSHOWSYNTAX SQL文には表示されません。

SHOWSYNTAXを使用するためには、オペレーティング・システムのコマンド・シェルからReplicatを起動する必要があります。ReplicatをGGSCIから起動している場合は、SHOWSYNTAXを使用しないでください。

SHOWSYNTAXの実行中、BATCHSQL処理は一時停止します。SHOWSYNTAXを指定せずにReplicatを再起動すると、BATCHSQLモードは再開されます。

SHOWSYNTAXを使用するには、次のようにします。

1. Oracle GoldenGateホーム・ディレクトリで、オペレーティング・システムのコマンド・シェルから、次の構文を使用してReplicatを起動します。この構文では、reportfileオプションを指定せずに画面に出力を表示させます。

replicat paramfile dirprm/Replicat_name.prm

2. 最初のSQL文がプロンプトとともに表示されます。

- 現在の文を実行し、次の文を表示するには、Keep Displaying (デフォルト)を選択します。

- 通常処理を再開して画面へのSQL文の出力を停止するには、Stop Displayを選択します。

3. 構文の表示が終了したら、パラメータ・ファイルからSHOWSYNTAXを削除します。

デフォルト

なし

構文

SHOWSYNTAX [APPLY | NOAPPLY] [INCLUDELOB [max_bytes | ALL]]

APPLY | NOAPPLY

ReplicatでSHOWSYNTAXによって表示されるデータをターゲット・データベースに適用するかどうかを制御します。デフォルトはAPPLY (ターゲット・データベースにデータを適用する)です。NOAPPLYは、ターゲットへのデータの適用を回避し、破棄ファイルにレコードを書き込みません。

INCLUDELOB [max_bytes] | ALL

LOB、XMLおよびUDTデータをSHOWSYNTAXの出力に含めます。このオプションを指定しないと、"<LOB data>"などのデータ識別子のみが表示されます。

max_bytes

表示するLOB、XMLまたはUDTデータの最大長を指定します。有効な単位は、K、MまたはGです。デフォルトでは、最初の2KBが表示されます。

ALL

LOBデータを全部表示します。

例

SHOWSYNTAX INCLUDELOB 1M

3.156 SOURCECATALOG

適用対象

ExtractおよびReplicat

説明

SOURCECATALOGパラメータでは、オブジェクトの完全識別に3つの部分からなるオブジェクト名を必要とする後続のTABLE文またはMAP文のうち、2つの部分からなる名前が含まれる文に対して次のいずれかを指定します。

- デフォルトのソースOracleプラガブル・データベース(PDB)

- デフォルトのソースSQL/MXユーザー・カタログ

このパラメータは、Oracle統合データベースやSQL/MXデータベースのソース・オブジェクトを指定するときに、3つの部分からなる完全なオブジェクト名(container.schema.objectやcatalog.schema.object)を指定するかわりに使用できる効率的な方法です。SOURCECATALOGを使用するときは、2つの部分からなる名前(schema.object)のみを後続のTABLE文またはMAP文に指定します。複数のSOURCECATALOGインスタンスを使用して、様々なTABLE文(またはOracleの場合はSEQUENCE文)のセットに異なるデフォルトのコンテナやカタログを指定できます。

SOURCECATALOGの後に3つの部分からなる名前を指定すると、TABLE文、MAP文または入力としてオブジェクト名をとるその他のパラメータでのSOURCECATALOGの指定より優先されます。

デフォルト

なし

構文

SOURCECATALOG {container | catalog}

container

TABLE文またはMAP文で指定したオブジェクトが含まれるOracleプラガブル・データベースの名前。

catalog

TABLE文またはMAP文で指定したオブジェクトが含まれるSQL/MXユーザー・カタログの名前。

例

次の例では、SOURCECATALOGを使用して、Extractパラメータ・ファイルで3つの異なるソースOracle PDBを指定します。

SOURCECATALOG FINANCETABLE SAP.*;
TABLE REPORTS.*;
SOURCECATALOG HRTABLE SIEBEL.*;
TABLE REPORTS.*;
SOURCECATALOG MFG
TABLE CUSTOMER.ORDERS;
TABLE REPORTS.*;
TABLE HQ.LOCATIONS.*;

この例では、Extractは次のものを取得します。

- FINANCE PDBのSAPスキーマおよびREPORTSスキーマ内のすべての表。

- HR PDBのSIEBELスキーマおよびREPORTSスキーマ内のすべての表。

- MFG PDBのCUSTOMERスキーマおよびREPORTSスキーマ内のすべての表。

- 最後のTABLE文に対して、ExtractはHQ PDBのLOCATIONSスキーマ内のすべての表を取得します。この文は、3つの部分からなる完全修飾名で、前に指定したSOURCECATALOGより優先されます。

3.157 SOURCECHARSET

適用対象

Replicat

説明

SOURCECHARSETパラメータでは、Replicatによるソース・キャラクタ・セットからターゲット・キャラクタ・セットへのデータの変換を制御します。デフォルトでは、Replicatはリリース11.2.1以上のキャラクタ・セットを変換しますが、次の場合には操作が必要になることがあります。

- 11.2.1より前のリリースのExtractによって書き込まれたデータの正確な変換を有効にする場合。11.2.1より前のリリースのExtractは、トレイルにソース・キャラクタ・セットに関する情報を書き込まないため、直接Replicatにその情報を提供する必要があります。11.2.1以上のリリースのExtractは、Replicatで使用するために、トレイルにソース・キャラクタ・セットに関する情報を書き込むため、SOURCECHARSETの指定はすべて無視されます。

- トレイル・ファイルに設定されているソース・データベース文字をオーバーライドする場合。SOURCECHARSETをOVERRIDEオプションとともに使用して、使用するキャラクタ・セットを指定します。使用例には、データベースをUNICODEに移行したり、ソース・データベースのキャラクタ・セットを無視して、特定のキャラクタ・セット・データベースをガベージ・イン/ガベージ・アウト型の非キャラクタ・セット対応データベースから移行することがあります。

SOURCECHARSETのキャラクタ・セットを使用する際、Replicatは警告メッセージを表示します。

REPLACEBADCHARパラメータでは、無効な文字がソース・データにある、またはターゲットのキャラクタ・セットでソースの文字がサポートされないという検証エラーを処理します。このパラメータには、このようなエラーでは異常終了する、エラーの原因となったレコードをスキップする、文字の代替値を指定するためのオプションがあります。

デフォルト

なし

構文

SOURCECHARSET {source_charset | OVERRIDE} [DB2ZOS]

source_charset

11.2.1より前のリリースのExtractによって書き込まれたデータのソース・キャラクタ・セットを指定します。Replicatは、文字型の列をターゲット・キャラクタ・セットに変換する際に、指定されたキャラクタ・セットを使用します。

source_charsetには、ソース・データベースを表す適切なキャラクタ・セット識別子を指定します。サポートされるキャラクタ・セットのリストは、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

Oracleの場合、SOURCECHARSETを指定していないのにターゲットにNLS_LANG環境変数が設定されていると、ReplicatはNLS_LANG値をソース・データベースのキャラクタ・セットとして使用します。SOURCECHARSETとNLS_LANGのどちらも指定されていない場合、Replicatは発生する可能性があるデータ破損を回避するため異常終了します。

OVERRIDE

指定したキャラクタ・セットを使用し、トレイル・ファイルのソース・データベースのキャラクタ・セットをオーバーライドするようにReplicatを強制させます。このオプションでは、次の場合を除き、文字型の列のキャラクタ・セットをオーバーライドします。

- キャラクタ・セットは、CHARSETおよびCOLCHARSETパラメータによってオーバーライドされます。

- NCHAR、NVARCHARおよびNCLOBデータ型の使用。

- データベースは、列キャラクタ・セットを明示的にオーバーライドし、データベースのキャラクタ・セット以外を設定します。

DB2ZOS

z/OS上のDB2に有効です。

z/OSプラットフォームからのDB2データが含まれるトレイルのバージョンがOracle GoldenGate 9.0または9.5の場合は、必須です。このパラメータにより、Replicatはz/OS上のDB2からのデータを認識できるようになるため、ASCIIとEBCDICの文字形式が混在してもかまいません。

例

例1

SOURCECHARSET ISO-8859-9

例2

SOURCECAHRSET JA16EUC

例3

SOURCECHARSET OVERRIDE WE8ISO8859P15

3.158 SOURCEDB

適用対象

Manager、Extract、DEFGEN

説明

SOURCEDBは、接続情報の一部としてデータ・ソース名または識別子を明示的に指定する必要があるデータベースまたはデータ・セット用のパラメータです。このオプションは、次のいずれかを識別するために必要です。

- 異種データベース用のソース・ログイン・データベース。

- ODBCを使用するサポートされているデータベース用のデータ・ソース名(DSN)

- ExtractでSQL/MXデータベース内の1つのカタログのみからデータを処理するときに有効な、ソースSQL/MXカタログ

- デフォルトのDB2 for iデータベース。

SOURCEDBに続くTABLE文で指定された表は、指定したデータ・ソースのものであるとみなされます。

データ・ソースで要求される認証方法に応じて、SOURCEDBパラメータ文でのUSERIDまたはUSERIDALIASパラメータの使用が必要になることがあります。

オペレーティング・システム・レベルでの認証を許可するデータベースの場合は、USERIDまたはUSERIDALIASなしでSOURCEDBを指定できます。

Managerに対しては、PURGEOLDEXTRACTSなど、Managerとソース・データベースとのやり取りを伴うOracle GoldenGateパラメータを使用するときにのみ、SOURCEDBを使用します。SOURCEDBは、ソースまたはターゲットのデータベース上にあるManagerに使用できます。

DB2 LUWの場合は、SOURCEDB文は別名ではなく実際の名前でデータベースを参照する必要があります。

詳細は、USERID | NOUSERIDまたはUSERIDALIASを参照してください。

デフォルト

なし

構文

SOURCEDB data_source[, SESSIONCHARSET character_set]

data_source

データベースに適切なデータベース、カタログまたはデータ・ソースの名前

MySQLデータベースの場合、SOURCEDB database_name@host_nameの形式を使用して、ローカル・ホスト・ファイルでlocalhostの構成が正しくないことによって発生する接続の問題を回避できます。MySQLがデフォルトの3306以外のポートで実行中の場合、SOURCEDB database_name@host_name:portの接続文字列でポート番号を指定する必要があります。

SESSIONCHARSET character_set

Sybase、TeradataおよびMySQLをサポートします。プロセス・ログイン・セッションに対するデータベース・セッションのキャラクタ・セットを設定します。このパラメータは、GLOBALSファイルで指定されるすべてのSESSIONCHARSETより優先されます。

Sybaseデータベースに対してこのオプションを使用したときに、プロセス・レポート・ファイルに言語情報を表示するには、Sybaseインストール・ディレクトリにlocale.datが適切に設定されていることを確認します。サポートされているSybaseデータベース・キャラクタ・セットにキャラクタ・セットが見つからない場合は、Oracle GoldenGateでサポートされるキャラクタ・セット・リストに対して検証されます。キャラクタ・セット情報はレポート出力のLOCALE INFORMATIONエントリに表示されます。

例

例1

次に、USERIDALIASパラメータがない場合のSOURCEDBの例を示します。

SOURCEDB mydb

例2

次に、USERIDALIASパラメータがある場合のSOURCEDBの例を示します。

SOURCEDB mydb, USERIDALIAS tiger1

3.159 SOURCEDEFS

適用対象

Extractデータ・ポンプおよびReplicat

説明

SOURCEDEFSパラメータでは、ソース表またはファイルの定義が含まれるファイル名を指定します。形式Oracle GoldenGateリリース12.2.xのトレイル・ファイルが使用されるときには、トレイル・ファイルはオブジェクト定義のあるメタデータ・レコードを含んでいるため、ソース定義はデフォルトで必要とされません。ただし、異種のソースとターゲット間で、形式Oracle GoldenGateリリース12.1.x以下のトレイル・ファイルを使用して、データをレプリケートするとき、またはトレイル・ファイルがno_objectdefsオプションで作成されているときには、ソース定義は必要です。

お使いのOracle GoldenGate構成に応じて、次の1つまたは複数のプロセスでSOURCEDEFSを使用します。

- ターゲット・システム上のReplicatプロセス

- ソースまたは仲介システム上のデータ・ポンプ

ソース定義ファイルを生成するには、DEFGENユーティリティを使用します。データ・ポンプまたはReplicatを起動する前に、仲介システムまたはターゲット・システムにこのファイルを送信してください。

たとえば、各SOURCEDEFSファイルに別々のアプリケーションの定義が保持されている場合など、複数のソース定義ファイルを使用するときは、パラメータ・ファイルで複数のSOURCEDEFS文を使用できます。

関連情報は、ASSUMETARGETDEFSを参照してください。同じパラメータ・ファイルで、SOURCEDEFSとASSUMETARGETDEFSを使用しないでください。

データ定義ファイルの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

SOURCEDEFS file_name [OVERRIDE]

file_name

ソース・データ定義を含むファイルの相対名または完全修飾名。

OVERRIDE

デフォルトで、メタデータ・レコードの表定義はSOURCEDEFSファイルの定義よりも優先されます。

OVERRIDEを指定すると、Replicatに対して、メタデータではなく定義ファイルの定義を使用するように要求します。

例

例1

SOURCEDEFS dirdef\tcust.def

例2

SOURCEDEFS /ggs/dirdef/source_defs

3.160 SOURCEISTABLE

適用対象

Extract

説明

SOURCEISTABLEパラメータでは、別の表またはファイルへのロードの準備のために、ソース表から直接完全なレコードを抽出します。SOURCEISTABLEは、TABLE文内に指定されているすべての列データを抽出します。

このパラメータは、次の初期ロード方式に適用されます。

- ファイルからReplicatへのデータのロード

- ファイルからデータベース・ユーティリティへのデータのロード

このパラメータは、次の初期ロード方式では使用しないでください。

- Extractがファイルを使用せずにReplicatプロセスにロード・データを直接送信するOracle GoldenGateダイレクト・ロード

- SQL*LoaderへのOracle GoldenGateダイレクト・バルク・ロード

これらの処理の場合、SOURCEISTABLEは、パラメータ・ファイルでは使用せずに、ADD EXTRACTの引数として指定します。

SOURCEISTABLEを使用する場合は、Extractパラメータ・ファイルの最初のパラメータ文にする必要があります。

SOURCEISTABLEを使用するには、ExtractおよびReplicatパラメータ・ファイルからDDLパラメータを削除し、DDL抽出およびレプリケーションを無効にします。詳細は、DDLを参照してください。

初期データ・ロードの構成の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

SOURCEISTABLE

3.161 SOURCETIMEZONE

適用対象

Replicat

説明

SOURCETIMEZONEパラメータでは、ソース・データベースのタイムゾーンを指定します。このパラメータは、次のいずれかの目的で使用します。

- トレイルに保管されているソース・タイムゾーンより優先させるため。デフォルトでは、Replicatは指定されたタイムゾーンにセッションのリージョンIDとオフセット値の両方を設定します。このオプションは、Oracle GoldenGateリリース12.1.2以上に適用されます。12.1.2以上のリリースでは、Extractによってソース・タイムゾーンがトレイルに書き込まれます。Replicatは指定されたタイムゾーンにセッションを設定します。

- 12.1.2より前のリリースのExtractによってトレイルが書き込まれる場合に、ソース・データベースのタイムゾーンを提供するため。これらのリリースでは、Extractはトレイルにソース・タイムゾーンを書き込まないため、このパラメータで指定する必要があります。Replicatは指定されたタイムゾーンにセッションを設定します。

Replicatでソース・タイムゾーンのデフォルト使用を無効にするには、Replicatパラメータ・ファイルでPRESERVETARGETTIMEZONEパラメータを使用します。詳細は、「PRESERVETARGETTIMEZONE」を参照してください。

デフォルト

なし

構文

SOURCETIMEZONE time_zone

time_zone

データベースによる出力としてのソース・データベースのタイムゾーン(DATE、TIMEおよびTIMESTAMPデータ型)。次の方法で指定できます。

- IANAタイムゾーン・データベース(tzデータベース)で有効なリージョンIDとして指定します。(リージョンIDはOlsonタイムゾーンIDとも呼ばれます)。サマータイムの調整は、サポートされている場合、ターゲット・データベースで実行できます。

- UTCからのオフセットとして指定します。

例

次の例では、SOURCETIMEZONEの様々な指定方法を示します。

- 次に、リージョンIDを指定する例を示します。

SOURCETIMEZONE America/New_York

SOURCETIMEZONE US/Pacific

SOURCETIMEZONE Japan

SOURCETIMEZONE UTC

SOURCETIMEZONE Pacific/Guam

- 次に、UTCからのオフセットを指定する例を示します。

SOURCETIMEZONE +09:00

SOURCETIMEZONE -04:30

3.162 SPACESTONULL | NOSPACESTONULL

適用対象

Oracle Databaseのみをレプリケートします。

説明

SPACESTONULLおよびNOSPACESTONULLパラメータでは、空白のみを含むソース列をターゲット列でNULLに変換するかどうかを制御します。ターゲット列がNULL値を受け付ける場合、SPACESTONULLは空白をNULLに変換します。NOSPACESTONULLは、空白をターゲット列で単一の空白文字に変換します。

このパラメータは、次の2つのシナリオで適用可能です。

- 空白のみを含むソース列

- DB2の空のCHAR/VARCHAR列データなど、ソース列は空です。

Oracleでは、空の列とNULLは区別されませんが、他のデータベースでは区別されるため、これらのタイプの列については、使用しているデータベースのドキュメントを参照してください。

パラメータは表に固有です。一方のパラメータは、もう一方のパラメータが見つかるまで、それ以降のすべてのMAP文に有効です。

これらのパラメータは、MAP文で有効化または無効化を選択できるため、調整Replicatの様々なスレッドに対して有効にしたり、無効にしたりできます。あるMAP文のセットではSPACESTONULLスレッドを指定し、別のMAP文のセットではNOSPACESTONULLスレッドを指定します。

デフォルト

NOSPACESTONULL

構文

SPACESTONULL | NOSPACESTONULL

例

次に、それぞれが調整Replicatの異なるスレッドを表す様々なMAP文に、SPACESTONULLとNOSPACESTONULLを選択して適用する方法の例を示します。

SPACESTONULL
MAP sales.cust, TARGET sales.cust, THREAD (1);
MAP sales.ord, TARGET sales.ord, THREAD (2);
NOSPACESTONULL
MAP sales.loc, TARGET sales.loc, THREAD (3);

3.163 SPECIALRUN

適用対象

Replicat

説明

Replicatパラメータ・ファイルのワンタイム処理実行用のSPECIALRUNパラメータは、Replicatにチェックポイントを作成しないように指示します。ワンタイム実行には開始と終了があるため、チェックポイントは不要です。SPECIALRUNは、特定の初期データ・ロード方式に対して使用します。

ReplicatがSPECIALRUNモードの場合は、GGSCIのSTART REPLICATコマンドでReplicatを起動しないでください。初期ロード中に自動的に起動されます。

SPECIALRUNを指定するときは、ENDパラメータを使用する必要があります。Replicatパラメータ・ファイルには、REPLICATまたはSPECIALRUNのいずれかを指定する必要があります。詳細は、REPLICATを参照してください。

デフォルト

なし

構文

SPECIALRUN

3.164 SQLDUPERR

適用対象

Replicat

説明

SQLDUPERRパラメータでは、重複行を検出したときにターゲット・データベースによって返される数値エラー・コードを指定します。重複レコード・エラーは、データベース内の既存レコードのキーと一致する主キーを使用したINSERT操作が試みられたときに発生します。

SQLDUPERRは、OVERRIDEDUPSパラメータを使用して特別な重複レコード処理を指定するときに使用する必要があります。詳細は、OVERRIDEDUPS | NOOVERRIDEDUPSを参照してください。

デフォルト

なし

構文

SQLDUPERR error_number

error_number

重複レコードが検出されたときに返される数値エラー・コード。

例

SQLDUPERR -2601

3.165 SQLEXEC

適用対象

ExtractおよびReplicat

説明

SQLEXECパラメータでは、Oracle GoldenGate処理の範囲でストアド・プロシージャ、問合せまたはデータベース・コマンドを実行します。SQLEXECにより、Oracle GoldenGateはデータベースと直接通信し、データベースによってサポートされている処理を実行できます。この処理は、列変換のための値の取得など、同期プロセスの一部であっても、データベース内でアクションを実行するストアド・プロシージャの実行など、データの抽出またはレプリケートと関係なくてもかまいません。

SQLEXECは、次のように機能します。

- パラメータ・ファイルのルート・レベルで、SQLストアド・プロシージャ、問合せまたはデータベース・コマンドを実行する単独文として機能します。単独文としてのSQLEXECは、Oracle GoldenGate処理中にTABLEまたはMAP文から独立して実行されます。単独SQLEXECパラメータ内で使用する場合、問合せまたはプロシージャにパラメータを含めることができません。単独SQLEXECを参照してください。

- パラメータの有無に関係なくストアド・プロシージャまたは問合せを実行するTABLEパラメータまたはMAPパラメータの一部として機能します。パラメータとともに使用する場合、実行されるプロシージャまたは問合せは、ソースまたはターゲット行から入力パラメータを受け付け、出力パラメータを渡すことができます。TABLEまたはMAPパラメータ内でのSQLEXECを参照してください。

注意:

データベース、特に本番環境のデータベースに対してSQLEXECプロシージャを実行する場合は、注意して使用してください。プロシージャによってコミットされた変更は、既存のデータを上書きすることがあります。

単独SQLEXEC

単独SQLEXECパラメータとは、パラメータ・ファイルのルート・レベルで使用され、TABLEまたはMAPパラメータと無関係に機能するパラメータです。次に、単独SQLEXECパラメータを使用するためのガイドラインを示します。

- 単独SQLEXEC文は、他のパラメータも考慮して、パラメータ・ファイルにリストされている順序で実行されます。

- SQLEXECプロシージャまたは問合せには、すべての例外処理を含める必要があります。

- 問合せまたはプロシージャは、SQLEXEC文の実行時に、データベースの有効なSQL構文を使用して正しく構築されている必要があり、そうでない場合、設定されているエラー処理ルールにかかわらず、Replicatは異常終了します。許可されているSQL構文の詳細は、データベース・ベンダーによって提供されているSQLリファレンス・ガイドを参照してください。

- Oracle GoldenGateユーザーのデータベース資格証明は、SQLEXEC句の前に指定する必要があります。Extractの場合は、SOURCEDBパラメータと、USERIDまたはUSERIDALIASのいずれかデータベースに適切なパラメータを使用します。Replicatの場合は、TARGETDBパラメータと、USERIDまたはUSERIDALIASのいずれか適切なパラメータを使用します。

- Oracle GoldenGateプロセスで使用されるデータベース資格証明は、SQLを実行するためのものです。この資格証明は、コマンドおよびストアド・プロシージャの実行権限と、データベース提供のプロシージャのコール権限を持っている必要があります。

- 単独SQLEXEC文は、レコードから入力パラメータを受け付けたり、出力パラメータを渡したりするためには使用できません。ストアド・プロシージャおよび問合せをパラメータとともに使用するには、TABLEまたはMAP文内でSQLEXEC文を使用します。TABLEまたはMAPパラメータ内でのSQLEXECを参照してください。

- 単独SQLEXEC文によって影響を受けるすべてのオブジェクトは、Oracle GoldenGateプロセスの起動前に存在している必要があります。そのため、これらのオブジェクトに対するDDLサポートを無効にする必要があり、無効にしない場合には、SQLEXECプロシージャまたは問合せがこれらのオブジェクトに対して実行される前に、DDL操作によってオブジェクトの構造が変更されたり、オブジェクトが削除されることがあります。

- オブジェクト名は、2つまたは3つの部分からなる名前の形式で、完全修飾される必要があります。

- Oracle GoldenGateは、z/OS上のDB2に対して、ODBC SQLExecDirectファンクションを使用してSQL文を動的に実行します。ODBCでは、指定された間隔でSQL文が実行されるたびに、その文が準備されます。このファンクションをサポートするには、SQLを動的に準備するように、接続先のデータベース・サーバーを構成する必要があります。詳細は、z/OS上のDB2のマニュアルを参照してください。

単独SQLEXECの使用に関するその他の情報

SQLEXECの使用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

単独SQLEXECの構文

SQLEXEC
{'call procedure_name()' | 'SQL_query' | 'database_command'}
[EVERY n {SECONDS | MINUTES | HOURS | DAYS}]
[ONEXIT]
[, THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])]

'call procedure_name ()'

実行するストアド・プロシージャ名を指定します。文は一重引用符で囲みます。callキーワードは必須です。次に、単独SQLEXECを使用したプロシージャの実行方法の例を示します。

SQLEXEC 'call prc_job_count ()'

'SQL_query'

実行する問合せ名を指定します。問合せは一重引用符で囲で囲みます。データベースで必要とされる同じ形式で、大/小文字を区別するオブジェクト名を指定します。次に、単独SQLEXECを使用した問合せの実行方法の例を示します。

SQLEXEC ' select x from dual '

複数の行にわたる問合せでは、各行で一重引用符を使用します。最良の結果を得るために、各開始引用符の後ろおよび各終了引用符の前に(または少なくとも各終了引用符の前に)空白を入力してください。

'database_command'

データベース・コマンドを実行します。次に、単独SQLEXECを使用したデータベース・コマンドの実行方法の例を示します。

SQLEXEC 'SET TRIGGERS OFF'

EVERY n {SECONDS | MINUTES | HOURS | DAYS}

単独ストアド・プロシージャまたは問合せを、次の例のように、定義済間隔で実行します。

SQLEXEC 'call prc_job_count ()' EVERY 30 SECONDS

間隔は、正の整数である必要があります。

ONEXIT

次の例のように、ExtractまたはReplicatプロセスが正常に停止したときにSQLを実行します。

SQLEXEC 'call prc_job_count ()' ONEXIT

THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])

調整Replicatの指定スレッドに対してのみSQLEXECを実行します。

threadID[, threadID][, ...]

スレッドIDを指定するか、スレッドのカンマ区切りリストをthreadID, threadID, threadIDの形式で指定します。

[, thread_range[, thread_range][, ...]

スレッドの範囲をthreadIDlow-threadIDhighの形式で指定するか、範囲のカンマ区切りリストをthreadIDlow-threadIDhigh, threadIDlow-threadIDhighの形式で指定します。

threadID, threadID, threadIDlow-threadIDhighのように、これらの形式を組み合せることができます。

THREADS句を使用しない場合、ADD REPLICATコマンドによってこのReplicatグループに構成されたすべてのスレッドでSQLは実行されます。ただし、SQLがバリア・トランザクションの基準を満たす場合、実際のスレッド・マッピングにかかわらず、SQLEXEC文全体がスレッド0で処理されます。

TABLEまたはMAPパラメータ内でのSQLEXEC

SQLEXECパラメータをTABLEまたはMAPパラメータ内で使用すると、パラメータの受入れ可否にかかわらず、ストアド・プロシージャまたは問合せを実行できます。次に、MAPまたはTABLE文内で使用する場合のSQLEXECの依存関係および制約事項を示します。

- SQLは、Oracle GoldenGateプロセスを実行しているデータベース・ユーザーによって実行されます。このユーザーは、ストアド・プロシージャの実行、およびデータベース提供のプロシージャのコール権限を持っている必要があります。

- 問合せまたはプロシージャは、SQLEXEC文の実行時に正しく構築されている必要があります。Replicatは、問合せまたはプロシージャの問題を検出すると、設定されているエラー処理ルールにかかわらず、即座に異常終了します。許可されているSQL構文の詳細は、データベース・ベンダーによって提供されているSQLリファレンス・ガイドを参照してください。

- ターゲット・データベースへのReplicatトランザクションのCOMMIT操作は、元のソース・トランザクションの境界内でSQLEXEC文で行われるDML変更もすべてコミットします。ExtractはSQLトランザクションを実行しないため、Extractの場合は該当しません。ExtractにSQLEXECを使用すると、SQLEXECプロシージャ内で暗黙的または明示的なコミットを実行することができます。

- リテラルは一重引用符で囲んで指定します。データベースで指定するのと同じ形式で、大/小文字を区別するオブジェクト名を指定します。

- SQLEXECは、主キー列の値を変更するために使用しないでください。主キーの値は、ExtractからReplicatに渡されます。主キーの値がない場合、Replicat操作は完了できません。主キーの値をSQLEXECで変更する必要がある場合は、元のキーの値を別の列にマッピングした後、TABLEおよびMAPパラメータのKEYCOLSオプションでこの列を代替キーとして定義することにより、エラーを回避できます。

- Oracle GoldenGateは、z/OS上のDB2に対して、ODBC SQLExecDirectファンクションを使用してSQL文を動的に実行します。ODBCでは、指定された間隔でSQL文が実行されるたびに、その文が準備されます。このファンクションをサポートするには、SQLを動的に準備するように、接続先のデータベース・サーバーを構成する必要があります。詳細は、z/OS上のDB2のマニュアルを参照してください。

- Oracle GoldenGateを使用してDDLをレプリケートする場合は、SQLの実行前に、ストアド・プロシージャまたは問合せに影響を受けるすべてのオブジェクトが、正しい構造で存在している必要があります。したがって、これらのオブジェクトの構造に影響するDDL(CREATEやALTERなど)は、SQLEXECの実行前に実行する必要があります。

- SQLEXEC文中のオブジェクト名はすべて、データベースに応じて、2つまたは3つの部分からなる完全修飾名である必要があります。

- データ・ポンプExtractグループにパススルー・モードで処理される表には、SQLEXECを使用しないでください。

- 入力パラメータおよび出力パラメータとしてSQLEXECでサポートされるデータ型は次のとおりです。

- 数値データ型

- 日付データ型

- 文字データ型

- 調整Replicatによって実行される場合、SQLEXECは、MAP文のTHREADまたはTHREADRANGEオプションで指定されるスレッドによって実行されます。ただし、SQLEXECは、COORDINATEDキーワードを含むMAPパラメータ内に指定すると、実際のスレッド・マッピングにかかわらず、ID番号が一番小さいスレッドによってバリア・トランザクションとして自動的に実行されます。

TABLEおよびMAP内でのSQLEXECの使用に関するその他の情報

SQLEXECの使用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

TABLEおよびMAPの詳細は、TABLE | MAPを参照してください。

TABLEまたはMAP内でのSQLEXECの構文

SQLEXEC (
{SPNAME procedure_name[, ID logical_name] |
ID logical_name, QUERY ' SQL_query '}
{, PARAMS [OPTIONAL | REQUIRED] parameter_name = {source_column | OGG_function} |
NOPARAMS}
[, AFTERFILTER | BEFOREFILTER]
[, ALLPARAMS {OPTIONAL | REQUIRED}]
[, ERROR {IGNORE | REPORT | RAISE | FINAL | FATAL}]
[, EXEC {MAP | ONCE | TRANSACTION | SOURCEROW}][, MAXVARCHARLEN bytes]
[, PARAMBUFSIZE bytes]
[, TRACE]
[, ...]
)

SPNAME procedure_name[, ID logical_name]

ストアド・プロシージャを実行します。

SPNAME procedure_name

実行するプロシージャ名を指定します。

次に、lookupという名前のストアド・プロシージャを1回実行する例を示します。このケースでは、実際のプロシージャ名を使用します。論理名は必要ありません。

SQLEXEC (SPNAME lookup), PARAMS (param1 = srccol)), &
COLMAP (targcol = lookup.param1);

ID logical_name

プロシージャの論理名(オプション)を定義します。たとえば、lookupという名前のプロシージャの論理名をlookup1、lookup2などのようにできます。このオプションは、MAP文内でプロシージャを複数回実行するときに使用します。1つのMAP文で、プロシージャを最大20回実行できます。プロシージャの実行が1回の場合、IDは必要ありません。

次に、IDオプションを使用して、参照表から値を取得するストアド・プロシージャを複数回実行できるようにする例を示します。値は、ターゲット列にマッピングされます。

SQLEXEC (SPNAME lookup, ID lookup1, &
PARAMS (long_name = current_residence_state)), &
SQLEXEC (SPNAME lookup, ID lookup2, &
PARAMS (long_name = birth_state)), &
COLMAP (custid = custid, current_residence_state_long = lookup1.long_name, & birth_state_long = lookup2.long_name);

ID logical_name, QUERY ' SQL_query '
問合せを実行します。

ID logical_name

問合せの論理名を定義します。問合せの結果から値を抽出するには、論理名が必要です。ID logical_nameは、問合せから返された列値を参照します。

QUERY ' SQL_query '

データベースに対して実行するSQL問合せの構文を指定します。問合せは、SELECT文の結果を返すか、INSERT、UPDATEまたはDELETE文を実行できます。SELECT文は1行のみ返す必要があります。行が複数返される場合は、最初の行のみ処理されます。SELECT文にはINTO ...句を指定しないでください。問合せは、問合せを実行するデータベースの有効な標準問合せ言語を使用している必要があります。ほとんどの問合せは、入力パラメータ用のプレースホルダを必要とします。問合せ内でのパラメータの指定方法は、次のようにデータベースのタイプによって異なります。

- Oracleの場合は、次の例のように、入力パラメータはコロン(:)を使用して指定し、その後にパラメータ名を続けます。

'SELECT NAME FROM ACCOUNT WHERE SSN = :SSN AND ACCOUNT = :ACCT'

- 他のデータベースの場合は、次の例のように、入力パラメータは疑問符を使用して指定します。

'SELECT NAME FROM ACCOUNT WHERE SSN = ? AND ACCOUNT = ?'

問合せは1行に収め、一重引用符で囲む必要があります。どのデータベースでも、パラメータ名を引用符で囲む必要はありません。

次に、OracleおよびSQL Serverの問合せにそれぞれSQLEXEC問合せを使用する例を示します。

Oracleの例:

MAP sales.account, TARGET sales.newacct, &
SQLEXEC (ID lookup, &
QUERY 'select desc_col into desc_param from lookup_table &
where code_col = :code_param', &
PARAMS (code_param = account_code)), &
COLMAP (newacct_id = account_id, newacct_val = lookup.desc_param);

SQL Serverの例:

MAP sales.account, TARGET sales.newacct, &
SQLEXEC (ID lookup, &
QUERY 'select desc_col into desc_param from lookup_table &
where code_col = ?', &
PARAMS (p1 = account_code)), &
COLMAP (newacct_id = account_id, &
newacct_val = lookup.desc_param);

PARAMS [OPTIONAL | REQUIRED] parameter_name = {source_column | OGG_function} | NOPARAMS
プロシージャまたは問合せがパラメータを受け付けるかどうかを定義し、受け付ける場合はパラメータを入力ソースにマップします。PARAMS句またはNOPARAMSのいずれかを使用する必要があります。

OPTIONAL | REQUIRED

パラメータ値が見つからないときに、プロシージャまたは問合せを実行するかどうかを決定します。

OPTIONALは、SQLの実行にパラメータ値が必要ないことを示します。必要なソース列がデータベース操作で見つからない場合、またはソース列が見つからないために列変換ファンクションを完了できない場合でも、SQLは実行されます。OPTIONALは、Oracle以外のすべてのデータベースのデフォルトです。Oracleでは、ストアド・プロシージャ定義を取得するときに、パラメータがオプションかどうかが自動的に判別されます。

REQUIREDは、パラメータ値が存在している必要があることを示します。パラメータ値が存在しない場合、SQLは実行されません。

parameter_name = {source_column | OGG_function}

パラメータ名を、入力を提供する列またはファンクションにマップします。入力パラメータおよび出力パラメータとしてSQLEXECでサポートされるデータ型は次のとおりです。

- 数値データ型

- 日付データ型

- 文字データ型

parameter_nameは、次のいずれかです。

- ストアド・プロシージャの場合、プロシージャ内の入力を受け付ける任意のパラメータの名前です。

- Oracle問合せの場合、先行するコロンを除いた、問合せの任意の入力パラメータ名です。たとえば、:vemplidの場合は、PARAMS句ではvemplidと指定します。Oracleは、入力パラメータに論理名を付けることを許可します。

SQLEXEC (ID appphone, QUERY ' select per_type from ps_personal_data '
' where emplid = :vemplid '
' and per_status = 'N' and per_type = 'A' ',
PARAMS (vemplid = emplid)),
TOKENS (applid = @GETVAL(appphone.per_type));

- Oracle以外の問合せの場合はPn (nは1から始まる文内のパラメータの番号)です。たとえば、パラメータが2つの問合せでは、parameter_nameエントリはp1およびp2です。データベースによってはpを大文字または小文字にする必要があることに注意します。

SQLEXEC (ID appphone, QUERY ' select per_type from ps_personal_data '
' where emplid = ? '
' and per_status = 'N' and per_type = 'A' ',
PARAMS (p1 = emplid)),
TOKENS (applid = @GETVAL(appphone.per_type));

source_columnは、入力を提供するソース列の名前です。デフォルトでは、指定した列が(レコードには更新された列の値のみが含まれるために)ログに存在しない場合、このパラメータはプロシージャまたは問合せでこのパラメータに指定されているデフォルト値を使用します。

OGG_functionは、入力を提供するために実行するOracle GoldenGate列変換ファンクションの名前です。列変換ファンクションを参照してください。

ストアド・プロシージャまたは問合せからの出力値を入力としてFILTERまたはCOLMAP句に渡すには、次の構文を使用します。

{procedure_name | logical_name}.parameter

説明:

- procedure_nameは、ストアド・プロシージャの実際の名前で、SQLEXEC文のSPNAMEに指定している値と一致する必要があります。この引数は、Oracle GoldenGate実行中にプロシージャを1回実行する場合にのみ指定します。

- logical_nameは、SQLEXECのIDオプションで指定した論理名です。この引数は、MAP文内でプロシージャを複数回実行する場合に、問合せまたはストアド・プロシージャのインスタンスから入力値を渡すときに使用します。

- parameterは、パラメータの名前か、返された値を抽出する場合のRETURN_VALUEです。デフォルトでは、出力値はパラメータごとに255バイトで切り捨てられます。出力パラメータがこれより長い必要がある場合は、MAXVARCHARLENオプションを使用します。

注意:

前述の構文のかわりとして、@GETVALファンクションを使用できます。詳細は、GETVALを参照してください。

次の例は、Oracleのソース表およびターゲット表と、参照表のセットに適用されます。これらの例では、ストアド・プロシージャの単一インスタンスおよびストアド・プロシージャの複数インスタンスに、これらの表のパラメータを渡す方法を示します。

ソース表cust:

custid                     Number
current_residence_state    Char(2)
birth_state                Char(2)

ターゲット表cust_extended:

custid                          Number
current_residence_state_long    Varchar(30)
birth_state_long                Varchar(30)

参照表state_lookup

abbreviation     Char(2)
long_name        Varchar(30)

次に、参照表から値を取得するために1回実行されるストアド・プロシージャの使用例を示します。cust表からのレコードを処理するとき、Oracle GoldenGateは、列マップを実行する前にlookupストアド・プロシージャを実行します。プロシージャ内のlong_nameパラメータは、birth_stateソース列からの入力を受け付けます。この値は、COLMAP文のターゲット列birth_state_longにマッピングされます。

MAP sales.cust, TARGET sales.cust_extended, &
SQLEXEC (SPNAME lookup, &
PARAMS (long_name = birth_state)), &
COLMAP (custid = custid, &
birth_state_long = lookup.long_name);

次に、IDオプションを使用して、参照表から値を取得するストアド・プロシージャを複数回実行できるようにする例を示します。値は、ターゲット列にマッピングされます。

MAP sales.cust, TARGET sales.cust_extended, &
SQLEXEC (SPNAME lookup, ID lookup1, &
PARAMS (long_name = current_residence_state)), &
SQLEXEC (SPNAME lookup, ID lookup2, &
PARAMS (long_name = birth_state)), &
COLMAP (custid = custid, current_residence_state_long = lookup1.long_name, & birth_state_long = lookup2.long_name);

AFTERFILTER | BEFOREFILTER

AFTERFILTERおよびBEFOREFILTERでは、MAP文のFILTER句との関連でストアド・プロシージャまたは問合せをいつ実行するかを指定します。

AFTERFILTER

FILTER文の後にSQL文を実行します。これにより、フィルタが成功しない場合にSQL実行のオーバーヘッドを回避できます。これはデフォルトです。

BEFOREFILTER

SQLの結果をフィルタで使用できるように、FILTER文の前にSQLを実行します。

次に、BEFOREFILTERの使用例を示します。

SQLEXEC (SPNAME check, NOPARAMS, BEFOREFILTER)

ALLPARAMS [OPTIONAL | REQUIRED]

ALLPARAMSは、ストアド・プロシージャまたは問合せの実行のために、指定されたすべてのパラメータが存在している必要があるかどうかを決定するグローバル・ルールとして使用します。ALLPARAMSで設定するグローバル・ルールよりも、PARAMS句内で設定する個別のパラメータのルールのほうが優先されます。

OPTIONAL

すべてのパラメータが存在しているかどうかにかかわらず、SQLの実行を許可します。これはデフォルトです。

REQUIRED

SQLを実行するために、すべてのパラメータが存在している必要があります。

次に、OPTIONALの使用例を示します。

SQLEXEC (SPNAME lookup,
PARAMS (long_name = birth_state, short_name = state),
ALLPARAMS OPTIONAL)

ERROR {IGNORE | REPORT | RAISE | FINAL | FATAL}

ERRORでは、ストアド・プロシージャまたは問合せに関連するエラーに対するレスポンスを定義します。明示的なエラー処理の指定がない場合、Oracle GoldenGateプロセスはエラーを検出すると異常終了します。プロシージャからプロセスにエラーを返させ、ERRORでレスポンスを指定するようにしてください。

IGNORE

Oracle GoldenGateに、ストアド・プロシージャまたは問合せに関連するすべてのエラーを無視させ、処理を継続させます。このパラメータ抽出結果は、"紛失した列"状態になります。これはデフォルトです。

REPORT

ストアド・プロシージャまたは問合せに関連するすべてのエラーが破棄ファイルにレポートされるようにします。このレポートは、エラーの原因の追跡に役立ちます。ここには、エラーの説明と、プロシージャまたは問合せとやり取りしたパラメータの値の両方が含まれます。Oracle GoldenGateで、エラーのレポート後、処理が続けられます。

RAISE

REPERRORパラメータで設定されたルールに従ってエラーを処理します。Oracle GoldenGateは、エラーを処理する前に、現在のMAP文に関連する他のストアド・プロシージャまたは問合せの処理を続行します。

FINAL

RAISEと似ていますが、プロシージャまたは問合せに関連するエラーを検出したときに、残りのストアド・プロシージャおよび問合せがバイパスされます。エラー処理は、エラーの直後に起動されます。

FATAL

プロシージャまたは問合せに関連するエラーを検出したときに、即座にOracle GoldenGateを異常終了させます。

EXEC {MAP | ONCE | TRANSACTION | SOURCEROW}

EXECでは、MAP文のストアド・プロシージャまたは問合せを実行する頻度、および出力パラメータを抽出する場合に結果を有効とみなす期間を制御します。

MAP

プロシージャまたは問合せが指定されている各ソース-ターゲットのマップで、プロシージャまたは問合せを1回実行します。MAPを使用する場合、同一のソース表を持つそれ以降のマップでは結果は無効になります。MAPはデフォルトです。

次に、デフォルトのMAPの誤った使用例を示します。MAPはデフォルトであるため、SQLEXEC文に明示的にリストする必要はありません。この例では、1つのソース表を別個のMAP文で2つの異なるターゲット表にマップしています。この場合、結果は最初のマッピングに対してのみ有効です。プロシージャlookupの結果は、2番目のMAPパラメータの実行までに無効になってしまい、2番目のMAPは"紛失した列"の状態になります。各MAPが有効な結果を返すようにこの機能を正しく実装するには、SOURCEROWを使用する必要があります。

MAP sales.srctab, TARGET sales.targtab, &
SQLEXEC (SPNAME lookup, PARAMS (param1 = srccol)), &
COLMAP (targcol = lookup.param2);

MAP sales.srctab, TARGET sales.targtab2, &
COLMAP (targcol2 = lookup.param2);

ONCE

Oracle GoldenGateの実行中、関連するMAP文の最初の呼出し時にプロシージャまたは問合せを1回実行します。結果は、プロセスが実行しているかぎり有効です。

次に、ONCEの使用例を示します。

MAP sales.cust, TARGET sales.cust_extended, &
SQLEXEC (SPNAME lookup, PARAMS (long_name = birth_state), EXEC ONCE), &
COLMAP (custid = custid, &
birth_state_long = lookup.long_name);

TRANSACTION

プロシージャまたは問合せをソース・トランザクションで1回実行します。結果は、トランザクションのすべての操作に有効です。

次に、TRANSACTIONの使用例を示します。

MAP sales.cust, TARGET sales.cust_extended, &
SQLEXEC (SPNAME lookup, PARAMS (long_name = birth_state), EXEC TRANSACTION), &
COLMAP (custid = custid, &
birth_state_long = lookup.long_name);

SOURCEROW

プロシージャまたは問合せをソース行操作で1回実行します。このオプションは、ソース表を複数のターゲット表と同期し、プロシージャまたは問合せの結果がソース-ターゲット・マッピングのたびに呼び出される場合に使用します。

次に、SOURCEROWの使用例を示します。このケースでは、プロシージャが各ソース行操作で実行されるため、2番目のMAPは有効な値を返します。

MAP sales.srctab, TARGET sales.targtab, &
SQLEXEC (SPNAME lookup, PARAMS (param1 = srccol), EXEC SOURCEROW), &
COLMAP (targcol = lookup.param2);

MAP sales.srctab, TARGET sales.targtab2, &
COLMAP (targcol2 = lookup.param2);

MAXVARCHARLEN bytes

MAXVARCHARLENでは、ストアド・プロシージャまたは問合せ内のパラメータの出力値に割り当てる最大バイト長を指定します。この最大値を超える出力値は切り捨てられます。明示的にMAXVARCHARLEN句を使用しない場合のデフォルトは、255バイトです。有効な値の範囲は、Oracle TimesTenの場合を除き、50から32767バイトです。Oracle TimesTenの最大出力値は2560バイトです。

次に、出力値のバイト長を100に制限する例を示します。

MAXVARCHARLEN 100

PARAMBUFSIZE bytes

PARAMBUFSIZEでは、入力パラメータと出力パラメータの両方を含むSQLEXECパラメータ情報を保持するメモリー・バッファに許可する最大バイト数を指定します。明示的にPARAMBUFSIZE句を使用しない場合のデフォルトは、10,000バイトです。有効な値の範囲は、1000から2000000バイトです。Oracle GoldenGateは、パラメータに割り当てられたメモリーと最大値との差が500バイト以内に達するたびに警告を発行します。

次に、バッファを15,000バイトに増やす例を示します。

PARAMBUFSIZE 15000

TRACE {ALL | ERROR}

TRACEでは、SQLEXECの入力および出力パラメータをレポート・ファイルに記録します。

次に、SQLEXECトレースが有効になっているレポート・ファイルの例を示します。

Input parameter values...
LMS_TABLE: INTERACTION_ATTR_VALUES
KEY1: 2818249
KEY2: 1
Report File:
From Table MASTER.INTERACTION_ATTR_VALUES to MASTER.INTERACTION_ATTR_VALUES:
#  inserts:      0
#  updates:      0
#  deletes:      0
#  discards:     1

Stored procedure GGS_INTERACTION_ATTR_VALUES:
attempts:        2
successful:      0

ALL

呼び出された各プロシージャまたは問合せの入力および出力パラメータをレポート・ファイルに書き込みます。これはデフォルトです。

ERROR

SQLエラーの発生後にのみ、呼び出された各プロシージャまたは問合せの入力および出力パラメータをレポート・ファイルに書き込みます。

3.166 STARTUPVALIDATIONDELAY[CSECS]

適用対象

Manager

説明

STARTUPVALIDATIONDELAYまたはSTARTUPVALIDATIONDELAYCSECSパラメータでは、START EXTRACTまたはSTART REPLICATコマンドで起動されたプロセスのステータスをManagerが検証するまでの遅延時間を設定します。指定した遅延時間の経過後にプロセスが実行されていない場合、GGSCIプロンプトにエラー・メッセージが表示されます。

これらのパラメータによって、プロセス起動に必要なメモリー不足などが原因で、エラー・メッセージまたはレポートを生成できずに失敗するプロセスが明らかになります。起動時に検証を実施することで、Oracle GoldenGateユーザーはこのような失敗を把握できます。

デフォルト

0秒(起動ステータスを検証しない)

構文

STARTUPVALIDATIONDELAY seconds | STARTUPVALIDATIONDELAYCSECS centiseconds

STARTUPVALIDATIONDELAY seconds

遅延時間(秒)を指定します。

STARTUPVALIDATIONDELAYCSECS centiseconds

遅延時間(センチ秒)を指定します。

例

次に、ManagerがSTARTコマンドの発行後10センチ秒待機してからプロセスのステータスを確認する例を示します。

STARTUPVALIDATIONDELAYCSECS 10

3.167 STATOPTIONS

適用対象

ExtractおよびReplicat

説明

STATOPTIONSパラメータでは、STATS EXTRACTまたはSTATS REPLICATコマンドによって生成される統計表示に含める情報を指定します。このパラメータのオプションは、必要に応じてこれらのコマンドの引数としても有効化できます。

デフォルト

各オプションを参照してください。

構文

STATOPTIONS
[, REPORTDETAIL | NOREPORTDETAIL]
[, REPORTFETCH | NOREPORTFETCH]
[, RESETREPORTSTATS | NORESETREPORTSTATS]
[, THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])]

REPORTDETAIL | NOREPORTDETAIL

Replicatに有効ですコリジョン処理の結果として破棄されたためにターゲットに適用されなかった操作に関する統計のレポートを制御します。

REPORTDETAIL

破棄された操作に関する統計を返します。このような操作は、通常のSTATS REPLICAT統計(実行された挿入、更新および削除)で、STATS REPLICATがDETAILオプションとともに発行された場合は破棄された統計としてレポートされます。たとえば、10レコードがINSERT操作で、キーの重複が原因でこれらすべてのレコードが無視された場合、レポートにはINSERT操作数10、コリジョンが原因で破棄された操作数10と出力されます。REPORTDETAILはデフォルトです。

NOREPORTDETAIL

破棄された操作に関する統計のレポートを無効にします。

REPORTFETCH | NOREPORTFETCH
Extractに有効です。FETCHCOLS句によってトリガーされるフェッチや、トランザクション・レコードに十分な情報がないときに実行する必要があるフェッチなど、Extractによって実行される行フェッチ数に関する統計のレポートを制御します。

REPORTFETCH

行フェッチに関する統計をレポートします。出力内容は次のようになります。

- row fetch attempts: Extractがトランザクション・ログから列値を取得できなかったときに、データベースから値をフェッチしようとした回数。

- fetch failed: 失敗した行フェッチの試行回数。

- row fetch by key: (Oracleに有効)主キーを使用して行われた行フェッチの試行回数。

NOREPORTFETCH

フェッチに関する統計のレポートを無効にします。NOREPORTFETCHがデフォルトです。

RESETREPORTSTATS | NORESETREPORTSTATS
ExtractおよびReplicatに有効です。新しいレポートが作成されるときに、REPORTパラメータによって生成される統計をリセットするかどうかを制御します。RESETREPORTSTATSは、レポートから別のレポートに統計をリセットします。NORESETREPORTSTATSは、レポートから次のレポートに統計を繰り越します。これがデフォルトです。REPORTを参照してください。レポートのロールオーバーは、REPORTROLLOVERパラメータによって制御されます。REPORTROLLOVERを参照してください。

THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])

調整Replicatの指定スレッドに対して選択されたSTATOPTIONSオプションを有効にします。

threadID[, threadID][, ...]

スレッドIDを指定するか、スレッドのカンマ区切りリストをthreadID, threadID, threadIDの形式で指定します。

[, thread_range[, thread_range][, ...]

スレッドの範囲をthreadIDlow-threadIDhighの形式で指定するか、範囲のカンマ区切りリストをthreadIDlow-threadIDhigh, threadIDlow-threadIDhighの形式で指定します。

threadID, threadID, threadIDlow-threadIDhighのように、これらの形式を組み合せることができます。

例

例1

次に、調整Replicatのスレッド0について、レポートから別のレポートに統計をリセットする例を示します。

STATOPTIONS RESETREPORTSTATS THREADS 0

例2

次に、調整Replicatのスレッド3に関するフェッチの詳細を含める例を示します。

STATOPTIONS REPORTFETCH THREADS 3

3.168 SYSLOG

適用対象

GLOBALS、Manager

説明

SYSLOGパラメータでは、Oracle GoldenGateがWindowsまたはUNIXシステムのシステム・ログ、またはIBM iシステム上のSYSOPRメッセージ・キューに送信するメッセージのタイプを制御します。次のことを実行できます。

- すべてのOracle GoldenGateメッセージを含める

- すべてのOracle GoldenGateメッセージを抑止する

- 情報、警告、エラーのいずれかのメッセージを記録するか、これらのタイプの任意の組合せを記録するためのフィルタ処理

SYSLOGは、GLOBALSパラメータ、Managerパラメータ、またはその両方のパラメータとして使用できます。GLOBALSパラメータ・ファイルで使用する場合は、システム上のすべてのOracle GoldenGateプロセスのメッセージ・フィルタリングを制御します。Managerパラメータ・ファイルで使用する場合は、Managerプロセスのメッセージのみのフィルタリングを制御します。GLOBALSおよびManagerの両方のパラメータ・ファイルで使用する場合は、ManagerプロセスについてはManager設定がGLOBALS設定よりも優先されます。これにより、Managerと他のすべてのOracle GoldenGateプロセスで別個の設定を使用できます。

デフォルト

すべてのOracle GoldenGateメッセージを、プラットフォームに応じてシステム・ログまたはSYSOPRメッセージ・キューに書き込む。

構文

SYSLOG {[ALL | NONE] | [, INFO] [, WARN] [, ERROR]}

ALL

すべてのINFO (情報)、WARN (警告)およびERROR (エラー)メッセージをシステム・ログまたはSYSOPRメッセージ・キューに送信します。これはデフォルトで、次の設定と同じです。

SYSLOG INFO, WARN, ERROR

他のオプションと組み合せることはできません。デフォルトでは、INFOメッセージはSQL/MXイベント管理サービスではレポートされません。

NONE

Oracle GoldenGateメッセージをシステム・ログまたはSYSOPRメッセージ・キューに書き込みません。他のオプションと組み合せることはできません。

INFO

INFOとしてレポートされるメッセージをシステム・ログまたはSYSOPRメッセージ・キューに送信します。WARNおよびERRORと組み合せることができます(順序は任意)。

デフォルトでは、これらのメッセージはSQL/MXイベント管理サービスではレポートされません。

WARN

WARNとしてレポートされるメッセージをシステム・ログまたはSYSOPRメッセージ・キューに送信します。INFOおよびERRORと組み合せることができます(順序は任意)。

ERROR

INFOとしてレポートされるメッセージをシステム・ログまたはSYSOPRメッセージ・キューに送信します。INFOおよびWARNと組み合せることができます(順序は任意)。

例

次の例はともに、警告およびエラー・メッセージをシステム・ログまたはSYSOPRメッセージ・キューに送信しますが、情報メッセージは送信しません。

SYSLOG WARN, ERROR

または

SYSLOG ERROR, WARN

3.169 TABLE | MAP

適用対象

TABLEは、Extractに有効です。MAPは、Replicatに有効です。

説明

TABLEパラメータおよびMAPパラメータは、Oracle GoldenGateプロセスによって影響を受けるオブジェクトの選択、マッピングおよび操作を制御します。これらのパラメータは次のように機能します。

- TABLEパラメータは、Extractパラメータ・ファイルで使用し、Extractプロセスによってデータ・ソースから取得される1つ以上のオブジェクトを指定します。TABLEオプションは、Extractが取得済のデータをOracle GoldenGateトレイルに書き込む前に実行する必要がある、フィルタリングやトークン定義などの処理作業を指定します。

- MAPパラメータは、Replicatパラメータ・ファイルで使用し、ソース・オブジェクトから適切なターゲット・オブジェクトにデータをマップします。MAPオプションは、データがターゲット・オブジェクトに適用される前に実行する必要がある、フィルタリングや変換、エラー処理などの処理作業を指定します。ソース・オブジェクトと同期させるターゲット・オブジェクトはそれぞれ、MAPパラメータを使用してそのソース・オブジェクトに関連付ける必要があります。複数のソース-ターゲットの関係は、ワイルドカードを使用して指定できます。

TABLEおよびMAPは、初期ロード構成と、トランザクション変更のレプリケーションをサポートするように構成されたオンライン・プロセスに対して有効です。

TABLEおよびMAPでは、次のオブジェクトを処理できます。

- 索引

- トリガー

- マテリアライズド・ビュー

- 表

Extractによる取得の順序を指定するには、SEQUENCEパラメータを使用します。

注意:

Oracle GoldenGateは、Oracleマテリアライズド・ビューの実際のデータ値のレプリケーションをサポートしています。Oracle GoldenGateは、OracleとTeradataの索引およびトリガーのDDLレプリケーションをサポートしていますが、これらのオブジェクトのコンテンツはサポートしていません。

ワイルドカードの有無にかかわらず、1つ以上のTABLE文またはMAP文をパラメータ・ファイルで使用して、処理するすべてのオブジェクトを指定できます。

TABLEEXCLUDEパラメータおよびMAPEXCLUDEパラメータを使用して、ワイルドカードを指定したTABLE文またはMAP文からオブジェクトを除外できます。除外パラメータはその他に、CATALOGEXCLUDE、SCHEMAEXCLUDEおよびEXCLUDEWILDCARDOBJECTSONLYがあります。

TABLEおよびMAPの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

TABLEの構文

表に対しては、すべてのTABLEオプションを使用できます。表以外のオブジェクトに対しては、TABLEでは取得するオブジェクトの指定のみを行います。

TABLE source_table[, TARGET target_table]
[, ATTRCHARSET (charset)]
[, CHARSET character_set]
[, COLCHARSET character_set]
[, COLMAP (column_mapping)]
[, {COLS | COLSEXCEPT} (column_list)]
[, {DEF | TARGETDEF} template]
[, EVENTACTIONS action]
[, EXITPARAM 'parameter']
[, {FETCHCOLS | FETCHCOLSEXCEPT} (column_list)]
[, {FETCHMODCOLS | FETCHMODCOLSEXCEPT} (column_list)]
[, FETCHBEFOREFILTER]
[, FILTER (filter_clause)]
[, GETBEFORECOLS (column_specification)]
[, KEYCOLS (columns)]
[, SQLEXEC (SQL_specification)]
[, SQLPREDICATE 'WHERE where_clause']
[, TOKENS (token_definition)]
[, TRIMSPACES | NOTRIMSPACES]
[, TRIMVARSPACES | NOTRIMVARSPACES]
[, WHERE (clause)]
;

MAPの構文

MAP source_table, TARGET target_table
[, COLMAP (column_mapping)]
[, COMPARECOLS (column_specification)]
[, COORDINATED]
[, {DEF | TARGETDEF} template]
[, EXCEPTIONSONLY]
[, EXITPARAM 'parameter']
[, EVENTACTIONS (action)]
[, FILTER (filter_clause)]
[, HANDLECOLLISIONS | NOHANDLECOLLISIONS]
[, INSERTALLRECORDS]
[, INSERTAPPEND | NOINSERTAPPEND]
[, KEYCOLS (columns)]
[, MAPEXCEPTION (exceptions_mapping)]
[, MAPINVISIBLECOLUMNS | NOMAPINVISIBLECOLUMNS]
[, REPERROR (error, response)]
[, RESOLVECONFLICT (conflict_resolution_specification)]
[, SQLEXEC (SQL_specification)]
[, THREAD (thread_ID)]
[, THREADRANGE (thread_range[, column_list])]
[, TRIMSPACES | NOTRIMSPACES]
[, TRIMVARSPACES | NOTRIMVARSPACES]
[, WHERE (clause)]
;

TABLEおよびMAPのオプション

次に、TABLEパラメータとMAPパラメータで使用できるオプションをまとめた表を示します。すべてのオプションが両方のパラメータに対して有効とはかぎりません。

表3-33 TABLEおよびMAPの構文コンポーネントの概要

コンポーネント

説明

適用対象

TABLE source_table[, TARGET taget_table]

Extractに対するTABLE文でソース・オブジェクトを指定し、ターゲット・オブジェクトへのマッピングをオプションで指定します。Extractパラメータ・ファイルで使用します。

TABLE

MAP source_table, TARGET target_table

Replicatプロセスに対してソース-ターゲットのオブジェクト・マッピングを指定します。Replicatパラメータ・ファイルで使用します。

MAP

ATTRCHARSET (charset)

UDT属性レベルのソース・キャラクタ・セット情報を指定します。

TABLE

CHARSET character_set

サポートされているキャラクタ・セットを指定します。

TABLE

COLCHARSET character_set

サポートされているキャラクタ・セットを指定します。

TABLE

COLMAP (column_mapping)

異なるソース列およびターゲット列間でレコードをマップします。

TABLEおよびMAP

{COLS | COLSEXCEPT} (column_list)

処理する列を選択または除外します。

TABLE

COMPARECOLS (column_specification)

競合の検出および解決に使用する列を指定します。

TABLEおよびMAP

COORDINATED

トランザクションをバリア・トランザクションとして処理させます。

MAP

{DEF| TARGETDEF} template

ソース定義またはターゲット定義テンプレートを指定します。

TABLEおよびMAP

EXCEPTIONSONLY

MAP文が例外MAP文であることを指定します。

MAP

EVENTACTIONS (action)

指定されているフィルタ・ルールを満たすレコードに基づいて、アクションをトリガーします。

TABLEおよびMAP

EXITPARAM 'parameter'

リテラル文字列形式でパラメータをユーザー・イグジットに渡します。

TABLEおよびMAP

FETCHBEFOREFILTER

フィルタの実行前に、FETCHCOLSまたはFETCHCOLSEXCEPTアクションを実行します。

TABLE

{FETCHCOLS | FETCHCOLSEXCEPT} (column_list)

トランザクション・レコードに値が存在しない場合に、ソース・データベースからの列値のフェッチを有効にします。

TABLE

{FETCHMODCOLS | FETCHMODCOLSEXCEPT} (column_list)

トランザクション・ログに列が存在する場合でも、データベースから列値をフェッチさせます。

TABLE

FILTER (filter_clause)

数値に基づいてレコードを選択します。FILTERは、WHEREよりも柔軟に使用できます。

TABLEおよびMAP

GETBEFORECOLS (column_specification)

列のビフォア・イメージを取得させ、トレイルに書き込ませます。

TABLE

HANDLECOLLISIONS | NOHANDLECOLLISIONS

初期ロード・プロセスでターゲット表に適用された変更の結果と、変更同期グループによって適用された変更を調整します。

MAP

INSERTALLRECORDS

すべての行変更を挿入として適用します。

MAP

INSERTAPPEND | NOINSERTAPPEND

ReplicatがINSERT文でOracle APPENDヒントを使用するかどうかを制御します。

MAP

KEYCOLS (columns)

行を一意に特定する列を指定します。

TABLEおよびMAP

MAPEXCEPTION (exceptions_mapping)

MAP文にワイルドカード指定された表を処理する例外が含まれていることを指定します。

MAP

MAPINVISIBLECOLUMNS | NOMAPINVISIBLECOLUMNS

Replicatがデフォルトの列マッピングでOracleターゲット表に非表示列を含めるかどうかを制御します。明示的な列マッピングを使用しているOracleターゲット表では非表示列が常にマップされるので、このオプションは不要です。

MAP

REPERROR (error, response)

MAP文の実行時にReplicatがエラーに対応する方法を制御します。

MAP

RESOLVECONFLICT (conflict_resolution_specification)

競合解決のルールを指定します。

MAP

SQLEXEC (SQL_specification)

ストアド・プロシージャおよび問合せを実行します。

TABLEおよびMAP

SQLPREDICATE 'WHERE where_clause'

初期ロードのためにWHERE句を使用して行を選択します。

TABLE

THREAD (thread_ID)

調整モードのReplicatに有効です。MAP文が指定のReplicatスレッドで処理されることを指定します。

MAP

THREADRANGE (thread_range, column_list)

調整モードのReplicatに有効です。MAP文が指定範囲のReplicatスレッドで処理されることを指定します。

MAP

TOKENS (token_definition)

ユーザー・トークンを定義します。

TABLE

TRIMSPACES | NOTRIMSPACES

CHAR列をVARCHAR列にマッピングする際に、末尾の空白を切り捨てるかどうかを制御します。

TABLEおよびMAP

TRIMVARSPACES | NOTRIMVARSPACES

VARCHAR列をCHARまたはVARCHAR列にマッピングする際に、末尾の空白を切り捨てるかどうかを制御します。

TABLEおよびMAP

WHERE (clause)

条件演算子に基づいてレコードを選択します。

TABLEおよびMAP

;

(セミコロン) TABLE文またはMAP文を終了します(必須)。

TABLEおよびMAP

TABLE source_table[, TARGET taget_table]

TABLEは、Extractパラメータ・ファイルで有効です。

TABLEでは、Extractでデータを取得するソース・オブジェクトを指定します。schema.tableやcatalog.schema.tableなど、2つまたは3つの部分からなる完全修飾オブジェクト名を指定します。ワイルドカードを使用すると、1つのTABLE文で複数のオブジェクトを指定できます。オブジェクト名とワイルドカードを正しく指定するには、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

TARGETオプションは、Extractが変換を実行するためにターゲット定義ファイル(TARGETDEFSパラメータで指定)を参照する必要がある場合またはCOLMAPオプションを使用して列をマップする場合にのみ使用します。それ以外の場合は、TABLEパラメータから省略できます。COLMAPによる列マッピングおよび変換処理は通常、ソース・システムでのレプリケーション・アクティビティの影響を最小限に抑えるためにターゲット・システムで実行しますが、必要に応じてソース・システムで実行できます。たとえば、列マッピングおよび変換は、複数のソースに対して1つのターゲットがある構成では、ソース・システムで実行できます。このような場合、特に新しい定義ファイルの生成が必要になる頻繁なアプリケーション変更が発生するときは、ソース・データベースごとに1つの定義ファイルを管理するよりも、1つのターゲット定義ファイルを管理する方が簡単です。

TABLEパラメータでTARGETを使用することによって、定義ファイルまたは列マップに指定されているレコードの構造を反映して、ソース構造ではなくターゲット構造に基づいて抽出データのメタデータを特定します。ターゲットのOracleコンテナ・データベースまたはSQL/MXデータベースの表をTARGETで指定する場合は、3つの部分からなる名前を使用しないでください。Replicatは、1つのコンテナまたはカタログにしか接続できないため、名前のコンテナまたはカタログの部分はReplicatのログイン先(データベースに応じて、USERID、USERIDALIASまたはTARGETDBで指定)と同じであるとみなされます。

指定したソース・データの処理に他のTABLE構文オプションが不要な場合は、単純なTABLE文を使用できます(文は必ずセミコロンで終わります)。

TABLE sales.customers;

次に、複数の表を指定する場合のワイルドカードの使用例を示します。

TABLE sales.*;

先行するTABLE文により、指定したオブジェクトについて、Extractはすべてのサポートされる列データを取得し、フィルタリング、変換、またはその他の操作を実行せずに、トレイルに書き込みます。

MAP source_table, TARGET target_table

MAP文は、Replicatパラメータ・ファイルで有効です。

MAPではソース・オブジェクトを指定し、TARGETではReplicatがレプリケート済のソース・データを適用するターゲット・オブジェクトを指定します。MAP句とTARGET句を合せて、マッピングを構成します。

- MAP source_tableには、ソース・オブジェクトを指定します。schema.tableやcatalog.schema.tableなど、2つまたは3つの部分からなる完全修飾オブジェクト名を指定します。ワイルドカードを使用すると、複数のソース・オブジェクトを指定できます。

- TARGET target_tableには、ターゲットがコンテナ・データベースまたはSQL/MXデータベースである場合でも、2つの部分からなる名前を指定します。Replicatは、1つのコンテナまたはカタログにしか接続できないため、名前のコンテナまたはカタログの部分はReplicatのログイン先(データベースに応じて、USERID、USERIDALIASまたはTARGETDBで指定)と同じであるとみなされます。ワイルドカードを使用すると、複数のターゲット・オブジェクトを指定できます。

次に、複数の表を指定する場合のワイルドカードの使用例を示します。TARGET句では、ワイルドカードの前にtab接頭辞を挿入しないことに注意してください。ワイルドカードはsales.tabtab1、sales.tabtab2というように解決されるため、接頭辞の指定は無効になります。

MAP sales.tab*, TARGET sales.*;

MAP句およびTARGET句でオブジェクト名とワイルドカードを正しく指定するには、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

オブジェクトについてフィルタリング、マッピングまたはその他の処理が不要な場合は、次のような単純なMAP文を使用できます(各文は必ずセミコロンで終わります)。

MAP sales.customers, TARGET sales.customers;
MAP fin.*, TARGET fin.*;

ATTRCHARSET (charset)

ATTRCHARSETは、TABLEに有効です。

ATTRCHARSET句では、UDT属性レベルのソース・キャラクタ・セット情報を指定します。証跡ファイル内に定義されたキャラクタ・セット、あるいはSOURCECHARSET、CHARSETまたはCOLCHARSETパラメータで指定されたキャラクタ・セットよりも優先されます。

有効な値はキャラクタ・セット名および有効なUDT属性名です。ワイルドカード属性名はサポートされます。例:

TABLE SCHEMA.T*,
ATTRCHARSET(WE8DEC, col*.attr1, col1.attr*.attr3);

CHARSET character_set

CHARSETは、TABLEに有効です。

CHARSET句では、サポートされている任意のキャラクタ・セットを指定します。詳細は、「CHARSET」を参照してください。

COLCHARSET character_set

COLCHARSETは、TABLEに有効です。

COLCHARSET句では、サポートされている任意のキャラクタ・セットを指定します。詳細は、「COLCHARSET」を参照してください。

COLMAP (column_mapping)

COLMAPは、TABLEおよびMAPに有効です。

COLMAPでは、次のことを行います。

- ソース列とターゲット列の名前が異なる場合に、個々のソース列をターゲット列にマップします。

- ソース名とターゲット名が同一の場合に、デフォルトの列マッピングを指定します。

COLMAPでは、ソース列からターゲット列に対して列データを選択、変換および移動するための指示を提供します。

注意:

後続のMAP文のすべての表に適用する列マッピングのグローバル・ルールを作成するには、COLMATCHパラメータを使用します。

列マッピングの構成に関するその他の情報

COLMAPの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。COLMAPを使用するには、ソースとターゲットの列構造が同一か異なるのか、グローバル列マッピング・パラメータが十分かどうかなど、関連する構成の考慮事項を検討する必要があります。

構文

COLMAP (
[USEDEFAULTS, ]
target_column = source_expression [BINARYINPUT]
[, ...]
)

USEDEFAULTS

明示的な列マッピングで指定されていない場合に、同一の名前を持つソース列とターゲット列を自動的にマップします。データ型は必要に応じて、ローカル・データ定義ファイルに基づいて自動的に変換されます。USEDEFAULTSにより、これらの列の名前が同じ場合は明示的な列マッピングの必要性がなくなるため、データのフィルタリングや変換は不要です。

COLMAP句の明示的な列マッピングの前にUSEDEFAULTSを指定します。COLMAPのデフォルトの列マッピングの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

target_column = source_expression

明示的なソース-ターゲット列マッピングを定義します。

target_column

ターゲット列の名前を指定します。列名でサポートされる文字は、『Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

source_expression

次のいずれかを指定できます。

- ソース列名(例: ORD_DATE)

- 数値定数(例: 123)

- 一重引用符で囲まれた文字列定数(例: 'ABCD')

- Oracle GoldenGate列変換ファンクションを使用する式(例: @STREXT (COL1, 1, 3))。詳細は、列変換ファンクションを参照してください。

BINARYINPUT
BINARYINPUTは、ターゲット列がRAWまたはBLOBなどのバイナリ・データ型として定義されているが、ソース入力のデータの中にバイナリ・ゼロが含まれている場合に使用します。BINARYINPUTは、単一の列として定義されている完全なEnscribeレコードをターゲット列にレプリケートするときに使用します。ソース入力はバイナリ入力として処理され、データ値の置換は抑止されます。

例1

MAP ggs.tran, TARGET ggs.tran2, COLMAP (loc2 = loc, type2 = type);

例2

TABLE ggs.tran, COLMAP (SECTION = @STRCAT('\u00a7', SECTION ));

{COLS | COLSEXCEPT} (column_list)

COLSおよびCOLSEXCEPTは、TABLEに有効です。

COLSおよびCOLSEXCEPTでは、取得するデータの列を制御します。

- COLSは、取得するデータが含まれる列を指定します。COLSを使用すると、COLSのリストにない列はすべてOracle GoldenGateによって無視されます。

- COLSEXCEPTは、取得から除外する列を指定します。COLSEXCEPTを使用すると、COLSEXCEPTのリストにない列はすべてOracle GoldenGateによって取得されます。多数の列が含まれる表では、COLSを使用して各列を指定するよりも、COLSEXCEPTを使用するほうが効率的な場合があります。

注意:

キー列は除外しないでください。また、Oracle GoldenGateによってサポートされていないデータ型を含む列を除外するために、COLSEXCEPTを使用しないでください。COLSEXCEPTは、サポートされていないデータ型を除外しません。

次に、COLSを使用するための条件を示します。

- 表に1つ以上のキー列が含まれているか、KEYCOLSオプションで代替キーが定義されている必要があります。KEYCOLS (columns)を参照してください。

- キー列またはKEYCOLSで指定されている列がCOLSで指定されている列リストに含まれている必要があります。含まれていない場合、これらの列は取得されず、処理中にエラーが生成されます。

主キーや一意キーがない場合またはTABLE文内にKEYCOLS句がない場合、Oracle GoldenGateは表のすべての列を使用するため、COLSの指定は不要になります。

注意:

データ・ポンプExtractグループにパススルー・モードで処理される表には、このオプションを使用しないでください。

構文

{COLS | COLSEXCEPT} (column [, ...])

column

列名。複数の列を指定するには、次のようにカンマ区切りリストを作成します。

COLS (name, city, state, phone)

注意:

データベースが更新操作で変更された列の値しか記録しない場合、COLSで取得するために指定した列が使用できないことがあります。このような列値を使用するには、TABLE文のFETCHCOLSオプションを使用するか、列のサプリメンタル・ロギングを有効にします。

例

この例では、COLS句は列1と列3のみを取得しますが、COLSEXCEPT句は列1と列3を除くすべての列を取得します。

TABLE hq.acct, COLS (col1, col3);
TABLE hq.sales, COLSEXCEPT (col1, col3);

COMPARECOLS (column_specification)

COMPARECOLSは、MAPに有効です。

COMPARECOLSでは、マルチマスター構成でMAPのRESOLVECONFLICTオプションを使用して構成する場合、更新または削除の競合を検出および解決するためにReplicatが使用する列を指定します。競合は、トレイル内のレコードのビフォア・イメージと、ターゲット表の正しいデータとの不一致です。

COMPARECOLSを使用するには、Extract TABLE文のGETBEFORECOLSパラメータを使用して、ビフォア・イメージをトレイル・レコードで使用可能にする必要があります。指定した列は、ターゲット・データベースに存在し、Replicat構成の一部でもある必要があります(COLMAP句の有無にかかわらずTARGET指定を満たします)。

スカラー・データ型のみ、比較列としてCOMPARECOLSによってサポートされます。スカラー・データ型は、WHERE句で使用でき、単一のアトミック値を持ち、内部コンポーネントがありません。Oracle GoldenGateでサポートされているスカラー・データ型には、次のものがありますが、LOBは含まれません。

- 数値データ型

- 日付データ型

- 文字データ型

非スカラー・データ型の例には、Spatialデータ、ユーザー定義のデータ型、ラージ・オブジェクト(LOB)、XML、参照データ型、RAWなどがあります。CDRが考慮されている行には、競合が非スカラー・データ自体に存在しないかぎり、非スカラー・データを含めることができます。

競合解決ルーチンを指定するには、MAPのRESOLVECONFLICTオプションを使用します。COMPARECOLSおよびRESOLVECONFLICTは、MAP文に任意の順序で指定できます。

CDR機能の構成に関するその他の情報

競合の検出および解決の構成の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

COMPARECOLS(
{ON UPDATE | ON DELETE}
{ALL | KEY | KEYINCLUDING (col[,...]) | ALLEXCLUDING (col[,...]) }
[,...]
)

{ON UPDATE | ON DELETE}

指定した列のビフォア・イメージを、更新または削除のために比較するかどうかを指定します。ON UPDATEのみ、またはON DELETEのみ、または両方を使用できます。両方使用する場合、同じCOMPARECOLS句の中に指定します。両方使用する方法は、例を参照してください。

{ALL | KEY | KEYINCLUDING (col[,...]) | ALLEXCLUDING (col[])}

ビフォア・イメージを取得する列を指定します。

ALL

ターゲット表内のすべての列を使用して比較します。対応するビフォア・イメージがトレイルで使用できない場合、エラーが生成されます。ALLを使用すると、Replicatに最も高い処理負荷がかかりますが、すべての列を使用して競合検出の比較を実行し、正確性を最大にすることができます。

KEY

主キー列のみを比較します。このオプションは最速ですが、キーは一致していても非キー列は異なる可能性があるため、最も正確な競合検出は不可能です。

KEYINCLUDING

主キー列および指定した列を比較します。これは、速度と検出の正確性との間での妥当な方法です。

ALLEXCLUDING

指定した列を除くすべての列を比較します。多数の列が含まれる表では、KEYINCLUDINGよりもALLEXCLUDINGのほうが効率的な場合があります。キー列は除外しないでください。

例1

次の例では、キー列に加えて、name、address、およびsalaryの各列を競合のために比較します。

MAP src, TARGET tgt
COMPARECOLS (
ON UPDATE KEYINCLUDING (name, address, salary),
ON DELETE KEYINCLUDING (name, address, salary));

例2

次の例では、comment列は無視して、他のすべての列を競合のために比較します。

MAP src, TARGET tgt
COMPARECOLS (ON UPDATE ALLEXCLUDING (comment))

COORDINATED

COORDINATEDは、MAPに有効です。このオプションは、Replicatが調整モードである場合に有効です。

COORDINATEDオプションでは、同じMAP文のオブジェクトで作成されたトランザクションをバリア・トランザクションとして処理させます。これにより、すべてのMAP文ですべてのスレッドが同じトレイルの場所に同期します。同期される位置は、COORDINATEDキーワードを含むMAPを満たすレコードを含むトランザクションの先頭です。トランザクションは、その後単一のスレッドによってアトミックに適用されます。このスレッドは、現在実行されているスレッドの中でスレッドIDが最も小さいスレッドであるか、USEDEDICATEDCOORDINATIONTHREADがパラメータ・ファイルで指定されている場合は、IDが0 (ゼロ)の専用スレッドのいずれかです。

COORDINATEDと組み合せて指定されたTHREAD句およびTHREADRANGE句は、指定したスレッドによってレコードが適用されないため、無視されます。COORDINATEDキーワードにより、一時的に並列処理が中断され、強制的に調整されたトランザクションが適用される前にターゲット表は一貫性のある状態になります。その後、並列実行が再開されます。

デフォルトでは、Replicatは主キーが更新されるトランザクション、DDLを実行するトランザクションおよび特定のEVENTACTIONSアクションを調整します。COORDINATEDは、明示的な調整を指定します。

調整Replicatの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

COORDINATED

例

次に、COORDINATEDオプションの使用例を示します。この例のビジネス・ルールでは、MAP文に指定されたオブジェクトに対するSQLEXEC操作を含むトランザクションをReplicatが実行する前に、ターゲット表が一貫性のある状態になる必要があります。この場合は、並列処理を順次SQL処理に一時的に変更する必要があります。

次のMAP文の場合、スレッド1によるt1への挿入が実行される前に、別のスレッドがt2にcol_valの値が100のレコードを挿入すると、SQLEXECはその行を削除します。他のスレッドが値100のレコードを依然として処理している場合、SQLEXECは失敗します。そのため、このMAP文の結果は予測できません。

MAP u1.t1, TARGET u2.t1 SQLEXEC (ID test2, QUERY ' delete from u2.t2 where col_val =100 ', NOPARAMS)), THREAD(1);

逆に、COORDINATEDを使用すると、col_val=100レコードを処理するスレッドを含め、すべてのスレッドが共通ポイントで同期するため、結果は明瞭になります。

MAP u1.t1, TARGET u2.t1 SQLEXEC (ID test2, QUERY ' delete from u2.t2 where col_val =100 ', NOPARAMS)), THREAD(1), COORDINATED;

{DEF| TARGETDEF} template

DEFおよびTARGETDEFは、TABLEおよびMAPに有効です。

DEFおよびTARGETDEFでは、DEFGENユーティリティで作成された定義テンプレートの名前を指定します。

- DEFは、ソース定義テンプレートを指定します。

- TARGETDEFは、ターゲット定義テンプレートを指定します。

テンプレートは、特定の表の定義に基づいています。テンプレートにより、元の表と同じ定義を持つ新しい表は、DEFGENを実行したり、Oracle GoldenGateプロセスを停止して起動する必要もなく、Oracle GoldenGate構成に追加できます。テンプレートの定義は、定義の参照に使用します。

定義テンプレートの作成に関するその他の情報

テンプレートおよびDEFGENの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

{DEF | TARGETDEF} template

template

DEFGENユーティリティによって生成される次の定義テンプレートのいずれかの名前。

- DEFでは、DEFGENパラメータ・ファイルのTABLEパラメータのDEFオプションによって生成されるソース定義テンプレートを指定します。

- TARGETDEFでは、DEFGENパラメータ・ファイルのTABLEパラメータのTARGETDEFオプションによって生成されるターゲット定義テンプレートを指定します。

テンプレートに含まれる定義は、同じTABLEまたはMAP文に指定されている表の定義と同一である必要があります。

データベースに保存されるのと同じ方法で名前が指定される場合、テンプレート名の大/小文字は区別されます。このTABLEまたはMAP文のDEFまたはTARGETDEF句と、テンプレートを作成したDEFGENパラメータ・ファイルの両方で、テンプレート名が同じ方法で指定されていることを確認してください。

例1

次に、大/小文字を区別するテンプレート名を指定する例を示します。

MAP acct.cust*, TARGET acct.cust*, DEF custdef;

例2

次に、大/小文字を区別するのに引用符が必要になるデータベースの場合に、大/小文字を区別するテンプレート名を指定する例を示します。

TABLE acct.cust*, DEF "CustDef";

例3

次に、DEFとTARGETDEFの両方を使用する例を示します。

MAP acct.cust*, TARGET acc.cust*, DEF custdef, TARGETDEF tcustdef;

EXCEPTIONSONLY

EXCEPTIONSONLYは、MAPに有効です。

EXCEPTIONSONLYは、エラーを処理するための例外MAP文で使用します。例外MAP文は、エラーが発生する可能性があるMAP文に続ける必要があります。例外MAP文は、先行する標準のMAP文で処理された最後のレコードでエラーが発生した場合にのみ実行されます。

EXCEPTIONSONLYを使用するには、標準のMAP文内、またはパラメータ・ファイルのルートで、REPERROR文とEXCEPTIONオプションを使用します。詳細は、REPERRORを参照してください。

注意:

Oracle GoldenGateの競合の検出および解決(CDR)機能を使用する場合、REPERRORとEXCEPTIONは必要ありません。CDRは、エラーを引き起こすすべての操作を、例外MAP文に自動的に送信します。

例外MAP文では、標準のMAP文と同じソース表を指定する必要がありますが、例外MAP文のターゲット表は例外表である必要があります。

注意:

ワイルドカードを指定したオブジェクト名をサポートするには、MAPEXCEPTION (exceptions_mapping)」を参照してください。

例外処理の構成に関するその他の情報

例外MAP文による例外処理の構成の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

EXCEPTIONSONLY

EVENTACTIONS (action)

EVENTACTIONSは、TABLEおよびMAPに有効です。オプションには、どちらかのパラメータにしか適用されないものがあり、説明で示します。

EVENTACTIONSでは、特定のフィルタリング・ルールに適合する、イベント・レコードと呼ばれるトレイル内のレコードに基づいて、プロセスに定義済のアクションを実行させます。イベント・マーカー・システム(またはイベント・マーカー・インフラストラクチャ)と呼ばれるこのシステムを使用すると、データベース・イベントに基づいて処理をカスタマイズできます。たとえば、変換の実行または統計のレポートのために、プロセスを一時停止できます。イベント・マーカー機能は、データ変更のレプリケーションではサポートされていますが、初期ロードではサポートされていません。

ターゲット表へのデータ適用を必要としないアクションをトリガーするには、Replicat TABLEパラメータとEVENTACTIONSをサポートしているフィルタリング・オプションを使用できます。詳細は、Replicat用TABLEを参照してください。

注意:

EVENTACTIONSは、ソース・データベースがTeradataで、Extractが最大パフォーマンス・モードで構成されている場合にはサポートされません。

目的の達成のために、複数のアクションを組み合せる必要がある場合があります。複数のアクションを組み合せると、まずEVENTACTIONS文全体が解析された後、指定したオプションが優先度順に実行されます。次に、優先度の順序を示します。レコードの処理の前にリストされているアクションは、レコードがトレイルに書き込まれる前またはターゲットに適用される前に発生します(プロセスによって異なります)。レコードの処理の後にリストされているアクションは、レコードが処理された後に実行されます。

- TRACE

- LOG

- CHECKPOINT BEFORE

- DISCARD

- SHELL

- ROLLOVER

- (レコードの処理)

- IGNORE

- REPORT

- SUSPEND

- ABORT

- CHECKPOINT AFTER

- FORCESTOP

- STOP

標準の方法でイベント・レコード自体の処理を防ぐには、IGNOREまたはDISCARDオプションを使用します。IGNOREおよびDISCARDは、レコードより先に評価されるため、これらを使用してイベント・レコードの処理を防ぐことができます。これらのオプションが指定されていない場合、ExtractのEVENTACTIONSはトレイルにレコードを書き込み、ReplicatのEVENTACTIONSはその操作をターゲット・データベースに適用します。

1つのトランザクションに、イベント・アクションをトリガーするレコードが複数含まれている可能性があることに注意してください。そのようなケースでは、指定されている特定のEVENTACTIONSが複数回実行されることがあります。たとえば、2回の連続するROLLOVERアクションをトリガーする2つの対象レコードを検出すると、Extractはトレイルを2回ロールオーバーするため、2つのファイルのうち1つはトランザクション・データがないままです。

また、GETUPDATEBEFORESパラメータが有効な場合、UPDATE操作に対して2つのレコード、つまりビフォア・イメージが含まれるレコードとアフター・イメージが含まれるレコードが生成されることにも注意してください。操作によってイベント・レコードとして特定されると、これらのレコードごとにイベント・アクションがトリガーされます。FILTER句でGGHEADER列変換ファンクションのBEFOREAFTERINDICATORトークンをフィルタとして使用すると、(両方ではなく)BEFOREレコードまたはAFTERレコードのいずれかで、イベント・アクションが1回のみトリガーされるようにレコードを特定できます。

次に、BEFOREインジケータでのフィルタ例を示します。EVENTACTIONは、BEFOREレコードを検出すると、ECHOシェル・コマンドを発行して文字列'Triggered on BEFORE'をイベント・ログに出力します。

TABLE qasource.test, &
FILTER(@STRFIND('BEFORE', @GETENV('GGHEADER' , 'BEFOREAFTERINDICATOR')) > 0), &
EVENTACTIONS ( shell ('echo --== Triggered on BEFORE ==-- '), LOG);

次に、イベント・アクションの結果を示します。

013-03-06 17:59:31  INFO    OGG-05301  Shell command output: '--== Triggered
on AFTER ==--'

次に、AFTERインジケータの場合で同じ事象の例を示します。

TABLE qasource.test, &
FILTER(@STRFIND('AFTER', @GETENV('GGHEADER' , 'BEFOREAFTERINDICATOR')) > 0), &
EVENTACTIONS ( shell ('echo --== Triggered on AFTER ==-- '), LOG);

Extractが最大保護モードで構成されているTeradata構成では、VAMソートExtractグループでEVENTACTIONSのみを使用します。この構成のプライマリExtractではこれはサポートされていません。同時変更は、処理ストリームのこの時点ではトランザクション順でソートされないためです。詳細は、TeradataのためのOracle GoldenGateのインストールおよび構成を参照してください。

イベント・マーカー・システムの構成に関するその他の情報

EVENTACTIONSおよびイベント・マーカー・システムの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

EVENTACTIONS (
[STOP | SUSPEND | ABORT | FORCESTOP]
[IGNORE [RECORD | TRANSACTION [INCLUDEVENT]]
[DISCARD]
[LOG [INFO | WARNING]]
[REPORT]
[ROLLOVER]
[SHELL 'command' |
SHELL ('command', VAR variable = {column_name | expression}
[, ...]) ]
[TRACE[2] file [TRANSACTION] [DDL[INCLUDE] | DDLONLY] [PURGE | APPEND]]
[CHECKPOINT [BEFORE | AFTER | BOTH]]
[, ...]
)

STOP

Extract用TABLEおよびReplicat用MAPで有効です。

指定のイベント・レコードが検出されたときにプロセスを正常に停止させます。プロセスは、イベント・トランザクション内の他の操作が完了するまで待機してから停止します。Replicatによってグループ化されたトランザクション、またはバッチ・トランザクションの場合、プロセスは、現在のトランザクション・グループが適用されてから正常に停止します。イベント・レコードがトランザクションの終了点であることも示している場合、プロセスはイベント・レコードの次のレコードで再開します。

プロセスは、トランザクションがまだオープンしているために即座に停止できない場合、メッセージを記録します。ただし、長時間オープンしているトランザクション内でイベント・レコードを検出しても、トランザクションがコミットされていないことを通知する警告メッセージは出しません。したがって、STOPイベントが発生しても、プロセスが長時間実行中になる場合があります。

STOPは、ABORTおよびFORCESTOPを除く、他のEVENTACTIONSオプションと組み合せることができます。

SUSPEND

Extract用TABLEおよびReplicat用MAPで有効です。

現在の実行のアクティブ・コンテキストを保持し、GGSCIで発行されるSENDコマンドに応答できるように、プロセスを一時停止します。プロセスが一時停止すると、INFOコマンドによってRUNNINGと示され、RBAフィールドに最後のチェックポイントの位置が表示されます。

処理を再開するには、SENDコマンドをRESUMEオプションとともに発行します。

CHECKPOINT BEFOREオプションをSUSPENDとあわせて使用するには、イベント・レコードを、SUSPENDが発生するトランザクションの開始にする必要があります。これにより、一時停止状態の間にプロセスが中断した場合、SUSPENDアクションのイベント・レコードは、再起動時に再処理する最初のレコードになります。CHECKPOINT BEROREおよびSUSPENDの両方を指定しましたが、イベント・レコードがトランザクションの開始ではない場合、SUSPENDが発生する前にプロセスは異常終了します。

CHECKPOINT AFTERオプションをSUSPENDと合せて使用するには、チェックポイントが発生する前にRESUMEコマンドを発行する必要があり、イベント・レコードをCOMMITレコードにする必要があります。SUSPEND状態の間にプロセスが中断した場合、プロセスは再起動時に最後にチェックポイントが指定された位置からトランザクションを再処理します。

SUSPENDは、ABORTと組み合せることはできませんが、他のすべてのオプションと組み合せることができます。

ABORT

Extract用TABLEおよびReplicat用MAPで有効です。

オープンしているトランザクションの有無にかかわらず、指定のイベント・レコードが検出されたときに即座にプロセスを終了させます。イベント・レコードは処理されません。ログに致命的なエラーが書き込まれ、DISCARDも指定している場合には破棄ファイルにイベント・レコードが書き込まれます。プロセスの起動時にリカバリが行われます。

ABORTは、CHECKPOINT BEFORE、DISCARD、SHELLおよびREPORTとのみ組み合せることができます。

FORCESTOP

Extract用TABLEおよびReplicat用MAPで有効です。

指定のイベントが検出され、イベント・レコードがトランザクションの最後の操作またはトランザクションの唯一のレコードの場合にのみ、プロセスを正常に停止させます。レコードは正常に書き込まれます。

長時間オープンしているトランザクション内でイベント・レコードが検出された場合、プロセスはログに警告メッセージを記録し、ABORTと同様に即座に終了します。このケースでは、起動時にリカバリが必要です。長時間に及ぶトランザクションの途中でFORCESTOPアクションがトリガーされると、プロセスは警告メッセージを出さずに終了します。

FORCESTOPは、ABORT、STOP、CHECKPOINT AFTERおよびCHECKPOINT BOTHを除く、他のEVENTACTIONSオプションと組み合せることができます。ROLLOVERとともに使用する場合、ロールオーバーはプロセスが正常に停止したときにのみ行われます。

IGNORE [RECORD | TRANSACTION [INCLUDEVENT]]

Extract用TABLEおよびReplicat用MAPで有効です。

選択したアクションに応じて、トランザクションの一部またはすべてを無視します。

- RECORDはデフォルトです。残りのトランザクションではなく、プロセスで指定されたイベント・レコードのみが無視されます。警告またはメッセージはログに書き込まれませんが、Oracle GoldenGate統計が更新され、レコードが無視されたことが統計に反映されます。

- TRANSACTIONでは、イベントをトリガーしたレコードを含むトランザクション全体を無視します。TRANSACTIONを使用する場合は、イベント・レコードをトランザクション内の最初のレコードにする必要があります。トランザクションを無視する場合、デフォルトではイベント・レコードも無視されます。TRANSACTIONは、TRANSに短縮できます。

- INCLUDEEVENTをTRANSACTIONとともに指定すると、イベント・レコードはトレイルまたはターゲットに伝播されますが、関連トランザクションの残りの部分は無視されます。

IGNOREは、ABORTおよびDISCARDを除く、他のすべてのEVENTACTIONSオプションと組み合せることができます。

IGNOREアクションは、修飾、フィルタリング、マッピングおよびユーザー・イグジットのすべての操作が処理された後に処理されます。レコードまたはトランザクションは最後の出力フェーズで無視され、レコードまたはトランザクションが出力ターゲット(Extractの場合は証跡、Replicatの場合はデータベース)に書き込まれることを防ぎます。したがって、特定の式(たとえば、SQLEXEC操作を含む式)では、SQLEXECはIGNOREが処理される前に実行されます。つまり、レコードは証跡またはターゲット・データベースに書き込まれませんが、修飾、フィルタリング、マッピングおよびユーザー・イグジットによるレコードの処理の効果はすべて適用されます。

このアクションは、DDLレコードには無効です。DDL操作は自律型であるため、レコードを無視することは、トランザクション全体を無視することと同じです。

DISCARD

Extract用TABLEおよびReplicat用MAPで有効です。

プロセスに次のことを実行させます。

- 指定のイベント・レコードを破棄ファイルに書き込む。

- Oracle GoldenGate統計を更新し、レコードが破棄されたことを統計に反映させる。

プロセスは、トレイルの次のレコードから処理を再開します。

DISCARDは、IGNOREを除く、他のすべてのEVENTACTIONSオプションと組み合せることができます。

LOG [INFO | WARNING]

Extract用TABLEおよびReplicat用MAPで有効です。

指定のイベント・レコードが検出されたときに、プロセスにこのイベントを記録させます。レポート・ファイル、Oracle GoldenGateエラー・ログ、およびシステム・イベント・ログにメッセージが書き込まれます。

次のオプションを使用して、メッセージの重大度を指定します。

- INFOでは、重大度の低い情報メッセージを指定します。これはデフォルトです。

- WARNINGでは、重大度の高い警告メッセージを指定します。

LOGは、ABORTを除く、他のすべてのEVENTACTIONSオプションと組み合せることができます。ABORTを使用する場合は、プロセスが終了する前にABORTによって致命的なエラーが記録されるため、LOGは不要です。

REPORT

Extract用TABLEおよびReplicat用MAPで有効です。

指定のイベント・レコードが検出されたときにプロセスにレポート・ファイルを生成させます。GGSCIでSENDコマンドとREPORTオプションを使用する場合と同じ結果になります。

(DISCARD、IGNOREまたはABORTを使用している場合を除き) REPORTメッセージは、イベント・レコードが処理された後に発生するので、レポート・データにはイベント・レコードが含まれます。

REPORTは、他のすべてのEVENTACTIONSオプションと組み合せることができます。

ROLLOVER

Extract用TABLEで有効です。

指定のイベント・レコードが検出されたときに、Extractにトレイルの新しいファイルにロールオーバーさせます。ROLLOVERアクションは、Extractがトレイル・ファイルにイベント・レコードを書き込む前に発生するので、DISCARD、IGNOREまたはABORTも使用されている場合を除き、イベント・レコードが新しいファイルの最初のレコードになります。

ROLLOVERは、ABORTを除く、他のすべてのEVENTACTIONSオプションと組み合せることができます。 ROLLOVERを使用するとプロセスがチェックポイントの書込みを行わず、ROLLOVERはABORTよりも先に発生するため、ROLLOVERはABORTと組み合せることができません。

ROLLOVERのチェックポイントがない場合にABORTを使用すると、Extractは再起動時に前回のトレイル・ファイル内の前回のチェックポイントから再開します。そのため、実質上ロールオーバーがキャンセルされます。

SHELL 'command'

Extract用TABLEおよびReplicat用MAPで有効です。

イベント・レコードが検出されたときに、指定したシェル・コマンドをプロセスに実行させます。SHELL 'command'は、基本的なシェル・コマンドを実行します。コマンド文字列は、リテラル値で取得され、その方法でシステムに送信されます。コマンドでは、大/小文字が区別されます。コマンド文字列は、次のように一重引用符で囲みます。

EVENTACTIONS (SHELL 'echo hello world! > output.txt')

シェル・コマンドが成功した場合、プロセスはレポート・ファイルおよびイベント・ログに情報メッセージを書き込みます。コマンドの成功は、UNIXシェル言語に従って、コマンドの終了ステータスで判断します。その言語では、0が成功を表します。

システム・コールが成功しなかった場合、プロセスは致命的なエラーとともに異常終了します。UNIXシェル言語では、0以外は失敗を表します。エラー・メッセージは、SHELLコマンド自体の実行にのみ関連し、従属するコマンドの終了ステータスには関連しないことに注意してください。たとえば、SHELLはスクリプトを正常に実行できますが、そのスクリプト内のコマンドは失敗することがあります。

SHELLは、他のすべてのEVENTACTIONSオプションと組み合せることができます。

SHELL ('command', VAR variable = {column_name | expression} [ ])

Extract用TABLEおよびReplicat用MAPで有効です。

イベント・レコードが検出されたときに、指定したシェル・コマンドをプロセスに実行させ、パラメータの受渡しをサポートします。コマンドおよびパラメータは、大/小文字が区別されます。

SHELLを引数とともに使用する場合、コマンドおよび引数の文字列全体をカッコで囲む必要があります。たとえば、次のようになります。

EVENTACTIONS (SHELL ('Current timestamp: $1  SQLEXEC result is $2 ',VAR $1 = @GETENV('JULIANTIMESTAMP'),VAR $2 = mytest.description));

入力内容は次のようになります。

command

システムにリテラルに渡されるコマンドです。

VAR

パラメータ入力を開始する必須のキーワードです。

variable

ランタイム変数の値に置き換えられる、プレースホルダ変数のユーザー定義名です。コマンドで使用されない余分な変数は無視されます。VAR変数名に一致するSHELLコマンド内のリテラルは、置換済のVARの値によって置き換えられることに注意してください。これは、予期しない結果になる可能性があるため、本番環境に移行する前にコードのテストを実行してください。

column_name

列値の前または後(現在)のイメージになります。

expression

列データやDDLの処理の有無に応じて、次のようになります。

- 列データの有効な式は、次のとおりです。

- TABLE文のTOKENS句からの値。

- 任意のOracle GoldenGate列変換ファンクションからの戻り値。

- SQLEXEC問合せまたはプロシージャからの戻り値。

- DDLの有効な式は、次のとおりです。

- @TOKENファンクションからの戻り値(Replicatのみ)。

- @GETENVファンクションからの戻り値。

- 列データを参照しないその他のファンクション(@DATENOWなど)からの戻り値。

- @DDLファンクションからの戻り値。

TRACE[2] file [TRANSACTION] [DDL[INCLUDE] | DDLONLY] [PURGE | APPEND]
Extract用TABLEおよびReplicat用MAPで有効です。

指定のイベント・レコードが検出されたときに、トレース情報をトレース・ファイルに書き込ませます。TRACEは、ステップバイステップの処理情報を提供します。TRACE2では、プロセスがほどんどの時間を費やしているコード・セグメントを特定します。

デフォルト(オプションなし)では、トランザクション境界を考慮しない標準的なDMLトレースは、プロセスが終了するまで有効になります。

- fileにはトレース・ファイル名を指定し、TRACEキーワードの直後に配置します。独自のトレース・ファイルを指定することも、単独のTRACEまたはTRACE2パラメータを使用して指定しているデフォルトのトレース・ファイルを使用することもできます。
EVENTACTIONS TRACEが使用されている様々なTABLEまたはMAP文で同一のトレース・ファイルを使用できます。複数のTABLEまたはMAP文で同一のトレース・ファイル名が指定されていて、TRACEオプションの指定方法が一貫していない場合は、このトレース・ファイルを含む最後に解決されたTABLEまたはMAPのオプションが優先されます。

- TRANSACTIONでは、プロセスの終了時までではなく、現在のトランザクションの終了時までのトレースのみ有効にします。Replicatのトランザクションの境界は、Replicatによってグループ化されたトランザクションまたはバッチのターゲット・トランザクションではなく、ソース・トランザクションに基づきます。TRANSACTIONは、TRANSに短縮できます。このオプションは、DML操作にのみ有効です。

- DDL[INCLUDE]では、DDLのトレースに加え、DMLトランザクション・データ処理もトレースします。DDLまたはDDLINCLUDEのいずれかが有効です。

- DDLONLYでは、DDLをトレースし、DMLトランザクション・データはトレースしません。
これらのオプションはReplicatにのみ有効です。デフォルトでは、DDLトレースは無効化されます。

- PURGEでは、追加のトレース・レコードを書き込む前にトレース・ファイルを切り捨て、APPENDでは、既存のレコードの末尾に新しいトレース・レコードを書き込みます。デフォルトはAPPENDです。

TRACEは、ABORTを除く、他のすべてのEVENTACTIONSオプションと組み合せることができます。

指定したトレース・ファイルへのトレースを無効にするには、GGSCIのSEND processコマンドとTRACE OFF file_nameオプションを発行します。

CHECKPOINT [BEFORE | AFTER | BOTH]
Extract用TABLEおよびReplicat用MAPで有効です。

指定のイベント・レコードが検出されたときに、プロセスにチェックポイントを書き込ませます。チェックポイント・アクションは、TABLEまたはMAP文に定義されている処理の前後のコンテキストを提供します。このコンテキストは開始点と終了点を持つため、SQLEXECおよびユーザー・イグジットで実行されるファンクションをマッピングするための同期点を提供します。

BEFORE

Extractプロセス用のBEFOREでは、Extractがトレイルにイベント・レコードを書き込む前にチェックポイントを書き込みます。Replicatプロセス用の BEFOREでは、レコードに含まれているSQL操作をReplicatがターゲットに適用する前にチェックポイントを書き込みます。

BEFOREを使用する場合は、イベント・レコードをトランザクションの最初のレコードにする必要があります。イベント・レコードが最初のレコードでない場合、プロセスは異常終了します。BEFOREを使用することで、イベント・レコードから始まるトランザクション以前のすべてのトランザクションを確実にコミットできます。

DDLレコードにEVENTACTIONSを使用する場合、各DDLレコードは自律的であるため、DDLレコードはトランザクションの開始であることが保証されることに注意してください。そのため、CHECKPOINT BEFOREイベント・アクションはDDLレコードに対して暗黙的です。

CHECKPOINT BEFOREは、すべてのEVENTACTIONSオプションと組み合せることができます。

AFTER

Extract用のAFTERでは、Extractがトレイルにイベント・レコードを書き込んだ後にチェックポイントを書き込みます。Replicat用の AFTERでは、レコードに含まれているSQL操作をReplicatがターゲットに適用した後にチェックポイントを書き込みます。

AFTERは、チェックポイント・リクエストに注意としてフラグを立て、プロセスが次の可能な機会にのみチェックポイントを発行することを示します。たとえば、イベント・レコードがマルチレコード・トランザクションの1つである場合、チェックポイントは、Oracle GoldenGateデータ整合性モデルに従って、次のトランザクションの境界で発生します。

DDLレコードにEVENTACTIONSを使用する場合、各DDLレコードは自律的であるため、DDLレコードはトランザクションの終了(境界)であることが保証されることに注意してください。そのため、CHECKPOINT AFTERイベント・アクションはDDLレコードに対して暗黙的です。

CHECKPOINT AFTERは、ABORTを除く、すべてのEVENTACTIONSオプションと組み合せることができます。

BOTH

BOTHは、BEFOREおよびAFTERの組合せです。ExtractまたはReplicatプロセスは、イベント・レコードの処理前および処理後にチェックポイントを書き込みます。

CHECKPOINT BOTHは、ABORTを除く、すべてのEVENTACTIONSオプションと組み合せることができます。

CHECKPOINTは、CPに短縮できます。

例1

次に、特定のレコードを無視するようにプロセスを構成する方法の例を示します。Extractは、name = abcを持つトレイル・レコードを処理するときに、このレコードを無視します。

TABLE fin.cust, &
WHERE (name = 'abc'), &
EVENTACTIONS (ignore);

例2

EVENTACTIONSオプションの互換性および優先度ルールでは、DISCARDはABORTよりも優先されるため、この例では、イベント・レコードはプロセスが異常終了する前に破棄ファイルに書き込まれます。

MAP fin.cust, TARGET fin.cust2, &
WHERE (name = 'abc'), &
EVENTACTIONS (DISCARD, ABORT);

例3

次の例では、SHELLアクションを実行します。SQLEXEC問合せの結果を取得し、現在のタイムスタンプと組み合せます。

TABLE src.tab &
SQLEXEC (id mytest, query 'select description from lookup &
where pop = :mycol2', params (mycol2 = col2) ), &
EVENTACTIONS (SHELL ('Current timestamp: $1  SQLEXEC result is $2 ', &
VAR $1 = @GETENV('JULIANTIMESTAMP'), VAR $2 = mytest.description));

この例の結果として生じるシェル・コマンドは、次のようになります。

'Current timestamp: 212156002704718000  SQLEXEC result is test passed'

例4

次に、プレースホルダ名がコマンド文字列のリテラル・テキストと競合するときに無効な結果が発生する場合の例を示します。この例では、$1という名前のプレースホルダは列値と関連付けられ、SHELLコマンドは、$1を含むリテラル文字列をエコーします。

MAP src.tab1, TARGET targ.tab1 &
EVENTACTIONS (SHELL ('echo Extra charge for $1 is $1', VAR $1 = COL1));

列値がgift wrapとすると、次は予期しない結果です。

'Extra charge for gift wrap is gift wrap'

プレースホルダ変数を$colに変更すると、結果は次のような正しい出力になります。

MAP src.tab1, TARGET targ.tab1 &
EVENTACTIONS (SHELL ('echo Extra charge for $col is $1', VAR $col = COL1));
'Extra charge for gift wrap is $1'

次に、予期しない結果に類似した可能性を示します。

MAP src.tab1, TARGET targ.tab1 &
EVENTACTIONS (SHELL ('Timestamp: $1  Price is $13 > out.txt ', &
VAR $1 = @GETENV('JULIANTIMESTAMP')));

リダイレクトされた出力ファイルには、次のような文字列が含まれることがあります(2つ目のタイムスタンプの末尾に値3が付加されていることを通知します)。

'Timestamp: 212156002704718000 Price is 2121560027047180003'

目的の結果は、次のとおりです。

'Timestamp: 212156002704718000 Price is $13'

例5

次に、トレースの異なる構成方法の例を示します。

MAP tab1, TARGET tab1 EVENTACTIONS (TRACE ./dirrpt/trace1.txt);
MAP tab2, TARGET tab2 EVENTACTIONS (TRACE ./dirrpt/trace2.txt TRANSACTION);

- 最初のMAP文では、最初のtab1イベント・レコードがターゲットに適用される直前にtrace1.txtトレース・ファイルが生成されます。これには、この時点からReplicatが終了するまで、またはGGSCIのSEND REPLICATコマンドでトレースが無効化されないかぎり、すべてのトレース情報が含まれます。

- 2つ目のMAP文には、TRANSACTIONオプションが含まれているため、trace2.txtファイルは最初のtab2イベント・レコードがターゲットに適用される直前に作成されますが、トレースはtab2イベント・レコードを含むトランザクションの終了時に自動的に停止します。

例6

次に、EVENTACTIONSをSUSPENDとともに使用する方法を示します。

- ケース1: DDLをレプリケートしていて、新しい表を作成するターゲット・データベースに十分な領域があることを確認するとします。CREATE TABLE DDL操作をマップするMAP文で、EVENTACTIONSをSUSPENDとともに使用します。その後、そのMAP文内でSQL文を実行して、表領域に残っている領域の量を問い合せます。十分な領域がある場合、SEND REPLICATをRESUMEとともに使用して、即座に処理を再開します。十分な領域がない場合、DBAが領域を追加するまでReplicatは一時停止のままになり、処理を再開するにはSEND REPLICATをRESUMEとともに使用します。

- ケース2: 任意の表で一意キー違反が発生した場合、それを修正するとします。Replicatは何千もの表を処理しており、Replicatが再起動時にオブジェクト・キャッシュを再び再構築するのに時間がかかるため、違反があるたびに処理を停止したくないとします。EVENTACTIONSをSUSPENDとともに使用することにより、問題を修正するまで処理を一時停止することができます。

- ケース3: 1日の終わりに、日時レポートを実行するためにReplicatを一時停止した後、プロセスを停止および再起動せずに処理を即座に再開します。

EXITPARAM 'parameter'

EXITPARAMは、TABLEおよびMAPに有効です。

EXITPARAMでは、TABLEまたはMAP文からのレコードが見つかるたびに、パラメータをユーザー・イグジット・ルーチンのEXIT_PARAMSファンクションに渡します。

ユーザー・イグジットに関するその他の情報

ユーザー・イグジットの構成方法は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

ユーザー・イグジットの構文の詳細は、ユーザー・イグジット・ファンクションを参照してください。

構文

EXITPARAM 'parameter string'

'parameter string'

リテラル文字列のパラメータ。パラメータは一重引用符で囲みます。パラメータ文字列では、最大で100文字まで指定できます。

FETCHBEFOREFILTER

FETCHBEFOREFILTERは、TABLEに有効です。

FETCHBEFOREFILTERでは、FILTER操作が実行される前に、FETCHCOLSまたはFETCHCOLSEXCEPTで指定された列をフェッチします。フィルタ前にフェッチすることにより、フィルタに必要な値を使用できます。FETCHBEFOREFILTERを指定しない場合、FETCHCOLSまたはFETCHCOLSEXCEPTで指定したフェッチは、フィルタが実行されるまで実行されません。FETCHBEFOREFILTERは、パラメータ・ファイルでFILTERの前に指定します。

データ・ポンプExtractグループにパススルー・モードで処理される表には、このオプションを使用しないでください。

FETCHBEFOREFILTERはSQL/MXデータベースでサポートされていません。

構文

FETCHBEFOREFILTER

例

TABLE hr.salary, FETCHCOLS (sal_level),
FETCHBEFOREFILTER,
FILTER (sal_level >= 8)
;

{FETCHCOLS | FETCHCOLSEXCEPT} (column_list)

FETCHCOLSおよびFETCHCOLSEXCEPTは、TABLEに有効です。これらのオプションは、プライマリExtractにのみ有効で、データ・ポンプでは使用できません。

FETCHCOLSおよびFETCHCOLSEXCEPTでは、トランザクション・ログ・レコードに値が存在しない場合に、データベースから列値をフェッチします。このオプションは、データベースが更新操作で変更された列の値しか記録しないものの、FILTER操作に必要な他の列値を使用できるようにする必要がある場合に使用します。

- FETCHCOLSでは、指定した列をフェッチします。

- FETCHCOLSEXCEPTでは、指定した列を除くすべての列をフェッチします。多数の列が含まれる表では、FETCHCOLSを使用して各列を指定するよりも、FETCHCOLSEXCEPTを使用するほうが効率的な場合があります。

FETCHCOLSおよびFETCHCOLSEXCEPTは、NonStop SQL/MX以外の、Oracle GoldenGateにサポートされているすべてのデータベースに有効です。

Oracleデータベースの場合、Oracle GoldenGateは、OracleのFlashback Queryメカニズムを使用して、UNDO表領域から値をフェッチします。フラッシュバック問合せは、特定の時刻またはSCN時点の列の読取り一貫性イメージを提供します。Oracle GoldenGateによるFlashback Queryの使用方法の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

FETCHCOLSまたはFETCHCOLSEXCEPTを使用するかわりに、必要な列のサプリメンタル・ロギングを有効にするほうが効率的なこともあります。

Sybaseの場合は、Oracle GoldenGateによってSybase暗号化データがサポートされていないため、暗号化列データはこれらのパラメータにサポートされていません。

フェッチの制御、およびフェッチ対象に指定した列が見つからない場合のレスポンスを指定するには、FETCHOPTIONSパラメータを使用します。STATS EXTRACTコマンドによって生成される統計表示にフェッチ結果を含めるには、STATOPTIONSパラメータを使用します。

FETCHCOLSまたはFETCHCOLSEXCEPTで指定した列値がトランザクション・ログに存在する場合、データベースのフェッチは実行されません。これにより、データベースのオーバーヘッドが軽減されます。

構文

{FETCHCOLS | FETCHCOLSEXCEPT} (column [, ...])

column

次のいずれかを指定できます。

- 列名、または(col1, col2)のような列名のカンマ区切りリスト。

- (*)のようなアスタリスク・ワイルドカード。

例

この例では、FETCHCOLS句は列1と列3のみをフェッチしますが、FETCHCOLSEXCEPT句は列1と列3を除くすべての列をフェッチします。

TABLE hq.acct, FETCHCOLS (col1, col3);
TABLE hq.sales, FETCHCOLSEXCEPT (col1, col3);

{FETCHMODCOLS | FETCHMODCOLSEXCEPT} (column_list)

FETCHMODCOLSおよびFETCHMODCOLSEXCEPTは、TABLEに有効です。これらのオプションは、プライマリExtractにのみ有効で、データ・ポンプでは使用できません。

FETCHMODCOLSおよびFETCHMODCOLSEXCEPTでは、列がトランザクション・ログに存在する場合でも、列値をデータベースからフェッチさせます。データベースのタイプに応じて、ログ・レコードに表のすべての列が含まれている場合と、特定のトランザクション操作で変更された列のみが含まれている場合があります。

- FETCHMODCOLSでは、指定した列をフェッチします。

- FETCHMODCOLSEXCEPTでは、指定した列を除き、トランザクション・ログに存在するすべての列をフェッチします。多数の列が含まれる表では、FETCHMODCOLSを使用して各列を指定するよりも、FETCHMODCOLSEXCEPTを使用するほうが効率的な場合があります。

FETCHMODCOLSおよびFETCHMODCOLSEXCEPTは、NonStop SQL/MX以外の、Oracle GoldenGateにサポートされているすべてのデータベースに有効です。

次の使用方法のガイドラインに従ってください。

- キー列にはFETCHMODCOLSおよびFETCHMODCOLSEXCEPTを使用しないでください。

- (Sybase)暗号化された列データにはFETCHMODCOLSおよびFETCHMODCOLSEXCEPTを使用しないでください。Oracle GoldenGateでは、Sybase暗号化データはサポートされません。

構文

{FETCHMODCOLS | FETCHMODCOLSEXCEPT} (column [, ...])

(column [, ...])

次のいずれかを指定できます。

- 列名、または(col1, col2)のような列名のカンマ区切りリスト。

- (*)のようなアスタリスク・ワイルドカード。

例

この例では、FETCHMODCOLS句は列1と列3のみをフェッチしますが、FETCHMODCOLSEXCEPT句は列1と列3を除くすべての列をフェッチします。

TABLE hq.acct, FETCHMODCOLS (col1, col3);
TABLE hq.sales, FETCHMODCOLSEXCEPT (col1, col3);

FILTER (filter_clause)

FILTERは、TABLEおよびMAPに有効です。

FILTERでは、数値に基づいてレコードを選択または除外します。フィルタ式では、条件演算子、Oracle GoldenGate列変換ファンクション、またはその両方を使用できます。

注意:

文字列に基づいてフィルタするには、Oracle GoldenGate文字列ファンクションの1つを使用します。これらのファンクションの詳細は、列変換ファンクションを参照してください。WHEREオプションも使用できます。WHERE (clause)を参照してください。

FILTERコンポーネントはすべてカンマで区切ります。FILTER句には、次を含めることができます。

- 数字

- 数字を含む列

- 数字を返すファンクション

- 算術演算子:
+ (加算)

- (減算)

* (乗算)

/ (除算)

\ (余り)

- 比較演算子:
> (より大きい)

>=(以上)

< (より少ない)

<=(以下)

= (等しい)

<> (等しくない)

比較から導出した結果はゼロ(FALSEを示す)またはゼロ以外(TRUEを示す)になります。

- カッコ(式の結果をグループ化)

- 結合演算子: AND、OR

リテラルは一重引用符で囲みます。データベースに格納されるときのように、大/小文字を区別する列名を指定します。また、大/小文字を区別するのに引用符が必要になるデータベース(Oracleなど)の場合は列名を二重引用符で囲みます。

Oracle GoldenGateでは、マルチバイト・キャラクタ・セットを含む列に対して、FILTERをサポートしています。

レコードのフィルタリングに関するその他の情報

FILTERおよびその他のフィルタリング・オプションの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

FILTER (
[, ON INSERT | ON UPDATE| ON DELETE]
[, IGNORE INSERT | IGNORE UPDATE | IGNORE DELETE]
, filter_clause
[, RAISEERROR error_number]
)

filter_clause

次のように、式に基づいてレコードを選択します。

FILTER ((PRODUCT_PRICE*PRODUCT_AMOUNT) > 10000))

フィルタ句では、次の例のように、Oracle GoldenGateの列変換ファンクションを使用できます。

FILTER (@COMPUTE (PRODUCT_PRICE*PRODUCT_AMOUNT)>10000)

リテラルは一重引用符で囲みます。データベースに格納されるときのように、大/小文字を区別する列名を指定します。また、大/小文字を区別するのに引用符が必要になるデータベース(Oracleなど)の場合は列名を二重引用符で囲みます。

Oracle GoldenGateでは、マルチバイト・キャラクタ・セットまたはローカル・オペレーティング・システムのキャラクタ・セットと互換性のないキャラクタ・セットを含む列に対して、FILTERをサポートしていません。

フィルタ句のファイルの最大サイズは5,000バイトです。

ON INSERT |ON UPDATE |ON DELETE

レコードのフィルタリングを、指定した操作に限定します。次のように、操作はカンマで区切ります。

FILTER (ON UPDATE, ON DELETE,
@COMPUTE (PRODUCT_PRICE*PRODUCT_AMOUNT)>10000)

前述の例では、UPDATE操作およびDELETE操作に対してフィルタを実行しますが、INSERTに対しては実行しません。

IGNORE INSERT |IGNORE UPDATE |IGNORE DELETE

指定した操作にフィルタを適用しません。次のように、操作はカンマで区切ります。

FILTER (IGNORE INSERT, @COMPUTE (PRODUCT_PRICE*PRODUCT_AMOUNT)>10000)

前述の例では、UPDATE操作およびDELETE操作に対してフィルタを実行しますが、INSERTは無視します。

RAISEERROR error

フィルタが失敗したときにユーザー定義のエラー番号を発行します。REPERRORパラメータの入力として使用し、エラー処理を起動できます。errorは、データベースまたはOracle GoldenGateによって使用されているエラー番号範囲外の値にしてください。例: RAISEERROR 21000。

GETBEFORECOLS (column_specification)

GETBEFORECOLSは、TABLEに有効です。

GETBEFORECOLSでは、更新または削除操作中にビフォア・イメージを取得し、トレイルに書き込む列を指定します。GETBEFORECOLSは、Oracle GoldenGateが双方向構成またはマルチマスター構成で競合の検出および解決(CDR)機能を使用しているときに使用します。また、変換ファンクション、またはレコードのビフォア・イメージを必要とするその他の処理機能を使用しているときに使用します。

更新の場合、特定の列が変更されたかどうかにかかわらず、指定した列のビフォア・イメージがトレイルに含まれます。GETBEFORECOLS句で指定される列に加えて、Oracleデータベースは変更された他の列のビフォア・イメージも記録します。サポートされている他のデータベースには、GETUPDATEBEFORESパラメータを使用して、変更された他の列のビフォア値を含めることができます。

注意:

同じパラメータ・ファイルで両方が使用されている場合、GETUPDATEBEFORESはGETBEFORECOLSよりも優先されます。

このパラメータを使用するには、デフォルトでビフォア値を記録しないデータベースに対して、サプリメンタル・ロギングを有効化する必要があります。

同じパラメータ・ファイルで使用されている場合、GETBEFORECOLSは、COMPRESSUPDATESおよびCOMPRESSDELETESよりも優先されます。

このパラメータは、DB2を除くすべてのデータベースに有効です。Oracle GoldenGateでサポートされるすべてのプラットフォームのDB2には、GETBEFORECOLSのかわりにGETUPDATEBEFORESパラメータを使用します。

構文

GETBEFORECOLS(
{ON UPDATE | ON DELETE}
{ALL | KEY | KEYINCLUDING (col[,...])  | KEYANDMOD | | ALLEXCLUDING (col[,...]) }
[,...]
)

{ON UPDATE | ON DELETE}

指定した列のビフォア・イメージを、更新または削除のために取得するかどうかを指定します。ON UPDATEのみ、またはON DELETEのみ、または両方を使用できます。両方使用する場合、同じGETBEFORECOLS句の中に指定します。両方使用する方法は、例を参照してください。

{ALL | KEY | KEYINCLUDING (col[,...]) | KEYANDMOD | ALLEXCLUDING (col[])}

ビフォア・イメージを取得する列を指定します。

ALL

主キーを含む、サポートされているターゲット表のすべてのデータ型列のビフォア・イメージをキャプチャします。サポートされていないすべての列はスキップされ、ExtractまたはReplicatパラメータ・ファイルに情報メッセージとして記録されます。これはExtractに最も高い処理負荷がかかりますが、すべての列を使用して競合検出の比較を実行し、正確性を最大にすることができます。

KEY

主キーのビフォア・イメージのみを取得します。このオプションは最速ですが、キーは一致していても非キー列は異なる可能性があるため、最も正確な競合検出は不可能です。KEYはデフォルトです。

KEYINCLUDING

主キーおよび指定した列のビフォア・イメージを取得します。これは、速度と検出の正確性との間での妥当な方法です。

KEYANDMOD

このオプションは、ExtractおよびReplicatの両方のキー・オプションの拡張として使用します。ソースでのDMLの更新では、Extractがキーおよび変更された列をログに記録します。ターゲットのReplicatは、WHERE句に競合が検出されると、KEYおよびMODIFIED列を使用します。Oracleデータベースでは、変更された列はデフォルトで常に競合検出に使用され、このパラメータによって明示的になります。

ALLEXCLUDING

指定した列を除くすべての列のビフォア・イメージを取得します。多数の列が含まれる表では、KEYINCLUDINGよりもALLEXCLUDINGのほうが効率的な場合があります。キー列は除外しないでください。

例

次の例では、更新および削除操作の際、キー列に加え、name、addressおよびsalaryのビフォア・イメージが常にトレイル・ファイルに書き込まれます。

TABLE src,
GETBEFORECOLS (
ON UPDATE KEYINCLUDING (name, address,  salary),
ON DELETE KEYINCLUDING (name, address, salary));

HANDLECOLLISIONS | NOHANDLECOLLISIONS

HANDLECOLLISIONSおよびNOHANDLECOLLISIONSは、MAPに有効です。

HANDLECOLLISIONSおよびNOHANDLECOLLISIONSでは、Oracle GoldenGateが初期ロードの結果と、同じ表に対して行われたレプリケートされたトランザクション変更を調整するかどうかを制御します。HANDLECOLLISIONSを使用すると、初期ロードが終了してOracle GoldenGateがレプリケートされた変更を適用するときに、Replicatはターゲット表の重複レコードを上書きし、紛失したレコードのエラーには別のエラー処理方法で対処します。

HANDLECOLLISIONSおよびNOHANDLECOLLISIONSは、パラメータ・ファイルのすべてのMAP文に対してグローバルに使用することも、MAP文で指定した表グループに対するON/OFFスイッチとして使用することもできますが、MAP文内で使用することもできます。MAP文で使用する場合は、グローバル指定よりも優先されます。

構文および使用方法は、HANDLECOLLISIONS | NOHANDLECOLLISIONSを参照してください。

INSERTALLRECORDS

INSERTALLRECORDSは、MAPに有効です。

INSERTALLRECORDSパラメータでは、ターゲットに対するすべてのマップ済操作をINSERT操作に変換します。INSERTALLRECORDSは、パラメータ・ファイルのルート・レベル、MAP文内およびMAP文のMAPEXCEPTION句内で使用できます。

構文および使用方法は、INSERTALLRECORDSを参照してください。

INSERTAPPEND | NOINSERTAPPEND

INSERTAPPENDは、MAPに有効です。

INSERTAPPENDおよびNOINSERTAPPENDパラメータでは、ReplicatがOracleターゲット表にINSERT操作を適用するときにAPPENDヒントを使用するかどうかを制御します。これらのパラメータは、Oracleデータベースにのみ有効です。

構文および使用方法は、INSERTAPPEND | NOINSERTAPPENDを参照してください。

KEYCOLS (columns)

KEYCOLSは、TABLEおよびMAPに有効です。

KEYCOLSでは、ターゲット表の1つ以上の列を一意列として定義します。主にKEYCOLSは、表で主キーまたは適切な一意索引が使用できないときに、代替主キーを定義するために使用します。KEYCOLSを使用すると、Replicatが使用する行識別子で使用するための追加の列を指定することもできます。キーまたはKEYCOLS句を使用できない場合、Replicatは表のすべての列を使用し、実質的に完全な表スキャンを実行してWHERE句を作成します。

KEYCOLSによって指定されるキーの列は、行を一意に識別する必要があり、ソース表のキーとして使用される列と一致する必要があります。ソース表には、少なくともターゲット表に指定されているKEYCOLSキーと同じ数のキー列または索引列が含まれている必要があります。そうでなければ、ソースのキー列または索引列を更新する際に、Replicatは余剰なKEYCOLのターゲット列のビフォア・イメージを取得できません。

KEYCOLSを使用して代替キーを定義する際は、次のガイドラインに従ってください。

- ソース表とターゲット表のいずれにもキーまたは一意索引がない場合は、TABLEパラメータおよびMAPパラメータでKEYCOLS句を使用し、各KEYCOLS句に一致する列セットを指定します。

- いずれかの一方の表にキーまたは一意索引がない場合は、その表にKEYCOLSを使用します。他方の表の実際のキー列または索引列と一致する列を指定します。KEYCOLSを使用して一致する列セットを定義できない場合は、ソース表(TABLEパラメータ)およびターゲット表(MAPパラメータ)にKEYCOLSを使用する必要があります。一意の値が含まれる一致する列セットを指定します。KEYCOLSはキーまたは一意索引よりも優先されます。

- ターゲット表にソース表よりも大きなキー(または多くの一意索引列)が含まれている場合は、TABLE文でKEYCOLSを使用し、余剰なターゲット列と一致するソース列を指定します。このKEYCOLS句に実際のソースのキー列または索引列を含める必要もあります。このようにKEYCOLSを使用すると、ソースで非キー列を更新する場合にReplicatでビフォア・イメージを使用できるようになります。

KEYCOLSを使用するときは、指定した列をロギング用に構成し、Replicatがトレイル・レコードで使用できるようにしてください。Oracleデータベースでは、ADD TRANDATAコマンドのCOLSオプションを使用するとロギングを有効にできます。

ターゲット表では、KEYCOLSで定義したキー列に一意索引を作成します。索引によって、Oracle GoldenGateが処理する必要があるターゲット行をより高速に特定できます。

データ・ポンプExtractグループにパススルー・モードで処理される表には、KEYCOLSを使用しないでください。

構文

KEYCOLS (column [, ... ])

column

代替主キーとして使用する列を定義します。主キーまたは一意キーが存在する場合は、これらの列をKEYCOLS指定に含める必要があります。複数の列を指定するには、次のようにカンマ区切りリストを作成します。

KEYCOLS (id, name)

次の列タイプはKEYCOLSでサポートされていません。

- KEYCOLSでサポートされていないOracle列タイプ:
仮想列、UDT、ファンクションベース列、およびOracle GoldenGate構成から明示的に除外されているすべての列。

- KEYCOLSでサポートされていないSQL Server、DB2 LUW、DB2 z/OS、MySQL、SQL/MX、Teradata、TimesTenの列タイプ:
タイプスタンプまたは非マテリアライズド計算結果列を含む列、およびOracle GoldenGate構成から除外されているすべての列。SQL Serverの場合、Oracle GoldenGateは、主キーがないターゲット表の行のデータの長さの合計を、強制的に8000バイトより小さくします。

- KEYCOLSでサポートされていないSybase列タイプ:
計算結果列、ファンクションベース列、およびGoldenGate構成から明示的に除外されているすべての列。

例

TABLE hr.emp, KEYCOLS (id, first, last, birthdate);

MAPEXCEPTION (exceptions_mapping)

MAPEXCEPTIONSは、MAPに有効です。

MAPEXCEPTIONは、エラーを処理するための例外MAP文の一部として使用します。MAPEXCEPTIONは、REPERRORパラメータによって例外としてフラグ付けされている失敗した操作を例外表にマップします。Replicatは、これらの操作の値をその他の情報とともに例外表に書き込みます。

MAPEXCEPTIONは、ソース-ターゲット表マッピングおよびその他の標準のMAPオプションを含む同一のMAP文内で使用できます。ソースおよびターゲット表名には、ワイルドカードを含めることができます。

MAPEXCEPTIONを使用する際は、同一のMAP文内、またはReplicatパラメータ・ファイルのルートで、REPERROR文とEXCEPTIONオプションを使用します。EXCEPTIONSONLYおよびREPERRORを参照してください。

例外処理に関するその他の情報

例外MAP文による例外処理の構成の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

MAPEXCEPTION (TARGET exceptions_table, INSERTALLRECORDS [, exception_MAP_options])

TARGET exceptions_table

例外表の完全修飾名。オブジェクト名の標準のOracle GoldenGateルールが例外表の名前に適用されます。Oracle GoldenGate Windows and UNIXの管理を参照してください。

exception_MAP_options

例外処理に適用するMAPパラメータの有効な任意のオプション。

INSERTALLRECORDS

すべての例外をINSERT操作として例外表に適用します。このパラメータは、MAPEXCEPTIONを使用するときに必須です。

例

次に、例外マッピングでのMAPEXCEPTIONの使用例を示します。MAPおよびTARGET句には、ワイルドカードのソースおよびターゲット表名が含まれています。名前がTRXで始まるすべての表を処理するときに発生する例外が、指定されたマッピングを使用してfin.trxexceptions表に取得されます。

MAP src.trx*, TARGET trg.*,
MAPEXCEPTION (TARGET fin.trxexceptions,
INSERTALLRECORDS,
COLMAP (USEDEFAULTS,
ACCT_NO = ACCT_NO,
OPTYPE = @GETENV ('LASTERR', 'OPTYPE'),
DBERR = @GETENV ('LASTERR', 'DBERRNUM'),
DBERRMSG = @GETENV ('LASTERR', 'DBERRMSG')
)
);

MAPINVISIBLECOLUMNS | NOMAPINVISIBLECOLUMNS

MAPINVISIBLECOLUMNSおよびNOMAPINVISIBLECOLUMNSは、MAPに有効です。

MAPINVISIBLECOLUMNSおよびNOMAPINVISIBLECOLUMNSでは、Replicatがデフォルトの列マッピングでOracleターゲット表の非表示列を含めるかどうかを制御します。明示的な列マッピングを使用しているOracleターゲット表では非表示列が常にマップされるので、このオプションは不要です。

MAPINVISIBLECOLUMNSおよびNOMAPINVISIBLECOLUMNSは、異なる2つの方法で使用できます。グローバル・レベルで指定されている場合、一方のパラメータは、もう一方のパラメータが指定されるまで、それ以降のすべてのMAP文に有効です。MAP文内で使用する場合は、グローバル指定よりも優先されます

構文および使用方法は、MAPINVISIBLECOLUMNS | NOMAPINVISIBLECOLUMNSを参照してください。

REPERROR (error, response)

REPERRORは、MAPに有効です。

REPERRORでは、エラーおよびレスポンスを指定し、MAP文を実行したときにReplicatがエラーに対応する方法を制御します。REPERRORをMAPレベルで使用すると、パラメータ・ファイルのルート・レベルでREPERRORパラメータに設定されているグローバルなエラー処理ルール・セットよりも優先され、このルールを補完できます。自動化された包括的なエラー管理、および無停止のレプリケーション処理を行うために、複数のREPERROR文を同一のMAP文に適用できます。

構文および説明は、REPERRORを参照してください。

RESOLVECONFLICT (conflict_resolution_specification)

RESOLVECONFLICTは、MAPに有効です。

RESOLVECONFLICTは、双方向構成またはマルチマスター構成で使用し、表に対して行われた操作における競合をReplicatが処理する方法をMAP文で指定します。

複数の解決を同じ競合タイプに指定して、RESOLVECONFLICTにリストした順序で実行できます。複数の解決は、INSERTROWEXISTS競合およびUPDATEROWEXISTS競合のみに限定されます。

RESOLVECONFLICTをMAP文に複数回使用して、異なる競合タイプに異なる解決を指定できます。

次に、RESOLVECONFLICTでサポートされているデータ型およびプラットフォームを示します。

- RESOLVECONFLICTは、WindowsおよびUNIX用のOracle GoldenGateでサポートされているすべてのデータベースをサポートしています。

- RESOLVECONFLICTを使用するには、データベースがWindows、LinuxまたはUNIXシステムに存在する必要があります(NonStop OSSで実行中のものを含む)。

- CDRは、明示的な変換を行わずに、単純なSQLで比較できるデータ型をサポートしています。詳細は、個別のパラメータ・オプションを参照してください。

- LOB、抽象データ型(ADT)またはユーザー定義型(UDT)を含む列には、RESOLVECONFLICTを使用しないでください。

- SQL/MXデータベースでBigNumデータ型に対してRESOLVECONFLICTを使用しないでください。

競合解決の構成に関するその他の情報

ユースケースや例など、双方向レプリケーションおよび競合解決の構成の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

RESOLVECONFLICT (
{INSERTROWEXISTS | UPDATEROWEXISTS | UPDATEROWMISSING |
DELETEROWEXISTS | DELETEROWMISSING}
( {DEFAULT | resolution_name},
{USEMAX (resolution_column) | USEMAXEQ (resolution_column) | USEMIN (resolution_column) | USEMINEQ (resolution_column) | USEDELTA |
DISCARD | OVERWRITE | IGNORE}
)
[, COLS (column[,...])]
)

INSERTROWEXISTS | UPDATEROWEXISTS | UPDATEROWMISSING |

DELETEROWEXISTS | DELETEROWMISSING

この解決で処理する競合のタイプ。

INSERTROWEXISTS

挿入された行がターゲット上の一意性制約を違反しています。

UPDATEROWEXISTS

更新された行がターゲット上に存在しますが、1つ以上の列には、データベース内の現在の値と異なるトレイル内のビフォア・イメージがあります。

UPDATEROWMISSING

更新された行がターゲットに存在しません。

DELETEROWEXISTS

削除された行がターゲットに存在しますが、1つ以上の列には、データベース内の現在の値と異なるトレイル内のビフォア・イメージがあります。

DELETEROWMISSING

削除された行がターゲットに存在しません。

DEFAULT | resolution_name

DEFAULT

デフォルトの列グループ。DEFAULT列グループに関連付けられている解決は、明示的に名前が付けられた列グループにないすべての列に使用されます。DEFAULT列グループを定義する必要があります。

resolution_name

特定の解決タイプにリンクしている特定の列グループの名前。解決タイプを識別する名前を指定します。有効な値は英数字です。空白および特殊文字は使用できませんが、アンダースコアは使用できます。たとえば、次のようになります。

delta_res_method

名前が付けられた解決またはDEFAULTのいずれかを使用しますが、両方は使用しないでください。

USEMAX (resolution_column) | USEMAXEQ (resolution_column) | USEMIN (resolution_column) | USEMINEQ (resolution_column) | USEDELTA | DISCARD | OVERWRITE | IGNORE
競合を解決するのに使用される競合ハンドラ・ロジック。有効な解決は次のとおりです。

USEMAX

トレイル・レコード内のresolution_columnの値がデータベース内の列値より大きい場合、適切なアクションが実行されます。

- (INSERTROWEXISTS競合)トレイル・レコードを適用しますが、一意性違反を回避するために挿入を更新に変更し、既存の値を上書きします。

- (UPDATEROWEXISTS競合)トレイル・レコードを更新として適用します。

USEMAXEQ

トレイル・レコード内のresolution_columnの値がデータベース内の列値以上の場合、適切なアクションが実行されます。

- (INSERTROWEXISTS競合)トレイル・レコードを適用しますが、一意性違反を回避するために挿入を更新に変更し、既存の値を上書きします。

- (UPDATEROWEXISTS競合)トレイル・レコードを更新として適用します。

USEMIN

トレイル・レコード内のresolution_columnの値がデータベース内の列値より小さい場合、適切なアクションが実行されます。

- (INSERTROWEXISTS競合)トレイル・レコードを適用しますが、一意性違反を回避するために挿入を更新に変更し、既存の値を上書きします。

- (UPDATEROWEXISTS競合)トレイル・レコードから更新を適用します。

USEMINEQ

トレイル・レコード内のresolution_columnの値がデータベース内の列値以下の場合、適切なアクションが実行されます。

- (INSERTROWEXISTS競合)トレイル・レコードを適用しますが、一意性違反を回避するために挿入を更新に変更し、既存の値を上書きします。

- (UPDATEROWEXISTS競合)トレイル・レコードから更新を適用します。

resolution_column

解決列として機能するNOT NULL列の名前この列は、この解決に関連付けられている列グループの一部である必要があります。ターゲット・データベース内の現在の値と比較する解決列の値によって、解決の適用方法が決定されます。使用可能な場合、解決列のアフター・イメージが比較に使用されます。それ以外の場合、ビフォア・イメージの値が使用されます。単純なSQLで比較できる、次の列を使用します。

- NUMERIC

- DATE

- TIMESTAMP

- CHAR/NCHAR

- VARCHAR/ NVARCHAR

最新のタイムスタンプの解決を使用するには、タイムスタンプ列をresolution_columnとして使用し、行が挿入または更新されたとき、タイムスタンプ列を現在の時刻に設定します。可能な場合、秒の端数をサポートするSYSTIMESTAMPデータ型で、解決列を定義します。秒以下の粒度で比較を実行すると、解決列の値がトレイル内とターゲット内で同じであるケースを解決するタイブレーク競合ハンドラは、ほとんど必要ありません。タイムスタンプ列の値が(解決に応じて)増加のみまたは減少のみであることが確認されている場合、USEMAXおよびUSEMINによってデータ相違が発生することはありません。

注意:

主キー列をUSEMAX文で解決列としてUPDATEROWEXISTS競合に使用しないでください。使用すると、Replicatは次のようなエラーで異常終了します。

2013-04-04 10:18:38  ERROR   OGG-01922  Missing  RESOLUTION COLUMN NAME while mapping to target table "FIN"."ACCT".

USEDELTA

(UPDATEROWEXISTS競合のみ)ターゲット・データベース内の列の現在の値に、トレイル・レコード内の前後の値の差異を追加します。いずれかの値がNULLの場合、エラーが発生します。USEDELTAは、NUMERICデータ型を含む列に基づきます。USEDELTAは、複数のノードで行が同時に更新される場合の複数ノード構成で役立ちます。すべてのノードが同期されるように、列値の差異のみを他のノードに伝播します。

DISCARD

(すべての競合タイプに有効)ターゲット・データベース内の現在の値を保持し、トレイル・レコード内のデータを破棄ファイルに書き込みます。

データ相違が発生する可能性があるため、DISCARDは慎重に使用してください。

OVERWRITE

(DELETEROWMISSINGを除くすべての競合タイプに有効)次のようにトレイル・レコードを適用します。

- (INSERTROWEXISTS競合)トレイル・レコードを適用しますが、一意性違反を回避するために挿入を更新に変更し、既存の値を上書きします。

- (UPDATEROWEXISTS競合)トレイル・レコードから更新を適用します。

- (UPDATEROWMISSING競合)トレイル・レコードを適用しますが、アフター・イメージから変更された列およびビフォア・イメージから変更されていない列を使用して、紛失したUPDATEをINSERTに変換します。更新を挿入に変換するには、行のすべての列のビフォア・イメージがトレイル内で使用できる必要があります。データベースがデフォルトでビフォア・イメージを記録しない場合、サプリメンタル・ロギングを使用し、Extract GETBEFORECOLSパラメータにALLを指定します。

- (DELETEROWEXISTS競合)トレイル・レコードから削除を適用しますが、WHERE句の主キー列のみを使用します。

データ相違が発生する可能性があるため、OVERWRITEは慎重に使用してください。

IGNORE

(すべての競合タイプに有効)ターゲット・データベース内の現在の値を保持し、トレイル・レコードを無視します。ターゲット表または破棄ファイルに適用しないでください。

COLS (column[, ...])
非デフォルト列グループ。これは、特定の解決タイプにリンクし、特定の解決タイプによって操作される、ターゲット・データベース内の列のリスト(マッピング後)です。競合に指定される列グループがない場合、すべての列が、特定の競合に指定される解決の影響を受けます。

または、別の列グループにリストされていないすべての列を含めるDEFAULT列グループを指定できます。DEFAULTオプションを参照してください。

複数の列グループに、それぞれ異なる解決を指定できます。たとえば、col2およびcol3にOVERWRITEを使用し、col4にUSEDELTAを使用できます。いずれかのグループに指定されている列は、他のグループには指定できません。異なる列グループでの列の競合は、指定した解決に従って、リストされた順序で、個別に解決されます。

列グループは次のように機能します。

- INSERTROWEXISTSおよびUPDATEROWEXISTS競合の場合、異なる列グループを使用して、表ごとに複数の競合タイプおよび解決を指定できます。異なる列グループでの列の競合は、列グループに指定した競合解決方法に従って、個別に解決されます。

- UPDATEROWMISSING、DELETEROWEXISTSおよびDELETEROWMISSINGの場合、1つの列グループのみを使用でき、表のすべての列は、この列グループにある必要があります(デフォルトの列グループとみなされます)。

例

次の例の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

例1

次に、USEMAX、OVERWRITE、DISCARDによるすべての競合タイプを例示します。

MAP fin.src, TARGET fin.tgt,
COMPARECOLS (ON UPDATE ALL, ON DELETE ALL),
RESOLVECONFLICT (UPDATEROWEXISTS, (DEFAULT, USEMAX (last_mod_time)),
RESOLVECONFLICT (INSERTROWEXISTS, (DEFAULT, USEMAX (last_mod_time)),
RESOLVECONFLICT (DELETEROWEXISTS, (DEFAULT, OVERWRITE)),
RESOLVECONFLICT (UPDATEROWMISSING, (DEFAULT, OVERWRITE)),
RESOLVECONFLICT (DELETEROWMISSING, (DEFAULT, DISCARD)),
);

例2

次に、USEDELTAおよびUSEMAXを指定したUPDATEROWEXISTSを例示します。

MAP fin.src, TARGET fin.tgt,
COMPARECOLS
(ON UPDATE KEYINCLUDING (address, phone, salary, last_mod_time),
ON DELETE KEYINCLUDING (address, phone, salary, last_mod_time)),
RESOLVECONFLICT (
UPDATEROWEXISTS,
(delta_res_method, USEDELTA, COLS (salary)),
(DEFAULT, USEMAX (last_mod_time)));

例3

次に、USEDELTA、USEMAXおよびIGNOREを指定したUPDATEROWEXISTSを例示します。

MAP fin.src, TARGET fin.tgt,
COMPARECOLS
(ON UPDATE ALLEXCLUDING (comment)),
RESOLVECONFLICT (
UPDATEROWEXISTS,
(delta_res_method, USEDELTA, COLS (salary, balance)),
(max_res_method, USEMAX (last_mod_time), COLS (address, last_mod_time)),
(DEFAULT, IGNORE));

SQLEXEC (SQL_specification)

SQLEXECは、TABLEおよびMAPに有効です。

SQLEXECでは、Oracle GoldenGate処理中にMAP文内からSQLストアド・プロシージャまたは問合せを実行します。SQLEXECにより、Oracle GoldenGateはデータベースと直接通信し、データベースによってサポートされている処理を実行できます。この処理は、列変換のための値の取得など、同期プロセスの一部であっても、データベース内でアクションを実行するストアド・プロシージャの実行など、データの抽出またはレプリケートと関係なくてもかまいません。

構文および使用方法は、SQLEXECを参照してください。

SQLPREDICATE 'WHERE where_clause'

SQLPREDICATEは、TABLEに有効です。

SQLPREDICATEでは、Extractが初期ロードの準備で表からデータを選択するときに使用するSELECT文に、通常のSQL WHERE句を含めます。SQLPREDICATEでは、選択条件で返されるレコードがキー値によって順序付けされます。

SQLPREDICATEは、WHEREまたはFILTERオプションよりも高速な初期ロードの選択方法です。これはSQL文に直接影響し、Extractがフィルタリング前にすべてのレコードをフェッチする必要がありません。

Oracle表の場合、SQLPREDICATEにより、UNDOセグメントに保持されるデータ量が削減され、スナップショットが古すぎるために発生するエラーが低減します。非常に大きな表をロードするときに有益です。

SQLPREDICATE句を使用することにより、複数の並列Extractプロセス間で大きな表の行を分割できます。この構成では、並列配信ロード処理も活用できます。

また、SQLPREDICATEを使用すると、タイムスタンプやその他の基準に基づいてデータを選択し、抽出してターゲット表にロードする行をフィルタすることもできます。SQLPREDICATEでは、ORDER BY句やその他のタイプの選択句も使用できます。

WHERE句には、キーまたは索引の一部である列を必ず含めます。そうしないと、Extractは完全な表スキャンを実行するため、SELECT文の効率が低下します。

SQLPREDICATEは、Oracle、DB2 LUW、z/OS上のDB2、SQL ServerおよびTeradataデータベースに有効です。トランザクション変更を同期するように構成されているExtractグループには、SQLPREDICATEを使用しないでください。表から直接レコードを選択するSELECT文が必要であるため、初期ロードExtractにのみ適しています。

構文

TABLE source_table, SQLPREDICATE 'WHERE where_clause';

WHERE

必須のキーワード。

where_clause

ソース表からレコードを選択する有効なSQL WHERE句。

例

TABLE hr.emp, SQLPREDICATE 'WHERE state = 'CO' and city = 'DENVER''

THREAD (thread_ID)

THREADは、MAPに有効です。このオプションは、Replicatが調整モードである場合に有効です。

THREADでは、同じMAP文のすべてのオブジェクトを指定のReplicatスレッドで処理することを指定します。指定されたスレッドはフィルタリング、操作、ターゲットへの配信、エラー処理、および対象オブジェクトに設定されているその他の作業を扱います。THREADを使用する場合は、TARGET句でワイルドカードを使用できます。

互いに参照依存関係があるテーブルはすべて、同じスレッド内にマッピングされる必要があります。たとえば、表scott.custおよびscott.ordに外部キー関係がある場合、発生する可能性があるマッピングは次のとおりです。

MAP scott.cust, TARGET scott.cust, THREAD (5);
MAP scott.ord, TARGET scott.ord, THREAD (5);

THREADまたはTHREADRANGEオプションが省略されている場合、スレッドIDが最も小さいスレッドで常にバリア・トランザクションは処理されます。さらに、スレッドに明示的に割り当てられていない作業がこのスレッドによって処理されます。たとえば、IDが1から10のスレッドがある場合、バリア・トランザクションと割り当てられていないトランザクションはスレッド1で実行されます。

複数のスレッド間でMAP文を処理するには、THREADRANGE (thread_range, column_list)を参照してください。THREADおよびTHREADRANGEは、相互に排他的なオプションです。同じMAP文でこれらのオプションをあわせて使用しないでください。

Replicatのモードの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成の使用する適用方法の決定およびBATCHSQLを参照してください。

構文

THREAD (thread_ID)

thread_ID

このMAP文を処理するスレッドの数値識別子。有効な値は、1からこのグループを作成したADD REPLICATコマンドのMAXTHREADSオプションで指定した値までです。INFO REPLICATコマンドを使用すると、Replicatグループに許可されているスレッドの最大数を確認できます。スレッドIDを指定する場合、次の条件を満たす必要があります。

- ReplicatグループのすべてのMAP文で指定されているスレッドの合計数の上限は、MAXTHREADSの値です。

- Replicatグループ内で、単一のthread_ID値はMAXTHREADSの値以下である必要があります。たとえば、MAXTHREADSが25の場合、thread_IDを26以上にはできません。

MAXTHREADSを使用しない場合、デフォルトのスレッド最大数は25です。

例

次に、THREADオプションを使用する例をいくつか示します。

例1

この例では、スレッド1で表custを処理します。

MAP scott.cust, TARGET scott.cust, THREAD (1);

例2

この例では、スレッド1でscottスキーマ内のすべての表を処理します。

MAP scott.*, TARGET scott.*, THREAD (1);

例3

この例では、FILTER (filter_clause)および@RANGEファンクションを使用してorders表が2つのMAP文間で分割されます。@RANGEの詳細は、RANGEを参照してください。

MAP scott.orders, TARGET scott.orders, FILTER (@RANGE (1, 2, OID)), THREAD (1);
MAP scott.orders, TARGET scott.orders, FILTER (@RANGE (2, 2, OID)), THREAD (2);

THREADRANGE (thread_range, column_list)

THREADRANGEは、MAPに有効です。このオプションは、Replicatが調整モードである場合に有効です。

THREADRANGEでは、指定された列の値に基づいて、ターゲット表のワークロードをReplicatスレッドの範囲で均一に分割することを指定します。たとえば、IDという列の値に基づいて分割するとき、THREADRANGE値が1から3である場合、スレッド1ではID値が1から10の行を処理し、スレッド2ではID値が11から20の行を処理し、スレッド3ではID値が21から30の行を処理します。ワークロードの内部的計算によって、分割は、前述の例のように完全に均一ではないこともありますが、同じ行は同じスレッドで常に処理されるように調整されます。指定された各スレッドはフィルタリング、操作、エラー処理、ターゲットへの配信、およびその行範囲に対するその他の作業を扱います。

スレッドの範囲で表を分割すると、非常に大きな表または長時間に及ぶトランザクションや大量のトランザクションが頻繁に発生する表への適用パフォーマンスを向上させることができますが、その他のケースで使用することもできます。同じ範囲のスレッドで複数の表を処理できます。

オプションの列リストを省略する場合は、THREADRANGEを使用するときに、ワイルドカードを指定したTARGET句を使用できます。列リストを使用する場合は、同じスレッド範囲を使用している表ごとに、別個の明示的なMAP文を使用します。

1つの特定のスレッドでMAP文を処理するには、THREAD (thread_ID)を参照してください。THREADおよびTHREADRANGEは、相互に排他的なオプションです。同じMAP文でこれらのオプションをあわせて使用しないでください。

相互に参照依存関係がある表は、スレッド範囲に指定しないでください。THREADオプションを使用して、そのような表はすべて同じスレッドで処理します。

THREADRANGEを使用して順序を分割しないでください。調整が必要な場合(順序がSQLEXEC操作の一部である場合など)は、THREADオプションを使用して順序処理を1つのスレッドに分配します。

THREADまたはTHREADRANGEオプションが省略されている場合、スレッドIDが最も小さいスレッドで常にバリア・トランザクションは処理されます。さらに、スレッドに明示的に割り当てられていない作業がこのスレッドによって処理されます。たとえば、IDが1から10のスレッドがある場合、バリア・トランザクションと割り当てられていないトランザクションはスレッド1で実行されます。

Replicatのモードの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成の使用する適用方法の決定およびBATCHSQLを参照してください。

構文

THREADRANGE (lowID-highID, [column[, column][, ...]])

lowID

この範囲の最も小さいスレッド識別子。有効な値は1から500です。

highID

この範囲の最も大きいスレッド識別子。lowIDより大きい数値である必要があります。有効な値はlowID+1から500です。範囲内のスレッド数の上限は、ADD REPLICATコマンドのMAXTHREADSオプションで指定した値です。MAXTHREADSを使用しない場合、デフォルトのスレッド最大数は25です。

[column[, column][, ...]]

オプションです。行分割の基準にする一意列を1つ以上指定します。複数の列を指定するには、col1, col2, col3のようなカンマ区切りリストを使用します。このオプションを省略すると、デフォルトではスレッド間の分割は次の列に基づきます(列は優先度順に示します)。

- 主キー

- 同じMAP文のKEYCOLS句

- キーとして使用することをOracle GoldenGateでサポートされている、表のすべての列

例

次に、OID列の値に基づいて、同じ2つのスレッド間でorders表とorder_lines表を分割する例を示します。

MAP scott.orders, TARGET scott.orders, THREADRANGE (1-2, OID);
MAP scott.order_lines, TARGET scott.order_lines, THREADRANGE (1-2, OID);

TOKENS (token_definition)

TOKENSは、TABLEに有効です。

TOKENSでは、ユーザー・トークンを定義し、データと関連付けます。トークンを使用すると、データを抽出し、トレイル・レコード・ヘッダーのユーザー・トークン・エリア内に保持できます。トークン・データを様々な方法で取得および使用することにより、Oracle GoldenGateのデータ提供方法をカスタマイズできます。たとえば、列マップ、SQLEXECで呼び出されるストアド・プロシージャ、またはマクロでトークン・データを使用できます。

ターゲット表で定義済トークン・データを使用するには、Replicat MAP文のCOLMAP句で、@TOKEN列変換ファンクションを使用します。@TOKENファンクションは、トークン名をターゲット列にマップします。

データ・ポンプExtractグループにパススルー・モードで処理される表には、このオプションを使用しないでください。

トークン・データのキャラクタ・セットは変換されません。トークンは、Extract用ソース・データベースのキャラクタ・セットおよびReplicat用ターゲット・データベースのキャラクタ・セットである必要があります。

ターゲット表がEBCDICではない場合、z/OSシステム上のEBCDICとしてエンコードされているソース表に、このオプションを使用しないでください。

トークンの使用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

TOKENS (token_name = token_data [, ...])

token_name

トークンに付ける名前。任意の数の有効な文字を使用できます(大/小文字区別なし)。マルチバイトの名前はサポートされていません。

token_data

2000バイトまでの有効な文字列。データは、一重引用符(NOUSEANSISQLQUOTESを使用している場合は二重引用符)で囲まれたリテラル、またはOracle GoldenGate列変換ファンクションの結果のいずれかを指定できます。詳細は、USEANSISQLQUOTES | NOUSEANSISQLQUOTESを参照してください。

例

次に、TK-OSUSER、TK-GROUPおよびTK-HOSTという名前のトークンを作成し、これらのトークンを@GETENVファンクションで取得したトークン・データにマップする例を示します。

TABLE ora.oratest, TOKENS (
TK-OSUSER = @GETENV ('GGENVIRONMENT' , 'OSUSERNAME'),
TK-GROUP = @GETENV ('GGENVIRONMENT' , 'GROUPNAME')
TK-HOST =  @GETENV ('GGENVIRONMENT' , 'HOSTNAME'));

TRIMSPACES | NOTRIMSPACES

TRIMSPACESおよびNOTRIMSPACESは、TABLEおよびMAPに有効です。

TRIMSPACESおよびNOTRIMSPACESは、パラメータ・ファイルのルート・レベルか、TABLE文またはMAP文内で使用し、ソースのCHAR列の末尾の空白を、ターゲットのCHAR列またはVARCHAR列に適用するときに切り捨てるかどうかを制御します。デフォルトはTRIMSPACESです。

構文および使用方法は、TRIMSPACES | NOTRIMSPACESを参照してください。

TRIMVARSPACES | NOTRIMVARSPACES

TRIMVARSPACESおよびNOTRIMVARSPACESは、TABLEおよびMAPに有効です。

TRIMVARSPACESおよびNOTRIMVARSPACESは、パラメータ・ファイルのルート・レベルか、TABLE文またはMAP文内で使用し、ソースのVARCHAR列の末尾の空白を、ターゲットのCHAR列またはVARCHAR列に適用するときに切り捨てるかどうかを制御します。デフォルトはNOTRIMVARSPACESです。

構文および使用方法は、TRIMVARSPACES | NOTRIMVARSPACESを参照してください。

WHERE (clause)

WHEREは、TABLEおよびMAPに有効です。

WHEREでは、条件文に基づいてレコードを選択します。WHEREでは次のものはサポートされていません。

- マルチバイト・キャラクタ・セットまたはローカル・オペレーティング・システムのキャラクタ・セットと互換性のないキャラクタ・セットを含む列

- 主キー更新操作の一部として条件文の主キー列のビフォア・イメージの評価

リテラルは一重引用符で囲みます。データベースに格納されるときのように、大/小文字を区別する列名を指定します。また、大/小文字を区別するのに引用符が必要になるデータベース(Oracleなど)の場合は列名を二重引用符で囲みます。

レコードのフィルタリングに関するその他の情報

WHEREおよびその他のフィルタリング・オプションの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

WHERE (clause)

clause

次の例のように、条件に基づいてレコードを選択します。

WHERE (branch = 'NY')

表3-34に、許可されているWHERE演算子を示します。

表3-34 許可されているWHERE演算子

演算子

例

列名

PRODUCT_AMT
"Product_Amt"

数値

-123, 5500.123

一重引用符で囲まれたリテラル文字列

'AUTO', 'Ca'

列テスト

@NULL、@PRESENT、@ABSENT(レコードの列がNULL、存在、不在かのテスト)。これらのテストは、Oracle GoldenGateに組み込まれています。

比較演算子

=, <>, >, <, >=, <=

結合演算子

AND, OR

グループ化用カッコ

複数の要素を論理的にグループ化するには、開きおよび閉じカッコを使用します。

例

次のWHEREの例では、AMOUNT列が10,000を超えるとすべてのレコードを返し、AMOUNTが存在しないとレコードは破棄されません。

WHERE (amount = @PRESENT AND amount > 10000)

3.170 DEFGEN用TABLE

適用対象

DEFGEN

説明

DEFGENパラメータ・ファイルのTABLEパラメータでは、このユーティリティを実行するソース表を指定します。

Oracleコンテナ・データベースの様々なコンテナまたは様々なSQL/MXカタログにあるオブジェクトの定義を同じ定義ファイルに出力できます。大/小文字、キャラクタ・セット、3つの部分からなる完全な名前の使用など、すべての表属性が同一である必要があります。たとえば、2つの部分からなる名前(NOCATALOGパラメータによってコンテナまたはカタログを削除)と3つの部分からなる名前を同じ定義ファイルで使用することはできません。

デフォルト

なし

構文

TABLE [catalog.]owner.table[, DEF template];

[catalog.]owner.table

コンテナ(Oracleコンテナ・データベース)またはカタログ(SQL/MX) (該当する場合)、および表の所有者と名前。このパラメータにはワイルドカードを使用できます。Oracle GoldenGateは、内部記憶域を自動的に増やして最大100,000のワイルドカード・エントリを追跡します。

Oracle GoldenGateは、表名の大/小文字を保持します。一部のデータベースでは、大/小文字を区別するために名前を二重引用符で囲む必要があります。その他の大/小文字を区別するデータベースでは、大/小文字を区別するために二重引用符は不要ですが、データベースに格納される方法で名前を指定する必要があります。オブジェクト名の指定方法は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

DEF template

指定した表の定義に基づいて定義テンプレートを作成します。テンプレートでは、最初にDEFGENを実行する必要や、定義キャッシュを更新するためにOracle GoldenGateプロセスを停止して開始する必要なしに、Oracle GoldenGateプロセスの実行中に、指定した表と同じ定義を持つ新しい表を追加できます。DEFGENで生成されるテンプレートを使用するには、TABLEまたはMAP文のDEFまたはTARGETDEFオプションで指定します。大/小文字の区別を保持するには、データベースで大/小文字を区別するオブジェクトを指定するのと同じ方法でテンプレート名を指定します。このオプションは、初期ロードではサポートされません。

;

TABLE文を終了します。

例

例1

TABLE fin.account;

例2

TABLE fin.acc*;

例3

TABLE fin."acct1", DEF "acctdefs";

3.171 Replicat用TABLE

適用対象

Replicat

説明

Replicatパラメータ・ファイルのTABLEパラメータでは、EVENTACTIONSで指定されているイベント・アクションの対象にするデータ・レコードをトレイルから限定するフィルタリング・ルールを指定します。

注意:

EVENTACTIONSは、ソース・データベースがTeradataで、Extractが最大パフォーマンス・モードで構成されている場合にはサポートされません。

Replicat用TABLE文は、Replicat用MAP文に似ていますが、この文ではTARGET句によってデータ・レコードのソース表からターゲット表へのマッピングを行いません。Replicat用のTABLEは、イベント・レコードを検出したときにReplicatが実行するデータ操作以外のアクションをトリガーする手段としてのみ使用します。Replicatが調整モードの場合は、すべてのアクションが、最小のスレッドIDのスレッドを通じて処理されます。

ターゲット表が指定されないため、次のような制限があります。

- Replicatが表名または列をターゲット表にマップするためのオプションや、Replicatがデータを操作するためのオプションは使用できません。

- ASSUMETARGETDEFSを使用するには、Replicatが表定義を問い合せるためにターゲット表名が必要になるため、Replicat用TABLE文が含まれているのと同じパラメータ・ファイルではASSUMETARGETDEFSパラメータを使用できません。Replicatにソース表の定義を提供するために、ソース定義ファイルを作成する必要があります。このファイルをターゲット・システムに送信し、Replicatパラメータ・ファイルでSOURCEDEFSパラメータを使用してファイルのパス名を指定します。ソース定義の作成の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

- イベント・レコード自体は、Replicatによってターゲット・データベースに適用されません。EVENTACTIONSオプションのIGNOREまたはDISCARDを指定する必要があります。

TABLE文でオブジェクト名を指定する方法は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

EVENTACTIONSおよびイベント・マーカー・システムの使用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

次の構文オプションの説明は、TABLE | MAPを参照してください。

TABLE table_spec,
[, SQLEXEC (SQL_specification), BEFOREFILTER]
[, FILTER (filter_clause)]
[, WHERE (where_clause)]
{, EVENTACTIONS ({IGNORE | DISCARD} [action])}
;

例

次に、特定の受注番号(order_no = 1)に対する挿入操作が含まれる受注トランザクションをReplicatにトレースさせる例を示します。トレース情報は、order_1.trcトレース・ファイルに書き込まれます。MAPパラメータでは、ソース表とターゲット表のマッピングを指定します。

MAP sales.order, TARGET rpt.order;
TABLE sales.order,
FILTER (@GETENV ('GGHEADER', 'OPTYPE') = 'INSERT' AND @STREQ (order_no, 1), &
EVENTACTIONS (TRACE order_1.trc TRANSACTION);

3.172 TABLEEXCLUDE

適用対象

Extract

説明

TABLEEXCLUDEパラメータは、TABLEおよびSEQUENCEパラメータとともに使用して、ワイルドカード指定から明示的に表と順序を除外します。ファイルまたはトレイルを指定するパラメータとの相対でのTABLEEXCLUDEの位置によって、その効果が決定されます。トレイルまたはファイルを指定するパラメータは、EXTFILE、RMTFILE、EXTTRAIL、RMTTRAILです。パラメータは次のように機能します。

- TABLEEXCLUDE指定がTABLEまたはSEQUENCEパラメータの前、かつトレイルまたはファイルを指定するパラメータの前に配置された場合は、すべてのトレイルまたはファイル、およびすべてのTABLEおよびSEQUENCEパラメータにグローバルに適用されます。

- TABLEEXCLUDE指定がトレイルまたはファイルを指定するパラメータの後に配置された場合は、そのトレイルまたはファイル、およびそれに関連付けられているTABLEまたはSEQUENCEパラメータに対してのみ有効です。パラメータ・ファイルには複数のトレイルまたはファイルを指定でき、それぞれの後に一連のTABLE、SEQUENCEおよびTABLEEXCLUDEを指定します。

TABLEEXCLUDEは、関連付けられているTABLEまたはSEQUENCEパラメータを評価する前に評価されます。したがって、それらの出現順序による違いはありません。

ワイルドカードを使用する場合は、すべてのオブジェクトが除外されて何も取得されないような配置にしないよう注意します。たとえば、次の例は何も取得しません。

TABLE cat1.schema*.tab*;
TABLEEXCLUDE cat1.*.*

ワイルドカードの解決のデフォルトはWILDCARDRESOLVE DYNAMICです。したがって、TABLEEXCLUDEで除外された表の名前がワイルドカードを満たす名前に変更された場合は、データが取得されます。DYNAMIC設定により、ワイルドカードを満たす新しい表名が検出されるとすぐに解決され、Oracle GoldenGate構成に組み込まれます。詳細は、「WILDCARDRESOLVE」を参照してください。

EXCLUDEWILDCARDOBJECTSONLYパラメータも参照してください。

デフォルト

なし

構文

TABLEEXCLUDE [container. | catalog.]owner.{table | sequence}

container. | catalog.

3つの部分からなる名前を必要とするデータベースの場合は、除外するオブジェクトを含むOracleコンテナまたはSQL/MXカタログの名前またはワイルドカードを指定します。

owner

除外するオブジェクトの所有者(スキーマなど)の名前またはワイルドカードを指定します。

table | sequence

除外するオブジェクトの名前またはワイルドカード指定。オブジェクト名とワイルドカードを正しく指定するには、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

例

この例では、test.tab*はスキーマtest内のtabで始まるすべての表がすべてのトレイル・ファイルから除外されることを指定します。表fin.acctはトレイルeeから除外されます。表fin.salesはトレイルffから除外されます。

TABLEEXCLUDE  test.tab*
EXTTRAIL ./dirdat/ee
TABLE pdb1.*.*;
TABLEEXCLUDE pdb1.fin.acct
EXTTRAIL ./dirdat/ff
TABLE pdb2.*.*;
TABLEEXCLUDE pdb2.fin.sales

3.173 TARGETDB

適用対象

Replicat

説明

TARGETDBは、接続情報の一部としてデータ・ソース名または識別子を明示的に指定する必要のあるデータベースまたはデータ・セット用のパラメータです。このオプションは、次のいずれかを識別するために必要です。

- 異種データベース用のターゲット・ログイン・データベース。

- ReplicatがODBCを使用してデータベースに接続する場合のターゲット・データ・ソース名(DSN)。

- ターゲットSQL/MXカタログ

TARGETDBに続くMAP文で指定された表は、指定したデータ・ソースのものであるとみなされます。

データ・ソースで要求される認証方法に応じて、TARGETDBパラメータ文でUSERIDまたはUSERIDALIASパラメータの使用が必要になることがあります。

オペレーティングシステム・レベルでの認証を許可するデータベースの場合は、USERIDまたはUSERIDALIASなしでTARGETDBを指定できます。

DB2 LUWの場合は、TARGETDB文は別名ではなく実際の名前でデータベースを参照する必要があります。

詳細は、USERID | NOUSERIDまたはUSERIDALIASを参照してください。

ソース・データ・ソースを指定するには、「SOURCEDB」も参照してください。

デフォルト

なし

構文

TARGETDB data_source[, SESSIONCHARSET character_set]

data_source

データベース名、カタログ名またはデータ・ソース名。

MySQLデータベースの場合、TARGETDB database_name@host_nameの形式を使用して、ローカル・ホスト・ファイルでlocalhostの構成が正しくないことによって発生する接続の問題を回避できます。MySQLがデフォルトの3306以外のポートで実行中の場合、TARGETDB database_name@host_name:portの接続文字列でポート番号を指定する必要があります。

SESSIONCHARSET character_set

Sybase、TeradataおよびMySQLをサポートします。プロセス・ログイン・セッションに対するデータベース・セッションのキャラクタ・セットを設定します。このパラメータは、GLOBALSファイルで指定されるすべてのSESSIONCHARSETより優先されます。

例

例1

次に、USERIDALIASパラメータがない場合のTARGETDBの例を示します。

TARGETDB mydb

例2

次に、USERIDALIASパラメータがある場合のTARGETDBの例を示します。

TARGETDB mydb, USERIDALIAS tiger2

3.174 TARGETDEFS

適用対象

Extract(プライマリおよびデータ・ポンプ)

説明

TARGETDEFSパラメータでは、ターゲット定義ファイルを指定します。ターゲット定義ファイルは、特定のカスケード構成で、またはターゲットがEnscribeファイルの場合に必要です。TARGETDEFSには、ターゲット・システム上に存在する表およびファイルのデータ定義を含む、ソース・システムまたは仲介システム上のファイル名を指定します。ターゲットとしてEnscribeファイルが指定されているTABLE文の前に、少なくとも1つのTARGETDEFSエントリを指定します。

たとえば、各TARGETDEFSファイルに特定のアプリケーションの定義が保持されている場合など、異なる定義を使用するために複数のターゲット定義ファイルが必要なときは、パラメータ・ファイルで複数のTARGETDEFS文を使用できます。

ターゲット定義ファイルを生成するには、DEFGENユーティリティを使用します。Extractを起動する前に、このファイルをソース・システムまたは仲介システムに送信してください。

データ定義ファイルの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

なし

構文

TARGETDEFS file

file

ターゲット定義ファイルの相対パス名または完全修飾パス名。

例

例1

TARGETDEFS C:\repodbc\sales.def

例2

TARGETDEFS /ggs/dirdef/ODBC/tandem_defs

3.175 TCPSOURCETIMER | NOTCPSOURCETIMER

適用対象

Extract

説明

TCPSOURCETIMERおよびNOTCPSOURCETIMERパラメータでは、レポートでの使用を目的として、Oracle GoldenGate環境内にレプリケートされた操作のタイムスタンプを管理します。

TCPSOURCETIMERおよびNOTCPSOURCETIMERはグローバル・パラメータで、Extractパラメータ・ファイル内のすべてのTABLE文に適用されます。

デフォルト

TCPSOURCETIMER

構文

TCPSOURCETIMER | NOTCPSOURCETIMER

TCPSOURCETIMER

データ・レコードが他のシステムに送信されるときにタイムスタンプを調整して、同期ラグの理解を容易にします。これはデフォルトです。

NOTCPSOURCETIMER

元のタイムスタンプ値を保持します。双方向構成でタイムスタンプベースの競合解決を使用している場合、および@GETENV列変換関数の'GGHEADER'、'COMMITTIMESTAMP'を参照するユーザー・トークンを使用している場合は、NOTCPSOURCETIMERを使用します。

3.176 THREADOPTIONS

適用対象

Extract

説明

THREADOPTIONSパラメータでは、スレッドExtractの動作方法を制御します。

GGSCI、Manager、およびExtractを停止および再起動して、変更を有効にします。

デフォルト

なし

構文

THREADOPTIONS
[INQUEUESIZE n]
[OUTQUEUESIZE n]
[PROCESSTHREADS SELECT thread_spec | PROCESSTHREADS EXCEPT thread_spec]
[STACKSIZE bytes]

INQUEUESIZE n

Oracle RACクラスタ内の各プロデューサExtractスレッドの入力キューのキュー・エントリ数を指定します。この値を大きくすると、大量データのパフォーマンスが向上します。この値を小さくすると、アクティビティが非常に少ない環境でデータがより迅速に送信されます。有効な値は16から65535までです。デフォルトは128です。ほとんどの場合、デフォルトで十分ですが、値を大きくする必要がある場合は、ほとんどのタイプの環境で1000で十分です。OUTQUEUESIZEも参照してください。

INQUEUESIZEおよびOUTQUEUESIZEに加え、AIXユーザーは、環境変数AIXTHREAD_SCOPEをS (システム・スコープ)に設定して、プロセスの同時実行をサポートする複数CPUの使用を指定することにより、パフォーマンスを改善できることがあります。システム範囲を使用するには、Managerプロセスを起動するユーザーの.profileファイルに次を追加するか、GGSCIを起動する前に、この変数を手動でエクスポートします。

AIXTHREAD_SCOPE=S
export AIXTHREAD_SCOPE

OUTQUEUESIZE n

Oracle RACクラスタ内の各プロデューサExtractスレッドの出力キューのキュー・エントリ数を指定します。有効な値は8から65535までです。デフォルトは2048です。ほとんどの場合、デフォルトで十分です。

[PROCESSTHREADS SELECT thread_spec | PROCESSTHREADS EXCEPT thread_spec]

処理対象または処理から除外するExtractスレッドを指定します。有効な値:

- シングル・スレッドID (例: 1)

- 範囲(例: 1-5)

ExtractスレッドはREDOスレッドにマップされます。注意: Extractスレッドを処理対象から除外すると、そのデータはターゲット表との同期対象から除外されます。

主に、Extractがアーカイブ・ログ専用(ALO)モードの場合に使用されます。

[STACKSIZE bytes]

Oracle RACクラスタ内の各プロデューサExtractスレッドのスタック・サイズを指定します。有効な値は65536から33554432の範囲で、デフォルトは1048576です。

3.177 TRACE | TRACE2

適用対象

ExtractおよびReplicat

説明

TRACEおよびTRACE2パラメータでは、処理のボトルネックの把握に役立つ、ExtractまたはReplicatの処理情報を取得します。両パラメータとも、DMLおよびDDLのトレースをサポートしています。

またトレースは、GGSCIのSEND EXTRACTまたはSEND REPLICATコマンドを使用して、有効化と無効化を切り替えることもできます。SEND EXTRACTまたはSEND REPLICATを参照してください。

トレースによって重大な処理のボトルネックが明らかになった場合は、Oracleサポートに連絡してください。

デフォルト

トレースしない

構文

TRACE | TRACE2
[, DDL[INCLUDE] | DDLONLY]
[, [FILE] file_name]
[, THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])]

TRACE

ステップバイステップの処理情報を提供します。

TRACE2

ExtractまたはReplicatがほとんどの時間を費やしているコード・セグメントを特定します。

DDL[INCLUDE] | DDLONLY

(Replicatのみ) DDLトレースを有効化し、トレース・レポートにDDLトレースを取得する方法を指定します。

DDL[INCLUDE]

DDLのトレースに加え、トランザクション・データ処理もトレースします。これはデフォルトです。DDLまたはDDLINCLUDEのいずれかが有効です。

DDLONLY

DDLをトレースし、トランザクション・データはトレースしません。

[FILE] file_name
Oracle GoldenGateのトレース情報の記録先ファイルの相対名または完全修飾名。FILEキーワードはオプションですが、次の例のように、ファイル名の後に他のパラメータ・オプションを指定する場合は使用する必要があります。

TRACE FILE file_name DDLINCLUDE

次の例のように、ファイル名の後に他のオプションを指定しない場合は、FILEキーワードを省略できます。

TRACE DDLINCLUDE file_name
THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])
調整Replicatの指定した1つまたは複数のスレッドに対してのみトレースを有効にします。トレースは、実行時にアクティブなスレッドに対してのみ実行されます。

threadID[, threadID][, ...]

スレッドIDを指定するか、スレッドのカンマ区切りリストをthreadID, threadID, threadIDの形式で指定します。

[, thread_range[, thread_range][, ...]

スレッドの範囲をthreadIDlow-threadIDhighの形式で指定するか、範囲のカンマ区切りリストをthreadIDlow-threadIDhigh, threadIDlow-threadIDhighの形式で指定します。

threadID, threadID, threadIDlow-threadIDhighのように、これらの形式を組み合せることができます。

Replicatが調整モードで、TRACEがTHREADSリストまたは範囲とともに使用されている場合は、現在アクティブな各スレッドのトレース・ファイルが作成されます。各ファイル名には、関連付けられているスレッドIDが追加されます。このスレッドIDによるトレース・ファイル識別方法は、SEND REPLICATが(SEND REPLICAT fin003 TRACE...のように) groupnameとthreadIDによって発行される場合、または1つのスレッドのみがTHREADSで指定されている場合には適用されません。

トレースによって重大な処理のボトルネックが明らかになった場合は、Oracleサポートに連絡してください。

例

例1

次の例は、trace.trcというファイルをトレースします。これが調整Replicatグループの場合、トレースはすべてのアクティブなスレッドに適用されます。

TRACE /home/ggs/dirrpt/trace.trc

例2

次の例は、スレッド1に対してのみトレースを有効にします。この場合、1つのスレッドのみトレースされるため、トレース・ファイルにはthreadID拡張子はありません。ファイル名はtrace.trcです。

TRACE THREADS(1) FILE ./dirrpt/trace.trc

例3

次の例は、スレッド1、2および3のトレースを有効にします。すべてのスレッドがアクティブであると想定した場合、トレースはファイルtrace001、trace002およびtrace003を生成します。

TRACE THREADS(1-3) FILE ./dirrpt/trace.trc

3.178 TRACETABLE | NOTRACETABLE

適用対象

ExtractおよびReplicat

説明

TRACETABLEおよびNOTRACETABLEパラメータは、Oracleデータベースとともに使用し、ADD TRACETABLEコマンドで作成されたトレース表を特定します。TRACETABLEは、トレース表がデフォルトのGGS_TRACE以外の名前で作成されている場合にのみ必要です。GGS_TRACEという名前のトレース表がデータベースに存在する場合は、トレース表機能は自動的に有効になり、TRACETABLEの指定は必要ありません。

トレース表は、Replicatが統合モードの場合には使用されません。そのモードでは、TRACETABLEおよびNOTRACETABLEは無視されます。

トレース表は、双方向同期でExtractにReplicatトランザクションを識別させるために使用します。

TRACETABLEを使用する場合、このパラメータはExtractおよびReplicat両方のパラメータ・ファイルに指定する必要があります。

- Replicatパラメータ・ファイルのTRACETABLEは、各トランザクションの開始時に、Replicatに操作をトレース表に書き込ませます。

- Extractパラメータ・ファイルのTRACETABLEでは、Extractに、トレース表に含まれる操作で開始されるすべてのトランザクションをReplicatトランザクションとして識別させます。

NOTRACETABLEを指定すると、Replicatはトレース表に操作を書き込まないため、ExtractはReplicatトランザクションを認識できません。

ReplicatトランザクションをExtractに抽出させるか無視させるかを制御するには、GETREPLICATESおよびIGNOREREPLICATESパラメータを使用します。詳細は、GETREPLICATES | IGNOREREPLICATESを参照してください。

双方向同期の構成手順は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

デフォルト

GGS_TRACE

構文

TRACETABLE [catalog.]owner.table | NOTRACETABLE

[catalog.]owner.table

トレース表のカタログ(統合データベースに格納される場合)、所有者および名前。

例

例1

この例は、2つの部分からなる名前を表示します。

TRACETABLE ggs.excl_trans

例2

この例は、3つの部分からなる名前を表示します。

TRACETABLE user.ggs.excl_trans

3.179 TRAILBYTEORDER

適用対象

GLOBALS

説明

GLOBALSファイルのTRAILBYTEORDERパラメータでは、EXTFILE、EXTTRAIL、RMTFILEおよびRMTTRAILパラメータで作成されたトレイルまたはファイルにメタデータのバイト形式を設定します。デフォルトでは、Extractはソースまたはターゲット・マシンのバイト・オーダーにかかわらず常にトレイル・メタデータをビッグ・エンディアン・バイト・オーダーで書き込みます。

このパラメータは、トレイル・レコードのメタデータにのみ影響します。列データには影響しません。

GLOBALSファイルで使用する場合、TRAILBYTEORDERは同じOracle GoldenGateインスタンス内のすべてのファイルまたはトレイルに影響します。特定のトレイルまたはファイルのバイト・オーダーを指定するには、Extractパラメータ・ファイル内の関連するEXTFILE、RMTFILE、EXTTRAILまたはRMTTRAILパラメータのTRAILBYTEORDERオプションを使用します。Extractが異なるプラットフォーム上の複数のトレイルまたはファイルに書き込む場合、Extractパラメータ・ファイル内のTRAILBYTEORDERにより、それぞれの適切なバイト・オーダーが有効になります。TRAILBYTEORDERがExtractパラメータとして使用される場合は、GLOBALSファイルのTRAILBYTEORDER指定より優先されます。

TRAILBYTEORDERは、ソースおよびターゲット・マシンの両方がリトル・エンディアンを使用する場合に変換操作のオーバーヘッドを低減します。この場合、TRAILBYTEORDERがない場合のデフォルトはBIGENDIANであるため、変換操作はリトル・エンディアンからビッグ・エンディアンに実行し(トレイルに書き込むため)、さらにターゲットでトレイルを読み込むためにビッグ・エンディアンからリトル・エンディアンに実行する必要があります。TRAILBYTEORDERは、ソースおよびターゲット・マシンの両方で使用されるバイト・オーダー(LITTLEENDIAN)をトレイルのバイト・オーダーとして指定できるようにすることで、不要な変換を防止します。

ソースのバイト・オーダーがビッグ・エンディアン、ターゲットがリトル・エンディアンで、変換が必要な場合は、変換をソースとターゲットのどちらで行うかを決定できます。変換をソースで実行するには、TRAILBYTEORDERをLITTLEENDIANに設定します。トレイルがリトル・エンディアンに変換され、ターゲットで変換は不要です。変換をターゲットで実行するには、デフォルトをBIGENDIANに設定したままにします。トレイルのターゲット・システムがビッグ・エンディアンの場合、デフォルトはビッグ・エンディアンであるためTRAILBYTEORDERは不要です。

ソース・マシンのバイト・オーダーが不明でも、その形式を維持し、ソースで変換を実行しない場合は、プライマリExtractまたはデータ・ポンプにNATIVEENDIANオプションを使用します。TRAILBYTEORDERで何も指定しない場合、データ・ポンプは入力トレイルと同じバイト・オーダーを使用してトレイルを書き込みますが、これは目的の形式ではない場合があります。

TRAILBYTEORDERは、FORMAT RELEASEバージョンが12.1以上であるファイルに対して有効です。旧バージョンの場合、このパラメータは無視されます。

NonStopシステムにデータを複製する場合は、TRAILBYTEORDERを使用しないでください。NonStopプラットフォームでは、Oracle GoldenGateはデフォルトのBIGENDIANのみサポートします。

トレイルのメタデータのバイト・オーダーを識別するには、ログダンプ・ユーティリティのENVコマンドを使用します。

デフォルト

BIGENDIAN

構文

TRAILBYTEORDER {BIGENDIAN | LITTLEENDIAN | NATIVEENDIAN}

BIGENDIAN

トレイル・メタデータをビッグ・エンディアンで書式設定します。

LITTLEENDIAN

トレイル・メタデータをリトル・エンディアンで書式設定します。

NATIVEENDIAN

トレイル・メタデータをローカル・システムのデフォルトのバイト・オーダーで書式設定します。出力トレイルをソース・マシンのネイティブ形式に変換できます。

例

TRAILBYTEORDER LITTLEENDIAN

3.180 TRAILCHARSET

適用対象

Replicat

説明

注意:

このパラメータはSOURCECHARSETパラメータに置き換えられていますが、下位互換性のため既存のパラメータ・ファイル内に引き続き保持される可能性があります。

TRAILCHARSETパラメータでは、トレイルが11.2.1.0.0より前のバージョンのExtractによって書き込まれる場合に、ソース・データのキャラクタ・セットを指定します。以前のバージョンでは、ソース・キャラクタ・セットはトレイルに格納されていません。

TRAILCHARSETが使用されている場合、文字型の列をターゲットのキャラクタ・セットに変換する際、Replicatは、指定されたキャラクタ・セットをソース・キャラクタ・セットとして使用します。TRAILCHARSETのキャラクタ・セットを使用する際、Replicatは警告メッセージを表示します。

デフォルトでは、Replicatはキャラクタ・セットの変換を行います。この機能は、CHARSETCONVERSIONパラメータ(デフォルト)およびNOCHARSETCONVERSIONパラメータで制御されます。TRAILCHARSETを使用する場合、NOCHARSETCONVERSIONは使用できません。

デフォルト

オペレーティング・システムのキャラクタ・セット

構文

TRAILCHARSET source_charset [, REPLACEBADCHAR];

source_charset

ソース・データベースのICUキャラクタ・セット識別子またはOracleキャラクタ・セット識別子。Oracleデータベースでは、Replicatパラメータ・ファイルのSETENVパラメータのNLS_LANGに指定されたキャラクタ・セットに変換する場合、Oracle GoldenGateはOracle識別子を対応するICU識別子に変換します。

REPLACEBADCHAR

変換が失敗した場合にReplicatが異常終了しないようにします。失敗した文字は、各ターゲット・キャラクタ・セットの置換文字に置換されます。置換文字は、キャラクタ・セットごとにあらかじめ定義されています。

例

例1

TRAILCHARSET ISO-8859-9;

例2

TRAILCHARSET windows-932, REPLACEBADCHAR;

例3

TRAILCAHRSET EUC-CN;

3.181 TRAILCHARSETASCII

適用対象

z/OS上のDB2のExtract

説明

TRAILCHARSETASCIIを使用すると、データを取得するDB2サブシステムのローカルASCIIコード・ページで文字データがトレイル・ファイルに書き込まれます。

- シングルバイトDB2 z/OSサブシステムでこのパラメータを指定すると、Unicode以外の表からの文字データは、インストールされているASCIIシングルバイトCCSIDでトレイル・ファイルに書き込まれます。EBCDICの表からのデータは、このASCII CCSIDに変換されます。

- マルチバイトDB2 z/OSサブシステムでこのパラメータを指定すると、ExtractはASCIIおよびUnicodeの表のみ処理します。EBCDICの表があると、Extractはエラーで異常終了します。ASCIIの表からのデータは、インストールされているASCII混合CCSIDでトレイル・ファイルに書き込まれます。

ターゲットがマルチバイト・システムの場合、TRAILCHARSETASCIIまたはTRAILCHARSETEBCDICのいずれかが必要です。ASCIIとEBCDICの両方の表をマルチバイトDB2 z/OSターゲットにレプリケートするには、各キャラクタ・セットを別個のOracle GoldenGate処理ストリーム(ASCII表用のExtract、データ・ポンプおよびReplicatと、EBCDIC表用の別のExtract、データ・ポンプおよびReplicat)で処理します。

デフォルト

文字データは、ホスト表のキャラクタ・セットで書き込まれます。

構文

TRAILCHARSETASCII

3.182 TRAILCHARSETUNICODE

適用対象

DB2 for iのExtract

説明

DB2 for iの旧リリースすべてにおいて、Extractではテキスト・データがすべてUnicodeに変換されました。UTF-8 (シングルおよびマルチバイトCCSIDの場合)またはUTF-16 (2バイトCCSIDの場合)のいずれかです。つまりSQLでは、初期ロードまたは標準Extractの証跡で、バイナリ以外のCHAR、VARCHARおよびCLOBデータはすべてUTF-8に変換され、GRAPHIC、VARGRAPHICおよびDBCLOBデータはすべてUTF-16に変換されます。Oracle GoldenGate 12c (12.2.0.1)リリースより前のExtractの証跡フォーマットを使用している場合は、これが引き続き当てはまります。

列のキャラクタ・セット列を持つバージョンに対する旧リリースのdefgenの動作では、-1を指定して、列のキャラクタ・セットがキャラクタ・セットを使用する列のデフォルトであることを示しました。その後で、証跡ヘッダーを使用して列データのキャラクタ・セットを指定(常にUTF-8またはUTF16に設定)しました。

このリリースのデフォルト動作では、Oracle GoldenGate変換でサポートされているキャラクタ・セットを変更せずにパス・スルーできます。これにより、処理対象のレコード内のテキスト・データ量に比例して、自動的にCPU使用量が削減され、Extractのスループット率が向上します。Oracle GoldenGateで変換できないCCSIDがExtractで見つかった場合、Extractは元の動作にデフォルト設定され、旧リリースで行われていたようにテキスト・データを適切なUnicodeキャラクタ・セットに変換します。これにより、新しいExtractからの証跡を処理するどのReplicatでも、Extractのテキスト・データを処理できるようになります。

DB2 for i用Extractの元の動作を使用する場合は、キーワードTRAILCHARSETUNICODEをExtractのprmファイルに追加する必要があります。これにより、旧リリースと同様に、すべてのテキスト・データがUnicodeに変換されます。

または、表定義でCOLCHARSETパラメータを使用して、特定のオブジェクト・レベルまたは列レベルで選択的に古い変換動作に戻すこともできます。

(初期ロード以外の)標準Extractの一般的なprmファイルの例:

- すべてのTABLE文に含まれているオブジェクトのテキスト・データはすべてUnicodeに変換されます。

- - このキーワードが含まれていない場合、Extractはデフォルトでテキスト・データを変換しません
table schema.table, COLCHARSET(UTF-8, ALL)

または

table schema.table, charset(UTF-8)

- この特定のTABLE文に一致するオブジェクトのテキスト・データはすべてUnicode (2バイトの列はUTF-16)に変換されます。
table schema.table, COLCHARSET(UTF-8, TXTCOL4)

- TXTCOL4のみがUTF-8に変換され、他のテキスト・データはすべて変更せずにパス・スルーされます。

注意:

DB2 for i PASEデータベース・レイヤーの機能方法とOracle GoldenGateの内部処理のため、状況によっては引き続きUnicode変換が必要になります。

- 初期ロードExtractは自動的にすべてのデータをUnicodeに変換し、列にUnicodeデータを指定します。

- Oracle GoldenGate 12c (12.2.0.1)リリースより前の証跡フォーマットを使用するExtractでは、テキスト・データをUnicodeへ変換する方法に自動的に戻されます。

- 列関数あるいはSQLEXEC、FETCHCOLUMNSまたはFETCHMODCOLSを含む表指定では、TRAILCHARSETUNICODEが指定されているか、特定の表または列にCOLCHARSET修飾子が含まれるように変更されている必要があります。これは、Replicatが列関数も使用している場合に当てはまります。このような場合、Replicat表にマップされているExtract表がUnicodeとして送信される必要があります。

DEFGENおよびTRAILCHARSETUNICODE

DEFGENの場合、DEFGENでは証跡が生成されないため、TRAILCHARSETUNICODEはサポートされません。TRAILCHARSETUNICODEを使用するか、列のキャラクタ・セットを無効にしてReplicatでdefsファイルを使用する場合、defgenでは、次のようにして同等の列のCHARSETのオーバーライドを指定することも必要です。

- table schema.table, COLCHARSET(ALL, UTF-8)
または

table schema.table, CHARSET(UTF-8)

- この特定のTABLE文に一致するオブジェクトのテキスト・データはすべてUnicode (2バイトの列はUTF-16)に変換されます。
table schema.table, COLCHARSET(TXTCOL4, UTF-8)

- TXTCOL4のみがUTF-8に変換され、他のテキスト・データはすべて変更せずにパス・スルーされます。

このリリースのデフォルト動作では、列のメタデータを必要に応じて操作データとともに証跡データにインラインで含めます。つまり、定義ファイルはOracle GoldenGateレプリケーションで必要なくなり、無視されます。

ただし、Oracle GoldenGate Replicatまたはポンプが、この動作をオーバーライドして定義ファイルを使用するように指定されているか、前の証跡フォーマット・レベルが使用されている場合は、defgen定義ファイルを再作成する必要があります。この場合、その定義とExtractが証跡に書き込む内容が必ず一致するように注意する必要があります。したがって、Extract prmファイル内にあるTRAILCHARSETUNICODEキーワード、CHARSETまたはCOLCHARSET修飾子が、Extractに一致するdefgen prmファイルにも存在する必要があります。

ReplicatのASSUMETARGETDEFS OVERRIDEでも、ExtractがExtractパラメータ・ファイルの表でTRAILCHARSETUNICODEまたは同等のCOLCHARSET修飾子を使用している必要があります。これは、Replicatが引き続きUnicode接続を使用してデータベースに接続し、すべてのテキスト・フィールドをUnicodeとして内部処理しているためです。

デフォルト

なし

構文

TRAILCHARSETUNICODE

3.183 TRAILCHARSETEBCDIC

適用対象

z/OS上のDB2のExtract

説明

TRAILCHARSETEBCDICを使用すると、データを取得するDB2サブシステムのローカルEBCDICコード・ページで文字データがトレイル・ファイルに書き込まれます。

- このパラメータを指定すると、Extractが実行されているジョブのEBCDICコード・ページですべての文字データがトレイル・ファイルに書き込まれます。

- シングルバイトDB2 z/OSサブシステムでこのパラメータを指定すると、Unicode以外の表からの文字データは、インストールされているEBCDICシングルバイトCCSIDでトレイル・ファイルに書き込まれます。ASCIIの表からのデータは、このEBCDIC CCSIDに変換されます。

- マルチバイトDB2 z/OSサブシステムでこのパラメータを指定すると、ExtractはEBCDICおよびUnicodeの表のみ処理します。ASCIIの表があると、Extractはエラーで異常終了します。EBCDICの表からのデータは、インストールされているEBCDIC混合CCSIDでトレイル・ファイルに書き込まれます。

ターゲットがマルチバイト・システムの場合、TRAILCHARSETASCIIまたはTRAILCHARSETEBCDICのいずれかが必要です。ASCIIとEBCDICの両方の表をマルチバイトDB2 z/OSターゲットにレプリケートするには、各キャラクタ・セットを別個のOracle GoldenGate処理ストリーム(ASCII表用のExtract、データ・ポンプおよびReplicatと、EBCDIC表用の別のExtract、データ・ポンプおよびReplicat)で処理します。

デフォルト

文字データは、ホスト表のキャラクタ・セットで書き込まれます。

構文

TRAILCHARSETEBCDIC

3.184 TRAIL_SEQLEN_6D | TRAIL_SEQLEN_9D

適用対象

GLOBALS

説明

証跡ファイルの順序番号の桁数を制御するには、TRAIL_SEQLEN_6D | TRAIL_SEQLEN_9Dパラメータを使用します。TRAIL_SEQLEN_6Dでは証跡に6桁の順序番号が生成され、TRAIL_SEQLEN_9Dでは9桁が生成されます。

デフォルト

TRAIL_SEQLEN_9D

構文

[TRAIL_SEQLEN_9D | TRAIL_SEQLEN_6D]

例

TRAIL_SEQLEN_9D
TRAIL_SEQLEN_6D

3.185 TRANLOGOPTIONS

適用対象

Extract

説明

TRANLOGOPTIONSパラメータでは、Extractと、トランザクション・ログまたはトランザクション・データを渡すAPI(データベースやキャプチャ・モードによって異なる)とのやり取り方法を制御します。TRANLOGOPTIONS文を同一のパラメータ・ファイル内で複数回使用することも、(オプションに許可されている場合は)同一のTRANLOGOPTIONS文内で複数のオプションを指定することもできます。

各TRANLOGOPTIONSオプションは、対象のデータベースに対してのみ使用してください。

デフォルト

なし

構文

TRANLOGOPTIONS {
[{ACTIVATIONIDPADLEN | DATABASEIDPADLEN | THREADPADLEN | SEQPADLEN | RESETLOGSIDPADLEN} width]
[ADGTIMEOUT seconds]
[ACTIVESECONDARYTRUNCATIONPOINT | MANAGESECONDARYTRUNCATIONPOINT | NOMANAGESECONDARYTRUNCATIONPOINT]
[ALLOWTABLECOMPRESSION]
[ALTARCHIVEDLOGFORMAT string] [INSTANCE instance] [THREADID id]
[ALTARCHIVELOGDEST [PRIMARY] [INSTANCE instance] path]
[ALTARCHIVELOGONLY ('path' FILESPEC 'file_pattern']
[[[NOT] RECURSIVE] [PRIMARY])]
[ALTLOGDEST path]
[ARCHIVEDLOGONLY]
[{ASMBUFSIZE size | DBLOGREADERBUFSIZE size}]
[ASMUSER SYS@ASM_instance, ASMPASSWORD password
[algorithm ENCRYPTKEY {key_name | DEFAULT}]
[ASMUSERALIAS alias [DOMAIN domain]]
[ASYNCTRANSPROCESSING buffer_size | NOASYNCTRANSPROCESSING]
[BUFSIZE size]
[CHECKPOINTRETENTIONTIME days]
[CHECKTABLELEVELSUPPLOG]
[COMPLETEARCHIVEDLOGONLY]
[COMPLETEARCHIVEDLOGTIMEOUT seconds]
[DBLOGREADER]
[DBLOGREADERBUFSIZE size]
[EXCLUDETAG [tag | NULL] | [EXCLUDETAG +]
[EXCLUDETRANS transaction]
[EXCLUDEUSER user]
[EXCLUDEUSERID Oracle_uid]
[FAILOVERTARGETDESTID n]
[FETCHLOBIFERROR]
[FETCHPARTIALLOB]
[FETCHPARTIALXML]
[FILTERTABLE table]
[FORCEFETCHLOB]
[GETCTASDML | NOGETCTASDML]
[HANDLEDLFAILOVER]
[IGNOREDATACAPTURECHANGES | NOIGNOREDATACAPTURECHANGES]
[IGNOREDIRECTLOADINSERTS]
[INCLUDEAUX (AUX_specification)]
[INCLUDEREGIONID | INCLUDEREGIONIDWITHOFFSET]
[INTEGRATEDPARAMS (parameter [, ...])]
[LOGRETENTION [ENABLED | SR | DISABLED]
[LOGSOURCE platform, [PATHMAP path]]
[MAXREADSIZE records]
[MAXWARNEOF seconds]
[MINEFROMACTIVEDG | NOMINEFROMACTIVEDG]
[MINEFROMSNAPSHOTSTBY | NOMINEFROMSNAPSHOTSTBY]
[MININGUSER {/ | user}[, MININGPASSWORD password]
[algorithm ENCRYPTKEY {key_name | DEFAULT}] [SYSDBA]
[MININGUSERALIAS alias [DOMAIN domain]]
[NODDLCHANGEWARNING]
[NOFLUSH]
[PATHMAP NFS_mount_point log_path]
[PREPAREFORUPGRADETOIE | NOPREPAREFORUPGRADETOIE]
[PURGEORPHANEDTRANSACTIONS | NOPURGEORPHANEDTRANSACTIONS]
[QUERYRETRYCOUNT number] |
[READQUEUESIZE size]
[READTIMEOUT milliseconds]
[REQUIRELONGDATACAPTURECHANGES | NOREQUIRELONGDATACAPTURECHANGES]
[TRANSCLEANUPFREQUENCY minutes]
[TSLOOKUPBEGINLRI | TSLOOKUPENDLRI]
[USENATIVEOBJSUPPORT | NOUSENATIVEOBJSUPPORT]
[USEPREVRESETLOGSID | NOUSEPREVRESETLOGSID]
[USE_ROOT_CONTAINER_TIMEZONE]
[VAMCOMPATIBILITY {1 | 2 | 3}]
}
[, ...]

{ACTIVATIONIDPADLEN | DATABASEIDPADLEN | THREADPADLEN | SEQPADLEN | RESETLOGSIDPADLEN} width

(Oracle)クラシック・キャプチャ・モードのExtractに有効です

ExtractがALTARCHIVELOGFORMATパラメータでフォーマット指定子%A、%D、%T、%Sおよび%Rを使用してアーカイブ・ログ名を形成する際に最小のデフォルト埋込み長を指定します。対応する数値がフィールド幅より小さい場合は、左にゼロが埋め込まれます。表3-35に、各オプションに関連する指定子とデフォルトの長さを示します。

表3-35 アーカイブ・ログ指定子とデフォルトの埋込み長

オプション

指定子

デフォルトの埋込み長

ACTIVATIONIDPADLEN

%A

8

DATABASEIDPADLEN

%D

8

THREADPADLEN

%T

Windowsでは3、その他のプラットフォームでは4

SEQPADLEN

%S

Windowsでは5、その他のプラットフォームでは10

RESETLOGSIDPADLEN

%R

10

ADGTIMEOUT seconds

(Oracle)クラシック・キャプチャ・モードのExtractに有効です

v$database.current_scnが処理する必要のあるレコードに関連付けられたコミットSCNを過ぎていない場合にExtractがタイムアウトになる間隔を秒単位で設定します。デフォルトは30秒です。Oracle Data Guard環境でキャプチャする際にクラシック・キャプチャ・モードのExtractをサポートします。

ACTIVEMANAGESECONDARYTRUNCATIONPOINT | MANAGESECONDARYTRUNCATIONPOINT | NOMANAGESECONDARYTRUNCATIONPOINT

(SQL ServerおよびSybase) 2次切捨てポイントの管理方法を制御します。

ACTIVESECONDARYTRUNCATIONPOINT

SQL Serverに有効で、Sybaseではサポートされていません。

ExtractがSQL Serverトランザクション・レプリケーションまたはOracle以外の変更データ取得(CDC)実装と並行して実行されない場合、または非ネイティブSQL Serverログ・バックアップがデータベースに対して取られない場合、ACTIVESECONDARYTRUNCATIONPOINTを使用します。これによってExtractでは、一度捕捉されたトランザクションを配布済とマーキングすることで、2次切捨てポイントを管理できるようになります。MANAGESECONDARYTRUNCATIONPOINTモードの場合と異なり、ACTIVESECONDARYTRUNCATIONPOINTモードのExtractはトランザクション・ログ・バックアップから読み取りません。したがって、どこのサードパーティのトランザクション・ログ・バックアップ・ソフトウェアでも使用できます。この構成で2次切捨てポイントを管理するExtractは1つだけのため、同じデータベースから取得する複数のExtractグループがある場合は、ACTIVESECONDARYTRUNCATIONPOINTを使用しないでください。

MANAGESECONDARYTRUNCATIONPOINT

SQL ServerおよびSybaseに有効です。

SQL Serverの使用方法: ExtractがSQL Serverトランザクション・レプリケーションまたはOracle以外のCDC実装と平行して実行されない場合、MANAGESECONDARYTRUNCATIONPOINTを使用します。これによってOracle GoldenGateでは、ハイウォータ・マーク(このマークより古いトランザクションは配布済と想定される)を使用して2次切捨てポイントを保持できるようになります。

このメソッドでは、データベース・トランザクション・ログがExtractによって使用可能および読取り可能であることが必要です。トランザクション・ログ・バックアップ要件の詳細は、SQL ServerのためのOracle GoldenGateのインストールおよび構成を参照してください。このパラメータを、同じデータベースに対する複数Extract構成内の少なくとも1つのExtractで使用する場合は、すべてのExtractグループで使用する必要があります。

Sybaseの使用方法: ExtractがSybase Replication Serverと平行して実行されない場合、MANAGESECONDARYTRUNCATIONPOINTを使用します。これによってExtractでは2次切捨てポイントを管理できるようになります。

NOMANAGESECONDARYTRUNCATIONPOINT

SQL ServerおよびSybaseに有効です。

SQL Serverの使用方法: ExtractがSQL Serverトランザクション・レプリケーションまたはOracle以外のCDC実装と平行して実行される場合、NOMANAGESECONDARYTRUNCATIONPOINTを使用します。SQL Serverレプリケーションに2次切捨てポイントを管理させます。このパラメータを、同じデータベースに対する複数Extract構成内の少なくとも1つのExtractで使用する場合は、すべてのExtractグループで使用する必要があります。

Sybaseでの使用: NOMANAGESECONDARYTRUNCATIONPOINTは、Sybaseトランザクション・ログを切り捨てないときに使用します。Extractは2次切捨てポイントを管理しません。このオプションは、Extractがデバッグ目的で以前のログ位置からSybaseトランザクション・ログの再読取りを行う必要があるときに使用できます。

ALLOWTABLECOMPRESSION
(DB2 LUWバージョン9.5および9.7)

行圧縮で作成された表を、その表にLOBが含まれていないかぎり、Oracle GoldenGateがサポートできるようにします。このパラメータを設定した場合、表が圧縮されているかどうかにかかわらず、LOB列はサポートされません。行圧縮が含まれる表と含まれない行が混在しているソースから取得するには、圧縮対応の表と非圧縮表を、別々のExtractグループを使用して処理してください。

ALTARCHIVEDLOGFORMAT string [INSTANCE instance] [THREADID id]
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

ソース・データベースのアーカイブ・ログ・フォーマットをオーバーライドする文字列を指定します。

Oracle RAC環境では、各ノード上でALTARCHIVEDLOGFORMATパラメータを使用します。Extractがログ・ストリームを区別できるようにするには、INSTANCEまたはTHREADIDオプションを使用します。1つのRACスレッドのデータベースから問い合されるデフォルトのログ・フォーマットは、Extractがログ・フォーマットを見つけられず、INSTANCEまたはTHREADIDで何も指定されていない場合に他のすべてのスレッドに対して想定されます。

ALTARCHIVEDLOGFORMATを含むTRANLOGOPTIONS文には、他のすべてのTRANLOGOPTIONSオプションを含めることはできません。他のオプションを指定するには、別のTRANLOGOPTIONS文を使用してください。

string

OracleのパラメータLOG_ARCHIVE_FORMATと同じ指定子を受け入れます。Extractは、指定されるフォーマット指定子を使用してログ・ファイル名を導出します。例:

arch_%T.arc

INSTANCE instance

Oracle RACで使用します。ALTARCHIVEDLOGFORMATを特定のOracleインスタンスに適用します。Extractは、データベース・カタログに対して、提供された入力を検証します。

例:

TRANLOGOPTIONS ALTARCHIVEDLOGFORMAT &
INSTANCE rac1 log_%t_%s_%r.arc

THREADID id

Oracle RACで使用します。指定のログ・フォーマットを持つインスタンスのスレッド番号を指定します。

例:

TRANLOGOPTIONS ALTARCHIVEDLOGFORMAT &
THREADID 2 log_%t_%s_%r.arc

ALTARCHIVELOGDEST [PRIMARY] [INSTANCE instance] [THREADID id] path
(SQL Server) クラシック・キャプチャ・モードのExtractに有効です。

デフォルト以外の場所に存在するときに、Extractにアーカイブ・ログまたはバックアップOracleトランザクション・ログの場所を示します。Extractはまず指定された場所を確認し、次にデフォルトの場所を確認します。

path

代替ディレクトリのアーカイブ・ログの完全修飾パスを指定します。このディレクトリは、Oracle GoldenGateが実行されているノードにNFSマウントされている必要があります。このマウント・ポイントをALTARCHIVELOGDESTに使用します。

PRIMARY

代替場所でログが見つからない場合に、Extractがデフォルトのログの場所を確認することを防ぎます。ALTARCHIVELOGDESTパスのみが確認されます。PRIMARYは、アーカイブ・ログ専用(ALO)モードで実行しているExtractのデフォルトで、それ以外の場合にはオプションです。

INSTANCE instance

指定したALTARCHIVELOGDEST動作を特定のOracleインスタンスに適用します。RACでこのオプションを使用する場合は、各ノードにALTARCHIVELOGDESTパラメータを指定する必要があります。

THREADID id

指定されたALTARCHIVELOGDEST動作を特定のスレッド番号に適用します。

ALTARCHIVELOGONLY ("path" [FILESPEC "file_pattern"] [[NOT] RECURSIVE])
(Oracle)

Extractは、msdb表をログ・バックアップの場所に問い合せるのではなく、この場所以外のOracleトランザクション・ログ・バックアップから読み取ります。このパラメータは、ログ・バックアップが元の宛先から移動されている場合に使用します。

パラメータ引数はカッコで囲みます。

"path"

パス名を二重引用符で囲んでログ・バックアップに指定します。最後のバックスラッシュ(\)・デリミタの後に、ワイルドカード記号を使用できます。アスタリスク(*)は、ゼロまたはそれ以上の文字と一致します。疑問符(?)は一文字と一致します。

NOT RECURSIVEを使用している場合は、このオプションを使用しないでください。

FILESPEC "file_pattern"

"path"で指定したバックアップ・パス内のファイル・パターンを指定します。ファイル・パターンは二重引用符で囲みます。アスタリスク(*)は、ゼロまたはそれ以上の文字と一致します。疑問符(?)は一文字と一致します。

バックスラッシュ(\)・デリミタは使用しないでください。バックスラッシュを使用すると他のパスも指定できますが、これは無効です。

[NOT] RECURSIVE

"path" で指定されているファイルを再帰的に検索(すべてのサブディレクトリも検索)するかどうかを指定します。

ALTARCHIVELOGDEST ("path” [[NOT] RECURSIVE])
(SQL Server)

デフォルトで、Extractは、MSDBデータベースに問い合せて必要なトランザクション・ログ・バックアップのディスク上の名前と場所を確認します(ACTIVESECONDARYTRUNCATIONPOINTを使用している場合は除く)。なんらかの理由でログ・バックアップが元の場所から移動していたり、リモート共有のパスとして参照される必要がある場合(リモート・サーバー上でALOモードで稼働中のExtractの場合)、ALTARCHIVELOGDESTオプションを使用して新しいトランザクション・ログのネーミング規則またはファイル拡張子を指定します(このどちらかが変更されている場合)。

パラメータ引数はカッコで囲みます。SQL ServerのExtractパラメータ・ファイルには、1つのTRANLOGOPTIONS ALTARCHIVELOGDESTエントリのみ指定できます。複数のエントリが存在する場合は、最後のエントリのみが使用されます。

"path"

パス名を二重引用符で囲んでログ・バックアップに指定します。最後のバックスラッシュ(\)・デリミタの後に、ワイルドカード記号を使用できます。アスタリスク(*)は、ゼロまたはそれ以上の文字と一致します。疑問符(?)は一文字と一致します。

NOT RECURSIVEを使用している場合は、このオプションを使用しないでください。

[NOT] RECURSIVE

"path" で指定されているファイルを再帰的に検索(すべてのサブディレクトリも検索)するかどうかを指定します。

ALTLOGDEST path
(MySQL)

MySQLのログ索引ファイルの場所を指定します。Extractは、データベースのデフォルトの場所ではなく、この場所でログ・ファイルを探します。データベース構成にログの完全パス名が含まれていない場合、またはマシンに複数のMySQLがインストールされている場合に、ALTLOGDESTを使用できます。Extractではログ索引ファイルを読み取り、読取りが必要なバイナリ・ログ・ファイルが検索されます。ALTLOGDESTを使用する場合、Extractでは、ログと索引は同じ場所にあるとみなされます。

ディレクトリの完全パス名を指定します。Windowsでは、次の例のように、パスに空白が含まれる場合にパスを二重引用符で囲みます。

TRANLOGOPTIONS  ALTLOGDEST "C:\Program Files\MySQL\MySQL Server 5.1\log\test.index"
ARCHIVEDLOGONLY
(SQL Server) クラシック・キャプチャ・モードのExtractに有効です。

ARCHIVEDLOGONLYを使用すると、Extractはトランザクション・ログ・バックアップから排他的に読み取ります。このパラメータはExtractをアーカイブ・ログ専用(ALO)モードに設定し、データベース・サーバー以外の異なるWindowsサーバー上でExtractを実行できるようにします。ALOモードはACTIVESECONDARYTRUNCSTIONPOINTパラメータと互換性がありません。アーカイブ・ログ専用モードの詳細は、『SQL ServerのためのOracle GoldenGateのインストールおよび構成』を参照してください。

(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

ARCHIVEDLOGONLYでは、v$logおよびv$archived_logなどのシステム・ビューのログの問合せや検証を行わずに、Extractにアーカイブ・ログからのみ読取りを実行させます。このパラメータにより、Extractはアーカイブ・ログ専用(ALO)モードに入ります。デフォルトでは、Extractは接続先が物理スタンバイ・データベースの場合でも、アーカイブ・ログ専用モードを使用しません。アーカイブ・ログ専用モードの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

ASMBUFSIZE size
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

トランザクション・ログの各読取り結果を保持する内部バッファへの読取り操作の最大サイズ(バイト)を制御します。ソースOracleのリリースが次のいずれかの場合、DBLOGREADERBUFSIZEオプションのかわりにこのオプションを使用します。

- 11.2.0.2より前の11g

- 任意のOracle 11g R1リリース

これらのリリースは、DBLOGREADERオプションでサポートされているOracleリリースで使用できる新しいAPIをサポートしていません。お使いのOracleリリースでサポートされている場合、DBLOGREADERオプションをDBLOGREADERBUFSIZEオプションとともに使用することをお薦めします。

値を大きくすると抽出速度は向上しますが、Extractはより多くのメモリーを消費します。値を小さくすると、メモリーの使用量は減りますが、Extractはキャッシュ・サイズを超えるデータをディスクに保持する必要があるため、I/Oは増加します。

次に、有効範囲とデフォルト・サイズ(バイト)を示します。

- 最小: REDOログの1ブロックのサイズ

- 最大: 4 MB

- デフォルト: 2 MB (2097152)

BUFSIZEオプションの値は、常に少なくともDBLOGREADERBUFSIZEの値以上である必要があります。

ASMUSER SYS@ASM_instance, ASMPASSWORD password [algorithm ENCRYPTKEY {key_name | DEFAULT}]
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

トランザクション・ログを読み取るASMインスタンスにログインするための資格証明を指定します。Oracle GoldenGate資格証明ストアが使用されていない場合にASMUSERALIASのかわりに使用できます。

SYS@ASM_instance

接続文字列のASMインスタンスを指定します。ユーザーはSYSである必要があります。

password

ENCRYPT PASSWORDコマンドの結果からコピーした暗号化パスワードです。

algorithm

パスワードの暗号化に使用した暗号化アルゴリズムを、AES128、AES192、AES256またはBLOWFISHの中から指定します。

ENCRYPTKEY key_name

ENCKEYS参照ファイル内のユーザー作成の暗号化鍵の論理名を指定します。ENCRYPT PASSWORDがKEYNAME key_nameオプションとともに使用された場合に使用します。

ENCRYPTKEY DEFAULT

指定すると、Oracle GoldenGateでランダムな鍵が使用されます。ENCRYPT PASSWORDがKEYNAME DEFAULTオプションとともに使用された場合に使用します。

注意:

このパラメータは、標準のUSERIDパラメータのかわりには使用できません。ASM環境では、両方のパラメータが必要です。ASMUSERは、ログを読み取るためにDBLOGREADERオプションを使用している場合は不要です。

パスワード・セキュリティ機能の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

ASMUSERALIAS alias [DOMAIN domain]
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

トランザクション・ログを読み取るASMインスタンスにログインするための資格証明を指定します。Oracle GoldenGate資格証明ストアが使用されている場合にASMUSERのかわりに使用できます。

alias

ASMインスタンスへのログインに使用されるログイン資格証明の別名を指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。使用する別名が不明な場合は、INFO CREDENTIALSTOREコマンドを発行して資格証明ストアの内容を調べることができます。INFO CREDENTIALSTOREを参照してください。

DOMAIN domain

資格証明ストア内の指定した別名に割り当てるドメインを指定します。

資格証明ストアの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

注意:

このパラメータは、標準のUSERIDALIASパラメータのかわりには使用できません。ASM環境では、両方のパラメータが必要です。ASMUSERALIASは、ログを読み取るためにDBLOGREADERオプションを使用している場合は不要です。

ASYNCTRANSPROCESSING buffer_size | NOASYNCTRANSPROCESSING
(Oracle) 統合キャプチャ・モードのExtractに有効です。

統合キャプチャを非同期処理モードで実行するか、同期処理モードで実行するかを制御し、Extractが非同期モードの場合のバッファ・サイズを制御します。

ASYNCTRANSPROCESSING buffer_size

デフォルトです。非同期トランザクション処理モードには、2つの制御スレッドがあります。

- 一方のスレッドは、論理変更レコード(LCR)をトランザクションにグループ化し、オブジェクトレベルのフィルタリングと部分ロールバック処理を行います。

- 他方のスレッドは、コミットされたトランザクションをフォーマットし、ユーザー指定の変換を実行してトレイル・ファイルに書き込みます。

トランザクション・バッファは、これらの2つのスレッド間のバッファで、あるスレッドから別のスレッドへの転送に使用されます。デフォルト・トランザクション・バッファ・サイズはコミット済トランザクション300件分ですが、キャッシュ・メモリーが不足している場合はOracle GoldenGateメモリー・マネージャによって下方に調整されます。

NOASYNCTRANSPROCESSING

非同期処理を無効にし、Extractを同期モードで動作させます。このモードでは、1つのスレッドですべての取得処理を行います。

BUFSIZE size
(DB2 LUW、DB2 z/OS、Oracle)

トランザクション・ログから読み取られるデータを格納するために割り当てられるバッファの最大サイズ(バイト)を制御します。

- ExtractがファイルベースのREDOを処理しているOracleソースの場合、このパラメータは、バッファへの読取り操作の最大サイズ(バイト)も制御します。

- ExtractがASM REDOを処理しているOracleソースの場合、TRANLOGOPTIONSとASMBUFSIZEまたはDBLOGREADERBUFSIZEが読取りサイズを制御し、どちらの場合もBUFSIZEがバッファ・サイズを制御します。このパラメータは、ASMBUFSIZEまたはDBLOGREADERBUFSIZE (どちらを使用しているかによります)に設定されている値以上である必要があります。

値を大きくすると取得速度は向上しますが、Extractはより多くのメモリーを消費します。値を小さくすると、メモリーの使用量は減りますが、Extractはキャッシュ・サイズを超えるデータをディスクに保持する必要があるため、I/Oは増加します。

次に、有効範囲とデフォルト・サイズ(バイト)を示します。

Oracle:

- 最小: 8,192

- 最大: 10,000,000

デフォルトのバッファ・サイズはREDOデータのソースによって決定されます。

- ファイルベースのREDOの場合、デフォルトは1000KB (1024000)です。

- ASM REDOの場合、デフォルトは1000KB (1024000)です。

- DBLOGREADER REDOの場合、デフォルトは2MB (2097152)です。

- 統合キャプチャ・モードのExtractの場合、デフォルトは1000KB (1024000)です。

DB2 LUW:

- 最小: 40,960

- 最大: 33,554,432

- デフォルト: 131,072

- 前述の値は、4096ページ・サイズの倍数である必要があります。指定された値がこの要件を満たさない場合、Extractは値を切り捨てて倍数にします。

- システム管理者に依頼して、新しいバッファ・サイズをサポートするために十分なECSA領域を確保してください。

CHECKPOINTRETENTIONTIME days
(Oracle) 統合モードのExtractのみに有効です。

パージされる前にExtractがチェックポイントを保持する日数を制御します。部分的な日数は、10進値を使用して指定されます。たとえば、8.25は8日と6時間を指定します。統合キャプチャ・モードのExtractのチェックポイントがパージされる場合、チェックポイントに対応するアーカイブ済REDOログ・ファイルのLogMinerデータ・ディクショナリ情報がパージされ、キャプチャ・プロセスのfirst_scn値は次のアーカイブ済REDOログの最初の変更に対応するSCN値にリセットされます。デフォルトは7日です。キャプチャ・チェックポイントの詳細は、を参照してください。

CHECKTABLELEVELSUPPLOG
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

Extractは、Oracle GoldenGateサプリメンタル・ログ・グループを作成するためにADD TRANDATAコマンドが発行されていない表を検出した場合にレポート・ファイルに警告を送信します。CHECKTABLELEVELSUPPLOGでは、表のユーザー定義ログ・グループ内のキー列が、ADD TRANDATAコマンドで作成されたログ・グループのキー列と同じか、そのスーパーセットであるかどうかも検証されます。キー列がない場合、Extractは異常終了するか、欠落している列のフェッチを試行します。デフォルトでは、CHECKTABLELEVELSUPPLOG検証は無効になります。

COMPLETEARCHIVEDLOGONLY | NOCOMPLETEARCHIVEDLOGONLY
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

Extractのデフォルトのアーカイブ・ログ処理をオーバーライドします。このパラメータは、本番(ソース)アーカイブ・ログをセカンダリ・データベースにコピーし、データ・ソースとして使用するときに適用します。一部のOracleプログラムは、最初のバイトから最後のバイトまで順序どおりにアーカイブ・ログを構築せずに、たとえばまず最初の500MB、次に最後の500MB、そして最後に中間の1000MBをコピーする場合があります。Extractは、最初のバイトから読取りを開始した場合、バイト・シーケンスが中断する部分に到達したときに異常終了します。ファイル全体が書き込まれるまで待機させることにより、この問題を防止できます。

Extractは、完全にディスクに書き込まれるのを待たずにアーカイブ・ファイルの読取りを開始しますが、完了前にデータの取得を開始するかどうかは、COMPLETEARCHIVEDLOGONLYとNOCOMPLETEARCHIVEDLOGONLYのどちらが使用されるかに依存することに注意してください。

COMPLETEARCHIVEDLOGONLY

これは、ALO (アーカイブ・ログ専用)モードのデフォルトです。アーカイブ・ログが完全にディスクに書き込まれるのを待ってから、ExtractにREDOデータの処理を開始させます。通常モードでは、これを使用してデフォルトのNOCOMPLETEARCHIVEDLOGONLYをオーバーライドします。

NOCOMPLETEARCHIVEDLOGONLY

これは通常モードのデフォルトです。Extractは、アーカイブ・ログが使用可能になると、完全にディスクに書き込まれるのを待たずに、即座にアーカイブ・ログからのREDOデータの処理を開始します。ALOモードでは、これを使用してデフォルトのCOMPLETEARCHIVEDLOGONLYをオーバーライドします。

COMPLETEARCHIVEDLOGTIMEOUT seconds
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

COMPLETEARCHIVEDLOGONLYモードのExtractが、REDOログが完全にディスクに書き込まれたかどうかを検証できないときに、検証の再試行を待機する秒数を制御します。このオプションは、TRANLOGOPTIONSのCOMPLETEARCHIVEDLOGONLYオプションとともに使用します。デフォルトでは、このオプションは無効化されており、Extractはファイルがディスクに書き込まれたかどうかを検証できない場合、10秒後に異常終了します。検証では、最後のブロックからブロック・ヘッダーを読み取り、予測される順序番号と照合することにより、最後のブロックが書き込まれたかどうかを判断します。secondsには、0よりも大きい任意の値を使用します。

DBLOGREADER
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

Extractは、Oracle 11.2.0.2およびそれ以降の11g R2バージョン時点で使用可能な新しいAPIを使用します。このAPIは、データベース・サーバーを使用してREDOおよびアーカイブ・ログにアクセスします。DBLOGREADERを使用して、通常のディスクおよびRAWディスク上にログをマイニングでき、Oracle ASMインスタンスに直接接続するかわりに使用できます。使用するデータベース・システムは、このAPIモジュールを含むライブラリを含み、かつ実行中である必要があります。この機能を使用するには、Extractデータベース・ユーザーはSELECT ANY TRANSACTION権限を持っている必要があります。

DBLOGREADERを使用する場合、Extractは最大4MBの読取りサイズを使用できます。これは、DBLOGREADERBUFSIZEオプションで制御されます。デフォルトのOCIバッファを使用するときの最大読取りサイズは、28672バイトです。これは、ASMBUFSIZEオプションで制御されます。バッファを大きくすると、REDO率が高い場合にExtractのパフォーマンスが向上する可能性があります。

DBLOGREADERをASMとともに使用する場合は、TRANLOGOPTIONSのASMUSERまたはASMUSERALIASとASMPASSWORDオプションを使用しないでください。このAPIは、USERIDまたはUSERIDALIASパラメータで指定されたユーザーおよびパスワードを使用します。ASMでのOracle GoldenGateの使用の詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

注意:
REDOおよびアーカイブ・ログが通常のディスクまたはRAWデバイス上にある場合は、DBLOGREADERを使用することもできます。

DBLOGREADERBUFSIZE size
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

ASMでトランザクション・ログの各読取り結果を保持する内部バッファへの読取り操作の最大サイズ(バイト)を制御します。値を大きくすると取得速度は向上しますが、Extractはより多くのメモリーを消費します。値を小さくすると、メモリーの使用量は減りますが、Extractはキャッシュ・サイズを超えるデータをディスクに保持する必要があるため、I/Oは増加します。

ソースASMインスタンスがOracle 11.2.0.2およびそれ以降の11g R2バージョンの場合は、DBLOGREADERBUFSIZEをDBLOGREADERオプションとともに使用します。これらのリリースで新しいASM APIを使用すると、古いリリースの場合よりもパフォーマンスが向上します。Oracleのリリースがこれらのリリースのいずれかではない場合、ASMBUFSIZEを使用する必要があります。

次に、有効範囲とデフォルト・サイズ(バイト)を示します。

- 最小: REDOログの1ブロックのサイズ

- 最大: 4 MB
AIXでは、最大バッファ・サイズが1048576の場合、この最大サイズを超えるバッファを読み取ろうとすると、エラーになります。

- デフォルト: 2 MB (2097152)

ほとんどのケースでは、デフォルト値で十分に機能するはずです。

BUFSIZEオプションの値は、常に少なくともDBLOGREADERBUFSIZEの値以上である必要があります。

[EXCLUDETAG [tag | NULL] | [EXCLUDETAG +]
(Oracle)統合またはクラシック・モードのExtract、プライマリまたはデータ・ポンプに有効です。

EXCLUDETAG tagでは、指定したREDOログでタグ付けされた各レコードを無視するようにExtractプロセスに指示します。Oracle Databaseのすべてのリリースがタグ付けをサポートしているとはかぎりませんが、このパラメータにはデータベース・リリースの制限がありません。古いバージョンと比較すると、新しいトレイル・ファイルにはタグ・トークンが含まれ、古いトレイル・リーダーの問題は発生しません。

EXCLUDETAG +では、REDOログでタグ付けされた各レコードを無視するようにExtractプロセスに指示します。

各レコードをタグ付けするには、Replicatパラメータ・ファイルでSETTAGオプションを指定してDBOPTIONSパラメータを使用します。これらのパラメータを使用して、双方向構成のReplicatの個別のレコードのサイクル(ループバック)を防いだり、他のトランザクションの取得をフィルタリングします。デフォルトのSETTAG値は00です。有効な値は、単一のOracle Streamsタグまたはプラス記号(+)です。タグ値の最大長は、16進数の桁で2000 (0-9 A-F)です。dbms_streams.set_tag操作はEXCLUDETAGでサポートされています。Streamsタグの詳細は、を参照してください。

EXCLUDETRANS transaction
(統合Extract、Sybase、SQL Server)

Replicatデータベース・ユーザーまたは他の任意のユーザーのトランザクション名を指定し、Extractによるこれらのトランザクションの取得を防ぎます。双方向処理で、データベース間でのデータのループを防止するために使用します。

Replicatが使用するデフォルトのトランザクション名はggs_replですが、EXCLUDETRANSでは任意のトランザクションを指定できます。双方向同期の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

EXCLUDEUSER user
(DB2 LUW、DB2 z/OS、Oracle、Sybase)

GETREPLICATESまたはIGNOREREPLICATESパラメータのルール適用対象となるトランザクションを特定するフィルタとして使用する、Replicatデータベース・ユーザーまたは他の任意のユーザーの名前を指定します。通常このオプションは、双方向またはカスケード処理構成で、除外または取得するReplicatトランザクションを特定するために使用します。ただしこのパラメータは、特定のビジネス・アプリケーションなど、その他のユーザーのトランザクションの特定にも使用できます。

EXCLUDEUSERとEXCLUDEUSERIDは、同一のパラメータ・ファイルで使用できます。どちらのパラメータでもワイルドカードは使用しないでください。

ユーザー名は有効である必要があります。Oracle GoldenGateは、データベースに問い合せて関連するユーザーIDを取得し、この数値識別子をユーザー名にマップします。そのため、名前解決がデフォルトのDYNAMICRESOLUTIONに設定されているときに、指定されたユーザーが削除および再作成された場合、EXCLUDEUSERは有効のままです。名前解決がNODYNAMICRESOLUTIONに設定されているときに同一のトランザクションが実行された場合、EXCLUDEUSERは無効になるため、EXCLUDEUSERを有効にするためにExtractを停止および再起動する必要があります。詳細は、DYNAMICRESOLUTION | NODYNAMICRESOLUTIONを参照してください。

- z/OS上のDB2での考慮事項: z/OS上のDB2では、このユーザーは常にトランザクションのプライマリ許可IDで、通常はログオンした元のRACFユーザーのIDですが、トランザクション・プロセッサまたはDB2イグジットによって変更されているときは、別の許可IDの場合もあります。

- Oracleでの考慮事項: Oracleデータベースでは、複数のEXCLUDEUSER文を使用できます。指定されたすべてのユーザーは、GETREPLICATESまたはIGNOREREPLICATESルールの対象になるという意味で、Replicatユーザーと同一とみなされます。他のすべてのサポート対象データベースとは異なり、適切に操作するにはEXCLUDEUSERにIGNOREAPPLOPSパラメータを含める必要があります。

EXCLUDEUSERID Database_uid
(Informix、Oracle) Extractに有効です。

GETREPLICATESまたはIGNOREREPLICATESパラメータのルール適用対象となるトランザクションを特定するフィルタとして使用する、Replicatデータベース・ユーザーまたは他の任意のユーザーのデータベース・ユーザーID (uid)を指定します。GETREPLICATESまたはIGNOREREPLICATESパラメータはInformixではサポートされません。

使用方法はEXCLUDEUSERと同じです。

Oracle_uidは、負でない整数で、最大値は2147483638です。ユーザーIDを取得するために問い合せることのできるシステムはいくつかあります。最も簡便なものはALL_USERSビューです。Oracle GoldenGateは、ユーザーIDを検証しません。指定したユーザーIDに関連付けられているユーザーが削除および再作成された場合、このユーザーには新しいユーザーIDが割り当てられるため、このユーザーにはEXCLUDEUSERIDは無効になります。

FAILOVERTARGETDESTID n
(Oracle) Extractに有効です。

Oracle Data Guardスタンバイ・データベースにまだ適用されていないREDOデータを抽出しない処理に関して、どのスタンバイ・データベースの後にOracle GoldenGate Extractプロセスがとどまるようにする必要があるかを指定します。適切な値for_FAILOVERTARGETDESTIDを特定するには、archive_log_destdatabase初期化パラメータを適切なアーカイブ・ログ宛先識別子であるnとともに使用します。

FETCHLOBIFERROR
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

REDOログからのLOBキャプチャの結果が、不完全なデータなどのエラーになる場合、Extractのデフォルトの異常終了をオーバーライドします。REDOログからLOBを読み取る際にエラーが発生する場合、Extractに、データベースからLOBをフェッチさせます。

注意:

フェッチが発生する前に値が削除された場合、ExtractによってNULLがトレイルに書き込まれます。フェッチの前に値が更新された場合、Extractによって更新された値が書き込まれます。これらの不正を回避するには、Extractのレイテンシを少なくしてください。チューニング・プロセスのパフォーマンスについては、Oracle GoldenGateの管理for Windows and UNIXのガイドラインを参照してください。また、フェッチ・オプションの設定方法は、FETCHOPTIONSを参照してください。

「FORCEFETCHLOB」オプションも参照してください。

FETCHPARTIALLOB
(Oracle) 統合キャプチャ・モードのExtractに有効です。

Oracle以外のターゲットにレプリケートする場合、またはLOBイメージ全体が必要なその他の場合にこのオプションを使用します。REDOレコードからの部分的な変更オブジェクトを使用せずに、Extractに完全なLOBオブジェクトをフェッチさせます。デフォルトでは、データベース・ログマイニング・サーバーは、ソースLOBのすべてが更新されたか一部が更新されたかに応じて、LOBの全体または一部をExtractに送信します。LOBのスナップショットが確実に正しいものになるように、Oracle Flashback機能を表に対して有効にし、Extractが使用するように構成する必要があります。ExtractのFETCHOPTIONSパラメータはフェッチを制御し、USESNAPSHOT (NOUSESNAPSHOTがない場合のデフォルト)に設定する必要があります。Flashbackスナップショットがない場合、Extractは表からLOBをフェッチしますが、REDOレコードが生成された時点とは異なるイメージである可能性があります。

FETCHPARTIALXML
(Oracle) 統合キャプチャ・モードのExtractに有効です。

Oracle以外のターゲットにレプリケートする場合、またはLOBイメージ全体が必要なその他の場合にこのオプションを使用します。REDOレコードからの部分的な変更イメージを使用せずに、Extractに完全なXMLドキュメントをフェッチさせます。デフォルトでは、データベース・ログマイニング・サーバーは、ソースXMLのすべてが更新されたか一部が更新されたかに応じて、XMLドキュメントの全体または一部をExtractに送信します。XMLのスナップショットが確実に正しいものになるように、Oracle Flashback機能を表に対して有効にし、Extractが使用するように構成する必要があります。ExtractのFETCHOPTIONSパラメータはフェッチを制御し、USESNAPSHOT (NOUSESNAPSHOTがない場合のデフォルト)に設定する必要があります。Flashbackスナップショットがない場合、Extractは表からXMLドキュメントをフェッチしますが、REDOレコードが生成された時点とは異なるイメージである可能性があります。

ADGAPPLYCHECKFREQ seconds
Oracleの統合Extractに有効です。ADGのキャッチ・アップを確認する各フェッチ・チェック間でExtractが待機する秒数を指定します。数値を小さくするとレイテンシは向上しますが、current_scn from v$databaseの問合せ数は増加します。デフォルト値は3秒で、最大値は120秒です。

ADGCRETRYCOUNT number
Oracleの統合Extractに有効です。ADGのキャッチ・アップの待機時に、ExtractがADGの進捗または進捗がない理由を報告するまでの、Extractの試行回数を指定します。この値にFETCHCHECKFREQを乗算することで、ADGの進捗を報告するおおよその頻度が決まります。

FILTERTABLE table
(MySQLおよびSQL/MXのExtract)

このオプションでは、Replicatが使用するチェックポイント表の完全修飾名を指定します。チェックポイント表上の操作は、ソースへのデータのループバックを防止する手段として、ローカルExtractによって無視されます。チェックポイント表の作成の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。オブジェクト名とワイルドカードを正しく指定するには、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

FORCEFETCHLOB
(Oracle)クラシックおよび統合キャプチャ・モードのExtractに有効です。

REDOログからLOBデータを取得するデフォルトの動作をオーバーライドします。デフォルトでは、データベースからLOBをフェッチさせます。

注意:

フェッチが発生する前に値が削除された場合、ExtractによってNULLがトレイルに書き込まれます。フェッチの前に値が更新された場合、Extractによって更新された値が書き込まれます。これらの不正を回避するには、Extractのレイテンシを少なくしてください。Oracle GoldenGateドキュメントにプロセスのパフォーマンス・チューニングのガイドラインが記載されています。また、フェッチ・オプションの設定方法は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

GETCTASDML | NOGETCTASDML
CREATE TABLE AS SELECT (CTAS)機能を有効にします。GETCTASDMLが有効な場合、CTAS DMLはLogMinerから送信され、ターゲットでレプリケートされます。CTAS DDLの実行はターゲットで抑止されます。このパラメータは、DDLメタデータ・トリガーの使用中は有効にできません。CTAS機能を有効にして生成されるトレイル・ファイルは、12.1.2.1.0未満のバージョンのReplicatでは使用できません。

GETCTASDMLでは、CTASでCTASの挿入をリプレイできるため、レプリケーション中にOIDを保持できます。このパラメータは、統合ディクショナリでのみサポートされるため、トレイルを使用するには、ダウンストリームReplicatが12.1.2.1以上である必要があり、そうでないと、相違が生じる場合があります。

HANDLEDLFAILOVER
(Oracle)統合Extractのみに有効です。

ファスト・スタート・フェイルオーバー・スタンバイ・データベースの適用進捗に基づいて、Extractがトレイル・データの書込みを抑制するかどうかを制御します。この目的は、データ損失のフェイルオーバーに対してExtractを安全に保つことです。Data Guard構成のデータ損失に対して、これとファスト・スタート・フェイルオーバー(FSFO)を使用している場合は、ロール・トランジション後に、FAILOVERTARGETDESTID Extractパラメータを設定して、スタンバイを接続できる場所にアーカイブ・ログの宛先をID指定する必要があります。

IGNOREDATACAPTURECHANGES | NOIGNOREDATACAPTURECHANGES
(DB2 LUW)

DATA CAPTURE CHANGESが設定されていない表をExtractがキャプチャするかどうかを制御します。IGNOREDATACAPTURECHANGESは、DATA CAPTURE CHANGESが設定されていない表を無視します。表がワイルドカードで指定されている場合に、変更取得セットが含まれている表の処理を継続するために使用します。スキップされた表に対する警告がエラー・ログに発行されます。デフォルトはNOIGNOREDATACAPTURECHANGESです。

IGNOREDIRECTLOADINSERTS
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

ExtractにすべてのOracleダイレクト・ロードINSERTを無視させます。デフォルトの動作(このパラメータなし)では、Oracleダイレクト・ロードINSERTを取得します。このオプションは、Oracle 10g以上のログと互換性があるOracleログに適用されます。

INCLUDEAUX (AUX_specification)
Oracle GoldenGate VAMSERVコンポーネントに、監査証跡の読取り時に指定したAUXトレイルのみキャプチャするように指示します。このパラメータは、一部のAUXトレイルがキャプチャするデータを含まず無視できることがわかっている場合にパフォーマンスを向上させることができます。このパラメータでは、キャプチャするAUXトレイルのみ指定します。

AUX_specificationは、キャプチャするAUXトレイルを表す数値です。複数のAUXトレイルを指定するには、カンマ区切りリストを使用します。たとえば、次の文にはAUXトレイルBB & CC = 1, 2が含まれます。

TRANLOGOPTIONS INCLUDEAUX (1, 2)

MATのみ含めるかすべてのAUXトレイルを除外するには、次の例のようにカッコ内にスペースを1つ配置します。

TRANLOGOPTIONS INCLUDEAUX ( )
INCLUDEREGIONID | INCLUDEREGIONIDWITHOFFSET
(Oracle) どちらのキャプチャ・モードのExtractにも有効です。

これらのオプションは、TZR (US/Pacificなどのタイムゾーン・リージョンを表す)として指定されたOracleデータ型TIMESTAMP WITH TIME ZONEをサポートします。デフォルトでは、Extractは、タイムゾーン・リージョンが含まれる場合、TIMESTAMP WITH TIME ZONEで異常終了します。これらのオプションにより、ターゲット・データベース・タイプに基づいて、このタイムスタンプを処理できます。

ソースのデータ型がTIMESTAMPで、リージョンIDマッピング・トークンがあることが検出された場合、Extractは次のようにタイムスタンプを適用します。

- ターゲットのOracleリリースでサポートされている場合、TIMESTAMP WITH TIME ZONEとTZRが適用されます。

- Oracle以外のデータベース、または、TIMESTAMP WITH TIME ZONEとTZRをサポートしていない以前のリリースのOracleには、タイムスタンプとUTCオフセットが適用されます。

INCLUDEREGIONID

Oracleソースから、同じリリース以降のOracleターゲットにレプリケートする場合に使用します。INCLUDEREGIONIDを指定すると、Extractは、列索引と2バイトのTMZ値をタイムゾーン・マッピング・トークンとして追加し、それをYYYY-MM-DD HH:MI.SS.FFFFFF +00:00のUTCフォーマットでトレイルに出力します。

INCLUDEREGIONIDWITHOFFSET

v10g以降のOracleソースから10gより前のOracleターゲットに、または、OracleソースからOracleデータベースではないターゲットに、TZR としてTIMESTAMP WITH TIME ZONEをレプリケートする場合に使用します。INCLUDEREGIONIDWITHOFFSETを指定すると、Extractは、タイムゾーン・リージョン値を、日時に基づいて夏時間を考慮する時間オフセットに変換します。タイムスタンプ・データは、ローカル時間で、YYYY-MM-DD HH:MI.SS.FFFFFF TZH:TZM (TZH:TZMは時間オフセットに変換されたリージョンID)のフォーマットで、トレイルに書き込まれます。

INTEGRATEDPARAMS (parameter value [, ...])
(Oracle) 統合キャプチャ・モードのExtractに有効です(Oracle StandardまたはEnterprise Edition 11.2.0.3以降)。

Extractが統合キャプチャ・モードの場合、パラメータと値をOracleデータベース・ログマイニング・サーバーに渡します。入力は次のようにparameter valueの形式である必要があります。

TRANLOGOPTIONS INTEGRATEDPARAMS (downsream_real_time_mine Y)

有効なparameter指定とその値は次のとおりです。

max_sga_size

データベース・ログマイニング・サーバーによって使用されるSGAメモリーの量を指定します。正の整数をMB単位で指定できます。streams_pool_sizeが1GBより大きい場合、デフォルトは1GBです。それ以外の場合、streams_pool_sizeの75%がデフォルトになります。

parallelism

データベース・ログマイニング・サーバーをサポートしているプロセスの数を指定します。正の整数を指定できます。デフォルトは2です。

downstream_real_time_mine

統合キャプチャがダウンストリーム・マイニング・データベースをリアルタイム・モードでマイニングするかどうかを指定します。値Yでは、リアルタイムの取得を指定し、スタンバイREDOログがダウンストリーム・マイニング・データベースで構成されている必要があります。値Nは、ダウンストリーム・マイニング・データベースに転送されたアーカイブ・ログから取得することを指定します。デフォルトはNです。

LOGRETENTION [ENABLED [DAYS n] | SR | DISABLED]
(Oracle Enterprise Edition)クラシック・キャプチャ・モードのExtractに有効です。

Extractがリカバリに必要とするログ・ファイルをOracle Recovery Manager (RMAN)が保持するかどうかを指定します。REGISTER EXTRACTコマンドを使用している場合、現在のデータベースSCNに基づいて、コマンドが発行された時点からログを保持します。ログは、手動で削除するまで保持されます。このパラメータは、データベース自体の中のRMANを有効化または無効化しません。

LOGRETENTIONに関するその他の情報:

- Oracleフラッシュ・リカバリ記憶域がいっぱいの場合、Extractで必要とされていても、RMANによってアーカイブ・ログがパージされます。この制限は、Extract (および他のOracleレプリケーション・コンポーネント)の要件がデータベースへのREDOの可用性を妨げないようにするために存在します。

- Extractに割り当てられていて、USERIDまたはUSERIDALIASパラメータで指定されているデータベース・ユーザーは、DBLOGINパラメータに必要な権限と同じ権限を持っている必要があります。詳細は、DBLOGINを参照してください。

- LOGRETENTIONでは、基盤の(ただし機能しない) Oracle Streamsキャプチャ・プロセスを利用します。そのため、データベースはOracleのEnterprise Editionリリース11g以上である必要があります。Oracle Standard EditionおよびExpress Editionはこの機能をサポートしていません。LOGRETENTION機能は、他のStreamsインストールと同時に動作できます。

注意:

Oracle RACでRMANログ保存をサポートするには、Extractグループを追加する前にBUGFIX 11879974で提供されているデータベース・パッチをダウンロードおよびインストールする必要があります。

ENABLED [DAYS n]

ログ保持機能を有効化します。OracleデータベースのExtractがアーカイブ・ログ専用(ALO)モードの場合を除いて、これはデフォルトです。REGISTER EXTRACTコマンドをLOGRETENTIONオプションとともに使用して、Extractをデータベースに登録する必要があります。

デフォルトでは、ENABLEDはBounded RecoveryチェックポイントのSCNを適用し、そのポイントまで(そのポイントも含む)のログを保持します。このチェックポイントは、オープンしている最も古いnon-persistedトランザクションのログ・ファイルを表します。Bounded Recoveryの問題が永続データに影響する場合、オープンしている最も古いトランザクションを再処理するのに必要なログが使用できる必要があります。

DAYSオプションを使用すると、特定の日数(1から365までの整数)の間、ログを保持できます。DAYSのデフォルトは7日間です。

より保守的にするには、かわりにSRオプションを使用できます。Bounded Recovery機能の詳細は、BRを参照してください。

SR

ログ保持機能を有効化しますが、Extractが標準(通常)リカバリ・モードに戻るのに必要なログのSCNまで(そのSCNも含む)のログを保持します。標準モードでは、Extractは、メモリーにあったオープンしている最も古いトランザクションを含むログにアクセスする必要があります。SRを使用することは、Bounded Recoveryモード(デフォルト)で保持されるログより多いログを保持する保守的な方法ですが、Bounded Recoveryが失敗した場合にデータの可用性を確認します。REGISTER EXTRACTコマンドをLOGRETENTIONオプションとともに使用して、Extractをデータベースに登録する必要があります。

DISABLED

ログ保持機能を無効化します。OracleソースのExtractがアーカイブ・ログ専用(ALO)モードで動作している場合、これはデフォルト設定ですが、必要に応じてオーバーライドできます。REGISTER EXTRACTコマンドを使用してExtractを登録した場合は、ログ保持の無効化後にUNREGISTER EXTRACTコマンドを使用して関連するExtractグループをデータベースから登録解除します。詳細は、UNREGISTER EXTRACTを参照してください。

LOGSOURCE platform, [PATHMAP path]
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

REDOログまたはアーカイブ・ログ、またはその両方が、データベースをホストしているプラットフォーム以外のプラットフォームに保持されているときに、そのオペレーティング・システムおよびパス名(オプション)を指定します。LOGSOURCEを使用するときは、TRANLOGOPTIONS文全体を1行にまとめてください。アンパサンド(&)行終了文字を使用して行を複数に分割しないでください。

platform

REDOまたはアーカイブ・ログをホストするプラットフォームを指定します。有効な値:

- AIX

- HPUX

- LINUX

- MVS

- SOLARIS

- VMS

- WINDOWS

- S390

正しいデータ位置を保持するために、指定したplatformとExtractを実行するプラットフォームは、エンディアン・オーダーとビット幅(32ビット、64ビットなど)が同一である必要があります。次に互換性のあるエンディアン・プラットフォームを示します。

- ビッグ・エンディアン: AIX、HPUX、MVS、SOLARIS、S290

- リトル・エンディアン: LINUX、VMS、WINDOWS

たとえば、ExtractをHPUXで実行している場合、LOGSOURCE platformをAIXに設定すると有効ですが、LINUXは無効です。

PATHMAP path

ログへのパスを指定します。

MAXREADSIZE records
Sybaseに有効です。

Extractでトランザクション・ログから一度に読み取られるレコードの数を指定します。パフォーマンスの向上に使用できます。有効な値は、1から50000までの整数です。デフォルトは256レコードです。このパラメータを高い値に調整するときは注意してください。これにより、Extractが2次切捨てポイントを調整する頻度が減り、ログ・データが蓄積されることがあります。高い値に調整する前に、10000から開始して、パフォーマンスを評価してください。

MAXWARNEOF seconds
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

警告メッセージを生成するまで、Extractが新しいログ・ファイルを待機する秒数を指定します。Extractは、特定の順序番号に対して警告メッセージを1つのみ生成します。MAXWARNEOFを指定しない場合、Extractはデフォルトで1時間待機します。値0を指定すると、Extractが待機した時間にかかわらず、警告メッセージは生成されません。

MINEFROMACTIVEDG
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

ExtractでREDOをActive Data Guardインスタンスからマイニングできるように指定します。このパラメータがないと、Extractは異常終了してエラーになります。Oracle Data Guard環境でキャプチャする際にクラシック・キャプチャ・モードのExtractをサポートします。MINEFROMACTIVEDGはDBLOGREADERをサポートせず、ASMストレージでのREDOログの読取りについてASMUSERのみをサポートします。

MININGUSER {/ | user} [, MININGPASSWORD password] [algorithm ENCRYPTKEY {key_name | DEFAULT}] [SYSDBA]]
(Oracle) 統合キャプチャ・モードのExtractに有効です。

ログマイニング・サーバーとやり取りするダウンストリームOracleマイニング・データベースにログインするための、Extractのログイン資格証明を指定します。Oracle GoldenGate資格証明ストアが使用されていない場合にMININGUSERALIASオプションのかわりに使用できます。

ユーザーは、次を満たす必要があります。

- dbms_goldengate_auth.grant_admin_privilegeで付与される権限を持っている。

- このMININGUSERALIASに関連付けられているExtractグループに、MININGDBLOGINまたはMININGDBLOGINALIASおよびREGISTER EXTRACTまたはUNREGISTER EXTRACTコマンドを発行するユーザーである。

- Extractが統合キャプチャ・モードである間は変更されない。

/

データベース・ユーザー・ログインではなく、Oracle用のオペレーティングシステム・ログインを使用するようにOracle GoldenGateに指示します。この引数は、データベースによってオペレーティングシステム・レベルでの認証が許可されている場合にのみ使用します。データベースレベルの認証をバイパスすることにより、アプリケーションのパスワードが頻繁に変更される場合に、Oracle GoldenGateパラメータ・ファイルを更新する必要がなくなります。

このオプションを使用するには、Oracle OS_AUTHENT_PREFIX初期化パラメータの値との関連で、正しいユーザー名がデータベースに存在している必要があります。OS_AUTHENT_PREFIXで指定されている値は、ユーザーのオペレーティング・システム・アカウント名の先頭に追加され、データベース名と比較されます。この2つの名前は一致する必要があります。

OS_AUTHENT_PREFIXが' ' (NULL文字列)に設定されている場合は、ユーザー名をIDENTIFIED EXTERNALLYとして作成する必要があります。たとえば、OSユーザー名がoggの場合は、次のようにしてデータベース・ユーザーを作成します。

CREATE USER ogg IDENTIFIED EXTERNALLY;

OS_AUTHENT_PREFIXがOPS$または別の文字列に設定されている場合は、ユーザー名は次のフォーマットで作成する必要があります。

OS_AUTHENT_PREFIX_value OS_user_name

たとえば、OSユーザー名がoggの場合は、次のようにしてデータベース・ユーザーを作成します。

CREATE USER ops$ogg IDENTIFIED BY oggpassword;

user

マイニング・データベース・ユーザー名またはSQL*Net接続文字列を指定します。

password

ユーザーのパスワードです。データベース・ユーザーのパスワードを指定するためにデータベース認証が必要な場合に使用します。パスワードがENCRYPT PASSWORDコマンドによって暗号化されている場合は、暗号化されたパスワードを指定します。それ以外の場合は、クリアテキストのパスワードを使用します。パスワードに大/小文字の区別がある場合は、そのように入力してください。ユーザーIDまたはパスワードのいずれかが変更されると、必要に応じて、パスワードの再暗号化など、Oracle GoldenGateパラメータ・ファイルの変更を行う必要があります。

algorithm

ENCRYPT PASSWORDでパスワードの暗号化に使用した暗号化アルゴリズムを指定します。次のいずれかになります。

AES128
AES192
AES256
BLOWFISH

ENCRYPTKEY {key_name | DEFAULT}

ENCRYPT PASSWORDで指定した暗号化鍵を指定します。

- ENCRYPTKEY key_nameは、ENCKEYS参照ファイル内のユーザー作成の暗号化鍵の論理名を指定します。ENCRYPT PASSWORDがKEYNAME key_nameオプションとともに使用された場合に使用します。

- ENCRYPTKEY DEFAULTを指定すると、Oracle GoldenGateでランダムな鍵が使用されます。ENCRYPT PASSWORDがKEYNAME DEFAULTオプションとともに使用された場合に使用します。

SYSDBA

ユーザーがsysdbaとしてログインするように指定します。

Oracle GoldenGateのセキュリティ・オプションの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

MINEFROMSNAPSHOTSTBY | NOMINEFROMSNAPSHOTSTBY
(Oracle)スナップショット・スタンバイ・データベースによりアーカイブされたREDOからOracle GoldenGateが取得できるかどうかを制御します。MINEFROMSNAPSHOTSTBYを使用すると、クラシック・キャプチャ・モードまたは統合キャプチャ・モードで、Extractをアップストリーム構成でスナップショット・スタンバイに対して実行できますが、スナップショット・スタンバイ・データベースは、そのREDOログを別のデータベースに転送しないため、ダウンストリーム構成での実行はサポートされていません。

デフォルトはNOMINEFROMSNAPSHOTSTBYであり、Extractはスナップショットであるデータベースから取得できません。Extractを物理スタンバイ・データベースに対して実行できず、そのソース・スナップショット・データベースを物理データベースに変更するとExtractは異常終了します。

MININGUSERALIAS alias
(Oracle) 統合キャプチャ・モードのExtractに有効です。

ログマイニング・サーバーとやり取りするダウンストリームOracleマイニング・データベースにログインするためにExtractが使用するログイン資格証明の別名を指定します。Oracle GoldenGate資格証明ストアが使用されている場合にMININGUSERのかわりに使用できます。

この別名は、次を満たす必要があります。

- ローカルOracle GoldenGate資格証明ストアに格納されているデータベース・ユーザー・ログイン資格証明に関連付けられている。資格証明ストアの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。このユーザーは、dbms_goldengate_auth.grant_admin_privilegeで付与された権限を持っている必要があります。

- このMININGUSERALIASに関連付けられているExtractグループのMININGDBLOGINまたはMININGDBLOGINALIASおよびREGISTER EXTRACTまたはUNREGISTER EXTRACTコマンドを発行するユーザーである。

この別名とユーザーは、Extractが統合キャプチャ・モードである間は変更しないでください。

NODDLCHANGEWARNING
(SQL Server)

Extractがデータを取得するソース・オブジェクトにDDL操作が実行されたときに、Extractが警告を記録することを防ぎます。デフォルトは警告のレポートであるため、問題を修正できます。Oracle GoldenGateは、SQL ServerのDDLキャプチャとレプリケーションをサポートしないため、ソースとターゲットのメタデータが一定に保たれる必要があります。DDL変更によってExtractが異常終了しなくても、このような変更が発生するたびに警告が記録されます。NODDLCHANGEWARNINGを使用すると、Oracle GoldenGateログにこのようなメッセージが蓄積されることを防止できます。

NOFLUSH
(DB2 z/OS)

ログ・バッファのフラッシュを防止します。

PATHMAP NFS_mount_point log_path
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

REDOログまたはアーカイブ・ログ、またはその両方が、データベースをホストしているシステム以外のシステムに保持されているときに、その場所を指定します。複数のPATHMAP文を使用できます。PATHMAPを使用するときは、TRANLOGOPTIONS文全体を1行にまとめてください。アンパサンド(&)行終了文字を使用して行を複数に分割しないでください。

PATHMAPは、このシステムがデータベースをホストしているシステムとは異なるプラットフォームの場合に、LOGSOURCEオプションとともに使用できます。

NFS_mount_point

ログが格納されるリモート・システムのNFSマウント・ポイントを指定します。

log_path

リモート・システム上のログのパス。パスはマウント・ポイント指定に従う必要があります。

PREPAREFORUPGRADETOIE | NOPREPAREFORUPGRADETOIE
(Oracle) Oracle RACでクラシックExtractから統合Extractにアップグレードする場合に有効です。

Oracle RACでクラシックExtractから統合Extractにアップグレードする場合は、アップグレード対象のクラシックExtractを停止する前にPREPAREFORUPGRADETOIEオプションを設定し、アップグレードを続行する前に、パラメータが有効になっていることを示すレポート・ファイルの情報メッセージが表示されるまで待機する必要があります。アップグレード手順の詳細は、『Oracle GoldenGate Oracle GoldenGateのアップグレードfor Windows and UNIX』を参照してください。

PREPAREFORUPGRADETOIE

Extractパラメータ・ファイルのPREPAREFORUPGRADETOIEを設定するか(Extractの再起動が必要)、このコマンドを使用してGGSCIからExtractを実行できるように、動的に設定できます。

SEND EXTRACT extract_name TRANLOGOPTIONS PREPAREFORUPGRADETOIE

NOPREPAREFORUPGRADETOIE

必要に応じて、PREPAREFORUPGRADETOIEオプションを動的に無効にします。デフォルトはNOPREPAREFORUPGRADETOIEです。

PURGEORPHANEDTRANSACTIONS | NOPURGEORPHANEDTRANSACTIONS
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

Oracle RACノードに障害が発生し、Extractがロールバックを取得できないときに発生する孤立トランザクションのパージを制御します。

PURGEORPHANEDTRANSACTIONS

孤立したトランザクションをパージします。トランザクションは、パージの実行前に、自身の開始時間とノードの開始時間の比較によって孤立しているかどうかが検証され、ノードよりも開始時間が早いトランザクションはパージされます。

NOPURGEORPHANEDTRANSACTIONS

デフォルトです。孤立したトランザクションはパージされません。

QUERYRETRYCOUNT number
(SQL ServerのExtract)

タイムアウト後に表のメタデータを取得するために問合せを再試行する回数を指定します。表を作成した長時間に及ぶトランザクションでは、タイムアウトが発生することがあります。システム表はロックされ、Extractの問合せは完了できなくなります。

デフォルトは、30秒の待機後に1回の再試行で、この再試行が失敗するとプロセスは異常終了します。 QUERYRETRYCOUNTでは、指定される入力値に従って30秒間隔で複数回再試行するように指定できます。すべての再試行が失敗すると、Extractは通常の接続エラー・メッセージとともに異常終了します。

次の例では、Extractは30秒間隔で4回問合せを試行します。

TRANLOGOPTIONS QUERYRETRYCOUNT 4
READQUEUESIZE size
MySQLおよびSybaseに有効です。

トランザクション・データの内部キューのサイズをバイト単位で指定します。これによりパフォーマンスが向上します。有効な値は、3から1500までの整数です。デフォルトは256バイトです。高い値に調整する前に、デフォルトから開始して、パフォーマンスを評価してください。

REQUIRELONGDATACAPTURECHANGES | NOREQUIRELONGDATACAPTURECHANGES
(DB2 LUW)

DATA CAPTUREがNONE、またはINCLUDE LONGVAR COLUMNSのないCHANGESに設定され、パラメータ・ファイルに、一部またはすべての列値のビフォア・イメージを必要とするOracle GoldenGateパラメータ(GETBEFOREUPATES、NOCOMPRESSUPDATESおよびNOCOMPRESSDELETES)が含まれている場合に、Extractの応答を制御します。この2つのDATA CAPTURE設定では、LONGVAR列のビフォア値が記録されません。Extractがこれらの列を使用できない場合、ターゲット・データの整合性に影響が及ぶことがあります。

REQUIRELONGDATACAPTURECHANGES

Extractはエラーとともに異常終了します。

NOREQUIRELONGDATACAPTURECHANGES

Extractは警告を出しますが、データ・レコードの処理を継続します。

[TSLOOKUPBEGINLRI | TSLOOKUPENDLRI]
(DB2 LUW v10.1以降)

これらのパラメータを使用してLRI範囲を指定すると、Extractは、ADDまたはALTER EXTRACTコマンドで指定したタイムスタンプをこの範囲内で検索します。これにより、Extractは、データベース・トランザクション・ログの特定のタイムスタンプの参照プロセスを最適化できます。TSLOOKUPBEGINLRIパラメータは必須ですが、TSLOOKUPENDLRIはオプションです。TSLOOKUPBEGINLRIなしでTSLOOKUPENDLRIのみを指定することは無効です。例:

TRANLOGOPTIONS TSLOOKUPBEGINLRI 75200.666197, TSLOOKUPENDLRI  75207.666216
TRANLOGOPTIONS TSLOOKUPBEGINLRI 75200.666197

指定されたLRI範囲の間で指定したタイムスタンプが失敗する場合、または指定したタイムスタンプがTSLOOKUPBEGINLRI LRIタイムスタンプの後に失敗する場合、Extractは、指定したタイムスタンプと等しいか、直前のタイムスタンプのレコードから起動します。

指定したタイムスタンプがTSLOOKUPBEGINLRI LRIタイムスタンプの前に失敗する場合、Extractは、指定したTSLOOKUPBEGINLRI LRIから起動されます。指定したタイムスタンプがTSLOOKUPENDLRIタイムスタンプの後に失敗する場合、Extractは異常終了します。TSLOOKUPENDLRIのみを指定すると、情報メッセージが表示され、Extractは、指定したタイムスタンプと等しいか、直前のタイムスタンプのレコードから起動します。

TRANSCLEANUPFREQUENCY minutes
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

Oracle GoldenGateが孤立トランザクションのスキャン、再スキャン、および削除の一連の動作を実行する間隔(分)を指定します。最初のスキャンでは、孤立していると思われるトランザクションをマーク付けします。2回目のスキャンで孤立していることを確認し、次にこれらのトランザクションを削除します。有効な値は1から43200分です。デフォルトは10分です。

USENATIVEOBJSUPPORT | NOUSENATIVEOBJSUPPORT
(Oracle) 統合キャプチャ・モードのExtractに有効です。

統合キャプチャでは、ユーザー定義型(UDT)およびANYDATAデータ型のREDOベースのキャプチャが追加されています。これは、デフォルトで有効で、ソース・データベースのバージョンが12.1.0.1以上で、ソース・データベースの互換性が12.0.0.0.0以上の場合にのみ有効にできます。Oracle GoldenGateリリース12.1.2.1.0以降のReplicatを使用する必要があります。リリース12.1.0.1のソースまたはターゲット・データベースが使用されている場合、Oracle Bug#18038108のStreamsパッチをデータベースにインストールする必要があります。ネイティブ・サポートを使用するには、互換性を確保するため、すべてのOracleデータベースおよびOracle GoldenGateインスタンスがリリース12.1.0.1以上である必要があります。

REDOベースのキャプチャが有効になっているが、サポートされていない属性がUDTに含まれている場合、統合キャプチャはフェッチを使用してUDTのキャプチャを再試行します。キャプチャのサポートの制限は、『Oracle GoldenGate Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成』を参照してください。CREATE TABLE AS SELECT (CTAS)文を使用してオブジェクト表を作成する場合は、オブジェクト表を完全にサポートするために、CTAS操作からDMLをキャプチャするように統合キャプチャを構成する必要があります。CTASの使用の情報は、『Oracle GoldenGate Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成』を参照してください。

デフォルトはUSENATIVEOBJSUPPORTです(サポートされている場合)。

USE_ROOT_CONTAINER_TIMEZONE
このパラメータはCDB環境用です。CDB内の各PDBは、異なるデータベース・タイムゾーンを使用できます。データベース・タイムゾーンが使用可能な場合、Extractは統合ディクショナリからPDBのタイムゾーンを取得しようとします。タイムゾーン抽出には、マイニング・データベースでのパッチが必要です。パッチが使用可能でない場合、Extractはタイムゾーンを取得するためにPDBに問合せを送信します。データベース・パッチまたはPDBへの接続が使用可能でなく、このパラメータが指定されている場合、Extractによって、PDBデータベース・タイムゾーンはルート・コンテナのデータベース・タイムゾーンと同じであるとみなされます。

USEPREVRESETLOGSID | NOUSEPREVRESETLOGSID
(Oracle) クラシック・キャプチャ・モードのExtractに有効です。

Extractが前のRESETLOG IDを現在のブランチとして取得するように指定します。デフォルトはNOUSEPREVRESETLOGSIDです。Oracle Data Guard環境でキャプチャする際にクラシック・キャプチャ・モードのExtractをサポートします。

VAMCOMPATIBILITY {3}
(MySQL、SQL M/X、SQL Server、Sybase、Teradata)

VAMモジュールとVAM APIが、必ず同じバージョンの列メタデータ構造を使用するようにします。新機能がVAM APIに追加されるにしたがい、列メタデータには新しい属性による拡張が必要になります。この状態が発生すると、新規バージョンが作成され、新規の列メタデータ属性が既存の属性に追加されます。新規バージョンの追加後、Teradata以外のすべてのデータベース実装が最新バージョンに更新することを求められます。

1

値1は元のVAM APIメタデータ構造が使用中であることを意味します。この構造は元々Teradata用に作成され、他のデータベースとは別々の実装であり、Teradataのみが依然としてこのレベルを使用します。Extractとの下位互換性を維持するため、以前のバージョンのTAMモジュールを、VAMバージョニングが含まれる以後のリリースのExtractに対して実行中の場合、手動でVAMCOMPATIBILITYを1に設定することが必要なときがあります。VAMCOMPATIBILITY 1が必須なのに設定されていない場合、Extractはレポート・ファイルへのメッセージを示して異常終了します。

2

このVAMバージョンはSQL Serverの列メタデータ構造を追加しました。この値はVAMモジュールによって内部で設定されるため、TRANLOGOPTIONSを使用した手動設定は必要ありません。

3

これは現在のバージョン・レベルです。Teradata以外のすべてのデータベース(SQL Serverを含む)はこのレベルを使用し、VAMモジュール内で内部で設定するため、TRANLOGOPTIONSを使用した手動設定は必要ありません。

例

例1

次の例では、Oracleアーカイブ・ログの場所を指定します。

TRANLOGOPTIONS ALTARCHIVELOGDEST /fs1/oradata/archive/log2

例2

次のOracle例は、2人のユーザーを(1人は名前、1人はユーザーIDで)フィルタ処理します。これらのユーザーによって生成されたトランザクションは、GETREPLICATESまたはIGNOREREPLICATESルールに従って処理され、新しいトランザクション・バッファ・サイズが指定されます。

TRANLOGOPTIONS EXCLUDEUSER ggsrep, EXCLUDEUSERID 90, BUFSIZE 100000

例3

次の例では、SQL ServerまたはSybase環境でReplicatトランザクション名を除外します。

TRANLOGOPTIONS EXCLUDETRANS ggs_repl

例4

次に、データベースをホストするプラットフォームと別のプラットフォーム上にあるトランザクション・ログを処理する方法を示します。

注意:

この文は、このドキュメントのスペースの制約によって、複数の行にまたがっています。

TRANLOGOPTIONS, LOGSOURCE VMS, PATHMAP DKA200:[RDBMS.ORACLE.ORA9201I.64.ADMIN.GGS.ARCH]
/net/deltan/uservol1/RDBMS.DIR/ORACLE.DIR/ORA9201I.DIR/
64.DIR/admin.DIR/ggs.DIR/ARCH.dir PATHMAP DKA200:[RDBMS.ORACLE.ORA9201I.64.ORADATA.GGS]
/net/deltan/uservol1/rdbms.dir/oracle.dir/ora9201I.DIR/
64.dir/oradata.dir/ggs.dir

例5

次の例は、Oracle GoldenGate資格証明ストアのasmdomainドメインに別名asm1を指定することでASM資格証明を指定します。

TRANLOGOPTIONS ASMUSERALIAS asm1 DOMAIN asmdomain

例6

次の例は、ExtractがALTARCHIVELOGFORMATパラメータでフォーマット指定子%T、%Sおよび%Rを使用してアーカイブ・ログ名を形成する際の埋込み幅を指定する方法を示します。

TRANLOGOPTIONS ALTARCHIVELOGFORMAT ARC_%S_%R.%T
TRANLOGOPTIONS SEQPADLEN 12, RESETLOGSIDPADLEN 12, THREADPADLEN 5

例7

次の例は、EXCLUDETAGを使用してタグ指定子を使用する方法です。

TRANLOGOPTIONS EXCLUDETAG 00
TRANLOGOPTIONS EXCLUDETAG +
TRANLOGOPTIONS EXCLUDETAG 0952

例8

次の例では、TRANLOGOPTIONS FAILOVERTARGETDESTID Extractパラメータの使用方法を示します。

TRANLOGOPTIONS FAILOVERTARGETDESTID 2

SQL> show parameters log_archive_dest

NAME TYPE VA
LUE
------------------------------------ ----------- --
----------------------------
log_archive_dest_1 string location=USE_DB_RECOVERY_FILE_DEST,
valid_for=(ALL_LOGFILES, ALL_ROLES)
.
log_archive_dest_2 string service="ggs2d", ASYNC NOAFFIRM delay=0 optional
compression =disable max_failure=0 max_connections=1 reopen=300
db_unique_name="GGS2D" net_timeout=30,
valid_for=(online_logfile,all_roles)

2に設定される理由は、Oracle GoldenGateが後にとどまる必要のあるスタンバイ・データベースだからです。1番目のエントリ(log_archive_dest_1)はそのデータベースのローカル・アーカイブ・ログ用で、2番目のエントリはスタンバイ・データベース00用です

例9

次の例では、SQL ServerでALOモードのリモートExtractキャプチャに使用するネットワーク共有へのトランザクション・ログ・バックアップのパスを設定する方法を示します。

TRANLOGOPTIONS ALTARCHIVELOGDEST ("\\RemoteServerName\SQLBackups")

3.186 TRANSACTIONTIMEOUT

適用対象

Replicat

説明

TRANSACTIONTIMEOUTパラメータでは、コミットされていないReplicatターゲット・トランザクションによる、ターゲット表のロックおよびデータベース・リソースの無駄な消費を防止します。Replicatが既存のアプリケーション・タイムアウト、およびターゲットのその他のデータベース要件内で動作できるように、このパラメータの値を変更できます。

TRANSACTIONTIMEOUTでは、Replicatがターゲット・トランザクション内の最後のソース・トランザクションのトランザクション終了レコードを受信していない場合に、ターゲット・トランザクションをオープンしておく時間を制限します。デフォルトでは、Replicatは複数のソース・トランザクションを1つのターゲット・トランザクションにグループ化してパフォーマンスを向上させますが、ソース・トランザクションの一部のみのコミットは行わず、最後のレコードが到着するまで無制限に待ちます。ReplicatパラメータのGROUPTRANSOPSでは、グループ化されるターゲット・トランザクションの最小サイズを制御します。

次のイベントは、長期化してTRANSACTIONTIMEOUTをトリガーする場合があります。

- ネットワークの問題によって、トレイル・データがターゲット・システムに転送されない。

- いずれかのシステムのディスク容量が不足し、トレイル・データが書き込まれない。

- Collectorの異常終了(ほとんど発生しないイベントです)。

- トランザクションのレコードの書込み中のExtractの異常終了または停止。

- Extractデータ・ポンプの異常終了または停止。

- 停電やシステムのクラッシュなど、ソース・システムの障害。

TRANSACTIONTIMEOUTの動作

通常の操作では、Replicatは、トランザクションが異常終了し、再試行が必要になるときに備えて、現在のターゲット・トランザクション内の最初のソース・トランザクションの開始位置を記憶しています。TRANSACTIONTIMEOUTを有効にすると、Replicatは、現在のソース・トランザクションの最初のレコードの位置も記憶し、TRANSACTIONTIMEOUTがトリガーされた場合に、この位置を論理的な終了(EOF)位置として使用します。

TRANSACTIONTIMEOUTは、トリガーされると次のことを行います。

1. 現在のターゲット・トランザクションを中止します。

2. 中止されたターゲット・トランザクション内の最初のソース・トランザクションの開始位置に移動します。

3. 論理終了位置(最後の完了していないソース・トランザクションの開始位置)まで、すべてのトレイル・レコードを処理します。

4. 論理EOF位置でトランザクションをコミットします。

5. 新しいトレイル・データを待機してから、次のトレイル・レコードを処理します。

TRANSACTIONTIMEOUTは、データの到着を遅らせ、TRANSACTIONTIMEOUTをトリガーする問題の性質に応じて、同一のソース・トランザクションに対して何度もトリガーできます。

TRANSACTIONTIMEOUT条件の検出

TRANSACTIONTIMEOUTが有効な場合に、Replicatがソース・トランザクションの残りの部分を待機しているかどうかを確認するには、SEND REPLICATコマンドをSTATUSオプションとともに発行します。次のステータスは、この状況を示します。

Performing transaction timeout recovery
Waiting for data at logical EOF after transaction timeout recovery

デフォルト

無効

構文

TRANSACTIONTIMEOUT n units

n

待機する間隔を指定する整数。有効な値は1秒から1週間(7日間)です。この値は、プライマリExtractおよび関連するすべてのデータ・ポンプ両方で設定されているEOFDELAYパラメータの値より大きくする必要があります。

units

次のいずれか1つを使用します: S、SEC、SECS、SECOND、SECONDS、MIN、MINS、MINUTE、MINUTES、HOUR、HOURS、DAY、DAYS。

例

TRANSACTIONTIMEOUT 5 S

3.187 TRANSMEMORY

適用対象

z/OS上のDB2のExtract

説明

TRANSMEMORYでは、コミットされていないトランザクション・データのキャッシュに使用可能なメモリーおよび一時ディスク領域量を制御します。Oracle GoldenGateはコミットされたトランザクションのみをターゲット・データベースに適用するため、コミットまたはロールバックのインジケータを受信するまでソース・システム上にトランザクション・データを保持するための十分なシステム・メモリーが必要です。

このパラメータは、z/OS上のDB2データベースとともに使用します。他のすべてのデータベースでは、CACHEMGRパラメータを使用します。

TRANSMEMORYを使用したメモリー管理について

TRANSMEMORYを使用して、Oracle GoldenGateのトランザクション用のキャッシュ・サイズを調整し、キャッシュ・サイズを超えるデータを保持するディスク上の一時的な場所を定義できます。合計キャッシュ・サイズ、トランザクション当たりのメモリー・サイズ、初期および増分メモリー割当て、ディスク記憶域領域を定義するためのオプションを使用できます。

トランザクションは、RAMによって指定されたメモリー・プールに追加され、TRANSRAMの値に達したときにディスクにフラッシュされます。初期メモリー量は、INITTRANSRAMに基づいて各トランザクションに割り当てられ、必要に応じて、RAMINCREMENTで指定された量ずつ、TRANSRAMで設定された最大値まで増分されます。したがって、TRANSRAMには(INITTRANSRAM + RAMINCREMENT)の合計によって割り切れる値を指定する必要があります。

現在のTRANSMEMORY設定を表示するには、GGSCIでVIEW REPORTコマンドを使用します。

z/OSでの特別の考慮事項:

z/OSシステムでは、RAMオプションはすべてのキャッシュされたトランザクションの仮想メモリー割当ての合計を制御するだけではなく、起動中に割り当てられるヒープ・メモリーのサイズも制御します。大きなデフォルト値によって、仮想メモリー・プール内の断片化を防止できますが、一部のインストールでは、特にアプリケーションが主に小さなトランザクションを生成する場合に、仮想メモリーが浪費されることがあります。また、大量のヒープを割り当てると、z/OSが割当てを完了するまで、Extractが起動時に反応しなくなることがあります。

z/OS上では、RAMはExtractのパフォーマンスに影響を与えない、トランザクション・アクティビティの保持に必要な最小限の値に設定してください。低すぎる値に設定すると、Extractがディスクにトランザクション・データを書き込み、Extractの動作速度の低下やディスク領域消費の原因になることがあります。適切な値を決定するには、テストが必要になることがあります。

デフォルト

なし

構文

TRANSMEMORY
[RAM size]
[TRANSRAM size]
[TRANSALLSOURCES size]
[INITTRANSRAM size]
[RAMINCREMENT size]
[DIRECTORY (directory, max_size, max_file_size)]

RAM size

キャッシュされたすべてのトランザクションが使用する合計メモリー量を指定します。z/OSでは、この値はトランザクション当たりに割り当てる処理メモリー量でもあります。デフォルトは200MBです。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

TRANSRAM size

1つのトランザクションが使用する合計メモリー量を指定します。デフォルトは50MBです。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

TRANSRAMは、最適な成果を得るために、INITTRANSRAMおよびRAMINCREMENT両方の値によって割り切れる値に設定する必要があります。

TRANSALLSOURCES size

1つのトランザクションが利用するメモリーおよびディスク領域の量の合計を指定します。デフォルトは、使用可能なメモリー(メモリーおよびディスク)合計の50%です。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

INITTRANSRAM size

(NonStopシステムのみ)トランザクションに割り当てる初期メモリー量を指定します。デフォルトは500KBです。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

RAMINCREMENT size

トランザクションがさらに多くのメモリーを必要とするときに増分するメモリー量を指定します。デフォルトは500KBです。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

DIRECTORY (directory, max_size, max_file_size)

トランザクション・データのサイズがTRANSRAMで指定した最大値を超えたときにこのデータが使用する一時ディスク記憶域を指定します。DIRECTORYは、複数回指定できます。

max_sizeで指定されたディレクトリ・サイズとmax_file_sizeで指定されたファイル・サイズは、RAMで指定したメモリー・サイズより大きい必要があります。

作成されるファイルの名前は、プロセス・タイプに応じて次のいずれかの形式になります。

- group_trans_00001.memはグループの名前をとり、オンライン・プロセスがファイルを作成したことを示します。

- PID_trans_00001.memはプロセスID (PID)の名前をとり、1回かぎりのプロセス(SPECIALRUNパラメータで指定)がファイルを作成したことを示します。

- group_thread#_00001.memはグループ名とスレッド番号をとり、スレッド化されたExtractがファイルを作成したことを示します。

directory

ディレクトリの完全修飾パス名です。デフォルトは、Oracle GoldenGateディレクトリのdirtmpサブディレクトリです。

max_size

ディレクトリ内のすべてのファイルの最大サイズです。デフォルトは2GBです。指定した領域が使用できない場合は、使用可能なディスク領域の75%が使用されます。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

max_file_size

ディレクトリ内の各ファイルの最大サイズです。デフォルトは200MBです。この値は、バイト、または次のいずれかの形式のGB、MBまたはKBで指定できます。

GB | MB | KB | G | M | K | gb | mb | kb | g | m | k

例

例1

次の例では、データをディスクにフラッシュする前に、各トランザクションに10回のメモリー追加を許可します(INITTRANSRAMで指定された初期割当て1回と、RAMINCREMENTで許可された9回)。

TRANSMEMORY DIRECTORY(c:\test\dirtmp, 3000000000,
300000000), RAM 8000K, TRANSRAM 1000K, INITTRANSRAM 100K,
RAMINCREMENT 100K

例2

次の例は前述の例と同じですが、2つ目のディレクトリも追加します。

TRANSMEMORY DIRECTORY(c:\test\dirtmp, 3000000000,
300000000), DIRECTORY (c:\test\dirtmp2, 1000000000,
5000000), RAM 8000K, TRANSRAM 1000K, INITTRANSRAM 100K,
RAMINCREMENT 100K

注意:

前述の例では、スペースの制約によってパラメータ指定が複数行にわたっています。実際のパラメータ・ファイルでは、パラメータ指定が複数行にわたる場合は、各行の末尾にアンパサンド(&)を含める必要があります。

3.188 TRIMSPACES | NOTRIMSPACES

適用対象

ExtractおよびReplicat

説明

TRIMSPACESおよびNOTRIMSPACESパラメータでは、ソースのCHAR列の末尾の空白を、ターゲットのCHARまたはVARCHAR列に適用するときに切り捨てるかどうかを制御します。TRIMSPACESとNOTRIMSPACESは、TABLEまたはMAP文の様々なセットのグローバルON/OFFスイッチとしてパラメータ・ファイルのルート・レベルで使用でき、個々のTABLEまたはMAP文で特定のMAPまたはTABLE文のグローバル設定をオーバーライドするために使用できます。

注意:

Sybaseは、すべてのCHAR型をVARCHAR型として処理し、このためTRIMSPACESは無効になります。Sybaseでは、TRIMVARSPACESパラメータを使用します。

TRIMSPACESは、シングルバイトの空白(U+0020)にのみ適用されます。表意空白(U+3000)はサポートされていません。

Extractでは、Extractが(TARGET文を使用して) TABLE文内でマッピングを実行している場合、TRIMSPACESのみが有効になります。

デフォルト

TRIMSPACES

構文

TRIMSPACES | NOTRIMSPACES

例

例1

次の例は、パラメータ・ファイルのルート・レベルでTRIMSPACESおよびNOTRIMSPACESを使用します。TRIMSPACESのデフォルトは、NOTRIMSPACESが適用される最後のMAP文まで有効です。

MAP fin.src1, TARGET fin.tgt1;
MAP fin.src2, TARGET fin.tgt2;
MAP fin.src3, TARGET fin.tgt3;
NOTRIMSPACES
MAP fin.src4, TARGET fin.tgt4;

例2

次の例は、MAP文内でNOTRIMSPACESを使用してTRIMSPACESのグローバル・デフォルトをオーバーライドします。デフォルトが最初の2つのMAP文に適用され、NOTRIMSPACESが最後の2つのターゲットに適用されます。

MAP fin.src1, TARGET fin.tgt1;
MAP fin.src1, TARGET fin.tgt2;
MAP fin.src1, TARGET fin.tgt3, NOTRIMSPACES;
MAP fin.src1, TARGET fin.tgt4, NOTRIMSPACES;

3.189 TRIMVARSPACES | NOTRIMVARSPACES

適用対象

ExtractおよびReplicat

説明

TRIMVARSPACESおよびNOTRIMVARSPACESパラメータでは、ソースのVARCHAR列の末尾の空白を、ターゲットのCHARまたはVARCHAR列に適用するときに切り捨てるかどうかを制御します。TRIMVARSPACESとNOTRIMVARSPACESは、TABLEまたはMAP文の様々なセットのグローバルON/OFFスイッチとしてパラメータ・ファイルのルート・レベルで使用でき、個々のTABLEまたはMAP文で特定のMAPまたはTABLE文のグローバル設定をオーバーライドするために使用できます。

VARCHAR列の空白はデータの一部である場合があるため、デフォルトはNOTRIMVARSPACESです。TRIMVARSPACESを使用する前に、末尾の空白がターゲット・データの一部として必要ではないことを確認してください。

Extractでは、Extractが(TARGET文を使用して)TABLE文内でマッピングを実行している場合、TRIMVARSPACESのみが有効になります。

デフォルト

NOTRIMVARSPACES

構文

TRIMVARSPACES | NOTRIMVARSPACES

例

例1

次の例は、パラメータ・ファイルのルート・レベルでTRIMVARSPACESおよびNOTRIMVARSPACESを使用します。NOTRIMVARSPACESのデフォルトは、TRIMVARSPACESが適用される最後のMAP文まで有効です。

MAP fin.src1, TARGET fin.tgt1;
MAP fin.src2, TARGET fin.tgt2;
MAP fin.src3, TARGET fin.tgt3;
TRIMVARSPACES
MAP fin.src4, TARGET fin.tgt4;

例2

次の例は、MAP文内でTRIMVARSPACESを使用してNOTRIMVARSPACESのグローバル・デフォルトをオーバーライドします。デフォルトが最初の2つのMAP文に適用され、TRIMVARSPACESが最後の2つのターゲットに適用されます。

MAP fin.src1, TARGET fin.tgt1;
MAP fin.src1, TARGET fin.tgt2;
MAP fin.src1, TARGET fin.tgt3, TRIMVARSPACES;
MAP fin.src1, TARGET fin.tgt4, TRIMVARSPACES;

3.190 UPDATEDELETES | NOUPDATEDELETES

適用対象

Replicat

説明

UPDATEDELETESパラメータでは、パラメータ・ファイル内でこのパラメータ以降のすべてのMAP文の削除操作を更新操作に変換します。UPDATEDELETESを無効にするには、NOUPDATEDELETESを使用します。これらのパラメータは表に固有です。一方のパラメータは、もう一方のパラメータが見つかるまで、それ以降のすべてのMAP文に有効です。

これらのパラメータは、MAP文で有効化または無効化を選択できるため、調整Replicatの様々なスレッドに対して有効にしたり、無効にしたりできます。UPDATEDELETESスレッドをMAP文の1つのセットで指定し、NOUPDATEDELETESスレッドをMAP文の別のセットで指定します。

UPDATEDELETESを使用するときは、NOCOMPRESSDELETESパラメータを使用します。このパラメータによって、Extractは、更新に使用できるように、すべての列をトレイルに書き込みます。

デフォルト

NOUPDATEDELETES

構文

UPDATEDELETES | NOUPDATEDELETES

例

この例では、それぞれが調整Replicatの別のスレッドを表す異なるMAP文にUPDATEDELETESおよびNOUPDATEDELETESを選択的に適用する方法を示します。

UPDATEDELETES
MAP sales.cust, TARGET sales.cust, THREAD (1);
MAP sales.ord, TARGET sales.ord, THREAD (2);
NOUPDATEDELETES
MAP sales.loc, TARGET sales.loc, THREAD (3);

3.191 UPDATEINSERTS | NOUPDATEINSERTS

適用対象

Replicat

説明

UPDATEINSERTSパラメータでは、パラメータ・ファイル内でこのパラメータ以降のすべてのMAP文の挿入操作を更新操作に変換します。UPDATEINSERTSを無効にするには、NOUPDATEINSERTSを使用します。

これらのパラメータは、MAP文で有効化または無効化を選択できるため、調整Replicatの様々なスレッドに対して有効にしたり、無効にしたりできます。UPDATEINSERTSスレッドをMAP文の1つのセットで指定し、NOUPDATEINSERTSスレッドをMAP文の別のセットで指定します。

デフォルト

NOUPDATEINSERTS

構文

UPDATEINSERTS | NOUPDATEINSERTS

例

この例では、それぞれが調整Replicatの別のスレッドを表す異なるMAP文にUPDATEINSERTSおよびNOUPDATEINSERTSを選択的に適用する方法を示します。

UPDATEINSERTS
MAP sales.cust, TARGET sales.cust, THREAD (1);
MAP sales.ord, TARGET sales.ord, THREAD (2);
NOUPDATEINSERTS
MAP sales.loc, TARGET sales.loc, THREAD (3);

3.192 UPDATERECORDFORMAT

適用対象

Teradataを除くすべてのデータベース用のExtract。

説明

UPDATERECORDFORMATパラメータを使用すると、ExtractでUPDATE操作のビフォア・イメージおよびアフター・イメージがトレイルの単一レコードに結合されます。クラシックおよび統合キャプチャ・モードのExtractに有効な場合は、ポンプExtractには有効ではありませんが、マスターExtractに有効です。

ビフォア・イメージは、GETUPDATEBEFORES、GETBEFORECOLSおよびLOGALLSUPCOLSパラメータが使用される場合に生成されます。(主キー、一意索引またはユーザー指定のKEYCOLSキーに対する更新の場合、ビフォア・イメージとアフター・イメージはデフォルトで同じレコードに格納されます。この場合、UPDATERECORDFORMATは適用されません。)NOCOMPRESSUPDATESパラメータは、Oracle以外のデータベースに必要です。

1行に対する更新で2つのレコードが生成される場合は、ExtractとReplicatの両方に追加のディスクI/Oと処理が課されます。サプリメンタル・ロギングがすべての列で有効になっている場合、変更されない列はビフォア・レコードとアフター・レコードの両方で繰り返されることがあります。トレイル全体のサイズも大きくなります。このオーバーヘッドは、UPDATERECORDFORMATを使用して低減されます。

UPDATERECORDFORMATが使用される場合、Extractはビフォア・イメージとアフター・イメージを、UPDATE操作の処理に必要なすべての情報を含む単一レコードに書き込みます。ダウンストリーム・プロセスの読取りパフォーマンスの向上に加えて、列マッピング関数は、アフター値を読み取りながらビフォア・イメージ列値をキャッシュするかわりに、ビフォアとアフターの列値に同時にアクセスできます。

UPDATERECORDFORMATは、パラメータ・ファイルのすべてのTABLE文に有効です。

UPDATERECORDFORMATおよびFORMAT RELEASE 11.x以前の両方を指定すると、Extractは異常終了します。

注意:

多くの列がある表では、UPDATERECORDFORMATが使用されている場合にトレイル・レコードが最大サイズに達することがあります。残りのレコードは、1つ以上の追加の連鎖レコード・フラグメントで継続されます。これは、処理パフォーマンスにわずかに影響します。

デフォルト

UPDATERECORDFORMAT COMPACT

構文

UPDATERECORDFORMAT [FULL | COMPACT]

FULL

UPDATEのビフォア・イメージとアフター・イメージを含む1つのトレイル・レコードを生成します。ビフォア・イメージには、ビフォア・イメージとアフター・イメージの両方のトランザクション・レコードで使用可能なすべての列が含まれます。Logdumpユーティリティで表示した場合、このレコードはGGSUnifiedUpdateとして表示されます。

COMPACT

UPDATEのビフォア・イメージとアフター・イメージを含む1つのトレイル・レコードを生成します。ビフォア・イメージには、トランザクション・レコードで使用可能なすべての列が含まれますが、アフター・イメージは、主キー列とUPDATEで変更された列に制限されます。UPDATERECORDFORMAT COMPACTは、統合されたReplicatを含む構成にお薦めします。これはデフォルトです。

FULLまたはCOMPACTのいずれかをLogdumpユーティリティで表示した場合、このレコードはGGSUnifiedUpdateとして表示されます。レコードには、次の情報が含まれます。

- ヘッダー

- ビフォア・イメージの長さ

- 各列のビフォア値

- 主キー、一意索引またはKEYCOLS列のアフター値

- 変更した列のアフター値

- 内部トークン・データ

例

UPDATERECORDFORMAT COMPACT

3.193 UPREPORT

適用対象

Manager

説明

UPREPORTMINUTESまたはUPREPORTHOURSパラメータでは、Managerが実行中のExtractおよびReplicatプロセスをレポートする間隔を指定します。これらのいずれかのプロセスが開始または停止するたびに、イベントが生成されます。エラー・ログが非常に大きい場合には、ログ内のこうしたメッセージは見逃されてしまいがちです。UPREPORTMINUTESおよびUPREPORTHOURSは、このようなプロセス・ステータスが見逃されないように、定期的にレポートします。

UPREPORTが明示的に指定され、CHECKMINUTESパラメータの値がUPREPORTの値より大きい場合、CHECKMINUTESはUPREPORTの値を取得します。

停止されたプロセスをレポートするには、DOWNREPORTパラメータを使用します。詳細は、DOWNREPORTを参照してください。

デフォルト

実行中のプロセスをレポートしない。

構文

UPREPORTMINUTES minutes | UPREPORTHOURS hours

UPREPORTMINUTES minutes

レポート頻度を分単位で設定します。

UPREPORTHOURS hours

レポート頻度を時間単位で設定します。

例

次の例では、30分間隔でレポートが生成されます。

UPREPORTMINUTES 30

3.194 USE_TRAILDEFS | NO_USE_TRAILDEFS

適用対象

GLOBALSファイルで使用されるときのExtractデータ・ポンプおよびReplicat

説明

USE_TRAILDEFSおよびNO_USE_TRAILDEFSパラメータでは、証跡ファイルに表定義が全部含まれる場合、データ・ポンプ・プロセスとReplicatプロセスが表定義を取得する場所を制御します。

USE_TRAILDEFSを指定すると、これらのプロセスは証跡の表定義を使用します(ただし、OVERRIDEキーワードがSOURCEDEFSまたはASSUMETARGETDEFSで指定されていない場合)。

NO_USE_TRAILDEFSを指定すると、これらのプロセスは古い動作に従って表定義を解決します。Extractおよびポンプでは、表定義が全部含まれる証跡ファイルを生成しません。

デフォルト

USE_TRAILDEFS

構文

[ USE_TRAILDEFS | NO_USE_TRAILDEFS ]

3.195 USEANSISQLQUOTES | NOUSEANSISQLQUOTES

適用対象

GLOBALS

説明

USEANSISQLQUOTESおよびNOANSISQLQUOTESパラメータでは、Oracle GoldenGateが一重または二重引用符で囲まれる列名とリテラルを扱う方法を制御します。

注意:

表名などのオブジェクト名をキャプチャおよびマッピングする場合、USEANSISQLQUOTESとNOUSEANSISQLQUOTESのどちらが指定されているかにかかわらず、Oracle GoldenGateは常に、二重引用符で囲んだ文字列を大/小文字を区別するオブジェクト名として認識します。

USEANSISQLQUOTESは、Oracle GoldenGateのデフォルトの動作です。Oracle GoldenGateに、引用符の使用についてSQL-92ルールに従うように指示します。USEANSISQLQUOTESが有効になっている場合、Oracle GoldenGateでは、二重引用符で囲んだ文字列は大/小文字を区別する列名として扱われ、一重引用符で囲んだ文字列はリテラルとして扱われます。たとえば、文字列長を返す@STRLEN変換ファンクションの動作を考えてみます。デフォルトでは、Oracle GoldenGateは二重引用符で囲まれた"ABC"を大文字の列名として解釈するため、@STRLENは、列"ABC"がどのような値でも、その長さを返します。

COLMAP ( TGT1 = @STRLEN("ABC") )

前の例で二重引用符が一重引用符に変更された場合、Oracle GoldenGateは'ABC'をリテラルとして解釈するため、@STRLENは3を返します。

COLMAP ( TGT1 = @STRLEN('ABC') )

NOUSEANSISQLQUOTESは、バージョン12cより前のOracle GoldenGateバージョン(二重引用符内の文字列がリテラルで、(引用符で囲まれているかどうかにかかわらず)大/小文字を区別する列名がサポートされていない)のパラメータ・ファイルとの下位互換性を目的としています。たとえば、文字列長を返す@STRLEN変換ファンクションの動作を考えてみます。NOUSEANSISQLQUOTESでは、Oracle GoldenGateは二重引用符で囲まれた"ABC"をリテラルとして解釈するため、次の@STRLEN指定は値3を返します。

- COLMAP ( TGT1 = @STRLEN("ABC") )

使用すると、NOUSEANSISQLQUOTESは、ローカルOracle GoldenGateインスタンス内のすべてのTABLEおよびMAP文に影響します。

デフォルト

USEANSISQLQUOTES

構文

USEANSISQLQUOTES | NOUSEANSISQLQUOTES

例

例1

次のマトリックスは、USEANSIISQLQUOTESとNOUSEANSISQLQUOTESのデフォルト間の入力変数に関連する引用符の使用の違いを示します。

表3-36 [NO]USEANSISQLQUOTESの入力要件の比較

入力変数

USEANSISQLQUOTES

NOUSEANSISQLQUOTES

リテラル・テキスト

'text string'

"text string"

データベース内の引用符なしの列名

COLUMN1

COLUMN1

引用符付きの列名

(大/小文字はOracle GoldenGateで保持)

"Column1"

サポートされていません。すべての名前は大文字に変換されます。

例2

次のマトリックスは、リテラル入力の一部であるリテラルの一重引用符または二重引用符をエスケープする方法を示します。

表3-37 リテラル引用符のエスケープ

入力変数

USEANSISQLQUOTES

NOUSEANSISQLQUOTES

リテラル・テキスト:

John's Car

'John''s' car

この例では、2つのアポストロフィを使用します。1つはリテラルのアポストロフィとして使用し、もう1つはエスケープ文字として使用します。(アポストロフィは、一重引用符と同じ文字です。)

"John's car"

エスケープ文字は不要です。

リテラル・テキスト:

Double quote (")

'Double quote (")'

エスケープ文字は不要です。

"Double quote ("")"

この例では、2つの二重引用符を使用します。1つはリテラルの二重引用符として使用し、もう1つはエスケープ文字として使用します。

列名:

"Column"1

"Column""1"

この例では、2つの二重引用符を使用します。1つはリテラルの二重引用符として使用し、もう1つはエスケープ文字として使用します。

サポートされていません。

3.196 USEDEDICATEDCOORDINATIONTHREAD

適用対象

Replicat (調整モード)

説明

USEDEDICATEDCOORDINATIONTHREADでは、障害トランザクションを適用するためにReplicatに専用の調整スレッドをメンテナンスさせます。このスレッドのスレッドIDは常に0です。

デフォルトでは、ReplicatはスレッドIDが最も小さいスレッドを使用して障害トランザクションを適用しますが、そのスレッドには明示的にマップされる作業も含まれます。障害トランザクションに専用スレッドを使用することで、障害イベント数の正確なビューをOracle GoldenGate統計で取得し、順次に実行されている作業量を公開できます。調整Replicat統計はレポート・ファイルに書き込まれ、STATS REPLICATコマンドで表示することもできます。

USEDEDICATEDCOORDINATIONTHREADは、すべてのMAP文でReplicatグループ全体に適用されます。

構文

USEDEDICATEDCOORDINATIONTHREAD

例

USEDEDICATEDCOORDINATIONTHREAD
MAP u1.t1, TARGET u2.t1 SQLEXEC &
(ID test2, QUERY 'delete from u2.t2 where col_val =100 ',  &
NOPARAMS)), THREAD(1), COORDINATED;

3.197 USEIPV4

適用対象

GLOBALS

説明

USEIPV4パラメータでは、Oracle GoldenGateに、TCP/IP接続用にInternet Protocol version 4 (IPv4)を使用させます。デフォルトでは、Oracle GoldenGateは、デュアルスタック・モードのIPv6を使用し、このパラメータはIPv4のみの使用を強制します。

USEIPV4を使用する場合、Oracle GoldenGateが動作するネットワーク全体が、IPv4と互換性がある必要があります。

デフォルト

無効

構文

USEIPV4

3.198 USEIPV6

適用対象

GLOBALS

説明

USEIPV6パラメータでは、Oracle GoldenGateに、TCP/IP接続用にInternet Protocol version 6 (IPv6)を使用させます。デフォルトでは、Oracle GoldenGateはデュアルスタック・モードのIPv6を使用しますが、IPv4に戻ってからIPv6を使用します。USEIPV6は、IPv4へのフォールバック・ステップを除外します。ソケット選択の順序は次のようになります。

- IPv6デュアルスタック

- IPv6

USEIPV6を使用する場合、Oracle GoldenGateが動作するネットワーク全体が、IPv6と互換性がある必要があります。

デフォルト

無効

構文

USEIPV6

3.199 USERID | NOUSERID

適用対象

Manager、Extract、Replicat、DEFGEN

サポート

DB2 for i

DB2 LUW

z/OS上のDB2

Oracle

MySQL

SQL/MX

SQL Server

Sybase

Teradata

TimesTen

説明

USERIDパラメータでは、データベースにログインするときに使用するOracle GoldenGateプロセスの認証タイプの指定、およびパスワード暗号化情報の指定を行います。このパラメータは、Oracle GoldenGate資格証明ストアが使用されていない場合にUSERIDALIASのかわりに使用できます。00

プライマリExtractおよびReplicatには常にUSERIDまたはUSERIDALIASを使用します。Replicatには常にUSERIDまたはUSERIDALIASを使用します。Managerには、Managerでソースまたはターゲット・データベースにログインする必要があるパラメータを使用している場合にのみUSERIDまたはUSERIDALIASを使用します。

USERIDALIASと比較したUSERID

USERIDでは、パラメータ・ファイルにクリアテキスト・パスワードを指定するか、ENCRYPT PASSWORDコマンドで暗号化し、オプションで暗号化鍵をENCKEYSファイルに格納する必要があります。USERIDでは、Oracle GoldenGateでサポートされる幅広いデータベースがサポートされます。

USERIDALIASでは、ユーザーIDおよびパスワードではなく、エイリアスをパラメータ・ファイルで指定できます。ユーザーIDと暗号化されたパスワードが資格証明ストアに格納されます。USERIDALIASは、Linux、UNIXおよびWindowsプラットフォームで稼働するデータベースをサポートします。

Oracle GoldenGateセキュリティ機能の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

USERIDの一般的な要件

ExtractまたはReplicatパラメータ・ファイルで、TABLEまたはMAPエントリの前にUSERIDを指定します。Managerがデータベースにアクセスする必要がある場合、およびログインが必要な場合は、Managerパラメータ・ファイルにUSERIDを指定します。

USERIDは常に必要なわけではなく、PASSWORDはUSERIDが必要なときに常に必要なわけではありません。データベース認証の構成方法に応じては、USERIDの使用のみで十分な場合、SOURCEDBまたはTARGETDBパラメータのみでも十分な場合があります。

詳細は、SOURCEDBおよびTARGETDBを参照してください。

注意:

USERIDユーザーに必要な権限は、データベースによって異なります。Oracle GoldenGateデータベース・ユーザーに必要な権限を判別するには、データベースの適切なOracle GoldenGateインストール・ガイドを参照してください。

データベース・タイプ別のUSERIDの要件

USERIDの使用方法は、データベース・タイプに応じて異なります。

DB2 for i

USERIDをPASSWORDとともに使用して、Oracle GoldenGateプロセスに割り当てられたユーザー・プロファイルの名前およびパスワードを指定します。システム名(大文字)で識別されるデフォルトのDB2 for iデータベースを指定するには、SOURCEDBまたはTARGETDBをUSERIDとともに使用します。詳細は、DB2 for iのためのOracle GoldenGateのインストールおよび構成を参照してください。

DB2 for LUW

USERIDをPASSWORDとともに、SOURCEDBまたはTARGETDBを先頭にして使用する対象は、データベース認証を使用してDB2 LUWデータベースに接続するすべてのOracle GoldenGateプロセスです。データベースがオペレーティングシステム・レベルでの認証を許可するように構成されている場合は、USERIDおよびPASSWORDを省略できます(SOURCEDBまたはTARGETDBのみを使用できます)。

DB2 for z/OSデータベース

Oracle GoldenGateプロセスに割り当てられているユーザーが、プロセスを正常に機能させるために必要なDB2権限を持っていない場合に、USERIDをPASSWORDとともに使用します。

MySQL

MySQLデータベースに接続するすべてのOracle GoldenGateプロセスにUSERIDとPASSWORDを使用します。

Oracle

USERIDは、次のようにOracleデータベースに接続するOracle GoldenGateプロセスで使用します。

- オペレーティング・システムのログインを使用するには、USERIDを/引数とともに使用します。

- データベース・ユーザー名およびパスワードを使用するには、USERIDをPASSWORDとともに使用します。

- オプションで、ログインするユーザーをsysdbaとして指定できます。

- (11.2.0.2より前のOracle Enterprise Edition) ExtractがLOGRETENTIONを使用するように構成されている場合、USERIDユーザーには特別なデータベース権限が必要です。これらの権限は、Oracle GoldenGateのインストール時に付与されている可能性があります。LOGRETENTIONの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

- (Oracle StandardまたはEnterprise Edition 11.2.0.2以降) 統合キャプチャ用に構成されているExtractグループにUSERIDを使用するには、ユーザーにdbms_goldengate_auth.grant_admin_privilegeプロシージャで付与された権限が必要であり、ユーザーはこのUSERIDに関連付けられているExtractグループに対してDBLOGINおよびREGISTER EXTRACTまたはUNREGISTER EXTRACTを発行するユーザーと同じである必要があります。

- Oracleコンテナ・データベースからのキャプチャをサポートするには、USERIDで指定されたユーザーがルート・コンテナにログインする必要があり、共通ユーザーである必要があります。このユーザーに接続文字列を提供する必要があり、接続文字列にはC##GGADMIN@FINANCEなど、共通ユーザーに必要なC##接頭辞が含まれている必要があります。詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

統合Extractがフェッチまたはメタデータ検索用の接続、またはデータ・ディクショナリ・コールなしで実行できるようにするには、NOUSERIDを使用します。基本的にソース・データベースへの接続の必要がまったくなくなります。NOUSERIDオプションは統合ディクショナリが必要です。NOUSERIDが使用されるとき、お客様にActive Data Guardスタンバイがある場合、FETCHUSERIDパラメータを使用してそのスタンバイ・データベースからフェッチを設定できることも含める必要があります。2つはNOUSERIDと組み合せて使用できます。ダウンストリーム統合Extract(この後の注意事項と同じ)を使用している場合、FETCHUSERIDを使用してADGスタンバイ・データベースからフェッチし、NOUSERIDを使用してExtractがソース・データベースに接続しないようにできます。このとおり、Extractがフェッチする必要がない場合、そのようにできます。

SQL/MX

- ソースSQL/MXデータベースに接続するOracle GoldenGateプロセスの場合は、SOURCEDBまたはTARGETDBパラメータを使用してカタログ名を指定し、同じパラメータ文でPASSWORDなしでUSERIDを使用してデフォルト・スキーマを指定します。

- ターゲットSQL/MXデータベースに接続するOracle GoldenGateプロセスの場合は、TARGETDBパラメータを使用してターゲットODBCデータ・ソースを指定し、同じパラメータ文でPASSWORDとともにUSERIDを使用します。Replicatは、ODBC/MXを使用してSQL/MXデータベースに接続します。

SQL Server

Oracle GoldenGateプロセスによって使用されるODBCデータ・ソース接続がデータベース認証を提供するように構成されている場合は、USERIDをPASSWORDとともに使用します。USERIDには、このプロセス、またはSystem AdministratorsかServer Administrators固有サーバー・ロールのアカウントの任意のメンバーに割り当てられている特定のログインを使用できます。

- ソースSQL Serverシステムでは、SOURCEDBパラメータも使用してソースODBCデータ・ソースを指定します。

- ターゲットSQL Serverシステムでは、TARGETDBパラメータも使用してターゲットODBCデータ・ソースを指定します。

Sybase

Sybaseデータベースに接続するOracle GoldenGateプロセスにUSERIDとPASSWORDを使用します。

Teradata

Teradataデータベースに接続するOracle GoldenGateプロセスにUSERIDをPASSWORDとともに使用します。

- ソースTeradataシステムでは、SOURCEDBパラメータも使用してソースODBCデータ・ソースを指定します。

- ターゲットTeradataシステムでは、TARGETDBパラメータも使用してターゲットODBCデータ・ソースを指定します。

TimesTen

Replicatによって使用されるODBCデータ・ソース接続がデータベース認証を提供するように構成されている場合は、USERIDをPASSWORDとともに使用します。また、TARGETDBパラメータを使用して、ターゲットODBCデータ・ソースを指定します。

デフォルト

なし

構文

USERID {/ | user}[, PASSWORD password]
[algorithm ENCRYPTKEY {key_name | DEFAULT}] [SYSDBA]
[, THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])]

/

データベース・ユーザー・ログインではなく、Oracle用のオペレーティングシステム・ログインを使用するようにOracle GoldenGateに指示します。この引数は、データベースによってオペレーティングシステム・レベルでの認証が許可されている場合にのみ使用します。データベースレベルの認証をバイパスすることにより、アプリケーションのパスワードが頻繁に変更される場合に、Oracle GoldenGateパラメータ・ファイルを更新する必要がなくなります。このオプションを使用するには、次のように、Oracle OS_AUTHENT_PREFIX初期化パラメータの値との関連で、正しいユーザー名がデータベースに存在している必要があります。

- OS_AUTHENT_PREFIXで指定されている値は、ユーザーのオペレーティング・システム・アカウント名の先頭に追加され、データベース名と比較されます。この2つの名前は一致する必要があります。

- OS_AUTHENT_PREFIXが' ' (NULL文字列)に設定されている場合は、ユーザー名をIDENTIFIED EXTERNALLYとして作成する必要があります。たとえば、OSユーザー名がoggの場合は、次のようにしてデータベース・ユーザーを作成します。

CREATE USER ogg IDENTIFIED EXTERNALLY;

- OS_AUTHENT_PREFIXがOPS$または別の文字列に設定されている場合は、ユーザー名は次のフォーマットで作成する必要があります。

OS_AUTHENT_PREFIX_value OS_user_name

たとえば、OSユーザー名がoggの場合は、次のようにしてデータベース・ユーザーを作成します。

CREATE USER ops$ogg IDENTIFIED BY oggpassword;

user

データベース構成に応じて、データベース・ユーザーまたはスキーマの名前を指定します。Oracleの場合は、SQL*Net接続文字列を使用できます。その他のガイドラインは、データベース・タイプ別のUSERIDの要件を参照してください。

password

データベース・ユーザーのパスワードを指定するためにデータベース認証が必要な場合に使用します。パスワードがENCRYPT PASSWORDコマンドによって暗号化されている場合は、暗号化されたパスワードを指定します。それ以外の場合は、クリアテキストのパスワードを使用します。パスワードに大/小文字の区別がある場合は、そのように入力してください。

ユーザーIDまたはパスワードのいずれかが変更されると、必要に応じて、パスワードの再暗号化など、Oracle GoldenGateパラメータ・ファイルの変更を行う必要があります。

algorithm

ENCRYPT PASSWORDでパスワードの暗号化に使用した暗号化アルゴリズムを指定します。

パスワード暗号化は、BLOWFISHアルゴリズムを使用するSQL/MXでのみサポートされます。

アルゴリズムは次のいずれかになります。

AES128

AES192

AES256

BLOWFISH

ENCRYPTKEY {key_name | DEFAULT}

ENCRYPT PASSWORDで指定した暗号化鍵を指定します。

- ENCRYPTKEY key_nameは、ENCKEYS参照ファイル内のユーザー作成の暗号化鍵の論理名を指定します。ENCRYPT PASSWORDがKEYNAME key_nameオプションとともに使用された場合に使用します。

- ENCRYPTKEY DEFAULTを指定すると、Oracle GoldenGateでランダムな鍵が使用されます。ENCRYPT PASSWORDがKEYNAME DEFAULTオプションとともに使用された場合に使用します。

SYSDBA

(Oracle)ユーザーがsysdbaとしてログインするように指定します。

THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])

Replicatに有効です指定された資格証明を調整Replicatの1つ以上のスレッドにリンクします。異なるスレッドに異なるログインを指定できます。

threadID[, threadID][, ...]

スレッドIDを指定するか、スレッドのカンマ区切りリストをthreadID, threadID, threadIDの形式で指定します。

[, thread_range[, thread_range][, ...]

スレッドの範囲をthreadIDlow-threadIDhighの形式で指定するか、範囲のカンマ区切りリストをthreadIDlow-threadIDhigh, threadIDlow-threadIDhighの形式で指定します。

threadID, threadID, threadIDlow-threadIDhighのように、これらの形式を組み合せることができます。

例

例1

USERID /

例2

USERID ogg

例3

USERID ogg@ora1.ora, &
PASSWORD AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC AES128, &
ENCRYPTKEY securekey1

例4

USERID ogg, PASSWORD AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC &
AES128, ENCRYPTKEY securekey1

例5

USERID ogg, PASSWORD AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC &
BLOWFISH, ENCRYPTKEY DEFAULT

例6

USERID ogg, &
PASSWORD AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC AES128, &
ENCRYPTKEY securekey1 SYSDBA

3.200 USERIDALIAS

適用対象

Manager、Extract、Replicat、DEFGEN

サポート

DB2 for i

DB2 LUW

z/OS上のDB2

Informix

MySQL

Oracle

SQL/MX

SQL Server

Sybase

Teradata

TimesTen

説明

USERIDALIASパラメータでは、データベースへのログイン時に使用するOracle GoldenGateプロセスの認証を指定します。USERIDALIASを使用するには、Oracle GoldenGate資格証明ストアを使用する必要があります。パラメータ・ファイルで、TABLEまたはMAPエントリの前にUSERIDALIASを指定します。

注意:

USERIDALIASユーザーに必要な権限は、データベースによって異なります。Oracle GoldenGateデータベース・ユーザーに必要な権限を判別するには、データベースの適切なOracle GoldenGateインストール・ガイドを参照してください。

USERIDと比較したUSERIDALIAS

USERIDALIASでは、ユーザーIDおよびパスワードではなく、エイリアスをパラメータ・ファイルで指定できます。ユーザーIDと暗号化されたパスワードが資格証明ストアに格納されます。USERIDALIASは、Linux、UNIXおよびWindowsプラットフォームで稼働するデータベースをサポートします。

USERIDでは、パラメータ・ファイルにクリアテキスト・パスワードを指定するか、ENCRYPT PASSWORDコマンドで暗号化し、オプションで暗号化鍵をENCKEYSファイルに格納する必要があります。USERIDでは、Oracle GoldenGateでサポートされる幅広いデータベースがサポートされます。また、Oracleデータベースのオペレーティング・システム・ログインの使用をサポートします。

これらのパラメータおよびOracle GoldenGateセキュリティ機能の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

データベース・タイプ別のUSERIDALIASの要件

USERIDALIASの使用方法は、データベース・タイプに応じて異なります。

注意:

データベース・ユーザーとパスワードを必要とするログインは、Oracle GoldenGate資格証明ストアに格納されている必要があります。資格証明ストアの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

DB2 for LUW

USERIDALIASとSOURCEDBまたはTARGETDBは、データベース認証を使用してDB2 LUWデータベースに接続するすべてのOracle GoldenGateプロセスで使用します。データベースがオペレーティングシステム・レベルでの認証を許可するように構成されている場合は、USERIDALIASを省略し、SOURCEDBまたはTARGETDBのみを使用できます。詳細は、SOURCEDBおよびTARGETDBを参照してください。

MySQL

MySQLデータベースに接続するすべてのOracle GoldenGateプロセスにUSERIDALIASを使用します。SOURCEDBまたはTARGETDBパラメータは不要です。

Oracle

USERIDALIASは、Oracleデータベースに接続するOracle GoldenGateプロセスで使用します。

- SOURCEDBまたはTARGETDBパラメータは不要です。

- Oracle GoldenGate資格証明ストアに格納されているデータベース資格証明の別名を指定します。

- (11.2.0.2より前のOracle Enterprise Edition) ExtractがLOGRETENTIONを使用するように構成されている場合、USERIDALIASユーザーには特別なデータベース権限が必要です。これらの権限は、Oracle GoldenGateのインストール時に付与されている可能性があります。LOGRETENTIONの詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

- (Oracle StandardまたはEnterprise Edition 11.2.0.2以降) 統合キャプチャ用に構成されているExtractグループにUSERIDALIASを使用するには、ユーザーにdbms_goldengate_auth.grant_admin_privilegeプロシージャで付与された権限が必要であり、ユーザーはこのUSERIDALIASに関連付けられているExtractグループに対してDBLOGINおよびREGISTER EXTRACTまたはUNREGISTER EXTRACTを発行するユーザーと同じである必要があります。

- Oracleコンテナ・データベースからのキャプチャをサポートするには、USERIDで指定されたユーザーがルート・コンテナにログインする必要があり、共通データベース・ユーザーである必要があります。C##GGADM@FINANCEなどの接続文字列がこのユーザーに指定されている必要があります。詳細は、Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成を参照してください。

SQL Server

Oracle GoldenGateプロセスによって使用されるODBCデータ・ソース接続がデータベース認証を提供するように構成されている場合は、USERIDALIASを使用します。USERIDALIASには、このプロセス、またはSystem AdministratorsかServer Administrators固有サーバー・ロールのアカウントの任意のメンバーに割り当てられている特定のログインを使用できます。

- ソースSQL Serverシステムでは、SOURCEDBパラメータも使用してソースODBCデータ・ソースを指定します。

- ターゲットSQL Serverシステムでは、TARGETDBパラメータも使用してターゲットODBCデータ・ソースを指定します。

Sybase

USERIDALIASは、Sybaseデータベースに接続するOracle GoldenGateプロセスで使用します。

Teradata

USERIDALIASは、Teradataデータベースに接続するOracle GoldenGateプロセスで使用します。

- ソースTeradataシステムでは、SOURCEDBパラメータも使用してソースODBCデータ・ソースを指定します。

- ターゲットTeradataシステムでは、TARGETDBパラメータも使用してターゲットODBCデータ・ソースを指定します。

TimesTen

Replicatによって使用されるODBCデータ・ソース接続がデータベース認証を提供するように構成されている場合は、USERIDALIASを使用します。また、TARGETDBパラメータを使用して、ターゲットODBCデータ・ソースを指定します。

デフォルト

なし

構文

USERIDALIAS alias [DOMAIN domain] [SYSDBA]
[, THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])]

alias

Oracle GoldenGateの資格証明ストアに格納されているデータベース・ユーザー資格証明の別名を指定します。その他のガイドラインは、データベース・タイプ別のUSERIDの要件を参照してください。

DOMAIN domain

指定した別名の資格証明ストアのドメインを指定します。有効なドメイン・エントリが指定した別名に対する資格証明ストアに存在する必要があります。

SYSDBA

(Oracle)ユーザーがsysdbaとしてログインするように指定します。

THREADS (threadID[, threadID][, ...][, thread_range[, thread_range][, ...])

Replicatに有効です指定された資格証明を調整Replicatの1つ以上のスレッドにリンクします。異なるスレッドに異なるログインを指定できます。

threadID[, threadID][, ...]

スレッドIDを指定するか、スレッドのカンマ区切りリストをthreadID, threadID, threadIDの形式で指定します。

[, thread_range[, thread_range][, ...]

スレッドの範囲をthreadIDlow-threadIDhighの形式で指定するか、範囲のカンマ区切りリストをthreadIDlow-threadIDhigh, threadIDlow-threadIDhighの形式で指定します。

threadID, threadID, threadIDlow-threadIDhighのように、これらの形式を組み合せることができます。

例

例1

次の例は、eastのドメインにtiger1の別名を持つ資格証明ストア内のユーザーの資格証明を指定します。

例2

次の例は、調整Replicatのスレッド3の資格証明を指定します。

USERIDALIAS tiger1 DOMAIN east THREADS (3)

3.201 VAM

適用対象

Extract

説明

VAMパラメータでは、Vendor Access Module (VAM)を使用してExtractプロセスのためのデータ取得ファンクションを実行し、Extract APIにデータを送信することを指定します。このパラメータは、VAM APIへの必須入力を指定します。

デフォルト

なし

構文

VAM library, PARAMS ('param' [, 'param'] [, ...])

library

データベース・ベンダーによってWindows DLLまたはUNIX共有オブジェクトとして提供されているライブラリ名。このライブラリがOracle GoldenGateディレクトリ以外のディレクトリに存在する場合は、完全パス名を使用します。

注意:

Teradataは、このライブラリをTeradata Access Module (TAM)と呼びます。このプログラム(ライブラリ)は、Oracle GoldenGate VAM APIと通信します。

PARAMS 'param'

Oracle GoldenGate APIに渡される、一重引用符で囲まれた任意のパラメータです。次のデータベース固有パラメータ・オプションを参照してください。

ARLIBError error, action

SQL/MXに有効です。

VAMによるTMFARLIBエラーの処理方法を指定します。

- errorは、ARLIBエラー番号です。

- actionは、ABEND | WARN | IGNOREを使用できます。

デフォルトはABENDです。エラー-1000および-2000は、他にアクションが指定されていても、常にABENDになります。

例:

Vam Params (arliberror (-16,-14), Warn)
Vam Params (arliberror -2000, Abend)
Vam Params (arliberror -1000, Abend)

ARErrorReportInterval seconds

SQL/MXに有効です。

同一のTMFARLIBエラーがExtractにレポートで戻される間隔(秒)を設定します。これにより、蓄積される各エラー・タイプのメッセージ量が削減されます。secondsは、ゼロ以上である必要があります。デフォルトは60秒です。

inifile, ini_file, callbackLib, extract.exe

Teradataでは必須のパラメータです。

- inifileは、次のパラメータにTAM初期化ファイルが指定されることを示します。

- ini_fileは、TAM初期化ファイル名です。このファイルがExtractプログラムのインストール先と同じディレクトリに存在する場合を除き、完全修飾パス名を指定します。

- callbackLibは、次のパラメータにTAMとのインタフェースになるプログラムが指定されることを示します。このパラメータは、大/小文字が区別され、ここに示したとおりに正確に入力する必要があります。

- extract.exeはExtractプログラムで、TAMにとってコールバック・プログラムです。

CDCRECORDSFETCHCOUNT, CDCSESSIONTIMEOUT, CDCRECORDQUEUESIZE

Informixに有効です。

- CDCRECORDSFETCHCOUNTでは、1回のコールでフェッチされるCDCレコードの数を指定します。たとえば、CDCレコード・バッチ・サイズです。デフォルトのレコード数は10です。トランザクション・ログからフェッチするレコードが10件ない場合、CDC APIは古いレコードをフェッチします。これにより重複が発生し、ExtractまたはReplicatが異常終了する場合があります。また、Extractの統計に不正確な出力が表示される可能性もあります。この状態を回避するには、Extractパラメータ・ファイルにVAM PARAMS (CDCRECORDSFETCHCOUNT 1を使用します。

- CDCSESSIONTIMEOUTでは、CDCセッション・タイムアウトを秒単位で指定します。デフォルトは2秒です。

- CDCRECORDQUEUESIZEでは、トランザクション・ログ・レコードの格納に使用されるキュー・サイズを指定します。デフォルトは256レコードです。

トランザクション数が非常に多い分散環境では、最適なメモリー・パフォーマンスのために、これらのVAMパラメータを構成する必要があります。たとえば、表数が800を超え、VAMパラメータがCDCRECORDFETCHCOUNT 32およびCDCRECORDQUEUESIZE 5120に設定された場合のExtractのメモリー消費量は760MBです。また、表数が同じで、これらのパラメータをCDCRECORDFETCHCOUNT 32およびCDCRECORDQUEUESIZE 1024に設定した場合のメモリー消費量は300MBになります。これらのパラメータの構成では、Extractのメモリー消費量とパフォーマンス率との間にトレード・オフの関係が生じます。

LOGICALLOGWARNINGTHRESHOLD

Informixに有効です。

入力は、Informix Dynamic Serverで使用される現在の論理ログ・ファイルの割合(%)で指定される、使用しきい値です。デフォルト値は50 (50%)です。Oracle GoldenGateキャプチャが最も古い論理ログファイルで配置され、現在の論理ログ・ファイルの使用率が指定したしきい値を超えると、警告メッセージがレポート・ファイルに書き込まれます。

例

VAM tam.dll, PARAMS (inifile, tam.ini, callbackLib, extract.exe)
VAM PARAMS(CDCRECORDSFETCHCOUNT 5)
VAM PARAMS(CDCRECORDSFETCHCOUNT 5 CDCSESSIONTIMEOUT 5)
VAM PARAMS (CDCRECORDQUEUESIZE 512)
VAM PARAMS (LOGICALLOGWARNINGTHRESHOLD 65)

3.202 VARWIDTHNCHAR | NOVARWIDTHNCHAR

適用対象

Extract、Replicat、DEFGEN for Oracle

説明

VARWIDTHNCHARおよびNOVARWIDTHNCHARパラメータでは、NCHARデータのトレイルへの書込み方法とReplicatによる解釈方法を制御します。

- VARWIDTHNCHARを使用すると、NCHAR、NVARCHAR2またはNCLOBキャラクタ・セットは、可変長キャラクタ・セット(UTF-8)として処理されます。

- NOVARWIDTHNCHARを使用すると、NCHAR、NVARCHAR2またはNCLOBキャラクタ・セットは、UTF-16として処理されます。

- いずれのオプションも指定しない場合は、NCHAR、NVARCHAR2またはNCLOBキャラクタ・セットの処理方法を決定するために、データベースのNLS_NCHAR_CHARACTERSETプロパティ値が使用されます。

デフォルト

データベースからNLS_NCHAR_CHARACTERSETプロパティを使用する

構文

VARWIDTHNCHAR | NOVARWIDTHNCHAR

3.203 WALLETLOCATION

適用対象

GLOBALS

説明

WALLETLOCATIONパラメータでは、Oracle GoldenGateマスター・キー・ウォレットの場所を指定します。

デフォルト

Oracle GoldenGateインストール・ディレクトリのdirwltサブディレクトリです。

構文

WALLETLOCATION directory_path

directory_path

ウォレットの場所のフルパス名を指定します。

例

WALLETLOCATION /home/ggadmin/walletdir

3.204 WARNLONGTRANS

適用対象

Extract

説明

WARNLONGTRANSパラメータでは、Extractによってトランザクションが長時間に及んでいることの警告メッセージが生成されるまでの、トランザクションのオープン時間を指定します。またWARNLONGTRANSも使用して、Oracle GoldenGateが長時間に及ぶトランザクションをチェックする頻度を制御します。

このパラメータは、Oracle、SQL/MX、SQL ServerおよびSybaseに有効です。

WARNLONGTRANSを指定すると、Oracle GoldenGateは指定されたしきい値を満たすトランザクションを確認し、検出した最初のトランザクションをOracle GoldenGateエラー・ログ、Extractレポート・ファイル、およびシステム・ログにレポートします。デフォルトでは、Oracle GoldenGateはこの確認を5分ごとに繰り返します。

オープンしているトランザクションのリストのオンデマンド表示、トランザクション詳細のファイルへの出力、これらのトランザクションの中止またはトレイルへの強制的な書込みの方法を表示するには、SEND EXTRACTコマンドのオプションを使用します。詳細は、SEND EXTRACTを参照してください。

デフォルト

1時間(および別の処理スレッドを使用して5分間隔で確認)

構文

WARNLONGTRANS duration
[, CHECKINTERVAL interval]
[, NOUSETHREADS]
[, USELASTREADTIME]

duration

オープンしているトランザクションを長時間に及ぶトランザクションとみなすまでの時間を設定します。durationは、整数およびそれに続く秒、分または時間を示す次のいずれかの形式の時間単位で指定されます。数値と単位の間にスペースを入れないでください。単位の大/小文字は区別されません。デフォルトは1時間です。

S|SEC|SECS|SECOND|SECONDS
M|MIN|MINS|MINUTE|MINUTES
H|HOUR|HOURS
D|DAY|DAYS

有効なdurationの例は次のとおりです。

WARNLONGTRANS 2HOUR
WARNLONGTRANS 2hours
WARNLONGTRANS 1DAY
WARNLONGTRANS 600sec
WARNLONGTRANS 40s

CHECKINTERVAL interval

Oracle GoldenGateがWARNLONGTRANSを満たすトランザクションを確認し、最も長時間に及ぶトランザクションをレポートする間隔を設定します。intervalは、整数およびそれに続く秒、分または時間を示す次のいずれかの形式の時間単位で指定されます。数値と単位の間にスペースを入れないでください。単位の大/小文字は区別されません。デフォルトは最小値の5分です。

S|SEC|SECS|SECOND|SECONDS
M|MIN|MINS|MINUTE|MINUTES
H|HOUR|HOURS
D|DAY|DAYS

有効なinterval指定の例は次のとおりです。

CHECKINTERVAL 2h
CHECKINTERVAL 2HOURS
CHECKINTERVAL 1day
CHECKINTERVAL 600SEC
CHECKINTERVAL 2m

NOUSETHREADS

Oracleに有効です。

メイン・プロセス・スレッドによってモニタリングを実施することを指定します。デフォルトでは、パフォーマンスの理由で、モニタリングは個々のスレッドによって実施されます。NOUSETHREADSは、システムがマルチスレッドをサポートしていない場合にのみ使用するようにしてください。

USELASTREADTIME

Oracleに有効です。

トランザクションが長時間に及んでいるかどうかの判断基準として、Extractに常にOracle REDOログの最後の読取り時間を使用させます。デフォルトでは、ExtractはREDOログから読み取った最後のレコードのタイムスタンプを使用します。このパラメータは、ARCHIVEDLOGONLYオプションを使用してTRANLOGOPTIONSでアーカイブ・ログ専用モードで実行しているExtractに適用されます。

例

WARNLONGTRANS 2h, CHECKINTERVAL 3m, NOUSETHREADS

3.205 WARNRATE

適用対象

Replicat

説明

WARNRATEパラメータでは、プロセス・レポートまたはエラー・ログにレポートされるまでの、ターゲット表で許容されるSQLエラー数のしきい値を設定します。エラーは警告としてレポートされます。お使いの環境で、多数のエラーを許容できるときは、WARNRATEの値を増やすことによってこれらのファイルのサイズを最小限に抑えられます。

調整ReplicatのWARNRATEを設定する場合は、指定されたWARNRATEしきい値がReplicat全体の集計しきい値としてではなく構成の各スレッドに適用されることを考慮します。たとえば、WARNRATE 100が指定されている場合は、Replicatからの警告なしに各スレッドが99個のエラーを返すことができます。

Oracle環境で実行されているReplicatの場合、このパラメータは非統合モードでのみ有効です。

デフォルト

100エラー

構文

WARNRATE number_of_errors

number_of_errors

警告発行のしきい値にするSQLエラー数。

例

WARNRATE 1000

3.206 WILDCARDRESOLVE

適用対象

ExtractおよびReplicat

説明

WILDCARDRESOLVEパラメータでは、TABLE、SEQUENCE、またはMAP文でワイルドカードで指定されている表を処理するルールを変更します。WILDCARDRESOLVEは、パラメータ・ファイル内の関連するTABLE、SEQUENCE、またはMAP文よりも先に指定する必要があります。

ターゲット・オブジェクトは、ワイルドカードの解決を試みるときに、ターゲット・データベース上に存在している必要があります。ターゲット・オブジェクトが存在しない場合、Replicatは異常終了します。

デフォルト

DYNAMIC

構文

WILDCARDRESOLVE {DYNAMIC | IMMEDIATE}

DYNAMIC

ワイルドカード定義に一致するソース・オブジェクトは、ワイルドカード・ルールに一致するたびに解決されます。新規に解決されたオブジェクトは、解決時にOracle GoldenGate構成に含められます。これはデフォルトです。これは、Teradataに必須の設定です。

SOURCEISTABLEまたはGENLOADFILESが指定されている場合は、このオプションを使用しないでください。WILDCARDRESOLVEは、これらのパラメータに対して常に暗黙にIMMEDIATEに設定されます。

SEQUENCEパラメータを指定し、ワイルドカードを使用してOracle順序をレプリケートするときは、DYNAMICを使用する必要があります。

DYNAMICのデフォルトを保持するには、明示的なWILDCARDRESOLVEパラメータはオプションですが、その存在はメソッドが使用されるパラメータ・ファイルを確認する人に明確化するために役立ちます。

IMMEDIATE

ワイルドカード定義に一致するソース・オブジェクトは、起動時に処理されます。このオプションは、Teradataではサポートされていません。SOURCEISTABLEを使用する場合は、これが強制的にデフォルトになります。

このオプションは、Oracleインターバル・パーティション機能をサポートしていません。Oracle GoldenGateが新しいパーティションを見つけられるように、動的な解決を行う必要があります。

例

次に、起動時にワイルドカードを解決する例を示します。

WILDCARDRESOLVE IMMEDIATE
TABLE hq.acct_*;

3.207 XAGENABLE

適用対象

GLOBALS

説明

XAGENABLEでは、GoldenGateインスタンスがOracle Grid Infrastructure Bundled Agents (XAG)の管理対象である場合に、引き続きGGSCIを使用してManagerを起動および停止できるようにする、Oracle GoldenGateのOracle Clusterwareとの透過的な統合機能を有効にします。XAGENABLEを使用する際には、次のいずれかの環境変数を設定する必要があります。

CRS_HOME
ORA_CRS_HOME
GRID_HOME

INFO ALLを使用して、XAG関連情報を表示できます。

デフォルト

無効。

構文

XAGENABLE

3.208 Y2KCENTURYADJUSTMENT | NOY2KCENTURYADJUSTMENT

適用対象

ExtractおよびReplicat

説明

Y2KCENTURYADJUSTMENTおよびNOY2KCENTURYADJUSTMENTパラメータは、世紀の部分がゼロである(0055など)か、指定されていない(2桁の年のみの指定など)場合に年の値の変換を制御するために使用します。

Y2KCENTURYADJUSTMENTを有効にした場合(デフォルト)、50以上の2桁の年の値は20世紀の4桁の年(19xx)に変換されます。2桁の年の値が50未満の場合は、21世紀の4桁の年(20xx)に変換されます。年の世紀部分がゼロ以外の場合、またはNOY2KCENTURYADJUSTMENTが指定されている場合は、変換は実行されません。

デフォルト

Y2KCENTURYADJUSTMENT

構文

Y2KCENTURYADJUSTMENT | NOY2KCENTURYADJUSTMENT

4 Collectorパラメータ

この章ではCollectorプロセスのパラメータについて説明し、次のトピックを含みます。

- Collectorプロセスの概要

- Collectorパラメータの概要

Collectorプロセスは、ターゲット・システム上で動作し、受信データを受け取ってトレイルに書き込みます。Collectorの使用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

4.1 Collectorプロセスの概要

通常Oracle GoldenGateユーザーは、Collectorプロセスとやり取りを行いません。これが動的Collectorと呼ばれます。これはManagerプロセスによって動的に起動されますが、パラメータは特定のExtractまたはReplicatパラメータのオプションとしてCollectorに送信できます。

ManagerでCollectorを実行するかわりに、次に示す構文と入力パラメータを使用してコマンドラインでSERVERプログラムを実行することにより、静的Collectorを手動で実行できます。

server parameter [parameter] [...]

Collectorパラメータは、大/小文字が区別され、先頭にダッシュを付ける必要があります。たとえば、-eと-Eは2つの別個のパラメータで、結果はまったく異なります。

4.2 Collectorパラメータの概要

次に、使用可能なCollectorパラメータの概要を示します。

表4-1 Collectorパラメータ

パラメータ

説明

-B

Collectorをバッファ・ファイルにダイレクトします。

-b

デフォルトのファイル・バッファ・サイズを指定します。

-cp

別名Extractグループ用にCollectorで保持するチェックポイント・ファイルの名前を指定します。

-d

DEFGENユーティリティによって生成されたローカル定義ファイルの名前を指定します。

-E

受信ヘッダーおよびデータを、ASCIIからEBCDICフォーマットに変換します。

-e

Collectorにカスタマイズした方法で特定のフォーマット・エラーにレスポンスするように指示します。

-ENCRYPT

Extractパラメータ・ファイルのRMTHOSTパラメータで指定され、Extractプロセスから渡される暗号化のタイプを指定します。

-f

Extractプロセスに成功ステータスを返す前に、強制的にファイルへのすべての書込みをディスクにフラッシュさせます。

-g

2GBより大きなファイルをサポートします(Solarisのみ)。

-h

ソース・システムの名前またはIPアドレスを指定します。

-k

サービス提供先のExtractプロセスが接続を切断したときに終了するようにCollectorに指示します。

-KEYNAME

ローカルENCKEYS参照ファイルで定義されている鍵の名前を指定します。

-l

指定したファイルに出力を記録します。

-m

割り当てる最大ログ・ファイル数を指定します。

-P

Collectorパラメータを含むローカル・ファイルを指定します。

-p

TCP/IPポート番号を指定します。

-R

無効な数値ASCIIデータを代替値に置換します。

-x

Oracle GoldenGateで処理できなかったレコードを格納する破棄ファイルを指定します。

4.3 -B

Collectorをバッファ・ファイルにダイレクトします。

構文:

-B

4.4 -b

デフォルトのファイル・バッファ・サイズを指定します。

構文:

-B size

sizeが指定されていない場合、デフォルトのサイズはCライブラリのデフォルトのファイル・バッファ・サイズ(BUFSIZ)になります。最小値は16 KB、最大値は16 MBで、ゼロ(0)はバッファなしを示します。

4.5 -cp

別名Extractグループ用にCollectorで保持するチェックポイント・ファイルの名前を指定します。チェックポイント・ファイルは、パッシブExtractグループが実行中かどうかを確認するために使用されます。チェックポイント・ファイルがCollector (Oracle GoldenGateインストール・ディレクトリのserverプログラム)によってロックされている場合は実行中です。

-cpは、-hおよび-pパラメータとともに使用する必要があります。

パッシブおよび別名Extractグループの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

-cp checkpoint_file

cp

小文字である必要があります。

checkpoint_file

パッシブExtractグループがそのチェックポイントを書き込むファイルの名前。パッシブExtractグループの名前とチェックポイント・ファイルの名前は同一です。

4.6 -d

DEFGENユーティリティによって生成されたローカル定義ファイルの名前を指定します。ファイルには、リモート・システムに存在する表の定義が含まれます。定義ファイルの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

-d definitions_file

d

小文字である必要があります。

definitions_file

DEFGENの実行時に指定した名前と正確に同じ定義ファイルの名前。

4.7 -E

受信ヘッダーおよびデータを、ASCIIからEBCDICフォーマットに変換します。デフォルトでは、Oracle GoldenGateはデータ変換を行いません。

構文

-E

E

大文字である必要があります。

4.8 -e

Collectorにカスタマイズした方法で特定のフォーマット・エラーにレスポンスするように指示します。たいていの場合はデフォルト値で問題ありません。複数のエラー・タイプを指定するときは、-eを複数回使用します。例:

-e OLD CONTINUE -e NEW DISCARD.

構文

-e type action

e

小文字である必要があります。

type

レスポンスを生成するエラーのタイプとして、次のいずれかを指定できます。

NEW

想定よりも多くのデータ(現在の定義よりも多くの列)を含むレコードを確認します。Collectorプロセスは、更新されたソース表が必要になることがあります(つまりDEFGENをもう一度実行する必要があります)。デフォルトのアクションはABENDです。

OLD

想定より少ないデータを含むレコードを確認します。これは、通常はレコードに含まれる列が表の現在の定義よりも少ない状況で、正常な状態と考えられます。デフォルトのアクションはCONTINUEです。

OUTOFSYNC

提供されている定義に従って変換できないレコードを確認します。デフォルトのアクションはABENDです。

action
エラーに対するレスポンスとして、次のいずれかを指定できます。

ABEND

レコードを破棄し、Extractプロセスに即座に終了するよう指示します。

CONTINUE

検出された変換エラーにかかわらず、(可能な場合)レコードを処理します。

DISCARD

(破棄ファイルが–xで指定されている場合)、レコードを破棄ファイルに出力します。Collectorは、エラー・ファイルに最初に破棄されたレコードの警告を送信し、レコードの処理を継続します。

4.9 -ENCRYPT

Extractパラメータ・ファイルのRMTHOSTパラメータで指定され、Extractプロセスから渡される暗号化のタイプを指定します。Oracle GoldenGateのセキュリティの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

-ENCRYPT {NONE | BLOWFISH}

ENCRYPT

大文字である必要があります。

NONE

データを暗号化しないように指定します。

BLOWFISH

BLOWFISH暗号化を指定します。BLOWFISHを使用するときは、-KEYNAMEオプションも指定します。

4.10 -f

Extractプロセスに成功ステータスを返す前に、強制的にファイルへのすべての書込みをディスクにフラッシュさせます。操作のたびにディスクにフラッシュするよりも効率的なため、デフォルトではファイル・システムはI/Oをバッファします。I/O成功の確認後、バッファがディスクにフラッシュされる前にシステムが停止し、データが損失するという小さなリスクよりも、通常はパフォーマンスのメリットのほうが重要です。このリスクが許容できない場合は、Oracle GoldenGateのパフォーマンスが低下する可能性を理解した上で、-fを使用してください。

構文

-f

f

小文字である必要があります。

4.11 -g

2GBより大きなファイルをサポートします(Solarisのみ)。

構文

-g

g

小文字である必要があります。

4.12 -h

ソース・システムの名前またはIPアドレスを指定します。このオプションは、ソース上でPASSIVEモードで実行されているExtractと関連付けられているターゲット上の別名Extractを使用するときに使用します。これにより、Collectorを接続モードで動作させます。このモードでは、ソースExtractからの接続リクエストを待機するかわりに、ソースExtractへのTCP/IP接続を開始します。-p Collectorオプションとともに使用する必要があります。PASSIVEモードおよびOracle GoldenGateのセキュリティの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

-h {host_name | IP_address}

h

小文字である必要があります。

host_name

DNSホスト名でソース・システムを指定します。

IP_address

IPアドレスでソース・システムを指定します。

4.13 -k

サービス提供先のExtractプロセスが接続を切断したときに終了するようにCollectorに指示します。このオプションは、Collectorプロセスを起動するときにManagerプロセスによって使用されます。

構文

-k

k

小文字である必要があります。

4.14 -KEYNAME

ローカルENCKEYS参照ファイルで定義されている鍵の名前を指定します。-ENCRYPTにBLOWFISHを指定しているときに使用します。ENCKEYSファイルおよびOracle GoldenGateのセキュリティの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

-KEYNAME key_name

KEYNAME

大文字である必要があります。

key_name

ENCKEYSファイルの指定と同じ鍵の名前。

4.15 -l

指定したファイルに出力を記録します。

構文

-l file_name

l

小文字である必要があります。

file_name

出力ファイルの完全修飾名。

4.16 -m

割り当てる最大ログ・ファイル数を指定します。

構文

-m number

m

小文字である必要があります。

number

割り当てるファイルの最大数。

4.17 -P

Collectorパラメータを含むローカル・ファイルを指定します。このファイルのパラメータは、Extractプロセスから送信されるパラメータより優先されます。

構文

-P file_name

P

大文字である必要があります。

file_name

パラメータ・ファイルの完全修飾名。

4.18 -p

TCP/IPポート番号を次のように指定します。

- 通常のExtractまたは通常のデータ・ポンプの場合: CollectorプロセスがExtractからの接続リクエストをリスニングするポート。

- PASSIVEモードで実行されているExtractまたはデータ・ポンプの場合: Extractまたはデータ・ポンプがCollectorからの接続リクエストをリスニングするポート。この場合は、-h hostパラメータとともに使用する必要があります。PASSIVEモードおよびOracle GoldenGateのセキュリティの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

-p port

p

小文字である必要があります。

port

ポート番号。デフォルトはポート7819です。

4.19 -R

無効な数値ASCIIデータを代替値に置換します。

構文

-R value

R

大文字である必要があります。

value

代替値。デフォルトでは0に置換します。次の代替値のいずれかを指定します。

number

無効なデータを指定した数字に置換します。

NULL

ターゲット列がNULL値を受け付ける場合、無効なデータをNULLに置換します。それ以外の場合、0に置換します。

UNPRINTABLE

出力不可能なデータを含むすべての列を拒否します。プロセスは停止し、不正な値をレポートします。

NONE

数値データの置換を行いません。Oracle GoldenGateはそのままのデータのレプリケートを試みます。

4.20 -x

Oracle GoldenGateで処理できなかったレコードを格納する破棄ファイルを指定します。

構文

-x discard_file

x

小文字である必要があります。

discard_file

破棄ファイルの完全修飾名。

5 列変換ファンクション

Oracle GoldenGateの列変換ファンクションでは、ソース値を操作してターゲット列に適した形式にすることができます。数値および文字の操作、タスクの実行およびパラメータ値の抽出を行ったり、環境情報を返したりすることができます。これらのファンクションの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

5.1 列変換ファンクションの概要

この概要は、Oracle GoldenGateファンクションで実行できる処理タイプ別に構成されています。

表5-1 テストの実行

ファンクション

説明

CASE

一連の値テストに応じて値を選択します。

EVAL

一連の独立テストに基づいて値を選択します。

IF

条件文からTRUEまたはFALSEのどちらを返されるかによって、2つの値から1つを選択します。

表5-2 紛失した列の処理

ファンクション

説明

COLSTAT

列がMISSING、NULLまたはINVALIDであることのインジケータを返します。

COLTEST

列がPRESENT、MISSING、NULLまたはINVALIDかどうかをテストする条件計算を実行します。

表5-3 日付の操作

ファンクション

説明

DATE

ソース列に渡されたフォーマットに基づいて日付と時刻を返します。

DATEDIFF

2つの日付または時刻の差を返します。

DATENOW

現在の日付と時刻を返します。

表5-4 算術計算の実行

ファンクション

説明

COMPUTE

算術式の結果を返します。

表5-5 文字列の操作

ファンクション

説明

NUMBIN

バイナリ文字列を数字に変換します。

NUMSTR

文字列を数字に変換します。

STRCAT

1つ以上の文字列を連結します。

STRCMP

2つの文字列を比較します。

STREXT

文字列の一部を抽出します。

STREQ

2つの文字列が等しいかどうかを確認します。

STRFIND

文字列内の文字列を検索します。

STRLEN

文字列の長さを返します。

STRLTRIM

先行する空白を切り捨てます。

STRNCAT

1つ以上の文字列を最大長まで連結します。

STRNCMP

指定された文字数に基づいて2つの文字列を比較します。

STRNUM

数字を文字列に変換します。

STRRTRIM

末尾の空白を切り捨てます。

STRSUB

文字列を別の文字列に置換します。

STRTRIM

先行の空白と末尾の空白を切り捨てます。

STRUP

文字列を大文字に変更します。

VALONEOF

文字列または文字列用の列を値のリストを比較します。

表5-6 その他のファンクション

ファンクション

説明

AFTER

指定した列のアフター・イメージを返します。

BEFORE

指定した列のビフォア・イメージを返します。

BEFOREAFTER

可能であれば指定した列のビフォア・イメージを返し、不可能であればアフター・イメージを返します。

BINARY

ソース列が文字用の列として定義されているときに、ソース列のバイナリ・データをターゲット列でバイナリ・データとして保持します。

BINTOHEX

バイナリ文字列を16進数文字列に変換します。

GETENV

環境情報を返します。

GETVAL

FILTERまたはCOLMAP句の入力としてストアド・プロシージャからパラメータを抽出します。

HEXTOBIN

16進数文字列をバイナリ文字列に変換します。

HIGHVAL | LOWVAL

値を最大値または最小値までに抑止します。

RANGE

並列処理のために行を複数のデータ・グループに分割します。

TOKEN

トレイル・レコード・ヘッダーからトークン・データを取得します。

OGG_SHA1

業務系データ・ストアへレプリケートする際、一部のフィールドをハッシュ化します。

5.2 AFTER

@AFTERファンクションでは、指定したソース列のアフター・イメージを返します。これは、デフォルトの動作です。

構文

@AFTER (column)

column

アフター・イメージを返すソース列の名前。

例

@AFTER (quantity)

5.3 BEFORE

@BEFOREファンクションでは、指定したソース列のビフォア・イメージを返します。

このパラメータを使用する場合、GETUPDATEBEFORESパラメータをExtractパラメータ・ファイルで使用して、トランザクション・レコードからビフォア・イメージを取得するか、Replicatパラメータ・ファイルで使用して、列マッピングまたはフィルタでビフォア・イメージを使用します。競合の検出および解決(CDR)機能を使用する場合は、TABLEのGETBEFORECOLSオプションを使用できます。これらのパラメータを使用するには、指定した列がトランザクション・ログに存在している必要があります。

データベースが変更された列の値のみを記録している場合、それらの列に対するサプリメンタル・ロギングを有効にして、必要な列値を使用できるようにします。あるいは、TABLEパラメータのFETCHCOLSオプションまたはFETCHCOLSEXCEPTオプションを使用することもできます。フェッチ・オプションでは、追加の処理オーバーヘッドが発生します。

構文

@BEFORE (column)

column

ビフォア・イメージを返すソース列の名前。

例

@BEFORE (quantity)

5.4 BEFOREAFTER

@BEFOREAFTERファンクションでは、可能であればビフォア・イメージを返し、不可能であればアフター・イメージを返します。

このパラメータを使用する場合、GETUPDATEBEFORESパラメータをExtractパラメータ・ファイルで使用して、トランザクション・レコードからビフォア・イメージを取得するか、Replicatパラメータ・ファイルで使用して、列マッピングまたはフィルタでビフォア・イメージを使用します。競合の検出および解決(CDR)機能を使用する場合は、TABLEのGETBEFORECOLSオプションを使用できます。これらのパラメータを使用するには、すべての列がトランザクション・ログに存在している必要があります。

データベースが変更された列の値のみを記録している場合、それらの列に対するサプリメンタル・ロギングを有効にして、必要な列値を使用できるようにします。あるいは、TABLEパラメータのFETCHCOLSオプションまたはFETCHCOLSEXCEPTオプションを使用することもできます。フェッチ・オプションでは、追加の処理オーバーヘッドが発生します。

構文

@BEFOREAFTER (column)

column

可能であればビフォア・イメージを、不可能であればアフター・イメージを返すソース列の名前。

例

@BEFOREAFTER (quantity)

5.5 BINARY

@BINARYファンクションは、列変換ファンクションに参照されるソース列が、文字用の列として定義されているものの、ターゲットではバイナリのまま保持する必要があるバイナリ・データを含んでいるときに使用します。デフォルトでは、文字用の列のバイナリ・データは(必要な場合に)ASCIIに変換され、NULLで終了された文字列とみなされます。@BINARYファンクションは、任意のバイナリ・データをターゲット列にコピーします。

構文

@BINARY (column)

column

データのコピー先のターゲット列名。

例

次に、@BINARYを使用してソース列ACCT_CREATE_DATEからターゲット列ACCT_COMPLAINTにデータをコピーする方法の例を示します。

ACCT_COMPLAINT =
@IF ( @NUMBIN (ACCT_CREATE_DATE ) < 48633, 'xxxxxx',
@BINARY (ACCT_COMPLAINT))

5.6 BINTOHEX

@BINTOHEXファンクションでは、指定されたバイナリ・データを対応する16進数に変換します。

構文

@BINTOHEX (data)

data

次のいずれかを指定できます。

- データを含むソース列の名前

- 式

- 一重引用符で囲まれたリテラル文字列

例

@BINTOHEX ('12345')は3132333435に変換されます。

5.7 CASE

@CASEファンクションでは、一連の値テストに応じて値を1つ選択します。@CASEでテストできるケース数に制限はありません。ケース数が多い場合は、パフォーマンスを最適化するために最も頻繁に検出される条件を最初にリストします。

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。

このファンクションは、NCHARまたはNVARCHARデータ型をサポートしていません。

構文

@CASE (value, test_value1, test_result1
[, test_value2, test_result2] [, ...]
[, default_result]

value

テストする値(列名など)。リテラルは一重引用符で囲みます。

test_value

valueに有効な結果。リテラルは一重引用符で囲みます。

test_result

test_valueの値に基づいて返される値。リテラルは一重引用符で囲みます。

default_result

valueがどのtest_value値にも該当しない場合に返されるデフォルト値。リテラルは一重引用符で囲みます。

例

例1

次の例では、PRODUCT_CODEがCARの場合はA carが返され、PRODUCT_CODEがTRUCKの場合はA truckが返されます。PRODUCT_CODEが最初の2つのケースのいずれにも該当しない場合は、デフォルト値が指定されていないため、FIELD_MISSINGインジケーションが返されます。

@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck')

例2

次の例は前述の例に似ていますが、ここではデフォルト値が指定されています。PRODUCT_CODEがCARにもTRUCKにも該当しない場合、このファンクションはA vehicleを返します。

@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck', 'A vehicle')

5.8 COLSTAT

@COLSTATファンクションでは、列が紛失、NULL、または無効であることのインジケータをExtractまたはReplicatに返します。このインジケータは、別の変換関数を使用する大規模な操作式の一部として使用できます。

構文

@COLSTAT ({MISSING | NULL | INVALID})

例

例1

次の例では、ターゲット列のITEMにNULLを戻します。

ITEM = @COLSTAT (NULL)

例2

次の@IF演算は、@COLSTATを使用して、PRICEおよびQUANTITYがゼロより小さい場合にターゲット列にNULLを返します。

ORDER_TOTAL = PRICE * QUANTITY, @IF (PRICE < 0 AND QUANTITY < 0, @COLSTAT(NULL))

5.9 COLTEST

@COLTESTファンクションでは、1つ以上の列条件を使用したテストによる条件演算を有効にします。条件が満たされた場合、@COLTESTはTRUEを返します。条件演算を実行するには、@IFファンクションを使用します。

構文

@COLTEST (source_column, test_condition [, test_condition] [, ...])

source_column

ソース列名。

test_condition

次の値が有効です。

PRESENT

列がソース・レコードに存在し、NULLでないことを示します。変更されないがNULLと同じではない列の値をデータベースが記録しない場合、列の値は失われることがあります。

NULL

列がソース・レコードに存在し、NULLであることを示します。

MISSING

列がソース・レコードに存在しないこと示します。

INVALID

列がソース・レコードに存在するが無効なデータを含んでいることを示します。

例

例1

次の例では、@IFを使用して、ソース・レコードにBASE_SALARY列が存在し(およびNULLでなく)、かつ250000より大きい場合に、HIGH_SALARY列に値をマップします。そうでない場合はNULLが返されます。

HIGH_SALARY =
@IF (@COLTEST (BASE_SALARY, PRESENT) AND
BASE_SALARY > 250000,
BASE_SALARY, @COLSTAT (NULL))

例2

次の例では、AMT列が欠落しているか無効の場合には0が返され、それ以外の場合にはAMTの値が返されます。

AMOUNT = @IF (@COLTEST (AMT, MISSING, INVALID), 0, AMT)

5.10 COMPUTE

@COMPUTEファンクションでは、算術式の値をターゲット列に返します。関数から返される値は、文字列形式です。

算術式の値を別のOracle GoldenGateファンクションに返すときは、次の例のように@COMPUTE句を省略できます。

@STRNUM ((AMOUNT1 + AMOUNT2), LEFT)

前述は、次と同じ結果を返します。

@STRNUM ((@COMPUTE (AMOUNT1 + AMOUNT2), LEFT)

算術式では、次の要素を組み合せることができます。

- 数字

- 数字を含む列名

- 数字を返すファンクション

- 算術演算子:
+ (加算)

- (減算)

* (乗算)

/ (除算)

\ (余り)

- 比較演算子:
> (より大きい)

>= (以上)

< (より少ない)

<= (以下)

= (等しい)

<> (等しくない)

比較から導出した結果はゼロ(FALSEを示す)またはゼロ以外(TRUEを示す)になります。

- カッコ(式の結果をグループ化)

- 結合演算子AND、OR。Oracle GoldenGateは、結合式の必要部分のみを評価します。文がFALSEになると、式の残りの部分は無視されます。この動作は、紛失またはNULLの可能性があるフィールドを評価するときに役立ちます。たとえば、COL1の値が25で、COL2の値が10の場合は、次のようになります。
@COMPUTE (COL1 > 0 AND COL2 < 3)は0を返します。

@COMPUTE (COL1 < 0 AND COL2 < 3)は0を返します。COL2 < 3は評価されません。

@COMPUTE ((COL1 + COL2)/5)は7を返します。

構文

@COMPUTE (expression)

expression

有効な算術式。数値と精度は、17桁を超えることはできません。この制限を超えると、@COMPUTEによって次のようなエラーが返されます。

2013-08-01 01:54:22  ERROR   OGG-01334  Error mapping data from column to column in function COMPUTE.

例

例1

AMOUNT_TOTAL = @COMPUTE (AMT + AMT2)

例2

AMOUNT_TOTAL = @IF (AMT >= 0, AMT * 100, 0)

例3

ANNUAL_SALARY = @COMPUTE (MONTHLY_SALARY * 12)

5.11 DATE

@DATEファンクションでは、ソース列に渡された形式に基づいて、ターゲット列に様々な形式で日付と時間を返します。@DATEは、実質上すべてのタイプの入力を有効なSQL日付に変換します。@DATEは、日付列の一部の抽出や、日付に基づいた数値タイムスタンプの計算にも使用できます。

構文

@DATE ('output_descriptor', 'input_descriptor', source_column
[, 'input_descriptor', source_column] [, ...])

'output_descriptor'

ファンクションの出力。有効な値は、ターゲット列が必要とする日付ディスクリプタおよびオプションのリテラル値(空白やコロンなど)で構成された文字列です。日付ディスクリプタは、必要に応じて結合できます。表5-7の日付ディスクリプタの説明を参照してください。ターゲットの形式ディスクリプタは、date/time/timestamp形式に適合する必要があります。Oracle GoldenGateは、正しい形式にするために、必要に応じて指定された形式を無効にします。

'input_descriptor'

ソース入力。有効な値は、日付ディスクリプタおよびオプションのリテラル値(空白やコロンなど)で構成された文字列です。日付ディスクリプタは、必要に応じて結合できます。次に例を示します。

- ディスクリプタ文字列'YYYYMMDD'は、source_columnで指定されたソース列に、順番に4桁の西暦(YYYY)、月(MM)および日(DD)が含まれていることを示します。

- ディスクリプタ文字列'DD/MM/YY'は、source_columnで指定されたソース列に、日、スラッシュ、月、スラッシュ、西暦の下2桁が含まれていることを示します。

日付ディスクリプタの詳細は、表5-7を参照してください。

source_column

input_descriptorで指定された入力を提供する数値または文字のソース列の名前。

表5-7 日付ディスクリプタ

ディスクリプタ

説明

適用対象...

CC

100年

入力/出力

YY

西暦の下2桁

入力/出力

YYYY

4桁の西暦

入力/出力

MM

数字の月

入力/出力

MMM

英語の月(APR、OCTなど)

入力/出力

DD

月単位の日付

入力/出力

DDD

年単位の日付(001、365など)

入力/出力

DOW0

数値で表す曜日(Sunday = 0)

入力/出力

DOW1

数値で表す曜日(Sunday = 1)

入力/出力

DOWA

英語で表す曜日(SUN、MON、TUEなど)

入力/出力

HH

時間

入力/出力

MI

分

入力/出力

SS

秒

入力/出力

JTSLCT

すでにローカル時間のユリウス・タイムスタンプに対して、またはユリウス・タイムスタンプに変換するときにローカル時間を保持するために使用します。

入力/出力

JTSGMT

ユリウス・タイムスタンプ(JTSと同じ)。

入力/出力

JTS

ユリウス・タイムスタンプ。JULおよびJTSは、数式で使用できる数字を生成します。単位はマイクロ秒です。Windowsのタイムスタンプはミリ秒の粒度を使用するので、Windowsマシンでは値にゼロが埋め込まれます。

入力/出力

JUL

ユリウス日。JULおよびJTSは、数式で使用できる数字を生成します。

入力/出力

TTS

NonStopの48ビット・タイムスタンプ

入力

PHAMIS

PHAMISアプリケーション日付形式

入力

FFFFFF

端数(マイクロ秒まで)

入力/出力

STRATUS

STRATUSアプリケーション・タイムスタンプ

入力/出力

CDATE

エポック以降のCタイムスタンプ(秒)

入力/出力

例

例1

下2桁の西暦が提供されているインスタンスで、出力で4桁の西暦が必要な場合には、複数のオプションを使用して正しい100年を取得できます。

- 100年を次のようにハードコードできます。

'CC', 19 or 'CC', 20

- @IFファンクションを使用して、次のように条件を設定できます。

'CC', @IF (YY > 70, 19, 20)

これにより、下2桁の西暦が70より大きい場合に、100年を19に設定し、それ以外の場合は20に設定できます。

- システムは100年を自動的に計算できます。下2桁の西暦が50未満の場合、システムは100年を20として算出し、それ以外の場合は100年を19として算出します。

例2

次の例では、西暦、月、および日列を日付に変換します。

date_col = @DATE ('YYYY-MM-DD', 'YY', date1_yy, 'MM', date1_mm, 'DD', date1_dd)

例3

次の例では、日付と時間を変換し、秒をデフォルトでゼロにします。

date_col = @DATE ('YYYY-MM-DD HH:MI:00', 'YYMMDD', date1, 'HHMI', time1)

例4

次の例では、YYYYMMDDHHMISSとして保持されている数値列をSQL日付に変換します。

datetime_col = @DATE ('YYYY-MM-DD HH:MI:SS', 'YYYYMMDDHHMISS', numeric_date)

例5

次の例では、YYYYMMDDHHMISSとして保持されている数値列をユリウス・タイムスタンプに変換します。

julian_ts_col = @DATE ('JTS', 'YYYYMMDDHHMISS', numeric_date)

例6

次の例では、ユリウス・タイムスタンプ列を2つの異なる列(YYYY-MM-DD HH:MI:SS形式の日付時間列と、タイムスタンプのマイクロ秒部分を保持する端数列)に変換します。

datetime_col = @DATE ('YYYY-MM-DD HH:MI:SS', 'JTS', jts_field), fraction_col = @DATE ('FFFFFF', 'JTS', jts_field)

例7

次の例では、受注が処理された時間を生成します。内部の@DATE式は、order_taken列をユリウス・タイムスタンプに変更した後、マイクロ秒に変換されたorder_minutes列をこのタイムスタンプに追加します。この式は、新しいユリウス・タイムスタンプとして外部@DATE式に戻され、読みやすい日付と時間に再度変換されます。

order_filled = @DATE ('YYYY-MM-DD HH:MI:SS', 'JTS', @DATE ('JTS',
'YYMMDDHHMISS', order_taken) + order_minutes * 60 * 1000000)

例8

次の例では、完全な時間の計算を実行します。ソース日付列(名前dt)に5時間を足して変換された日時が、ターゲット列(名前dt5)に返されます。また、ソース・タイムスタンプ列(名前ts)に5時間を足して変換されたタイムスタンプが、ターゲット列(名前ts5)に返されます。

MAP scratch.t4, TARGET scratch.t4_copy,
COLMAP ( USEDEFAULTS,
dt5 = @DATE ('YYYY-MM-DD HH:MI:SS', 'JTS',
@COMPUTE (@DATE ('JTS', 'YYYY-MM-DD HH:MI:SS', dt) + 18000000000 ) ),
ts5 = @DATE ('YYYY-MM-DD HH:MI:SS.FFFFFF', 'JTS',
@COMPUTE ( @DATE ('JTS', 'YYYY-MM-DD HH:MI:SS.FFFFFF', ts) + 18000000000 ) )
) ;

5.12 DATEDIFF

@DATEDIFFファンクションでは、2つの日付または日時の差異を日数または秒数で計算します。

構文

@DATEDIFF ('difference', 'date', 'date')

difference

指定した日付の差異。次の値が有効です。

- DD: 差異を日数で計算します。

- SS: 差異を秒数で計算します。

date

一重引用符で囲んだ'YYYY-MM-DD[*HH:MI[:SS]]'形式の文字列(*はコロン(:)または空白でも可)、または現在の日付を返す引用符なしの@DATENOWファンクション。

例

例1

次の例では、2011年1月1日からの日数を計算します。

YTD = @DATEDIFF ('DD', '2011-01-01', @DATENOW ())

例2

次の例では、その年の現在までの日数を計算します。(@DATEDIFFは、2011-01-01に対して0を返します)

todays_day = @COMPUTE (@DATEDIFF ('DD', '2011-01-01', @DATENOW ()) +1)

5.13 DATENOW

@DATENOWファンクションでは、現在の日時をYYYY-MM-DD HH:MI:SS形式で返します。日時は、夏時間の調整後、ローカル時間で返されます。@DATENOWは引数を取りません。

構文

@DATENOW ()

5.14 DDL

@DDLファンクションでは、DDL操作に関する情報を返します。

構文

@DDL ({TEXT | OPTYPE | OBJNAME | OBJTYPE | OBJOWNER})

OBJNAME

DDLによって影響を受けるオブジェクトの名前を返します。

OBJOWNER

DDLによって影響を受けるオブジェクトの所有者の名前を返します。

OBJTYPE

DDLによって影響を受けるオブジェクトのタイプ(TABLEやINDEXなど)を返します。

OPTYPE

DDLの操作タイプ(CREATEやALTERなど)を返します。

TEXT

DDL文のテキストの最初の200文字を返します。

例

次の例では、EVENTACTIONSシェル・コマンド内の@DDLからの出力を使用します。

DDL INCLUDE OBJNAME src.t* &
EVENTACTIONS (SHELL ('echo The DDL text is var1> out.txt ', &
VAR var1 = @DDL (TEXT)));

リダイレクトされた出力ファイルには、次のような文字列が含まれることがあります。

The DDL text is CREATE TABLE src.test_tab (col1 int);

5.15 EVAL

@EVALファンクションでは、一連の独立したテストに基づいて値を選択します。テストできる条件数に制限はありません。ケース数が多い場合は、パフォーマンスを最適化するために最も頻繁に検出される条件を最初にリストします。

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。

構文

@EVAL (condition, result
[condition, result] [, ....]
[, default_result])

condition

標準の条件演算子を使用する条件テスト。複数の条件を指定できます。

result

条件テストの結果に基づいて返される値または文字列。リテラルは一重引用符で囲みます。使用する条件ごとに結果を指定します。

default_result

どの条件も満たされなかったときに返されるデフォルトの結果。デフォルト結果はオプションです。

例

例1

次の例では、AMOUNT列が10000より大きい場合に、結果high amountが返されます。AMOUNTが5000より大きく、かつ10000以下の場合(前の条件が満たされなかった場合)は、結果somewhat highが返されます。いずれの条件も満たさない場合、デフォルト結果が指定されていないため、COLUMN_MISSINGインジケーションが返されます。

AMOUNT_DESC = @EVAL (AMOUNT > 10000, 'high amount', AMOUNT > 5000, 'somewhat high')

例2

次に、前述を変更した例を示します。同じ結果が返されますが、デフォルト値が指定されたため、AMOUNTが5000以下の場合には結果lowerが返されます。

@EVAL (AMOUNT > 10000, 'high amount', AMOUNT > 5000, 'somewhat high', 'lower')

5.16 GETENV

@GETENVファンクションでは、Oracle GoldenGate環境に関する情報を返します。この情報は、次への入力として使用できます。

- ストアド・プロシージャまたは問合せ(SQLEXECを使用)

- 列マップ(TABLEまたはMAPのCOLMAPオプションを使用)

- ユーザー・トークン(TABLEのTOKENSオプションで定義され、@TOKENファンクションによってターゲット列にマッピング済)

- GET_ENV_VALUEユーザー・イグジット・ファンクション(GET_ENV_VALUEを参照)

注意:

構文オプションは、構文の説明に示されているとおり、すべて引用符で囲む必要があります。

構文

@GETENV (
'LAG' , 'unit' |
'LASTERR' , 'error_info' |
'JULIANTIMESTAMP' |
'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
)

'LAG' , 'unit'

ExtractおよびReplicatに有効です。

@GETENVのLAGオプションでは、ラグ情報を返します。ラグは、ExtractまたはReplicatがレコードを処理した時間と、データ・ソースのそのレコードのタイムスタンプとの差異です。

構文

@GETENV ('LAG', {'SEC'|'MSEC'|'MIN'})

'SEC'

ラグ(秒)を返します。LAGに対して単位が明示的に指定されていないときは、これがデフォルトです。

'MSEC'

ラグ(ミリ秒)を返します。

'MIN'

ラグ(分)を返します。

'LASTERR' , 'error_info'

Replicatに有効です

@GETENVのLASTERRオプションでは、Replicatが最後に失敗した操作の情報を返します。

構文

@GETENV ('LASTERR', {'DBERRNUM'|'DBERRMSG'|'OPTYPE'|'ERRTYPE'})

'DBERRNUM'

失敗した操作に関連するデータベース・エラー番号を返します。

'DBERRMSG'

失敗した操作に関連するデータベース・エラー・メッセージを返します。

'OPTYPE'

試行した操作タイプを返します。Oracle GoldenGate操作タイプのリストは、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

'ERRTYPE'

エラーのタイプを返します。次のような結果になります。

- DB (データベース・エラーの場合)

- MAP (マッピング・エラーの場合)

'JULIANTIMESTAMP'

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桁(マイクロ秒)はすべて、埋め込まれたゼロが含まれています。

構文

@GETENV ('JULIANTIMESTAMP')

'RECSOUTPUT'

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:\ogg\dirdat\aa;
TABLE TEST.ABC;
EXTTRAIL c:\ogg\dirdat\bb;
TABLE TEST.ABC;
TABLE EMI, TOKENS (TOKEN-CNT = @GETENV ('STATS', 'TABLE', 'ABC', 'DML'));
EXTTRAIL c:\ogg\dirdat\cc;
TABLE TEST.ABC;

ソース表を単一の出力トレイルに複数回書き込むExtractの場合、または同じTARGET表に対して複数のMAP文があるReplicatの場合、統計の結果は、一致するすべてのTARGETエントリに基づいています。たとえば、Replicatが、REGION 'WEST'の20行、REGION 'EAST'の10行、REGION 'NORTH'の5行、REGION 'SOUTH'の2行のすべてを表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'));

ユースケースの例

次のユースケースでは、ソースからのすべてのDMLがターゲットに正常に適用された場合、SEND REPLICATをRESUMEにしてGGSCIから再開されるまで、EVENTACTIONSをSUSPENDにすることにより、Replicatは一時停止します。

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 (http://support.oracle.com)のナレッジ・ベースでドキュメント1556241.1を参照してください。

例5-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'

TRUNCATE、および、すべての範囲(MAPPED、UNMAPPED、OTHER)のDDLパラメータのINCLUDE句およびEXCLUDE句で指定したDDLなど、処理されたDDL操作の数を返します。この変数は、Oracle GoldenGateのDDLレプリケーションが使用されている場合のみ、数を返します。この変数は、'DELTASTATS'には無効です。

'CDR_CONFLICTS'

競合の検出および解決(CDR)機能の実行時にReplicatで検出された競合の数を返します。

特定の表に対する例:

@GETENV ('STATS','TABLE','HR.EMP','CDR_CONFLICTS')

Replicatで処理されるすべての表に対する例:

@GETENV ('STATS','CDR_CONFLICTS')

'CDR_RESOLUTIONS_SUCCEEDED'

競合の検出および解決(CDR)機能の実行時にReplicatで解決した競合の数を返します。

特定の表に対する例:

@GETENV ('STATS','TABLE','HR.EMP', 'CDR_RESOLUTIONS_SUCCEEDED')

Replicatで処理されるすべての表に対する例:

@GETENV ('STATS','CDR_RESOLUTIONS_SUCCEEDED')

'CDR_RESOLUTIONS_FAILED'

競合の検出および解決(CDR)機能の実行時にReplicatで解決できなかった競合の数を返します。

特定の表に対する例:

@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'

チェックポイント・ファイルから取得したグループの説明を返します。グループがGGSCIのADDコマンドで作成されている場合、説明はDESCRIPTIONパラメータで指定されている必要があります。

'GROUPNAME'

プロセス・グループ名を返します。

'GROUPTYPE'

プロセスのタイプ(EXTRACTまたはREPLICAT)を返します。

'HOSTNAME'

ExtractまたはReplicatプロセスが実行されているシステムの名前を返します。

'OSUSERNAME'

プロセスを起動したオペレーティング・システムのユーザー名を返します。

'PROCESSID'

オペレーティング・システムによってプロセスに割り当てられているプロセスIDを返します。

'GGHEADER' , 'header_info'

ExtractおよびReplicatに有効です。

@GETENVのGGHEADERオプションでは、Oracle GoldenGateトレイル・レコードのヘッダー部分の情報を返します。ヘッダーには、レコードのトランザクション環境が記述されています。レコード・ヘッダーおよびレコード・タイプの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

@GETENV ('GGHEADER', {'BEFOREAFTERINDICATOR'|'COMMITTIMESTAMP'|'LOGPOSITION'|
'LOGRBA'|'OBJECTNAME'|'TABLENAME'|'OPTYPE'|'RECORDLENGTH'|
'TRANSACTIONINDICATOR'})

'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
ENSCRIBE COMPUPDATE
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'|'DBINSTANCE'|'DBTYPE'|'DBCHARSET'|'DBMAJORVERSION'|
'DBMINORVERSION'|'DBVERSIONSTRING'|'DBCLIENTCHARSET'|'DBCLIENTVERSIONSTRING'|
'RECOVERYMODE'|'LASTCOMPLETECSN'|'LASTCOMPLETEXIDS'|'LASTCSN'|'LASTXID'|
'LASTCSNTS'})

'COMPATIBILITY'

トレイル・ファイルのOracle GoldenGate互換性レベルを返します。トレイル・ファイルのデータ・レコードを読み取るためには、現在のOracle GoldenGateリリースの互換性レベルがトレイル・ファイルの互換性レベル以上である必要があります。現在有効な値は、0または1です。

- 1は、トレイル・ファイルがOracle GoldenGateリリース10.0以上(ファイル・バージョニング情報を含むファイル・ヘッダーをサポート)であることを示します。

- 0は、トレイル・ファイルがOracle GoldenGateリリース10.0よりも古いことを示します。これらのリリースでは、ファイル・ヘッダーはサポートされていません。値0は、これらのOracle GoldenGateリリースとの下位互換性を維持するために使用されます。

'CHARSET'

トレイル・ファイルのグローバル・キャラクタ・セットを返します。例:

WCP1252-1

'CREATETIMESTAMP'

トレイルが作成された時間をINT64のローカルGMTユリウス時間で返します。

'FILENAME'

トレイル・ファイル名を返します。ファイル・システムに応じて、フォワード・スラッシュまたはバックワード・スラッシュを使用した絶対パスまたは相対パスの場合があります。

'FILETYPE'

トレイル・ファイルが単一のファイル(バッチ実行で作成されたファイルなど)か、オンライン継続処理用トレイルの順序番号付けされたファイルかを示す数価を返します。有効な値は次のとおりです。

- 0 - EXTFILE

- 1 - EXTTRAIL

- 2 - UNIFIEDおよびEXTFILE

- 3 - UNIFIEDおよびEXTTRAIL

'FILESEQNO'

トレイル・ファイルの順序番号(先行ゼロを除く)を返します。たとえば、ファイルの順序番号がaa000026の場合、FILESEQNOは26を返します。

'FILESIZE'

トレイル・ファイルのサイズを返します。アクティブ・ファイルの場合はNULLを返し、ファイルが一杯になりトレイルがロール・オーバーされているときはサイズ値を返します。

'FIRSTRECCSN'

トレイル・ファイルの最初のレコードのコミット順序番号(CSN)を返します。トレイル・ファイルが完結するまで値はNULLです。CSNの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

'LASTRECCSN'

トレイル・ファイルの最後のレコードのコミット順序番号(CSN)を返します。トレイル・ファイルが完結するまで値はNULLです。CSNの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

'FIRSTRECIOTIME'

最初のレコードがトレイル・ファイルに書き込まれた時間を返します。トレイル・ファイルが完成するまで、値はNULLです。

'LASTRECIOTIME'

最後のレコードがトレイル・ファイルに書き込まれた時間を返します。トレイル・ファイルが完成するまで、値はNULLです。

'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抽出ファイルです。

- DS_DATABASE: ソースはSOURCEISTABLE主導の初期ロードで使用され、直接選択されてトレイルに書き込まれたデータベース表です。

- DS_TRAN_LOGS: ソースはデータベース・トランザクション・ログです。

- DS_INITIAL_DATA_LOAD: ソースは初期ロードで直接選択されたデータベース表です。

- DS_VAM_EXTRACT: ソースはVendor Access Module (VAM)です。

- DS_VAM_TWO_PHASE_COMMIT: ソースはVAMトレイルです。

'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など)を返します。

'DBINSTANCE'

データベースのタイプに適切な場合、データベース・インスタンス名(ORA1022Aなど)を返します。

'DBTYPE'

トレイル・ファイルのデータを生成したデータベースのタイプを返します。次のいずれかになります。

DB2 UDB
DB2 ZOS
CTREE
MSSQL
MYSQL
ORACLE
SQLMX
SYBASE
TERADATA
NONSTOP
ENSCRIBE
ODBC

'DBCHARSET'

トレイル・ファイルのデータを生成したデータベースで使用されているキャラクタ・セットを返します。(一部のデータベースでは、これは空になります。)

'DBMAJORVERSION'

トレイル・ファイルのデータを生成したデータベースのメジャー・バージョンを返します。

'DBMINORVERSION'

トレイル・ファイルのデータを生成したデータベースのマイナー・バージョンを返します。

'DBVERSIONSTRING'

トレイル・ファイルのデータを生成したデータベースのメンテナンス(パッチ)・レベルを返します。

'DBCLIENTCHARSET'

データベース・クライアントに使用されているキャラクタ・セットを返します。

'DBCLIENTVERSIONSTRING'

データベース・クライアントのメンテナンス(パッチ)・レベルを返します。(一部のデータベースでは、これは空になります。)

'RECOVERYMODE'

内部でOracle GoldenGateに使用されるリカバリ情報を返します。

'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', {'FILESEQNO'|'FILERBA'|'ROWID'|'RSN'|'TIMESTAMP'})

'FILESEQNO'

トレイル・ファイルの順序番号(先行ゼロを除く)を返します。

'FILERBA'

FILESEQNOファイル内のレコードの相対バイト・アドレスを返します。

'ROWID'

(Oracleに有効)レコードのROWIDを返します。

'RSN'

トランザクション内のレコード順序番号を返します。

'TIMESTAMP'

レコードのタイムスタンプを返します。

'DBENVIRONMENT' , 'database_info'

ExtractおよびReplicatに有効です。

@GETENVのDBENVIRONMENTオプションでは、データベースのグローバル環境情報を返します。

構文

@GETENV ('DBENVIRONMENT', {'DBNAME'|'DBVERSION'|'DBUSER'|'SERVERNAME'})

'DBNAME'

データベース名を返します。

'DBVERSION'

データベース・バージョンを返します。

'DBUSER'

データベース・ログイン・ユーザーを返します。SQL ServerではユーザーIDは記録されないことに注意してください。

'SERVERNAME'

サーバー名を返します。

'TRANSACTION' , 'transaction_info

ExtractおよびReplicatに有効です。

@GETENVのTRANSACTIONオプションでは、ソース・トランザクションに関する情報を返します。このオプションは、Extractプロセスに有効です。

構文

@GETENV ('TRANSACTION', {'TRANSACTIONID'|'XID'|'CSN'|'TIMESTAMP'|'NAME'|
'USERID'|'USERNAME'|'PLANNAME' | 'LOGBSN' | 'REDOTHREAD')

'TRANSACTIONID' | 'XID'

トランザクションID番号を返します。TRANSACTIONIDまたはXIDを使用できます。トランザクションIDおよびCSNは、各トランザクションの最初のレコードに関連付けられており、トレイル・レコードにトークンとして保持されています。各トランザクションIDには、CSNが関連付けられています。トランザクションIDトークンは、相対値として評価されることはないため、どのプラットフォームでもゼロは埋め込まれません。これらは、一致するかしないかのみの評価が行われます。トレイルでは、トランザクションIDトークンはTRANIDとして表示されることに注意してください。

'CSN'

コミット順序番号(CSN)を返します。CSNは、Oracle、DB2 LUW、およびDB2 z/OSデータベースに対して返されるときは、ゼロが埋め込まれません。サポートされている他のすべてのデータベースの場合は、CSNにゼロが埋め込まれます。Sybase CSNの場合、ドット(.)で区切られている各サブ文字列は、そのサブ文字列が変更されない長さまでゼロが埋め込まれます。

トレイルでは、CSNトークンはLOGCSNとして表示されることに注意してください。CSNトークンの補足情報は、TRANSACTIONID | XID環境値を参照してください。

CSNの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

'TIMESTAMP'

トランザクションのコミット・タイムスタンプを返します。

'NAME'

使用可能な場合、トランザクション名を返します。

'USERID'

(Oracle)最後のトランザクションをコミットしたデータベース・ユーザーのOracleユーザーIDを返します。

'USERNAME'

(Oracle)最後のトランザクションをコミットしたデータベース・ユーザーのOracleユーザー名を返します。

'PLANNAME'

(z/OS上のDB2)現在のトランザクションを最初に実行した計画名を返します。計画名は、リカバリ・ログ・レコードの開始ユニットに含まれています。

'LOGBSN'

トランザクション・ログの開始順序番号(BSN)を返します。BSNは、Extractメモリーに保持されている最も古い未コミット・トランザクションの開始点を識別するネイティブ順序番号です。たとえば、Oracleデータベースの場合、BSNはシステム変更番号(SCN)として表されます。BSNは、Extractの現在のI/Oチェックポイント値に対応します。この値は、@GETENV ('TRANSACTION' , 'LOGBSN' )の使用時にReplicatによってトレイルから取得されます。この値は、DETAILオプション付きでINFO REPLICATコマンドを使用しても取得できます。ReplicatからBSNを取得する目的は、システム障害またはファイル・システムの破損によってExtractチェックポイント・ファイルが使用できなくなった場合に、Extractのリカバリ・ポイントを取得することです。Extract位置をリカバリする方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

'REDOTHREAD'

RACノードExtractのスレッド番号を返し、非RACノードExtractでは、値は常に1です。データ・ポンプおよびReplicatでは、RACノードのExtractキャプチャによって使用されるスレッドIDが返され、非RACでは、@GETENV()でエラーが返されます。Logdumpでは、トランザクションがRACノードのExtractによってキャプチャされる場合、トークンORATHREADIDがトークン・セクションに表示されます。

'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)

5.17 GETVAL

@GETVALファンクションでは、ストアド・プロシージャまたは問合せから値を抽出し、MAPまたはTABLE文のFILTERまたはCOLMAP句の入力として使用できるようにします。

@GETVALを使用してパラメータ値を抽出できるかどうかは、次のことに依存します。

1. ストアド・プロシージャまたは問合せの実行の成否。

2. ストアド・プロシージャまたは問合せの結果の失効の有無。

値を抽出できない場合、@GETVALファンクションの結果は"紛失した列"になります。一般的にこのような状態は、データベースが変更されたログのみを記録する場合に更新操作で発生します。

通常、これは列をマッピングできないことを意味します。紛失した列値をテストするには、@COLTESTファンクションを使用して@GETVALの結果をテストした後、必要な場合には、紛失した値を補うために、列に代替値をマップします。または、列値を使用可能にするために、TABLEまたはMAPパラメータのFETCHCOLSまたはFETCHCOLSEXCEPTオプションを使用して、値がログに存在しない場合にデータベースから値をフェッチさせます。必要な列のサプリメンタル・ロギングを有効にする方法も有益です。

構文

@GETVAL (name.parameter)

name

ストアド・プロシージャまたは問合せ名。SQLEXECを使用してプロシージャまたは問合せを使用するときは、次の値が有効です。

問合せでは、SQLEXEC句のIDオプションで指定されている論理名を使用します。IDは、問合せで必須のSQLEXEC引数です。

ストアド・プロシージャでは、TABLEまたはMAP文内でプロシージャを実行する回数に応じて、次のいずれかを使用します。

- 複数回実行するときは、SQLEXEC文のID句で定義されている論理名を使用します。IDは、1つのプロシージャを複数回実行するときに必須です。

- 1回実行するときは、ストアド・プロシージャの実際の名前を使用します。

parameter

有効な値は、次のいずれかです。

- データを抽出し、列マップに渡すストアド・プロシージャまたは問合せ内のパラメータ名。

- ストアド・プロシージャまたは問合せが返す値を抽出するときは、RETURN_VALUE。

代替構文

SQLEXECでは、@GETVALキーワードを明示的に使用せずにパラメータ結果を取得できます。次の形式で、プロシージャ名(問合せまたはプロシージャの複数のインスタンスを使用する場合は論理名)およびパラメータを参照します。

{procedure_name | logical_name}.parameter

例(標準構文)

例1

次の例では、各MAP文が@GETVALファンクション内で論理名lookup1およびlookup2を参照することによって、ストアド・プロシージャlookupをコールし、各結果セットを適切に参照できるようにします。

MAP schema.srctab, TARGET schema.targtab,
SQLEXEC (SPNAME lookup, ID lookup1, PARAMS (param1 = srccol)),
COLMAP (targcol1 = @GETVAL (lookup1.param2));
MAP schema.srctab, TARGET schema.targtab2,
SQLEXEC (SPNAME lookup, ID lookup2, PARAMS (param1 = srccol)),
COLMAP (targcol2= @GETVAL (lookup2.param2));

例2

次の例では、ストアド・プロシージャlookupを1回実行します。このケースでは、実際のプロシージャ名を使用します。論理名は必要ありません。

MAP schema.tab1, TARGET schema.tab2,
SQLEXEC (SPNAME lookup, PARAMS (param1 = srccol)),
COLMAP (targcol = @GETVAL (lookup.param1));

例3

次の例では、問合せを実行し、取得した値を@GETVALを使用してマップします。

MAP sales.account, TARGET sales.newacct,
SQLEXEC (ID lookup,
QUERY ' select desc_col into desc_param from lookup_table '
' where code_col = :code_param ',
PARAMS (code_param = account_code)),
COLMAP (newacct_id = account_id, newacct_val = @GETVAL (lookup.desc_param));

例(代替構文)

例1

次の例では、@GETVALキーワードを使用せずに、@GETVALが暗黙的にproc1.p2で呼び出されます。

MAP test.tab1, TARGET test.tab2,
SQLEXEC (SPNAME proc1, ID myproc, PARAMS (p1 = sourcecol1)),
COLMAP (targcol1 = proc1.p2);

例2

次の例では、@GETVALキーワードを使用せずに、@GETVALファンクションが暗黙的にlookup.desc_paramで呼び出されます。

MAP sales.account, TARGET sales.newacct,
SQLEXEC (ID lookup,
QUERY ' select desc_col into desc_param from lookup_table '
' where code_col = :code_param ',
PARAMS (code_param = account_code)),
COLMAP (newacct_id = account_id, newacct_val = lookup.desc_param);

5.18 HEXTOBIN

@HEXTOBINファンクションでは、指定された16進数データ文字列をRAW形式に変換します。

構文

@HEXTOBIN (data)

data

ソース列名、式、または二重引用符で囲まれたリテラル文字列。

例

@HEXTOBIN ('414243')は、3バイト(0x41 0x42 0x43)に変換されます。

5.19 HIGHVAL | LOWVAL

@HIGHVALおよび@LOWVALファンクションは、値を生成する必要があり、その値を上限または下限内で抑制する場合に使用します。これらのファンクションは、同一の名前のCOBOLファンクションをエミュレートします。

@HIGHVALおよび@LOWVALは、文字列およびバイナリ・データ型とのみ使用します。文字列と使用する場合は、@STRNCMPのみ有効です。10進数または日付データ型、もしくはSQLEXEC操作とともに使用すると、エラーを引き起こすことがあります。DOUBLEデータ型は、-1または0 (Oracle NUMBERの精度指定なし、位取り指定なし)になります。

構文

@HIGHVAL ([length]) | @LOWVAL ([length])

length

オプションです。バイナリ出力長(バイト)を指定します。lengthの最大値は、ターゲット列長です。

例

次の例では、group_level列のサイズを5バイトとみなします。

ファンクション文

結果

group_level = @HIGHVAL ()

{0xFF, 0xFF, 0xFF, 0xFF, 0xFF}

group_level = @LOWVAL ()

{0x00, 0x00, 0x00, 0x00, 0x00}

group_level = @HIGHVAL (3)

{0xFF, 0xFF, 0xFF}

group_level = @LOWVAL (3)

{0x00, 0x00, 0x00}

5.20 IF

@IFファンクションでは、条件に基づいて2つの値のうち1つを返します。@IFファンクションは、他のOracle GoldenGateファンクションとともに使用して、1つ以上の例外条件をテストする条件引数を開始できます。テストの結果に基づいて処理を実行するように指示できます。@IF文は、必要に応じてネストできます。

構文

@IF (condition, value_if_non-zero, value_if-zero)

condition

有効な条件式またはOracle GoldenGateファンクション。数値演算子(=、>、<など)は、数値比較でのみ使用します。文字比較では、文字比較ファンクションの1つを使用します。

value_if_non-zero

非ゼロをtrueとみなします。

value_if_zero

ゼロ(0)をfalseとみなします。

例

例1

次の例では、AMT列がゼロより大きい場合にのみ量が返され、それ以外の場合はゼロが返されます。

AMOUNT_COL = @IF (AMT > 0, AMT, 0)

例2

次の例では、STATE列がCA、AZ、またはNVの場合にWESTが返され、それ以外の場合はEASTが返されます。

REGION = @IF (@VALONEOF (STATE, 'CA', 'AZ', 'NV'), 'WEST', 'EAST')

例3

次の例では、2つの列が両方ともゼロより大きい場合に、PRICE列にQUANTITY列を掛けた結果が返されます。それ以外の場合は、@COLSTAT (NULL)ファンクションによって、ターゲット列にNULL値が生成されます。

ORDER_TOTAL = @IF (PRICE > 0 AND QUANTITY > 0, PRICE * QUANTITY,
@COLSTAT (NULL))

5.21 NUMBIN

@NUMBINファンクションでは、8バイト以下のバイナリ文字列を数字に変換します。このファンクションは、ソース列に定義されているバイト・ストリームが、実際には文字列として表現されている数字のときに使用します。

構文

@NUMBIN (source_column)

source_column

変換する文字列を含むソース列名。

例

次の例では、@NUMBINと@DATEを組み合せて、48ビット列を64ビットのローカル時間のユリウス値に変換します。

DATE = @DATE ('JTSLCT', 'TTS' @NUMBIN (DATE))

5.22 NUMSTR

@NUMSTRファンクションでは、文字列(文字)用の列または値を数字に変換します。@NUMSTRでは、次のいずれかの操作を行います。

- 文字列(文字)を数字にマップする。

- 数字のみを含む文字列用の列を算術式で使用する。

構文

@NUMSTR (input)

input

次のいずれかを指定できます。

- 文字用の列名。

- 一重引用符で囲まれたリテラル文字列。

例

PAGE_NUM = @NUMSTR (ALPHA_PAGE_NO)

5.23 OGG_SHA1

OGG_SHA1関数では、SHA-1 160ビット/20バイトのハッシュ値を戻します。

構文

OGG_SHA1(expression)

expression

列名、リテラル文字列、その他の列マッピング関数。

例

OGG_SHA1(col_name)

5.24 RANGE

@RANGEファンクションでは、表の行を複数のOracle GoldenGateプロセス間に分割します。これを使用して大規模でアクセスの多い表のスループットを向上でき、データをセットに分割して異なる宛先に分散させることもできます。各範囲は、TABLE文またはMAP文のFILTER句で指定します。

@RANGEは、安全で拡張性あるファンクションです。同じ行は同じプロセス・グループによって必ず処理されることが保証されるため、データ整合性が保たれます。行が別のプロセス・グループにパーティションを移行しないように、また、DMLが正しい順序で実行されるように、@RANGEパーティショニングが基盤とする列は、プロセスの実行中に一切変更することはできません。パーティション列を更新すると、行が見つからないというエラーまたは一意制約エラーが発生する可能性があります。

@RANGEは、入力で指定された列のハッシュ値を計算します。列が指定されない場合、TABLEまたはMAP文にKEYCOLS句が指定されていれば、KEYCOLS句を使用して、ハッシュする列を確認します。それ以外の場合は、主キー列を使用します。

Oracle GoldenGateは、指定された範囲数で均等に分散できるように、合計範囲数を調整します。

このファンクションには任意の列を指定できるため、相互に関係制約を持つ表の行は、参照整合性を維持するために、同一のプロセスまたはトレイルにグループ化する必要があります。

注意:

範囲は、Extractを使用して計算するほうが、Replicatを使用するよりも効率的です。ターゲット側で範囲を計算するには、Replicatがトレイル全体を読取り、各範囲の指定を満たすデータを見つける必要があります。

構文

@RANGE (range, total_ranges [, column] [, column] [, ...])

range

指定のプロセスまたはトレイルに割り当てる範囲。total_rangesで定義する値を最大値として、1、2、3のように指定します。

total_ranges

割り当てる範囲の合計数。たとえば、データを3つのグループに分割するには、値3を使用します。

column

範囲割当ての基準にする列名。この引数はオプションです。使用されない場合、Oracle GoldenGateは表の主キーに基づいて範囲を割り当てます。

例

例1

次の例では、レプリケーション・ワークロードは、ソース表acctのID列に基づいて、3つの範囲(3つのReplicatプロセス間)に分割されます。

(Replicatグループ1のパラメータ・ファイル)

MAP sales.acct, TARGET sales.acct, FILTER (@RANGE (1, 3, ID));

(Replicatグループ2のパラメータ・ファイル)

MAP sales.acct, TARGET sales.acct, FILTER (@RANGE (2, 3, ID));

(Replicatグループ3のパラメータ・ファイル)

MAP sales.acct, TARGET sales.acct, FILTER (@RANGE (3, 3, ID));

例2

次の例では、1つのExtractプロセスが処理ロードを2つのトレイルに分割します。範囲計算の基準にする列が定義されていないため、Oracle GoldenGateは主キー列を使用します。

RMTTRAIL /ggs/dirdat/aa
TABLE fin.account, FILTER (@RANGE (1, 2));
RMTTRAIL /ggs/dirdat/bb
TABLE fin.account, FILTER (@RANGE (2, 2));

例3

次の例では、2つの表でorder_ID列に基づく関連操作が行われます。order_master表は、キーorder_IDを持ち、order_detail表は、キーorder_IDおよびitem_numberを持ちます。キーorder_IDによって関係が確立されるため、参照整合性を維持するために、両方の表の@RANGEフィルタでこのキーが使用されます。ロードは2つの範囲に分割されます。

(パラメータ・ファイル#1)

MAP sales.order_master, TARGET sales.order_master,
FILTER (@RANGE (1, 2, order_ID));
MAP sales.order_detail, TARGET sales.order_detail,
FILTER (@RANGE (1, 2, order_ID));

(パラメータ・ファイル#2)

MAP sales.order_master, TARGET sales.order_master,
FILTER (@RANGE (2, 2, order_ID));
MAP sales.order_detail, TARGET sales.order_detail,
FILTER (@RANGE (2, 2, order_ID));

5.25 STRCAT

@STRCATファンクションでは、1つ以上の文字列または文字列(文字)用の列を連結します。リテラル文字列は一重引用符で囲みます。

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。

構文

@STRCAT (string1, string2 [, ...])

string1

連結する最初の列またはリテラル文字列。

string2

連結する次の列またはリテラル文字列。

例

次の例では、3つの列から電話番号を作成し、リテラル・フォーマット値を含めます。

PHONE_NO = @STRCAT (AREA_CODE, PREFIX, '-', PHONE)

5.26 STRCMP

@STRCMPファンクションでは、2つの文字用の列またはリテラル文字列を比較します。リテラルは一重引用符で囲みます。

@STRCMPは、次を返します。

- –1 (最初の文字列が2つ目の文字列より小さい場合)

- 0 (2つの文字列が等しい場合)

- 1 (最初の文字列が2つ目の文字列より大きい場合)

文字列の比較の前に、末尾の空白が切り捨てられます。

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。

このファンクションは、NCHARまたはNVARCHARデータ型をサポートしていません。

構文

@STRCMP (string1, string2)

string1

比較する最初の列またはリテラル文字列。

string2

比較する2つ目の列またはリテラル文字列。

例

次の例では、2つのリテラル文字列を比較し、最初の文字列が2つ目の文字列より大きいために1が返されます。

@STRCMP ('JOHNSON', 'JONES')

5.27 STREQ

@STREQファンクションでは、2つの文字列(文字)用の列またはリテラル文字列が等しいかどうかを確認します。リテラルは一重引用符で囲みます。@STREQは、次を返します。

- 1 (true)(2つの文字列が等しい場合)

- 0 (false)(2つの文字列が等しくない場合)

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。

文字列の比較の前に、末尾の空白が切り捨てられます。

このファンクションは、NCHARまたはNVARCHARデータ型をサポートしていません。

構文

@STREQ (string1, string2)

string1

比較する最初の列またはリテラル文字列。

string2

比較する2つ目の列またはリテラル文字列。

例

次の例では、region列の値と、リテラル値EASTを比較します。region = EASTの場合、レコードはフィルタに渡されます。

FILTER (@STREQ (region, 'EAST'))

次の例に示すように、@STREQは結果を決定するための比較にも使用できます。stateがNYの場合、式はEast Coastを返します。それ以外の場合は、Otherを返します。

@IF (@STREQ (state, 'NY'), 'East Coast', 'Other')

5.28 STREXT

@STREXTファンクションでは、文字列の一部を抽出します。

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。

このファンクションは、NCHARまたはNVARCHARデータ型をサポートしていません。

構文

@STREXT (string, begin_position, end_position)

string

抽出元の文字列。この文字列には、文字の列の名前またはリテラル文字列を指定できます。リテラルは一重引用符で囲みます。

begin_position

抽出を開始するバイトの位置。

end_position

抽出を終了するバイトの位置。終了位置は抽出に含まれます。

例

次の例では、@STREXTファンクションを使用して、電話番号を3つの異なる列に抽出します。

AREA_CODE = @STREXT (PHONE, 1, 3),
PREFIX = @STREXT (PHONE, 4, 6),
PHONE_NO = @STREXT (PHONE, 7, 10)

5.29 STRFIND

@STRFINDファンクションでは、文字列用の列内の文字列の位置を確認し、文字列が見つからないときはゼロを返します。オプションで、@STRFINDは文字列内の開始位置を受け付けます。

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。

このファンクションは、NCHARまたはNVARCHARデータ型をサポートしていません。

構文

@STRFIND (string, 'search_string' [,  begin_position])

string

検索元の文字列。ここには、文字用の列名またはリテラル文字列を一重引用符内に指定できます。

'search_string'

検索する文字列。検索文字列は一重引用符で囲みます。

begin_position

検索を開始するバイトの位置。

例

ACCT列の文字列をABC123ABCとすると、次のような結果になります。

ファンクション文

結果

@STRFIND (ACCT, '23')

5

@STRFIND (ACCT, 'ZZ')

0

@STRFIND (ACCT, 'ABC', 2)

7 (検索が2番目のバイトから開始されたため)

5.30 STRLEN

@STRLENファンクションでは、文字数で表された文字列長を返します。

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。

このファンクションは、NCHARまたはNVARCHARデータ型をサポートしていません。

構文

@STRLEN (string)

string

文字列(文字)用の列名、またはリテラル文字列。リテラルは一重引用符で囲みます。

例

@STRLEN (ID_NO)

@STRLEN ('abcd')

5.31 STRLTRIM

@STRLTRIMファンクションでは、先行する空白を切り捨てます。

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。

構文

@STRLTRIM (string)

string

文字用の列名、または一重引用符で囲まれたリテラル文字列。

例

birth_state = @strltrim (state)

5.32 STRNCAT

@STRNCATファンクションでは、1つ以上の文字列を最大長まで連結します。

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。

このファンクションは、NCHARまたはNVARCHARデータ型をサポートしていません。

構文

@STRNCAT (string, max_length [, string, max_length] [, ...] )

string

文字列(文字)用の列名、または一重引用符で囲まれたリテラル文字列。

max_length

最大文字列長(文字数)。

例

次の例では、2つの文字列を連結し、結果がABC123になります。

PHONE_NO = @STRNCAT ('ABCDEF', 3, '123456', 3)

5.33 STRNCMP

@STRNCMPファンクションでは、特定のバイト数に基づいて2つの文字列を比較します。文字列には、文字列(文字)用の列名、または一重引用符で囲んだリテラル文字列を指定できます。比較は、文字列の最初のバイトから開始されます。

@STRNCMPは、次を返します。

- –1 (最初の文字列が2つ目の文字列より小さい場合)

- 0 (2つの文字列が等しい場合)

- 1 (最初の文字列が2つ目の文字列より大きい場合)

このファンクションは、NCHARまたはNVARCHARデータ型をサポートしていません。

構文

@STRNCMP (string1, string2, max_length)

string1

比較する最初の文字列。

string2

比較する2つ目の文字列。

max_length

文字列内の比較する最大バイト数。

例

次の例では、max_lengthで2が指定されているため、各文字列の最初の2バイトを比較し、2つのセットが同一なので0を返します。

@STRNCMP ('JOHNSON', 'JONES', 2)

5.34 STRNUM

@STRNUMファンクションでは、数字を文字列に変換し、出力形式および埋込みを指定します。

構文

@STRNUM (column, {LEFT | LEFTSPACE, | RIGHT | RIGHTZERO} [length] )

column

ソース数字列名。

LEFT

左に寄せます(埋込みなし)。

LEFTSPACE

左に寄せ、ターゲット列の残りを空白で埋めます。

RIGHT

右に寄せ、ターゲット列の残りを空白で埋めます。列の値が負の値の場合、空白はマイナス記号の前に追加されます。たとえば、ターゲット列で7桁が許可されているとすると、列値-1.27にstrnum(Col1, right)を使用した場合の結果は、###-1.27になります。マイナス記号は桁数にカウントされませんが、10進数はカウントされます。

RIGHTZERO

右に寄せ、ターゲット列の残りをゼロで埋めます。列の値が負の値の場合、ゼロはマイナス記号の後ろで数値の前に追加されます。たとえば、ターゲット列で7桁が許可されているとすると、列値-1.27にstrnum(Col1, rightzero)を使用した場合の結果は、-0001.27になります。マイナス記号は桁数にカウントされませんが、10進数はカウントされます。

length

埋込みを指定するオプション(LEFT以外)を使用しているときに、出力長を指定します。例:

- 列値-1.27にstrnum(Col1, right, 6)を使用した場合の結果は、##-1.27になります。マイナス記号は桁数にカウントされませんが、10進数はカウントされます。

- 列値-1.27にstrnum(Col1, rightzero, 6)が使用されている場合は、-001.27になります。マイナス記号は桁数にカウントされませんが、10進数はカウントされます。

例

次に、ソース列NUMの値が15で、ターゲット列の最大長が5文字の場合に、フォーマット・オプションを使用して様々な結果を取得する例を示します。

ファンクション文

結果(#は空白を表します)

CHAR1 = @STRNUM (NUM, LEFT)

15

CHAR1 = @STRNUM (NUM, LEFTSPACE)

15###

CHAR1 = @STRNUM (NUM, RIGHTZERO)

00015

CHAR1 = @STRNUM (NUM, RIGHT)

###15

前述の例で出力のlengthを4とすると、次のように異なるタイプの結果が返されます。

ファンクション文

結果(#は空白を表します)

CHAR1 = @STRNUM (NUM, LEFTSPACE, 4)

15##

CHAR1 = @STRNUM (NUM, RIGHTZERO, 4)

0015

CHAR1 = @STRNUM (NUM, RIGHT, 4)

##15

5.35 STRRTRIM

@STRRTRIMファンクションでは、末尾の空白を切り捨てます。

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。

構文

@STRRTRIM (string)

string

文字用の列名、または一重引用符で囲まれたリテラル文字列。

例

street_address = @strrtrim (address)

5.36 STRSUB

@STRSUBファンクションでは、文字列(文字)用の列または定数内の文字を置換します。リテラル文字列は一重引用符で囲みます。

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。

文字列引数には、1から255のシングルバイト・コード値を16進形式または8進形式で使用できます。AからFの16進値は大文字と小文字を区別しませんが、先頭の'x'は小文字にする必要があります。ゼロ(0)の値(\x00および\000)は文字列の終了文字になるため、許可されません。マルチバイト・キャラクタ・セット値またはUNICODE値はサポートされていません。

このファンクションは、NCHARまたはNVARCHARデータ型をサポートしていません。

構文

@STRSUB
(source_string, search_string, substitute_string
[, search_string, substitute_string] [, ...])

source_string

置換される文字を含む一重引用符で囲まれたソース文字列またはソース列名。

search_string

一重引用符で囲まれた置換される文字列。

substitute_string

検索した文字列と置換される一重引用符で囲まれた文字列。

例

例1

次の例では、xxABCxxが返されます。

@STRSUB ('123ABC123', '123', 'xx')

例2

次の例では、023zBC023が返されます。

@STRSUB ('123ABC123', 'A', 'z', '1', '0')

例3

次に、16進数文字列引数を使用して^Zをスペースで置き換える例を示します。

@strsub (col1,'\x1A',' '));

5.37 STRTRIM

@STRTRIMファンクションでは、先行する空白と末尾の空白を切り捨てます。

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。

構文

@STRTRIM (string)

string

文字用の列名、または一重引用符で囲まれたリテラル文字列。

例

pin_no = @strtrim (custpin)

5.38 STRUP

@STRUPファンクションでは、英数字文字列または文字列(文字)用の列を大文字に変換します。

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。

このファンクションは、NCHARまたはNVARCHARデータ型をサポートしていません。

構文

@STRUP (string)

string

文字用の列名、または一重引用符で囲まれたリテラル文字列。

例

次の例では、SALESPERSONが返されます。

@STRUP ('salesperson')

5.39 TOKEN

@TOKENファンクションでは、Oracle GoldenGateレコード・ヘッダーのユーザー・トークン・エリアに保持されているトークン・データを取得します。トークン・データをターゲット列にマップするには、COLMAP句のソース式で@TOKENを使用します。そのかわりの方法としては、@TOKENをSQLEXEC文、Oracle GoldenGateマクロ、またはユーザー・イグジットで使用できます。

トークン・データを定義するには、Extractパラメータ・ファイルのTABLEパラメータでTOKENS句を使用します。トークンの使用方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

@TOKEN ('token')

'token'

一重引用符で囲まれた、データを取得するトークン名。

例

次の例では、10のトークンをターゲット列にマップします。

MAP ora.oratest, TARGET ora.rpt,
COLMAP (
host = @token ('tk_host'),
gg_group = @token ('tk_group'),
osuser = @token ('tk_osuser'),
domain = @token ('tk_domain'),
ba_ind = @token ('tk_ba_ind'),
commit_ts = @token ('tk_commit_ts'),
pos = @token ('tk_pos'),
rba = @token ('tk_rba'),
tablename = @token ('tk_table'),
optype = @token ('tk_optype')
);

5.40 VALONEOF

@VALONEOFファンクションでは、文字列または文字列(文字)用の列を値のリストと比較します。値または列がリストにある場合は1が返され、それ以外の場合は0が返されます。このファンクションによって、比較の前に末尾の空白が切り捨てられます。

Oracle GoldenGateでは、このファンクションで、Unicode、およびMicrosoft Windows、UNIX、Linuxオペレーティング・システムのネイティブ・エンコーディングの文字列を格納する列内の文字を表すために、エスケープ・シーケンスの使用をサポートしています。引数がUnicodeで指定される場合、ターゲット列はSQL Unicodeデータ型である必要があります。

このファンクションは、NCHARまたはNVARCHARデータ型をサポートしていません。

構文

@VALONEOF (expression, value [, value] [, ...])

expression

文字用の列名、または一重引用符で囲まれたリテラル文字列。

value

基準値。

例

次の例では、STATEがCAまたはNYの場合、式によりCOASTが戻されます。これは、値が0 (ゼロ)ではない(true)場合に@IFによって戻されるレスポンスです。それ以外の場合は、MIDDLEが返されます。

@IF (@VALONEOF (STATE, 'CA', 'NY'), 'COAST', 'MIDDLE')

6 ユーザー・イグジット・ファンクション

この章では、Oracle GoldenGateユーザー・イグジット・ファンクションとその構文について説明し、次のトピックを含みます。

- ユーザー・イグジットのコール

- ユーザー・イグジット・ファンクションの概要

- EXIT_CALL_TYPEの使用

- EXIT_CALL_RESULTの使用

- EXIT_PARAMSの使用

- ERCALLBACKの使用

- ファンクション・コード

Oracle GoldenGateの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

6.1 ユーザー・イグジットのコール

Cプログラミング・コードでユーザー・イグジットを記述します。CUSEREXITパラメータを使用して、Oracle GoldenGateプロセス内の定義済イグジット・ポイントで、Windows DLLまたはUNIX共有オブジェクトから、ユーザー・イグジットをコールします。ユーザー・イグジット・ルーチンは、ExtractおよびReplicatプロセスから様々なイベントおよび情報を受け入れ、リクエストどおりに情報を処理し、コール元(このルーチンをコールしたOracle GoldenGateプロセス)にレスポンスと情報を返す必要があります。CUSEREXITパラメータの情報および構文は、CUSEREXITを参照してください。

6.2 ユーザー・イグジット・ファンクションの概要

パラメータ

説明

EXIT_CALL_TYPE

処理中にいつルーチンをコールするかを指定します。

EXIT_CALL_RESULT

ルーチンにレスポンスを提供します。

EXIT_PARAMS

ルーチンに情報を提供します。

ERCALLBACK

コールバック・ルーチンを実装します。コールバック・ルーチンは、レコードおよびOracle GoldenGateコンテキスト情報を取得して、データ・レコードの内容を変更します。

6.3 EXIT_CALL_TYPEの使用

EXIT_CALL_TYPEでは、処理中にいつExtractまたはReplicatプロセス(コール元)がユーザー・イグジット・ルーチンをコールするかを指定します。プロセスは、次のコールを使用してルーチンをコールできます。

表6-1 ユーザー・イグジット・コール

コール・タイプ

処理ポイント

EXIT_CALL_ABORT_TRANS

RECOVERYOPTIONSモードがAPPEND (デフォルト)の場合に有効です。データ・ポンプまたはReplicatがトレイルからRESTART ABENDレコードを読み取る際にコールされ、異常終了したライター・プロセスによってそこに配置されます。(ライター・プロセスは、データ・ポンプにより読み取られたローカル・トレイルに書き込むプライマリExtract、またはReplicatにより読み取られたリモート・トレイルに書き込むデータ・ポンプになります。)このコール・タイプによって、ユーザー・イグジットは、ライター・プロセスの停止時に未完了のままのトランザクションを中止または破棄し、以前に完了したトランザクションの開始時の処理をリカバリおよび再開できます。

EXIT_CALL_BEGIN_TRANS

次のいずれかの直前にコールされます。

- データ・ポンプにより読み取られるトランザクションのBEGINレコード

- Replicatトランザクションの開始

EXIT_CALL_CHECKPOINT

ExtractまたはReplicatチェックポイントが書き込まれた直後にコールされます。

EXIT_CALL_DISCARD_ASCII_RECORD

Extractの処理中に、ASCII入力レコードが破棄ファイルに書き込まれる前にコールされます。関連するASCIIバッファは、コールバック・ルーチンを使用してユーザー・イグジットによって取得および操作できます。

このコール・タイプは、Replicatプロセスでは使用できません。

EXIT_CALL_DISCARD_RECORD

Replicatの処理中に、レコードが破棄ファイルに書き込まれる前にコールされます。レコードは、Oracle GoldenGate変更レコードの値がターゲット表の現在のバージョンと異なっているときなど、複数の理由で破棄されます。関連する破棄バッファは、コールバック・ルーチンを使用してユーザー・イグジットによって取得および操作できます。

このコール・タイプは、Extractプロセスでは使用できません。

EXIT_CALL_END_TRANS

次のいずれかの直後にコールされます。

- データ・ポンプにより読み取られるトランザクションのENDレコード

- Replicatトランザクションの最後のレコード

EXIT_CALL_FATAL_ERROR

ExtractまたはReplicatの処理中に致命的なエラーが発生後、Oracle GoldenGateが停止する直前にコールされます。

EXIT_CALL_PROCESS_MARKER

Replicatの処理中に、NonStopサーバーのマーカーがトレイルから読み取られ、マーカー履歴ファイルに書き込まれる前にコールされます。

EXIT_CALL_PROCESS_RECORD

- Extractの場合は、レコード・バッファがトレイルに出力される前にコールされます。

- Replicatの場合は、レプリケートされた操作が実行される直前にコールされます。

このコールは、ほとんどのユーザー・イグジット処理の基盤です。EXIT_CALL_PROCESS_RECORDがコールされると、コールバック・ルーチンを通じて、ユーザー・イグジットでレコード・バッファとその他のレコード情報が利用可能になります。ソースとターゲットのマッピングがパラメータ・ファイルで指定されている場合、マッピングはEXIT_CALL_PROCESS_RECORDイベントが発生する前に実行されます。ユーザー・イグジットは、レコード内の他のすべての操作を、マップ、変換、削除、または実行できます。ユーザー・イグジットは、コール元がレコードを処理または無視する必要があるかを示すステータスを返すことができます。

EXIT_CALL_START

処理開始時にコールされます。ユーザー・イグジットは、ファイルのオープンや変数の初期化などの初期化作業を実行できます。

EXIT_CALL_STOP

プロセスが正常に停止または異常終了する前にコールされます。ユーザー・イグジットは、ファイルのクローズや合計の出力などの完了作業を実行できます。

EXIT_CALL_RESULT

各イグジット・コールの完了時に、コール元にレスポンス方法を指示するためにユーザー・イグジット・ルーチンによって設定されます。

6.4 EXIT_CALL_RESULTの使用

EXIT_CALL_RESULTでは、ルーチンにレスポンスを提供します。

表6-2 ユーザー・イグジット・レスポンス

コール結果

説明

EXIT_ABEND_VAL

コール元に即座に停止するように指示します。

EXIT_IGNORE_VAL

レコードのそれ以上の処理を拒否します。EXIT_IGNORE_VALは、ユーザー・イグジットが特定のレコードに必要なすべての処理を実行し、データ・レコードの出力やレプリケートが必要ないときに適切です。

EXIT_OK_VAL

ルーチンがイベントに対して何も実行しない場合は、EXIT_OK_VALとみなされます。イグジット・コール・タイプが次のいずれかの場合

- EXIT_CALL_PROCESS_RECORD

- EXIT_CALL_DISCARD_RECORD

- EXIT_CALL_DISCARD_ASCII_RECORD

... かつEXIT_OK_VALが返される場合、Oracle GoldenGateはユーザー・イグジットから返されたレコード・バッファを処理します。

EXIT_PROCESSED_REC_VAL

ExtractまたはReplicatに、レコードをスキップし、レポート・ファイルに出力される統計の該当する表および操作タイプを更新するように指示します。

EXIT_STOP_VAL

コール元に処理を正常に停止するように指示します。EXIT_STOP_VALまたはEXIT_ABEND_VALは、ユーザー・イグジットでエラー状態が発生したときに適切です。

6.5 EXIT_PARAMSの使用

EXIT_PARAMSでは、ユーザー・イグジット・ルーチンにプログラム名やユーザー定義パラメータなどの情報を提供します。単一のデータ・レコードを複数回処理できます。

表6-3 ユーザー・イグジット入力

イグジット・パラメータ

説明

PROGRAM_NAME

コール元プロセスの完全パスおよび名前を指定します(\ggs\extractや\ggs\replicatなど)。このパラメータは、Windows APIを使用してOracle GoldenGateコールバック・ルーチンをロードするときや、ユーザー・イグジットがExtractおよびReplicat両方の処理で使用されているときに、コール元プログラムを特定するために使用します。

FUNCTION_PARAM

- リテラル文字列のパラメータをユーザー・イグジットに渡すために使用します。パラメータを渡す側であるTABLEまたはMAP文のEXITPARAMオプションでパラメータを指定します。EXITPARAM 'parameter'を参照してください。これは、特定のレコードを処理するイグジット・コール中にのみ有効です。

- FUNCTION_PARAMは、CUSEREXITパラメータのPARAMSオプションで指定されているパラメータを渡すために、イグジット・コール起動イベントでも使用できます。(CUSEREXITを参照してください。)これは、イグジットの起動時にグローバル・パラメータを提供するためにのみ有効です。

MORE_RECS_IND

イグジットからのリターンに対して設定します。データベース・レコードに対して、ExtractまたはReplicatプロセスがレコードをもう一度処理するかどうかを決定します。これにより、EnscribeをSQLに変換する(データ正規化)ときの一般的なファンクションで、ユーザー・イグジットはExtractによって処理される各レコードに対して多くのレコードを出力できます。同一のレコードをもう一度リクエストするには、MORE_RECS_INDをCHAR_NO_VALまたはCHAR_YES_VALに設定します。

6.6 ERCALLBACKの使用

ERCALLBACKでは、コールバック・ルーチンを実行します。ユーザー・コールバック・ルーチンは、ExtractまたはReplicatプロセスからコンテキスト情報を取得し、コール・タイプが次のいずれかのときにレコード自体を含むコンテキスト値を設定します。

- EXIT_CALL_PROCESS_RECORD

- EXIT_CALL_DISCARD_RECORD

- EXIT_CALL_DISCARD_ASCII_RECORD

構文

ERCALLBACK (function_code, buffer, result_code );

function_code

コールバック・ルーチンによって実行されるファンクション。ユーザー・コールバック・ルーチンは、コールバック・ルーチンに渡されるファンクション・コードに基づいて異なる動作をします。一部のファンクションは、ExtractおよびReplicat両方が使用できますが、各プロセスでのファンクションの有効性は、コールバック・ルーチン中にそのファンクションに対して設定される入力パラメータに依存します。使用可能なファンクション・コードの詳細は、ファンクション・コードを参照してください。

buffer

指定するファンクション・コードに関連付けられている事前定義済構造体を含むバッファへのvoidポインタ。

result_code

コールバック・ルーチンによって実行されるファンクションのステータス。コールバック・ルーチンによって返される結果コードは、コールバック・ファンクションが成功したかどうかを示します。結果コードは、表6-4の値の1つになります。

表6-4 結果コード

コード

説明

EXIT_FN_RET_BAD_COLUMN_DATA

列データを取得または設定中に無効なデータを検出しました。

EXIT_FN_RET_BAD_DATE_TIME

列ofの日付、タイムスタンプまたは間隔タイプに、無効な日付または時刻の値が含まれています。

EXIT_FN_RET_BAD_NUMERIC_VALUE

列の数値タイプに、無効な数値が含まれています。

EXIT_FN_RET_COLUMN_NOT_FOUND

圧縮更新レコードで列が見つかりませんでした(変更された値のみを記録するデータベースによる更新)。

EXIT_FN_RET_ENV_NOT_FOUND

指定された環境値がレコードに見つかりませんでした。

EXIT_FN_RET_EXCEEDED_MAX_LENGTH

表または列名が割り当てられたバッファに収まらなかったため、メタデータを取得できませんでした。

EXIT_FN_RET_FETCH_ERROR

レコードをフェッチできませんでした。エラー・メッセージを表示して理由を確認してください。

EXIT_FN_RET_INCOMPLETE_DDL_REC

DDLレコードの処理中に内部エラーが発生しました。レコードが不完全の可能性があります。

EXIT_FN_RET_INVALID_CALLBACK_FNC_CD

無効なコールバック・ファンクション・コードがコールバック・ルーチンに渡されました。

EXIT_FN_RET_INVALID_COLUMN

ファンクション・コールで、存在しない列が参照されました。

EXIT_FN_RET_INVALID_COLUMN_TYPE

ルーチンは、その目的ではOracle GoldenGateにサポートされていないデータ型を操作しようとしています。

EXIT_FN_RET_INVALID_CONTEXT

コールバック・ファンクションが不適切なときにコールされました。

EXIT_FN_RET_INVALID_PARAM

無効なパラメータがコールバック・ファンクションに渡されました。

EXIT_FN_RET_NO_SRCDB_INSTANCE

ソース・データベース・インスタンスが見つかりませんでした。

EXIT_FN_RET_NO_TGTDB_INSTANCE

ターゲット・データベース・インスタンスが見つかりませんでした。

EXIT_FN_RET_NOT_SUPPORTED

このファンクションは、このプロセスに対してサポートされていません。

EXIT_FN_RET_OK

コールバック・ファンクションは成功しました。

EXIT_FN_RET_SESSION_CS_CNV_ERR

キャラクタ・セット変換ルーチンにULIB_ERR_INVALID_CHAR_FOUNDエラーが返されました。変換は失敗しました。

EXIT_FN_RET_TABLE_NOT_FOUND

無効な表名が指定されました。

EXIT_FN_RET_TOKEN_NOT_FOUND

指定されたトークンがレコードに見つかりませんでした。

6.7 ファンクション・コード

ファンクション・コードは、コールバック・ルーチンの出力を決定します。コールバック・ルーチンは、データ・バッファの内容が指定されたファンクション・コードの構造体と一致するとみなします。コールバック・ルーチン・ファンクション・コードとそのデータ・バッファは、次の項で説明します。次に、使用可能なファンクションの概要を示します。

表6-5 Oracle GoldenGateファンクション・コードの概要

ファンクション・コード

説明

COMPRESS_RECORD

COMPRESS_RECORDファンクションは、マッピングの後にターゲット表の列がすべてでなく一部のみ存在する場合で、個々の列値ではなくレコード全体を操作する必要があるときに使用します。

DECOMPRESS_RECORD

DECOMPRESS_RECORDファンクションは、マッピングの後にターゲット表の列がすべてでなく一部のみ存在する場合で、個々の列値ではなくレコード全体を操作する必要があるときに使用します。

GET_BASE_OBJECT_NAME

GET_BASE_OBJECT_NAMEファンクションでは、レコード内オブジェクトのベース・オブジェクトの完全修飾名を取得します。

GET_BASE_OBJECT_NAME_ONLY

GET_BASE_OBJECT_NAME_ONLYファンクションでは、レコード内オブジェクトのベース・オブジェクトの名前のみを取得します。

GET_BASE_SCHEMA_NAME_ONLY

GET_BASE_SCHEMA_NAME_ONLYファンクションでは、レコード内オブジェクトのベース・オブジェクトのスキーマの名前のみを取得します。

GET_BEFORE_AFTER_IND

GET_BEFORE_AFTER_INDファンクションでは、レコードがデータベース操作のビフォア・イメージかアフター・イメージかを確認します。

GET_CATALOG_NAME_ONLY

GET_CATALOG_NAME_ONLYファンクションでは、データベース・カタログの名前を返します。

GET_COL_METADATA_FROM_INDEX

GET_COL_METADATA_FROM_INDEXファンクションでは、特定の列索引に関連付けられている列メタデータを確認します。

GET_COL_METADATA_FROM_NAME

GET_COL_METADATA_FROM_NAMEファンクションでは、特定の列名に関連付けられている列メタデータを確認します。

GET_COLUMN_INDEX_FROM_NAME

GET_COLUMN_INDEX_FROM_NAMEファンクションでは、特定の列名に関連付けられている列索引を確認します。

GET_COLUMN_NAME_FROM_INDEX

GET_COLUMN_NAME_FROM_INDEXファンクションでは、特定の列索引に関連付けられている列名を確認します。

GET_COLUMN_VALUE_FROM_INDEX

GET_COLUMN_VALUE_FROM_INDEXファンクションでは、指定する列索引を使用して、データ・レコードから列値を返します。

GET_COLUMN_VALUE_FROM_NAME

GET_COLUMN_VALUE_FROM_NAMEファンクションでは、特定の列名を使用して、データ・レコードから列値を返します。

GET_DATABASE_METADATA

GET_DATABASE_METADATAファンクションでは、データベース・メタデータを返します。

GET_DDL_RECORD_PROPERTIES

GET_DDL_RECORD_PROPERTIESファンクションでは、DDL操作に関する情報を返します。

GET_ENV_VALUE

GET_ENV_VALUEファンクションでは、Oracle GoldenGate環境に関する情報を返します。

GET_ERROR_INFO

GET_ERROR_INFOファンクションでは、破棄レコードに関連付けられているエラー情報を返します。

GET_GMT_TIMESTAMP

GET_GMT_TIMESTAMPファンクションでは、操作コミット・タイムスタンプをGMTフォーマットで返します。

GET_MARKER_INFO

GET_MARKER_INFOファンクションでは、データを送信するときにマーカー情報を返します。マーカーは、ユーザー・イグジット内でカスタム処理をトリガーするために使用します。

GET_OBJECT_NAME

処理中のレコードと関連付けられている表または他のオブジェクトの2つまたは3つの部分からなる完全修飾名を戻します。

GET_OBJECT_NAME_ONLY

処理中のレコードと関連付けられている表または他のオブジェクトの修飾されていない名前を戻します。

GET_OPERATION_TYPE

GET_OPERATION_TYPEファンクションでは、レコードに関連付けられている操作のタイプを確認します。

GET_POSITION

GET_POSITIONファンクションでは、Oracle GoldenGateトレイル内のExtractデータ・ポンプまたはReplicatの読取り位置を取得します。

GET_RECORD_BUFFER

GET_RECORD_BUFFERファンクションでは、カスタム列変換に関する情報を取得します。

GET_RECORD_LENGTH

GET_RECORD_LENGTHファンクションでは、データ・レコードの長さを返します。

GET_RECORD_TYPE

GET_RECORD_TYPEファンクションでは、処理されているレコードのタイプを返します。

GET_SCHEMA_NAME_ONLY

GET_SCHEMA_NAME_ONLYファンクションでは、表のスキーマ名のみを返します。

GET_SESSION_CHARSET

GET_SESSION_CHARSETファンクションでは、ユーザー・イグジット・セッションのキャラクタ・セットを返します。

GET_STATISTICS

GET_STATISTICSファンクションでは、ExtractまたはReplicatプロセスの現在の処理統計を返します。

GET_TABLE_COLUMN_COUNT

GET_TABLE_COLUMN_COUNTファンクションでは、表内の列の合計数を返します。

GET_TABLE_METADATA

GET_TABLE_METADATAファンクションでは、処理中のレコードに関連付けられている表のメタデータを返します。

GET_TABLE_NAME

GET_TABLE_NAMEファンクションでは、処理中のレコードと関連付けられているソースまたはターゲット表の2つまたは3つの部分からなる完全修飾名を戻します。

GET_TABLE_NAME_ONLY

GET_TABLE_NAME_ONLYファンクションでは、処理中のレコードに関連付けられている表の修飾されていない名前のみを返します。

GET_TIMESTAMP

GET_TIMESTAMPファンクションでは、ソース・データ・レコードに関連付けられているI/Oタイムスタンプを返します。

GET_TRANSACTION_IND

GET_TRANSACTION_INDファンクションでは、データ・レコードがトランザクションの最初、最後、または中間の操作かを確認します。

GET_USER_TOKEN_VALUE

GET_USER_TOKEN_VALUEファンクションでは、トレイル・レコードからユーザー・トークン値を取得します。

OUTPUT_MESSAGE_TO_REPORT

OUTPUT_MESSAGE_TO_REPORTファンクションでは、レポート・ファイルにメッセージを出力します。

RESET_USEREXIT_STATS

RESET_USEREXIT_STATSファンクションでは、Oracle GoldenGateプロセスの統計をリセットします。

SET_COLUMN_VALUE_BY_INDEX

SET_COLUMN_VALUE_BY_INDEXファンクションでは、データ・レコード全体を操作せず、単一の列値のみを変更します。

STRNCMP

SET_COLUMN_VALUE_BY_NAMEファンクションでは、データ・レコード全体を操作せず、単一の列値のみを変更します。

SET_OPERATION_TYPE

SET_OPERATION_TYPEファンクションでは、レコードに関連付けられている操作のタイプを変更します。

SET_RECORD_BUFFER

SET_RECORD_BUFFERファンクションは、HP NonStopユーザー・イグジットとの互換性の維持、および複雑なデータ・レコード操作のために使用します。

SET_SESSION_CHARSET

SET_SESSION_CHARSETファンクションでは、ユーザー・イグジット・セッションのキャラクタ・セットを設定します。

SET_TABLE_NAME

SET_TABLE_NAMEファンクションでは、レコードに関連付けられている表名を変更します。

6.8 COMPRESS_RECORD

適用対象

ExtractおよびReplicat

説明

COMPRESS_RECORDファンクションでは、DECOMPRESS_RECORDファンクションで解凍されたレコードを再度圧縮します。COMPRESS_RECORDは、DECOMPRESS_RECORDを使用した後にのみ使用します。

レコード・バッファの内容は、ユーザー・イグジットのキャラクタ・セットとの変換が行われません。これはそのままで渡されます。

構文

#include "usrdecs.h"
short result_code;
compressed_rec_def compressed_rec;
ERCALLBACK (COMPRESS_RECORD, &compressed_rec, &result_code);

バッファ

typedef struct
{
char *compressed_rec;
long compressed_len;
char *decompressed_rec;
long decompressed_len;
short *columns_present;
short source_or_target;
char requesting_before_after_ind;
} compressed_rec_def;

入力

decompressed_rec

圧縮前レコードが含まれるバッファへのポインタ。レコードは、デフォルトのOracle GoldenGate正規フォーマットとみなされます。

decompressed_len

解凍されたレコードの長さ。

source_or_target

ソースまたはターゲットのどちらのレコードが圧縮されているかを示す次のいずれか。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

requesting_before_after_ind

内部入力として使用されます。設定は不要です。設定しても無視されます。

columns_present

圧縮レコード内に存在する列を示す値の配列。たとえば、圧縮レコードに1番目、3番目、6番目の列が存在し、表内の列数の合計が7の場合、配列に次を含む必要があります。

1, 0, 1, 0, 0, 1, 0

表内の列数を取得するには、GET_TABLE_COLUMN_COUNTファンクションを使用します(GET_TABLE_COLUMN_COUNTを参照してください)。

出力

compressed_rec

圧縮フォーマットで返されるレコードへのポインタ。通常、compressed_recはタイプexit_rec_buf_defのバッファへのポインタです。exit_rec_buf_defバッファには、ExtractまたはReplicatによってまもなく処理される実際のレコードが含まれます。このバッファは、コール・タイプがEXIT_CALL_DISCARD_RECORDのときに指定されます。イグジット・ルーチンは、たとえばカスタム・マッピング・ファンクションを実行するために、このバッファの内容を変えることがあります。コール元は、compressed_recに割り当てる適切な量のメモリーを確保する必要があります。

compressed_len

返される圧縮レコードの長さ。

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_OK
EXIT_FN_RET_INVALID_PARAM

6.9 DECOMPRESS_RECORD

適用対象

ExtractおよびReplicat

説明

DECOMPRESS_RECORDファンクションは、GET_RECORD_BUFFER (GET_RECORD_BUFFERを参照してください)またはSET_RECORD_BUFFERファンクション(SET_RECORD_BUFFERを参照してください)で更新レコード全体を取得または操作する必要があるものの、レコードが圧縮されている場合に使用します。DECOMPRESS_RECORDは、レコードを論理列レイアウトに配置することにより、圧縮レコードの処理とマップを容易にします。存在する列は、索引および長さインジケータ(圧縮レコード形式を参照してください)なしで所定の位置に配置されます。紛失した列は、ゼロとして表現されます。DECOMPRESS_RECORDを使用するときは、他の操作が発生する前に呼び出す必要があります。ユーザー・イグジットが処理を完了したら、Oracle GoldenGateプロセスに返す前に、COMPRESS_RECORDファンクション(COMPRESS_RECORDを参照してください)を使用してレコードを再度圧縮してください。

このファンクションは、UPDATE操作の処理にのみ有効です。削除、挿入、および更新は、バッファに完全なレコード・イメージで保持されます。

レコード・バッファの内容は、ユーザー・イグジットのキャラクタ・セットとの変換が行われません。これはそのままで渡されます。

圧縮レコード・フォーマット

圧縮SQL更新は、次のフォーマットを持ちます。

index length value [index length value ][...]

説明:

- indexは、表の列のリストへの2バイトの索引(最初の列はゼロ)です。

- lengthは、表の2バイトの長さです。

- valueは、実際の列値で、適切な場合に次の2バイトのNULLインジケータの1つが含まれます。0は非NULLです。-1はNULLです。

構文

#include "usrdecs.h"
short result_code;
compressed_rec_def compressed_rec;
ERCALLBACK (DECOMPRESS_RECORD, &compressed_rec, &result_code);

バッファ

typedef struct
{
char *compressed_rec;
long compressed_len;
char *decompressed_rec;
long decompressed_len;
short *columns_present;
short source_or_target;
char requesting_before_after_ind;
} compressed_rec_def;

入力

compressed_rec

圧縮フォーマットのレコードへのポインタ。この値を取得するには、GET_RECORD_BUFFERファンクションを使用します(GET_RECORD_BUFFERを参照してください)。

compressed_len

圧縮レコードの長さ。この値を取得するには、GET_RECORD_BUFFER (GET_RECORD_BUFFERを参照してください)またはGET_RECORD_LENGTH (GET_RECORD_LENGTHを参照してください)ファンクションを使用します。

source_or_target

ソースまたはターゲットのどちらのレコードが解凍されるかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

requesting_before_after_ind

内部入力として使用されます。設定は不要です。設定しても無視されます。

出力

decompressed_rec

解凍済フォーマットで返されるレコードへのポインタ。レコードは、Oracle GoldenGate内部正規フォーマットとみなされます。コール元は、decompressed_recに割り当てる適切な量のメモリーを確保する必要があります。

decompressed_len

返される解凍済レコードの長さ。

columns_present

圧縮レコード内に存在する列を示す値の配列。たとえば、圧縮レコードに1番目、3番目、6番目の列が存在し、表内の列数の合計が7の場合、配列に次を含む必要があります。

1, 0, 1, 0, 0, 1, 0

マッピング・ファンクションは、この配列によって圧縮列をマップするかどうかとその時期を決定します。

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_OK
EXIT_FN_RET_INVALID_PARAM

6.10 GET_BASE_OBJECT_NAME

適用対象

ExtractおよびReplicat

説明

GET_BASE_OBJECT_NAMEファンクションでは、処理中のレコードに関連付けられているソースまたはターゲット・オブジェクトのベース・オブジェクトの完全修飾名を取得します。このファンクションは、DDL操作の表およびその他のオブジェクトに有効です。

ベース・オブジェクト名の一部のみを返すには、次を参照してください。

GET_BASE_OBJECT_NAME_ONLY  GET_BASE_SCHEMA_NAME_ONLY

データベース・オブジェクト名は、大/小文字の区別を含め、ホストしているデータベースで定義されているとおりに、正確に返されます。

構文

#include "usrdecs.h"
short result_code;
env_value_def env_value;
ERCALLBACK (GET_BASE_OBJECT_NAME, &env_value, &result_code);

バッファ

typedef struct
{
char *buffer;
long max_length;
long actual_length;
short value_truncated;
short index;
short source_or_target;
} env_value_def;

入力

buffer

返されるオブジェクト名を受け付けるバッファへのポインタ。名前はNULLで終了します。

max_length

オブジェクト名を受け付けるために割り当てたバッファの最大長。NULL終了文字列として返されます。

source_or_target

ソースまたはターゲット・オブジェクトのどちらの名前を返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

buffer

schema.objectやcatalog.schema.objectなど、データベース・プラットフォームに応じた、NULLで終了する完全修飾表名。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、オブジェクト名はセッションのキャラクタ・セットで解釈されます。

actual length

返されるオブジェクト名の文字列長。実際の長さにNULL終了文字は含まれません。オブジェクトが表の場合、実際の長さは0です。

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、オブジェクト名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

返される値

EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.11 GET_BASE_OBJECT_NAME_ONLY

適用対象

ExtractおよびReplicat

説明

GET_BASE_OBJECT_NAME_ONLYファンクションでは、処理中のレコードに関連付けられているソースまたはターゲット・オブジェクトのベース・オブジェクトの修飾されていない名前(カタログ、コンテナまたはスキーマなし)を取得します。このファンクションは、DDL操作の表およびその他のオブジェクトに有効です。

ベース・オブジェクトの完全修飾表名を返すには、次を参照してください。

GET_OBJECT_NAME

ベース・オブジェクトのスキーマのみを返すには、次を参照してください。

GET_BASE_SCHEMA_NAME_ONLY

データベース・オブジェクト名は、大/小文字の区別を含め、ホストしているデータベースで定義されているとおりに、正確に返されます。

構文

#include "usrdecs.h"
short result_code;
env_value_def env_value;
ERCALLBACK (GET_BASE_OBJECT_NAME_ONLY, &env_value, &result_code);

バッファ

typedef struct
{
char *buffer;
long max_length;
long actual_length;
short value_truncated;
short index;
short source_or_target;
} env_value_def;

入力

buffer

返されるオブジェクト名を受け付けるバッファへのポインタ。名前はNULLで終了します。

max_length

オブジェクト名を受け付けるために割り当てたバッファの最大長。NULL終了文字列として返されます。

source_or_target

ソースまたはターゲット・オブジェクトのどちらの名前を返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

buffer

schema.objectやcatalog.schema.objectなど、データベース・プラットフォームに応じた、NULLで終了する完全修飾表名。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、オブジェクト名はセッションのキャラクタ・セットで解釈されます。

actual length

返されるオブジェクト名の文字列長。実際の長さにNULL終了文字は含まれません。オブジェクトが表の場合、実際の長さは0です。

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、オブジェクト名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

返される値

EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.12 GET_BASE_SCHEMA_NAME_ONLY

説明

GET_BASE_SCHEMA_NAME_ONLYファンクションでは、処理中のレコードに関連付けられているソースまたはターゲット・オブジェクトのベース・オブジェクトの、名前ではなく、所有者(スキーマなど)の名前を取得します。このファンクションは、DDL操作に有効です。

ベース・オブジェクトの完全修飾表名を返すには、次を参照してください。

GET_BASE_OBJECT_NAME

ベース・オブジェクトの修飾されていない名前のみを返すには、次を参照してください。

GET_BASE_OBJECT_NAME_ONLY

データベース・オブジェクト名は、大/小文字の区別を含め、ホストしているデータベースで定義されているとおりに、正確に返されます。

構文

#include "usrdecs.h"
short result_code;
env_value_def env_value;
ERCALLBACK (GET_BASE_SCHEMA_NAME_ONLY, &env_value, &result_code);

バッファ

typedef struct
{
char *buffer;
long max_length;
long actual_length;
short value_truncated;
short index;
short source_or_target;
} env_value_def;

入力

buffer

返されるスキーマ名を受け付けるバッファへのポインタ。名前はNULLで終了します。

max_length

スキーマ名を受け付けるために割り当てたバッファの最大長。NULL終了文字列として返されます。

source_or_target

ソースまたはターゲット・スキーマのどちらの名前を返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

buffer

NULLで終了する完全修飾スキーマ名。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、スキーマ名はセッションのキャラクタ・セットで解釈されます。

actual_length

返される名前の文字列長。実際の長さにNULL終了文字は含まれません。

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、スキーマ名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

返される値

EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.13 GET_BEFORE_AFTER_IND

適用対象

ExtractおよびReplicat

説明

GET_BEFORE_AFTER_INDファンクションでは、レコードがデータベース操作のビフォア・イメージかアフター・イメージかを確認します。INSERTの場合はアフター・イメージ、DELETEの場合はビフォア・イメージ、UPDATEの場合はアフターまたはビフォア・イメージのいずれかになります(ExtractおよびReplicatパラメータのGETUPDATEBEFORESおよびGETUPDATEAFTERSを参照してください)。UPDATE操作のビフォア・イメージが抽出される場合は、同一の更新内でビフォア・イメージがアフター・イメージよりも先行します。

構文

#include "usrdecs.h"
short result_code;
record_def record;
ERCALLBACK (GET_BEFORE_AFTER_IND, &record, &result_code);

バッファ

typedef struct
{
char *table_name;
char *buffer;
long length;
char before_after_ind;
short io_type;
short record_type;
short transaction_ind;
int64_t timestamp;
exit_ts_str io_datetime;
short mapped;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION   */
char requesting_before_after_ind;
} record_def;

入力

なし

出力

before_after_ind

レコードがビフォア・イメージかアフター・イメージかを示す次の一方。

BEFORE_IMAGE_VAL
AFTER_IMAGE_VAL

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_OK

6.14 GET_CATALOG_NAME_ONLY

適用対象

ExtractおよびReplicat

説明

GET_CATALOG_NAME_ONLYファンクションでは、処理中のレコードに関連付けられているソースまたはターゲット・オブジェクトの、所有者(スキーマなど)やオブジェクトの名前ではなく、SQL/MXカタログまたはOracle CDBコンテナの名前を取得します。このファンクションは、DMLおよびDDL操作に有効です。

表の完全修飾表名を返すには、次を参照してください。

GET_TABLE_NAME

表以外のオブジェクト(ユーザー、ビュー、索引など)の完全修飾表名を返すには、次を参照してください。

GET_OBJECT_NAME

表またはオブジェクトの修飾されていない名前のみを返すには、次を参照してください。

GET_TABLE_NAME_ONLY

GET_OBJECT_NAME_ONLY

表またはオブジェクト名のその他の部分を返すには、次を参照してください。

GET_SCHEMA_NAME_ONLY

データベース・オブジェクト名は、大/小文字の区別を含め、ホストしているデータベースで定義されているとおりに、正確に返されます。

構文

#include "usrdecs.h"
short result_code;
env_value_def env_value;
ERCALLBACK (GET_CATALOG_NAME_ONLY, &env_value, &result_code);

バッファ

typedef struct
{
char *buffer;
long max_length;
long actual_length;
short value_truncated;
short index;
short source_or_target;
} env_value_def;

入力

buffer

返されたカタログ名を受け付けるバッファへのポインタ。名前はNULLで終了します。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、カタログ名はセッションのキャラクタ・セットで解釈されます。

max_length

名前を受け付けるために割り当てたバッファの最大長。NULL終了文字列として返されます。

source_or_target

ソースまたはターゲット表のどちらのカタログを返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

buffer

NULLで終了する完全修飾カタログ名。

actual_length

返される名前の文字列長。実際の長さにNULL終了文字は含まれません。

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、カタログ名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

返される値

EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.15 GET_COL_METADATA_FROM_INDEX

適用対象

ExtractおよびReplicat

説明

GET_COL_METADATA_FROM_INDEXファンクションでは、該当の列の索引を指定して列メタデータを取得します。

データベース・オブジェクト名は、大/小文字の区別を含め、ホストしているデータベースで定義されているとおりに、正確に返されます。

構文

#include "usrdecs.h"
short result_code;
col_metadata_def column_meta_rec;
ERCALLBACK (GET_COL_METADATA_FROM_INDEX, &column_meta_rec, &result_code);

バッファ

typedef struct
{
short column_index;
char *column_name;
long max_name_length;
short native_data_type;
short gg_data_type;
short gg_sub_data_type;
short is_nullable;
short is_part_of_key;
short key_column_index;
short length;
short precision;
short scale;
short source_or_target;
} col_metadata_def;

入力

column_index

返される列値の列索引。

max_name_length

返される列名の最大長。通常、最大長は名前のバッファの長さです。返される名前はNULLで終了しているため、最大長は列名の最大長と同じになるはずです。

source_or_target

ソースまたはターゲットのどちらのレコードが圧縮されているかを示す次のいずれか。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

column_name

返される列値の列名。

actual_name_length

返される名前の実際の長さ。

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、列名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

native_data_type

列の(データベースに)ネイティブなデータ型。プロセスに応じて、次のようにnative_data_typeまたはdd_data_typeが返されます。

- Extractがソース列に対してコールバック・リクエストを行っている場合は、native_data_typeが返されます。Extractがマップされたターゲット列をリクエストしている場合は、(システム上にターゲット定義があるとみなされ)gg_data_typeが返されます。

- Extractデータ・ポンプがソース列に対してコールバック・リクエストを行い、ローカル・データベースが存在する場合は、native_data_typeが返されます。データベースがない場合は、(システム上にソース定義ファイルがあるとみなされ)gg_data_typeが返されます。データ・ポンプがターゲット列をリクエストしている場合は、(システム上にターゲット定義が存在するとみなされ)gg_data_typeが返されます。

- Replicatがソース列に対してコールバック・リクエストを行っている場合は、gg_data_typeが返されます(システム上にソース定義が存在するとみなされます)。Replicatがソース列をリクエストし、パラメータ・ファイルでASSUMETARGETDEFSが使用されている場合は、native_data_typeが返されます。Replicatがターゲット列をリクエストしている場合は、native_data_typeが返されます。

gg_data_type

列のOracle GoldenGateデータ型。

gg_sub_data_type

列のOracle GoldenGateサブデータ型。

is_nullable

列がNULL値を許可するかどうかを示すフラグ(TRUEまたはFALSE)。

is_part_of_key

列がOracle GoldenGateによって使用されているキーの一部かどうかを示すフラグ(TRUEまたはFALSE)。

key_column_index

索引での列の順序を示します。たとえば次の表は、主キーで宣言されている順序とは異なる順序で存在する2つのキー列を持ちます。

CREATE TABLE ABC
(
cust_code        VARCHAR2(4),
name             VARCHAR2(30),
city             VARCHAR2(20),
state            CHAR(2),
PRIMARY KEY (city, cust_code)
USING INDEX
);

論理列順に各列に対してコールバック・ファンクションを実行すると、次が返されます。

- cust_codeは1を返します

- nameは-1を返します

- cityは0を返します

- stateは-1を返します

列がキーの一部の場合、返される値はキー内の列の順序です。

列がキーの一部ではない場合は、値-1が返されます。

length

列の長さを返します。

precision

数値データ型の場合、列の精度を返します。

scale

数値データ型の場合、位取りを返します。

返される値

EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_EXCEEDED_MAX_LENGTH
EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_OK

6.16 GET_COL_METADATA_FROM_NAME

適用対象

ExtractおよびReplicat

説明

GET_COL_METADATA_FROM_NAMEファンクションでは、該当の列の名前を指定して列メタデータを取得します。ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、ユーザー・イグジットとプロセス間で交換される文字データは、セッションのキャラクタ・セットで解釈されます。

データベースが大/小文字を区別する場合、オブジェクト名は、ホストしているデータベースで定義されているのと同じ大/小文字の区別で指定する必要があります。それ以外の場合、大/小文字の区別はありません。

構文

#include "usrdecs.h"
short result_code;
col_metadata_def column_meta_rec;
ERCALLBACK (GET_COL_METADATA_FROM_NAME, &column_meta_rec, &result_code);

バッファ

typedef struct
{
short column_index;
char *column_name;
long max_name_length;
short native_data_type;
short gg_data_type;
short gg_sub_data_type;
short is_nullable;
short is_part_of_key;
short key_column_index;
short length;
short precision;
short scale;
short source_or_target;
} col_metadata_def;

入力

column_name

返される列値の列名。

max_name_length

返される列名の最大長。通常、最大長は名前のバッファの長さです。返される名前はNULLで終了しているため、最大長は列名の最大長と同じになるはずです。

source_or_target

ソースまたはターゲットのどちらのレコードが圧縮されているかを示す次のいずれか。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

column_index

返される列値の列索引。

actual_name_length

返される名前の実際の長さ。

source_or_target

ソースまたはターゲットのどちらのレコードが圧縮されているかを示す次のいずれか。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、列名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

native_data_type

列の(データベースに)ネイティブなデータ型。

gg_data_type

列のOracle GoldenGateデータ型。

gg_sub_data_type

列のOracle GoldenGateサブデータ型。

is_nullable

列がNULL値を許可するかどうかを示すフラグ(TRUEまたはFALSE)。

is_part_of_key

列がOracle GoldenGateによって使用されているキーの一部かどうかを示すフラグ(TRUEまたはFALSE)。

key_column_index

索引での列の順序を示します。たとえば、次の表は、表での定義の順序と索引での定義の順序が異なる2つのキー列を持ちます。

CREATE TABLE tcustmer
(
cust_code        VARCHAR2(4),
name             VARCHAR2(30),
city             VARCHAR2(20),
state            CHAR(2),
PRIMARY KEY (city, cust_code)
USING INDEX
);

返される値は次のようになります。

- cust_codeは1を返します

- nameは-1を返します

- cityは0を返します

- stateは-1を返します

列がキーの一部の場合は、索引での順序が整数で返されます。

列がキーの一部ではない場合は、値-1が返されます。

length

列の長さを返します。

precision

数値データ型の場合、列の精度を返します。

scale

数値データ型の場合、位取りを返します。

返される値

EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_EXCEEDED_MAX_LENGTH
EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_OK

6.17 GET_COLUMN_INDEX_FROM_NAME

適用対象

ExtractおよびReplicat

説明

GET_COLUMN_INDEX_FROM_NAMEファンクションでは、特定の列名に関連付けられている列索引を確認します。ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、ユーザー・イグジットとプロセス間で交換される文字データは、セッションのキャラクタ・セットで解釈されます。

データベースが大/小文字を区別する場合、オブジェクト名は、ホストしているデータベースで定義されているのと同じ大/小文字の区別で指定する必要があります。それ以外の場合、大/小文字の区別はありません。

構文

#include "usrdecs.h"
short result_code;
env_value_def env_value;
ERCALLBACK (GET_COLUMN_INDEX_FROM_NAME, &env_value, &result_code);

バッファ

typedef struct
{
char *buffer;
long max_length;
long actual_length;
short value_truncated;
short index;
short source_or_target;
} env_value_def;

入力

buffer

列名へのポインタ。

actual_length

バッファ内の列名の長さ。

source_or_target

列名情報を参照するためにソース表とターゲット表のどちらを使用するかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

index

指定した列名に対して返される列索引。

返される値

EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.18 GET_COLUMN_NAME_FROM_INDEX

適用対象

ExtractおよびReplicat

説明

GET_COLUMN_NAME_FROM_INDEXファンクションでは、特定の列索引に関連付けられている列名を確認します。ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、ユーザー・イグジットとプロセス間で交換される文字データは、セッションのキャラクタ・セットで解釈されます。

データベース・オブジェクト名は、大/小文字の区別を含め、ホストしているデータベースで定義されているとおりに、正確に返されます。

構文

#include "usrdecs.h"
short result_code;
env_value_def env_value;
ERCALLBACK (GET_COLUMN_NAME_FROM_INDEX, &env_value, &result_code);

バッファ

typedef struct
{
char *buffer;
long max_length;
long actual_length;
short value_truncated;
short index;
short source_or_target;
} env_value_def;

入力

buffer

返される列名を受け付けるバッファへのポインタ。列名はNULLで終了します。

max_length

結果の列名を受け付けるために割り当てたbufferの最大長。NULL終了文字列として返されます。

index

返される列名の列索引。

source_or_target

列名情報を参照するためにソース表とターゲット表のどちらを使用するかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

buffer

NULLで終了している列名。

actual length

返される列名の文字列長。実際の長さにNULL終了文字は含まれません。

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、列名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

返される値

EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.19 GET_COLUMN_VALUE_FROM_INDEX

適用対象

ExtractおよびReplicat

説明

GET_COLUMN_VALUE_FROM_INDEXファンクションでは、指定する列索引を使用して、データ・レコードから列値を取得します。列値は、ユーザー・イグジット内のほとんどのロジックの基本です。データ・レコード内の各列の値は、複雑なロジックの基準にできます。返される値の文字形式を指定できます。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、ユーザー・イグジットとプロセス間で交換される文字データは、セッションのキャラクタ・セットで解釈されます。

次に該当する場合、列値はセッションのキャラクタ・セットにのみ設定されます。

- 列値がSQL文字型(CHAR/VARCHAR2/CLOB、NCHAR/NVARCHAR2/NCLOB)、SQL日付/タイムスタンプ/間隔/数値型である。

- column_value_modeインジケータがEXIT_FN_CNVTED_SESS_CHAR_FORMATに設定されている。

構文

#include "usrdecs.h"
short result_code;
column_def column;
ERCALLBACK (GET_COLUMN_VALUE_FROM_INDEX, &column, &result_code);

バッファ

typedef struct
{
char *column_value;
unsigned short max_value_length;
unsigned short actual_value_length;
short null_value;
short remove_column;
short value_truncated;
short column_index;
char *column_name;
/* Version 3 CALLBACK_STRUCT_VERSION */
short column_value_mode;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION */
char requesting_before_after_ind;
char more_lob_data;
/* Version 3 CALLBACK_STRUCT_VERSION  */
ULibCharSet column_charset;
} column_def;

入力

column_value

返された列値を受け付けるバッファへのポインタ。

max_value_length

返される列値の最大長。通常、最大長は列値バッファの長さです。column_value_modeでASCIIフォーマットが指定される場合、列値はNULLで終了し、最大長は列値の最大長と同じになるはずです。

column_index

返される列値の列索引。

column_value_mode

列値のフォーマットを示します。

EXIT_FN_CHAR_FORMAT

ASCIIフォーマット: 値は、NULLで終了しているASCII (またはEBCDIC)文字列です(既知の例外としてサブデータ型UTF16_BEがあり、これはUTF8に変換されます)。

注意:

列値は、ASCII文字列として解釈され、NULLで終了する必要があるため、ユーザー・イグジットに示される際に切り捨てられる可能性があります。最初の0の値は、文字列の終了文字になります。

- 日付はCCYY-MM-DD HH:MI:SS.FFFFFFのフォーマットで、時間の端数はデータベースに依存します。

- 数値は文字列フォーマットです。たとえば、123.45は"123.45"として表されます。

- 出力不可能な文字またはバイナリ値は、16進表記法に変換されます。

- 浮動小数点型は、有効桁数が最初の14桁までのNULL終了文字列として出力されます。

EXIT_FN_RAW_FORMAT

内部Oracle GoldenGate正規フォーマット: このフォーマットには、適切な場合に、2バイトのNULLインジケータおよび2バイトの変数データ長が含まれます。文字データ型の場合、Oracle GoldenGateではこのフォーマットへのキャラクタ・セットの変換は実行されません。

EXIT_FN_CNVTED_SESS_CHAR_FORMAT

ユーザー・イグジットのキャラクタ・セット: これが適用されるのは、列のデータ型が次の場合のみです。

- シングルバイトまたはマルチバイトの文字ベースの型

- 文字列で表現する数値型

このフォーマットはNULLで終了しません。

source_or_target
列値の取得にソースまたはターゲット・データ・レコードのどちらを使用するかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL
requesting_before_after_ind
アフター・イメージ・レコードの処理中に、更新または主キー更新のビフォア・イメージ列値を必要とする場合に設定します。

主キー更新または通常の(非キー)更新レコードの"アフター・イメージ"を処理中に、列の"ビフォア"値を取得するには、requesting_before_after_indフラグをBEFORE_IMAGE_VALに設定します。

- 主キー更新のキー列のビフォア・イメージにアクセスする場合は、他の設定は不要です。

- 主キー更新の非キー列または通常の更新の任意の列にアクセスするには、ビフォア・イメージが使用可能である必要があります。

requesting_before_after_indの入力が明示的に指定されていない場合、デフォルト設定はAFTER_IMAGE_VAL (列のアフター・イメージの取得)です。

ビフォア・イメージを使用可能にするには、GETUPDATEBEFORESパラメータを使用するか、CUSEREXITパラメータ文内のINCLUDEUPDATEBEFORESオプションを使用します。

次の点に注意してください。

- GETUPDATEBEFORESを使用すると、Extractプロセスはトレイルにビフォア・イメージを書き込み、ビフォア・イメージを使用してユーザー・イグジットへのEXIT_CALL_PROCESS_RECORDコールも行います。

- INCLUDEUPDATEBEFORESを使用すると、ユーザー・イグジットへのEXIT_CALL_PROCESS_RECORDコールは行われず、Extractの場合はトレイルへのビフォア・イメージの書き込みも行われません。

requesting_before_after_ind
列のビフォア・イメージを取得するには、char requesting_before_after_indフラグをBEFORE_IMAGE_VALに設定します。アフター・イメージを取得するには、AFTER_IMAGE_VALに設定します。デフォルトは、ビフォアが指定されないかぎり、アフター・イメージで動作します。

ビフォア・イメージを使用可能にするには、表を含むTABLE文でGETUPDATEBEFORESパラメータを使用するか、CUSEREXITパラメータ文内のINCLUDEUPDATEBEFORESオプションを使用します。どちらも、process_recordのユーザー・イグジットへの同じ呼出しが発生します。

出力

column_value

返される列値へのポインタ。column_value_modeがEXIT_FN_CHAR_FORMATとして指定されている場合、列値はNULLで終了するASCII文字列として返され、それ以外の場合は内部正規フォーマットで返されます。ASCIIフォーマットの場合、日付は次のフォーマットで返されます。

YYYY-MM-DD HH:MI:SS.FFFFFF

秒の端数が含まれるかどうかは、データベースに依存します。

actual_value_length

返される列名の文字列長(バイト)。column_value_modeがEXIT_FN_CHAR_FORMATとして指定されている場合、実際の長さにNULL終了文字は含まれません。

null_value

列値がNULLかどうかを示すフラグ(0または1)。null_valueフラグが1の場合、列値バッファはNULLバイトで埋められます。

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、列値の長さが最大バッファ長を超えるときに行われます。column_value_modeがEXIT_FN_CHAR_FORMATとして指定されている場合は、列長にNULL終了文字が含まれます。

char more_lob_data

ベース・レコードに保持可能な初期の4Kの制限よりも大きいLOBデータが存在するかどうかを示すフラグ。LOBは、4Kの上限を越えている場合、LOBフラグメントに保持されます。

返される値を保持するために適切な量のメモリーを割り当てる必要があります。Oracle GoldenGateは、通常LOB列のデータに8Kまでアクセスし、ユーザー・イグジットによって割り当てられた量までバッファに格納します。割り当てられた量よりもLOBが大きい場合は、すべてのデータがユーザー・イグジットに送信されるまで、後続のコールバックを使用してすべての列データを取得する必要があります。

データの終端を確認するには、more_lob_dataを検証します。ユーザー・イグジットは、新しい列にアクセスする前に、このフラグをCHAR_NO_VALまたはCHAR_YES_VALに設定します。最初のコールバック後にこのフラグがまだ初期化状態で、CHAR_YES_VALまたはCAR_NO_VALにも設定されていない場合は、次のいずれかに該当します。

- LOBの処理に十分なメモリーが割り当てられていた。

- LOBでなかった。

- ベース・トレイル・レコード・サイズの4Kの制限を越えていなかった。

列がLOBかどうかを確認するために、ソース表メタデータを取得することをお薦めします。

返される値

EXIT_FN_RET_BAD_COLUMN_DATA
EXIT_FN_RET_COLUMN_NOT_FOUND
EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.20 GET_COLUMN_VALUE_FROM_NAME

適用対象

ExtractおよびReplicat

説明

GET_COLUMN_VALUE_FROM_NAMEファンクションでは、指定する列名を使用して、データ・レコードから列値を取得します。列値は、ユーザー・イグジット内のほとんどのロジックの基本です。データ・レコード内の各列の値は、複雑なロジックの基準にできます。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、ユーザー・イグジットとプロセス間で交換される文字データは、セッションのキャラクタ・セットで解釈されます。

次に該当する場合、列値はセッションのキャラクタ・セットにのみ設定されます。

- 列値がSQL文字型(CHAR/VARCHAR2/CLOB、NCHAR/NVARCHAR2/NCLOB)、SQL日付/タイムスタンプ/間隔/数値型である。

- column_value_modeインジケータがEXIT_FN_CNVTED_SESS_CHAR_FORMATに設定されている。

データベースが大/小文字を区別する場合、オブジェクト名は、ホストしているデータベースで定義されているのと同じ大/小文字の区別で指定する必要があります。それ以外の場合、大/小文字の区別はありません。

構文

#include "usrdecs.h"
short result_code;
column_def column;
ERCALLBACK (GET_COLUMN_VALUE_FROM_NAME, &column, &result_code);

バッファ

typedef struct
{
char *column_value;
unsigned short max_value_length;
unsigned short actual_value_length;
short null_value;
short remove_column;
short value_truncated;
short column_index;
char *column_name;
/* Version 3 CALLBACK_STRUCT_VERSION */
short column_value_mode;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION */
char requesting_before_after_ind;
char more_lob_data;
/* Version 3 CALLBACK_STRUCT_VERSION  */
ULibCharSet column_charset;
} column_def;

入力

column_value

返された列値を受け付けるバッファへのポインタ。

max_value_length

返される列値の最大長。通常、最大長は列値バッファの長さです。ASCIIフォーマットが指定された場合(column_value_modeを参照)、列値はNULLで終了し、最大長は列値の最大長と同じになります。

column_name

返される列値の列名。

column_value_mode

列値のキャラクタ・セットを示します。

EXIT_FN_CHAR_FORMAT

ASCIIフォーマット: 値は、NULLで終了しているASCII (またはEBCDIC)文字列です(既知の例外としてサブデータ型UTF16_BEがあり、これはUTF8に変換されます)。

注意:

列値は、ASCII文字列として解釈され、NULLで終了する必要があるため、ユーザー・イグジットに示される際に切り捨てられる可能性があります。最初の0の値は、文字列の終了文字になります。

- 日付はCCYY-MM-DD HH:MI:SS.FFFFFFのフォーマットで、時間の端数はデータベースに依存します。

- 数値は文字列フォーマットです。たとえば、123.45は"123.45"として表されます。

- 出力不可能な文字またはバイナリ値は、16進表記法に変換されます。

- 浮動小数点型は、有効桁数が最初の14桁までのNULL終了文字列として出力されます。

EXIT_FN_RAW_FORMAT

内部Oracle GoldenGate正規フォーマット: このフォーマットには、適切な場合に、2バイトのNULLインジケータおよび2バイトの変数データ長が含まれます。文字データ型の場合、Oracle GoldenGateではこのフォーマットへのキャラクタ・セットの変換は実行されません。

EXIT_FN_CNVTED_SESS_CHAR_FORMAT

ユーザー・イグジットのキャラクタ・セット: これが適用されるのは、列のデータ型が次の場合のみです。

- シングルバイトまたはマルチバイトの文字ベースの型

- 文字列で表現する数値型

このフォーマットはNULLで終了しません。

source_or_target
列値の取得にソースまたはターゲット・データ・レコードのどちらを使用するかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL
requesting_before_after_ind
アフター・イメージ・レコードの処理中で、更新または主キー更新のビフォア列を必要とする場合に設定します。

主キー更新または通常の(非キー)更新レコードの"アフター・イメージ"を処理中に、列の"ビフォア"値を取得するには、requesting_before_after_indフラグをBEFORE_IMAGE_VALに設定します。

- 主キー更新のキー列のビフォア・イメージにアクセスする場合は、他の設定は不要です。

- 主キー更新の非キー列または通常の更新の任意の列にアクセスするには、ビフォア・イメージが使用可能である必要があります。

requesting_before_after_indの入力が明示的に指定されていない場合、デフォルト設定はAFTER_IMAGE_VAL (列のアフター・イメージの取得)です。

ビフォア・イメージを使用可能にするには、GETUPDATEBEFORESパラメータを使用するか、CUSEREXITパラメータ文内のINCLUDEUPDATEBEFORESオプションを使用します。

次の点に注意してください。

- GETUPDATEBEFORESを使用すると、Extractプロセスはトレイルにビフォア・イメージを書き込み、ビフォア・イメージを使用してユーザー・イグジットへのEXIT_CALL_PROCESS_RECORDコールも行います。

- INCLUDEUPDATEBEFORESを使用すると、ユーザー・イグジットへのEXIT_CALL_PROCESS_RECORDコールは行われず、Extractの場合はトレイルへのビフォア・イメージの書き込みも行われません。

出力

column_value

返される列値へのポインタ。column_value_modeがEXIT_FN_CHAR_FORMATとして指定されている場合、列値はNULLで終了するASCII文字列として返され、それ以外の場合は内部正規フォーマットで返されます。ASCIIフォーマットの場合、日付は次のフォーマットで返されます。

CCYY-MM-DD HH:MI:SS.FFFFFF

秒の端数が含まれるかどうかは、データベースに依存します。

actual length

返される列名の文字列長。column_value_modeがEXIT_FN_CHAR_FORMATとして指定されている場合、実際の長さにNULL終了文字は含まれません。

null_value

列値がNULLかどうかを示すフラグ(0または1)。null_valueフラグが1の場合、列値バッファはNULLバイトで埋められます。

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、列値の長さが最大バッファ長を超えるときに行われます。column_value_modeがEXIT_FN_CHAR_FORMATとして指定されている場合は、列長にNULL終了文字が含まれます。

char more_lob_data

ベース・レコードに保持可能な初期の4Kの制限よりも大きいLOBデータが存在するかどうかを示すフラグ。LOBは、4Kの上限を越えている場合、LOBフラグメントに保持されます。

返される値を保持するために適切な量のメモリーを割り当てる必要があります。Oracle GoldenGateは、通常LOB列のデータに8Kまでアクセスし、ユーザー・イグジットによって割り当てられた量までバッファに格納します。割り当てられた量よりもLOBが大きい場合は、すべてのデータがユーザー・イグジットに送信されるまで、後続のコールバックを使用してすべての列データを取得する必要があります。

データの終端を確認するには、more_lob_dataを検証します。ユーザー・イグジットは、新しい列にアクセスする前に、このフラグをCAR_NO_VALまたはCHAR_YES_VALに設定します。最初のコールバック後にこのフラグがまだ初期化状態で、CHAR_YES_VALまたはCAR_NO_VALにも設定されていない場合は、次のいずれかに該当します。

- LOBの処理に十分なメモリーが割り当てられていた。

- LOBでなかった。

- ベース・トレイル・レコード・サイズの4Kの制限を越えていなかった。

列がLOBかどうかを確認するために、ソース表メタデータを取得することをお薦めします。

返される値

EXIT_FN_RET_BAD_COLUMN_DATA
EXIT_FN_RET_COLUMN_NOT_FOUND
EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

例

memset (&col_meta, 0, sizeof(col_meta));
if (record.mapped)
col_meta.source_or_target = EXIT_FN_TARGET_VAL;
else
col_meta.source_or_target = EXIT_FN_SOURCE_VAL;
col_meta.source_or_target = EXIT_FN_SOURCE_VAL;
col_meta.column_name = (char *)malloc(100);
col_meta.max_name_length = 100;
col_meta.column_index = 1;

call_callback (GET_COL_METADATA_FROM_NAME, &col_meta, &result_code);

6.21 GET_DATABASE_METADATA

適用対象

ExtractおよびReplicat

説明

GET_DATABASE_METADATAファンクションでは、レコードに関連付けられているデータベースのメタデータを返します。

バッファ

typedef struct
{
char*    dbName;
long      dbName_max_length;
long      dbName_actual_length;
unsigned char    dbNameMetadata[MAXDBOBJTYPE];
char*   locale;
long     locale_max_length;
long     locale_actual_length;
} database_def;
typedef struct
{
database_def  source_db_def;
database_def  target_db_def;
} database_defs;

入力

dbname

データベース名を受け付けるバッファへのポインタ。

dbname_max_length

名前を保持するバッファの最大長。

dbname_actual_length

データベース名の実際の長さ。

dbNameMetadata

大/小文字を区別する名前メタデータで、Extractによってデータ・ポンプからトレイルに書き込まれる値と同じになります。オブジェクト名タイプが指定された場合、データベース・オブジェクト名のメタデータをチェックするユーザー・イグジットが使用できるマクロのリストは、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

locale

データベースのロケールを指定するNULL終了文字列。これは、次を結合したものとして返されます。

- ISO-639の2文字の言語コード

- ISO-3166の2文字の国コード

- セパレータに'_' U+005Fを使用したバリアント・コード

例: "en_US"、"ja_Japen"

locale_max_length

ロケールを受け付けるバッファの最大長。

locale_actual_length

ロケールの実際の長さ。

database_def source_db_def

ソース・データベースのメタデータを返すようにプロセスに指示します。

database_def target_db_def

ターゲット・データベースのメタデータを返すようにプロセスに指示します。

6.22 GET_DDL_RECORD_PROPERTIES

適用対象

ExtractおよびReplicat(DDLレプリケーションがサポートされているデータベース)

説明

GET_DDL_RECORD_PROPERTIESファンクションでは、DDLが実行されたオブジェクトに関する情報やDDL文自体のテキストも含むDDL操作の情報を返します。Extractプロセスは、ソース表レイアウトのみを取得できます。Replicatプロセスは、ソースまたはターゲット・レイアウトを取得できます。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、ユーザー・イグジットとプロセス間で交換される文字データは、セッションのキャラクタ・セットで解釈されます。これには、DDLタイプ、オブジェクト・タイプ、2つまたは3つの部分からなるオブジェクト名、所有者名およびDDLテキスト自体が含まれます。

#include "usrdecs.h"
short result_code;
ddl_record_def ddl_rec;
ERCALLBACK (GET_DDL_RECORD_PROPERTIES, &ddl_rec, &result_code);

バッファ

typedef struct
{
char *ddl_type;
long ddl_type_max_length; /* Maximum Description length PASSED IN BY USER */
long ddl_type_length; /* Actual length */

char *object_type;
long object_type_max_length; /* Maximum Description length PASSED IN BY USER */
long object_type_length; /* Actual length */

char *object_name; /* Fully qualified name of the object
(3-part for CDB, 2-part for non-CDB) */
long object_max_length; /* Maximum Description length PASSED IN BY USER */
long object_length; /* Actual length */

char *owner_name;
long owner_max_length; /* Maximum Description length PASSED IN BY USER */
long owner_length; /* Actual length */

char *ddl_text;
long ddl_text_max_length; /* Maximum Description length PASSED IN BY USER */
long ddl_text_length; /* Actual length */

short ddl_text_truncated; /* Was value truncated? */
short source_or_target; /* Source or target value? */
} ddl_record_def;

入力

ddl_type_length

object_type_length

object_length

owner_length

ddl_text_length

返される列値を受け付ける各アイテム用の1つのバッファへのポインタ。アイテムは次のとおりです。

ddl_type_length

DDL操作タイプの長さ(CREATEまたはALTERなど)を含めます。

object_type_length

DDL操作によって影響を受けるデータベース・オブジェクトのタイプの長さ(TABLEまたはINDEXなど)を含めます。

object_length

オブジェクト名の長さを含めます。

object_length

オブジェクトの所有者(スキーマまたはデータベース)の長さを含めます。

ddl_text_length

実際のDDL文テキストの長さを含めます。

ddl_type_max_length
*ddl_typeによって返されるDDL操作タイプの最大長。DDLタイプは、データベースに対して有効な任意のDDLコマンド(ALTERなど)です。

object_type_max_length
*object_typeによって返されるオブジェクト・タイプの最大長。オブジェクト・タイプは、データベースに有効な任意のオブジェクト(TABLE、INDEX、TRIGGERなど)です。

object_max_length
*object_nameによって返されるオブジェクト名の最大長。

owner_max_length
*owner_nameによって返される所有者名の最大長。

ddl_text_max_length
*ddl_textによって返されるDDL文のテキストの最大長。

source_or_target
ソースまたはターゲット・データ・レコードのどちらの操作タイプを返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

ddl_type_length

object_type_length

object_length

owner_length

ddl_text_length

これらのフィールドはすべて、リクエストされた値の実際の長さを返します。(説明は入力のセクションを参照してください。)

ddl_text_truncated

DDLテキストが切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、DDLテキストとNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

返される値

EXIT_FN_RET_OK
EXIT_FN_RET_NOT_SUPPORTED
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INCOMPLETE_DDL_REC

6.23 GET_ENV_VALUE

適用対象

ExtractおよびReplicat

説明

GET_ENV_VALUEファンクションでは、Oracle GoldenGate環境に関する情報を返します。指定される情報は、@GETENV列変換ファンクションと同じで、同一の入力値を使用して指定されます。有効な情報タイプ、環境変数、および戻り値の詳細は、GETENVを参照してください。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、ユーザー・イグジットとプロセス間で交換される文字データは、セッションのキャラクタ・セットで解釈されます。

構文

#include "usrdecs.h"
short result_code;
getenv_value_def env_ptr;
ERCALLBACK (GET_ENV_VALUE, &env_ptr, &result_code);

バッファ

typedef struct
{
char *information_type;
char *env_value_name;
char *return_value;
long max_return_length;
long actual_length;
short value_truncated;
} getenv_value_def;

入力

information_type

返される情報タイプ(GGENVIRONMENTやGGHEADERなど)。情報タイプは、二重引用符で囲って指定する必要があります。情報タイプのリストと詳細な説明は、GETENVを参照してください。

env_value_name

情報タイプから取得する環境値。環境値は、二重引用符で囲って指定する必要があります。有効な値の詳細は、GETENVを参照してください。たとえば、GGENVIRONMENT情報タイプを使用している場合は、GROUPNAMEが有効な環境値の1つです。

max_return_length

このデータのバッファの最大長。

出力

return_value

この環境値に対して有効な戻り値。

actual_length

このバッファのデータの実際の長さ。

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、値とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

返される値

EXIT_FN_RET_OK
EXIT_FN_RET_ENV_NOT_FOUND
EXIT_FN_RET_INVALID_PARAM

6.24 GET_ERROR_INFO

適用対象

ExtractおよびReplicat

説明

GET_ERROR_INFOファンクションでは、破棄レコードに関連付けられているエラー情報を取得します。ユーザー・イグジットは、この情報をカスタム・エラー処理ロジックで使用できます。たとえば、ユーザー・イグジットは詳細なエラー情報を含む電子メール・メッセージを送信できます。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、ユーザー・イグジットとプロセス間で交換されるメッセージ・データは、セッションのキャラクタ・セットで解釈されます。

構文

#include "usrdecs.h"
short result_code;
error_info_def error_info;
ERCALLBACK (GET_ERROR_INFO, &error_info, &result_code);

バッファ

typedef struct
{
long error_num;
char *error_msg;
long max_length;
long actual_length;
short msg_truncated;
} error_info_def;

入力

error_msg

返されるエラー・メッセージを受け付けるバッファへのポインタ。

max_length

結果のエラー・メッセージを受け付けるために割り当てたerror_msgバッファの最大長。NULL終了文字列として返されます。

出力

error_num

破棄ファイルに関連付けられているSQLまたはシステム・エラー番号。

error_msg

破棄レコードに関連付けられているNULLで終了するエラー・メッセージ文字列へのポインタ。

actual_length

NULL終了文字を含まないエラー・メッセージ長。

msg_truncated

エラー・メッセージが切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、エラー・メッセージとNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_OK

6.25 GET_GMT_TIMESTAMP

適用対象

ExtractおよびReplicat

説明

GET_GMT_TIMESTAMPファンクションでは、操作コミット・タイムスタンプをGMTフォーマットで取得します。このファンクションは、usrdecs.hバージョン2以降を使用してコンパイルする必要があります。

構文

#include "usrdecs.h"
short result_code;
record_def record;
ERCALLBACK (GET_GMT_TIMESTAMP, &record, &result_code);

バッファ

typedef struct
{
char *table_name;
char *buffer;
long length;
char before_after_ind;
short io_type;
short record_type;
short transaction_ind;
int64_t timestamp;
exit_ts_str io_datetime;
short mapped;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION   */
char requesting_before_after_ind;
} record_def;

入力

なし

出力

timestamp

返されるGMTフォーマットの64ビットI/Oタイムスタンプ。

io_datetime

ローカルI/O日付および時刻を含む、次のNULL終了文字列。

YYYY-MM-DD HH:MI:SS.FFFFFF

日時文字列のフォーマットは、セッションのキャラクタ・セットにあります。

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_OK

6.26 GET_MARKER_INFO

適用対象

Extract(データ・ポンプのみ)およびReplicat

説明

GET_MARKER_INFOファンクションでは、Replicatがデータを適用しているときにNonStopソース・システムから送信されたマーカー情報を取得します。マーカーは、ユーザー・イグジット内でカスタム処理をトリガーするために使用します。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、返されるすべてのマーカー・データはセッションのキャラクタ・セットで解釈されます。

構文

#include "usrdecs.h"
short result_code;
marker_info_def marker_info;
ERCALLBACK (GET_MARKER_INFO, &marker_info, &result_code);

バッファ

typedef struct
{
char *processed;
char *added;
char *text;
char *group;
char *program;
char *node;
} marker_info_def;

入力

processed

processed戻り値を受け付けるバッファへのポインタ。

added

added戻り値を受け付けるバッファへのポインタ。

text

text戻り値を受け付けるバッファへのポインタ。

group

group戻り値を受け付けるバッファへのポインタ。

program

program戻り値を受け付けるバッファへのポインタ。

node

node戻り値を受け付けるバッファへのポインタ。

出力

processed

マーカーが処理されたローカルの日付と時刻を示すYYYY-MM-DD HH:MI:SSフォーマットのNULL終了文字列。

added

マーカーが追加されたローカルの日付と時刻を示すYYYY-MM-DD HH:MI:SSフォーマットのNULL終了文字列。

text

マーカーに関連付けられたテキストを含むNULL終了文字列。

group

マーカーを処理したReplicatグループを示すNULL終了文字列。

program

マーカーを処理したプログラムを示すNULL終了文字列。

node

マーカーが作成されたHimalayaノードを表すNULL終了文字列。

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_OK

6.27 GET_OBJECT_NAME

適用対象

ExtractおよびReplicat

説明

GET_OBJECT_NAMEファンクションでは、処理中のレコードに関連付けられているソースまたはターゲット表の完全修飾名を取得します。このファンクションは、DMLおよびDDL操作の表およびその他のオブジェクトに有効です。

オブジェクト名の一部のみを返すには、次を参照してください。

GET_OBJECT_NAME_ONLY  GET_SCHEMA_NAME_ONLY  GET_CATALOG_NAME_ONLY

データベース・オブジェクト名は、大/小文字の区別を含め、ホストしているデータベースで定義されているとおりに、正確に返されます。

構文

#include "usrdecs.h"
short result_code;
env_value_def env_value;
ERCALLBACK (GET_OBJECT_NAME, &env_value, &result_code);

バッファ

typedef struct
{
char *buffer;
long max_length;
long actual_length;
short value_truncated;
short index;
short source_or_target;
} env_value_def;

入力

buffer

返されるオブジェクト名を受け付けるバッファへのポインタ。名前はNULLで終了します。

max_length

オブジェクト名を受け付けるために割り当てたバッファの最大長。NULL終了文字列として返されます。

source_or_target

ソースまたはターゲット・オブジェクトのどちらの名前を返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

buffer

schema.objectやcatalog.schema.objectなど、データベース・プラットフォームに応じた、NULLで終了する完全修飾表名。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、オブジェクト名はセッションのキャラクタ・セットで解釈されます。

actual length

返されるオブジェクト名の文字列長。実際の長さにNULL終了文字は含まれません。オブジェクトが表の場合、実際の長さは0です。

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、オブジェクト名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

返される値

EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.28 GET_OBJECT_NAME_ONLY

適用対象

ExtractおよびReplicat

説明

GET_OBJECT_NAME_ONLYファンクションでは、処理中のレコードに関連付けられているソースまたはターゲット・オブジェクトの修飾されていない名前(カタログ、コンテナまたはスキーマなし)を取得します。このファンクションは、DMLおよびDDL操作の表およびその他のオブジェクトに有効です。

オブジェクトの完全修飾表名を返すには、次を参照してください。

GET_OBJECT_NAME

オブジェクト名の他の部分を返すには、次を参照してください。

GET_SCHEMA_NAME_ONLY GET_CATALOG_NAME_ONLY

データベース・オブジェクト名は、大/小文字の区別を含め、ホストしているデータベースで定義されているとおりに、正確に返されます。

構文

#include "usrdecs.h"
short result_code;
env_value_def env_value;
ERCALLBACK (GET_OBJECT_NAME_ONLY, &env_value, &result_code);

バッファ

typedef struct
{
char *buffer;
long max_length;
long actual_length;
short value_truncated;
short index;
short source_or_target;
} env_value_def;

入力

buffer

返されるオブジェクト名を受け付けるバッファへのポインタ。名前はNULLで終了します。

max_length

オブジェクト名を受け付けるために割り当てたバッファの最大長。NULL終了文字列として返されます。

source_or_target

ソースまたはターゲット・オブジェクトのどちらの名前を返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

buffer

schema.objectやcatalog.schema.objectなど、データベース・プラットフォームに応じた、NULLで終了する完全修飾表名。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、オブジェクト名はセッションのキャラクタ・セットで解釈されます。

actual length

返されるオブジェクト名の文字列長。実際の長さにNULL終了文字は含まれません。オブジェクトが表の場合、実際の長さは0です。

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、オブジェクト名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

返される値

EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.29 GET_OPERATION_TYPE

適用対象

ExtractおよびReplicat

説明

GET_OPERATION_TYPEファンクションでは、レコードに関連付けられている操作のタイプを確認します。ユーザー・イグジットで操作のタイプを把握できることは有益です。たとえばユーザー・イグジットは、削除操作を検出するたびに複雑な検証を実行できます。また、ユーザー・イグジットが完全なデータ・レコードを操作する場合は、圧縮レコードがいつ処理されるかを把握することも重要です。

かわりの方法として、GET_RECORD_BUFFERファンクションでも操作タイプを確認できます(GET_RECORD_BUFFERを参照してください)。

構文

#include "usrdecs.h"
short result_code;
record_def record;
ERCALLBACK (GET_OPERATION_TYPE, &record, &result_code);

バッファ

typedef struct
{
char *table_name;
char *buffer;
long length;
char before_after_ind;
short io_type;
short record_type;
short transaction_ind;
int64_t timestamp;
exit_ts_str io_datetime;
short mapped;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION   */
char requesting_before_after_ind;
} record_def;

入力

source_or_target

ソースまたはターゲット・データ・レコードのどちらの操作タイプを返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

io_type

次のいずれかが返されます。

- DDLタイプ:

SQL_DDL_VAL

- DMLタイプ:

DELETE_VAL
INSERT_VAL
UPDATE_VAL

- 圧縮Enscribe更新:

UPDATE_COMP_ENSCRIBE_VAL

- 圧縮SQL更新:

UPDATE_COMP_SQL_VAL
UPDATE_COMP_PK_SQL_VAL

- その他:

TRUNCATE_TABLE_VAL

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.30 GET_POSITION

適用対象

Extract(データ・ポンプのみ)およびReplicat

説明

GET_POSITIONファンクションでは、Oracle GoldenGateトレイル内のExtractデータ・ポンプまたはReplicatの読取り位置を取得します。

構文

#include "usrdecs.h"
short result_code;
ERCALLBACK (GET_POSITION &position_def, &result_code);

バッファ

typedef struct
{
char *position;
long position_len;
short position_type;
short ascii_or_internal;
} position_def;

入力

position_len

位置の長さへの割当ての長さ。

position_type

次のいずれかを指定できます。

STARTUP_CHECKPOINT

トレイルの開始位置。

CURRENT_CHECKPOINT

トレイルの最後の読取り位置。

column_value_mode
列値が渡されたフォーマットのインジケータ。現在はデフォルトのOracle GoldenGate正規フォーマットのみサポートされており、次のように表されます。

EXIT_FN_RAW_FORMAT

出力

*position

位置の値を表すバッファへのポインタ。このバッファは、position_defで、charフィールドの8バイトのseqnorbaとして、2つのバイナリ値(符号なしint32tおよびint32t)として宣言されます。ユーザー・イグジットは、このデータを正しいデータ型に移行する必要があります。リトル・エンディアン・プラットフォームでこのファンクションを使用すると、プロセスは2つのそれぞれのフィールドで"バイトを反転"させます。

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_NOT_SUPPORTED
EXIT_FN_RET_OK

6.31 GET_RECORD_BUFFER

適用対象

ExtractおよびReplicat

説明

GET_RECORD_BUFFERファンクションでは、カスタム列変換に関する情報を取得します。MAPまたはTABLEパラメータのCOLMAPオプションでは十分に対応できないときは、ユーザー・イグジットを使用して異なるソースおよびターゲット・レコード間でデータをマッピングできます。たとえば、ユーザー・イグジットを使用してEnscribeデータベースの固有の日付フィールド(たとえばYYDDD)をターゲット・レコードで標準のSQL日付に変換し、他の列はCOLMAPオプションを使用してExtractプロセスでマップできます。

SET_RECORD_BUFFERファンクション(SET_RECORD_BUFFERを参照してください)では、GET_RECORD_BUFFERで取得したデータを変更できます。ただし、これには内部Oracle GoldenGate正規フォーマットで書き込まれたデータ・レコードに対する理解が必要です。かわりの方法として、SET_COLUMN_VALUE_BY_INDEXファンクション(SET_COLUMN_VALUE_BY_INDEXを参照してください)またはSET_COLUMN_VALUE_BY_NAMEファンクション(STRNCMPを参照してください)を使用して、データ・レコードの列値を設定できます。

削除、挿入、および更新は、バッファに完全なレコード・イメージで保持されます。

圧縮SQL更新は、次のフォーマットを持ちます。

index length value [index length value ][...]

説明:

- indexは、表の列のリストへの2バイトの索引(最初の列はゼロ)です。

- lengthは、表の2バイトの長さです。

- valueは、実際の列値で、適切な場合に次の2バイトのNULLインジケータの1つが含まれます。0は非NULLです。-1はNULLです。

SQLレコードの場合は、DECOMPRESS_RECORDファンクション(DECOMPRESS_RECORDを参照してください)を使用して操作のためにレコードを解凍した後、COMPRESS_RECORDファンクション(COMPRESS_RECORDを参照してください)を使用して、プロセスに予期されるとおりにもう一度圧縮できます。

圧縮Enscribe更新は、次のフォーマットを持ちます。

offset length value [offset length value ][...]

説明:

- offsetは変更されたEnscribeレコードのデータ・フラグメントのオフセットです。

- lengthはフラグメント長です。

- valueはデータです。フラグメントはフィールド境界にまたがることがあるため、(圧縮が無効かまたはFETCHCOMPSが使用されている場合を除き)完全なフィールドが常に取得されるわけではありません。

構文

#include "usrdecs.h"
short result_code;
record_def record;
ERCALLBACK (GET_RECORD_BUFFER, &record, &result_code);

バッファ

typedef struct
{
char *table_name;
char *buffer;
long length;
char before_after_ind;
short io_type;
short record_type;
short transaction_ind;
int64_t timestamp;
exit_ts_str io_datetime;
short mapped;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION   */
char requesting_before_after_ind;
} record_def;

入力

source_or_target

ソースまたはターゲット・データ・レコードのどちらのレコード・バッファを返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

requesting_before_after_ind

オプションです。io_typeがUPDATE_COMP_PK_SQL_VAL(主キー更新)のレコードのレコード・バッファをリクエストしているときに設定します。次のいずれかを使用して、主キー更新のどの部分にアクセスするかを指定します。デフォルトはAFTER_IMAGE_VALです。

BEFORE_IMAGE_VAL
AFTER_IMAGE_VAL

出力

buffer

レコード・バッファへのポインタ。通常bufferは、exit_rec_buf_defタイプのバッファへのポインタです。exit_rec_buf_defバッファには、ExtractまたはReplicatによってまもなく処理される実際のレコードが含まれます。このバッファは、コール・タイプがEXIT_CALL_DISCARD_RECORDのときに指定されます。イグジット・ルーチンは、たとえばカスタム・マッピング・ファンクションを実行するために、このバッファの内容を変えることがあります。

レコード・バッファの内容は、ユーザー・イグジットのキャラクタ・セットとの変換が行われません。これはそのままで渡されます。

length

返されるレコード・バッファの長さ。

io_type

次のいずれかが返されます。

- DDLタイプ:

SQL_DDL_VAL

- DMLタイプ:

DELETE_VAL
INSERT_VAL
UPDATE_VAL

- 圧縮Enscribe更新:

UPDATE_COMP_ENSCRIBE_VAL

- 圧縮SQL更新:

UPDATE_COMP_SQL_VAL
UPDATE_COMP_PK_SQL_VAL

- その他:

TRUNCATE_TABLE_VAL

mapped

これがマップされたレコード・バッファかどうかを示すフラグ(0または1)。

before_after_ind

レコードがビフォア・イメージかアフター・イメージかを示す次の一方。

BEFORE_IMAGE_VAL
AFTER_IMAGE_VAL

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.32 GET_RECORD_LENGTH

適用対象

ExtractおよびReplicat

説明

GET_RECORD_LENGTHファンクションでは、データ・レコードの長さを取得します。かわりの方法として、GET_RECORD_BUFFERファンクションでもデータ・レコードの長さを取得できます。

構文

#include "usrdecs.h"
short result_code;
record_def record;
ERCALLBACK (GET_RECORD_LENGTH, &record, &result_code);

バッファ

typedef struct
{
char *table_name;
char *buffer;
long length;
char before_after_ind;
short io_type;
short record_type;
short transaction_ind;
int64_t timestamp;
exit_ts_str io_datetime;
short mapped;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION   */
char requesting_before_after_ind;
} record_def;

入力

source_or_target

ソースまたはターゲット・データ・レコードのどちらのレコード長を返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

length

返されるデータ・レコードの長さ。

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.33 GET_RECORD_TYPE

適用対象

ExtractおよびReplicat

説明

GET_RECORD_TYPEファンクションでは、処理されているレコードのタイプを取得します。レコードは、SQLまたはEnscribeレコードです。各レコード・タイプはフォーマットが異なるため、レコード・バッファを操作するときにレコード・タイプは重要です。

構文

#include "usrdecs.h"
short result_code;
record_def record;
ERCALLBACK (GET_RECORD_TYPE, &record, &result_code);

バッファ

typedef struct
{
char *table_name;
char *buffer;
long length;
char before_after_ind;
short io_type;
short record_type;
short transaction_ind;
int64_t timestamp;
exit_ts_str io_datetime;
short mapped;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION   */
char requesting_before_after_ind;
} record_def;

入力

source_or_target

ソースまたはターゲット・データ・レコードのどちらのレコード・タイプを返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

record_type

返されるレコード・タイプ。次のいずれかを指定できます。

- SQLレコードの場合:

EXIT_REC_TYPE_SQL

- Enscribeレコードの場合:

EXIT_REC_TYPE_ENSCRIBE

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.34 GET_SCHEMA_NAME_ONLY

適用対象

ExtractおよびReplicat

説明

GET_SCHEMA_NAME_ONLYファンクションでは、処理中のレコードに関連付けられているソースまたはターゲット・オブジェクトの、カタログやコンテナ(該当する場合)またはオブジェクトの名前ではなく、所有者(スキーマなど)の名前を取得します。このファンクションは、DMLおよびDDL操作に有効です。

表の完全修飾表名を返すには、次を参照してください。

GET_TABLE_NAME

表以外のオブジェクト(ユーザー、ビュー、索引など)の完全修飾表名を返すには、次を参照してください。

GET_OBJECT_NAME

表またはオブジェクトの修飾されていない名前のみを返すには、次を参照してください。

GET_TABLE_NAME_ONLY

GET_OBJECT_NAME_ONLY

表またはオブジェクト名のその他の部分を返すには、次を参照してください。

GET_CATALOG_NAME_ONLY

データベース・オブジェクト名は、大/小文字の区別を含め、ホストしているデータベースで定義されているとおりに、正確に返されます。

構文

#include "usrdecs.h"
short result_code;
env_value_def env_value;
ERCALLBACK (GET_SCHEMA_NAME_ONLY, &env_value, &result_code);

バッファ

typedef struct
{
char *buffer;
long max_length;
long actual_length;
short value_truncated;
short index;
short source_or_target;
} env_value_def;

入力

buffer

返されるスキーマ名を受け付けるバッファへのポインタ。名前はNULLで終了します。

max_length

スキーマ名を受け付けるために割り当てたバッファの最大長。NULL終了文字列として返されます。

source_or_target

ソースまたはターゲット・スキーマのどちらの名前を返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

buffer

NULLで終了する完全修飾スキーマ名。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、スキーマ名はセッションのキャラクタ・セットで解釈されます。

actual_length

返される名前の文字列長。実際の長さにNULL終了文字は含まれません。

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、スキーマ名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

返される値

EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.35 GET_SESSION_CHARSET

適用対象

ExtractおよびReplicat

説明

GET_SESSION_CHARSETでは、現在のユーザー・イグジット・セッションのキャラクタ・セットを取得します。このキャラクタ・セットは、コールバック・ファンクションSET_SESSION_CHARSETを使用して設定できます。ユーザー・イグジット・セッションのキャラクタ・セットは、次のような(ただしこれらに限定されません)メタデータなど、ユーザー・イグジットとコール元プロセス(Extract、データ・ポンプ、Replicat)間で使用される文字ベースのコールバック構造メンバーのエンコーディングを示します。

- データベースの名前およびロケール

- 表名および列名

- DDLテキスト

- エラー・メッセージ

- CHARおよびNCHARなどの文字型の列

- 文字列形式で表される日時および数値の列

セッションのキャラクタ・セットの有効な値は、ヘッダー・ファイルucharset.hで定義されます。このファンクションは、ユーザー・イグジットが制御しているときはいつでも呼び出すことができます。

グローバリゼーション・サポートの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

#include usrdecs.h
short result_code;
session_def session_charset_def;
ERCALLBACK (GET_SESSION_CHARSET, &session_charset_def, &result_code);

バッファ

typedef struct
{
ULibCharSet  session_charset;
} session_def;

入力

なし

出力

session_charset_def.session_charset

返される値

EXIT_FN_RET_OK

6.36 GET_STATISTICS

適用対象

ExtractおよびReplicat

説明

GET_STATISTICSファンクションでは、ExtractまたはReplicatプロセスの現在の処理統計を取得します。たとえばユーザー・イグジットは、ExtractまたはReplicat処理中に致命的なエラーが発生した場合に、カスタム・レポートに統計を出力できます。

統計は、データをリクエストしたプロセスのタイプに基づいて自動的に処理されます。

- Extractプロセスは、常にリクエストをソース表として扱い、出力回数にかかわらずこの表を1回カウントします。

- Replicatプロセスは、常にリクエストをターゲット表のセットとして扱います。このセットには、ソース表の数にかかわらず、ターゲットへのすべてのカウントが含まれます。

データベースが大/小文字を区別する場合、オブジェクト名は、ホストしているデータベースで定義されているのと同じ大/小文字の区別で指定する必要があります。それ以外の場合、大/小文字の区別はありません。

構文

#include "usrdecs.h"
short result_code;
statistics_def statistics;
ERCALLBACK (GET_STATISTICS, &statistics, &result_code);

バッファ

typedef struct
{
char *table_name;
short group;
exit_timestamp_string start_datetime;
long num_inserts;
long num_updates;
long num_befores;
long num_deletes;
long num_discards;
long num_ignores;
long total_db_operations;
long total_operations;
/* Version 2 CALLBACK_STRUCT_VERSION */
long num_truncates;
} statistics_def;

入力

table_name

ソース表の完全修飾名を指定するNULL終了文字列。統計は常にソース・レコードに対して記録されます。ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、表名および日付はセッションのキャラクタ・セットで解釈されます。

group

次のいずれかを指定できます。

EXIT_STAT_GROUP_STARTUP

Oracle GoldenGateプロセスが最後に起動したときからの統計を取得します。

EXIT_STAT_GROUP_DAILY

現在の日付の開始からの統計を取得します。

EXIT_STAT_GROUP_HOURLY

現在の時間の開始からの統計を取得します。

EXIT_STAT_GROUP_RECENT

GGSCIを使用して統計をリセットしてからの統計を取得します。

EXIT_STAT_GROUP_REPORT

最後のレポートが生成されてからの統計を取得します。

EXIT_STAT_GROUP_USEREXIT

ユーザー・イグジットがRESET_USEREXIT_STATSを使用して最後に統計をリセットしてからの統計を取得します。

出力

start_datetime

指定のグループに対して統計の記録が開始されたローカルの日付と時刻を示すYYYY-MM-DD HH:MI:SSフォーマットのNULL終了文字列。

num_inserts

返されるExtractまたはReplicatが処理した挿入数。

num_updates

返されるExtractまたはReplicatが処理した更新数。

num_befores

返されるExtractまたはReplicatが処理した更新のビフォア・イメージ数。

num_deletes

返されるExtractまたはReplicatが処理した削除数。

num_discards

返されるExtractまたはReplicatが破棄したレコード数。

num_ignores

返されるExtractまたはReplicatが無視したレコード数。

total_db_operations

返されるExtractまたはReplicatが処理したデータベース操作合計数。

total_operations

返されるExtractまたはReplicatが処理した合計操作数(破棄および無視を含む)。

num_truncates

返されるExtractまたはReplicatが処理した切捨て数。

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_TABLE_NOT_FOUND
EXIT_FN_RET_OK

6.37 GET_TABLE_COLUMN_COUNT

適用対象

ExtractおよびReplicat

説明

GET_TABLE_COLUMN_COUNTファンクションでは、表内の列の合計数(キー列数を含む)を取得します。

構文

#include "usrdecs.h"
short result_code;
table_def table;
ERCALLBACK (GET_TABLE_COLUMN_COUNT, &table, &result_code);

バッファ

typedef struct
{
short num_columns;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION */
short num_key_columns;
} table_def;

入力

source_or_target

ソースまたはターゲット表のどちらの列合計数を返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

num_columns

返される指定の表の列の合計数。

num_key_columns

指定の表のキーとしてOracle GoldenGateに使用されている列の返される合計数。

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.38 GET_TABLE_METADATA

適用対象

ExtractおよびReplicat

説明

GET_TABLE_METADATAファンクションでは、処理中のレコードに関連付けられている表のメタデータを取得します。

構文

#include "usrdecs.h"
short result_code;
table_metadata_def tbl_meta_rec;
ERCALLBACK (GET_TABLE_METADATA, &tbl_meta_rec, &result_code);

バッファ

typedef struct
{
char *table_name;
short value_truncated;
long max_name_length;
long actual_name_length;
short num_columns;
short num_key_columns;
short *key_columns;
short num_keys_returned;
BOOL using_pseudo_key;
short source_or_target;
} table_metadata_def;

入力

table_name

table_name戻り値を受け付けるバッファへのポインタ。

key_columns

key_columns索引の配列へのポインタ。

max_name_length

返される表名の最大長。通常、最大長は表名のバッファの長さです。返される表名はNULLで終了しているため、最大長は表名の最大長と同じになるはずです。

source_or_target

ソースまたはターゲット表のどちらの名前を返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

table_name

処理中のレコードに関連付けられている表の名前。ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、表名はセッションのキャラクタ・セットで解釈されます。

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、表名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

actual_name_length

返される表名の文字列長。実際の長さにNULL終了文字は含まれません。

num_columns

表内の列数。

num_key_columns

Oracle GoldenGateに使用されているキー内の列数。

key_columns

キー列の値。キー数に列の長さを掛けた値を把握し、適切な量のバッファを割り当てる必要があります。

num_keys_returned

リクエストされているキー列の数。

using_pseudo_key

KEYCOLSで指定されている列がキーとして使用されているかどうかを示すフラグ。TRUEまたはFALSEを返します。

返される値

EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_EXCEEDED_MAX_LENGTH
EXIT_FN_RET_OK

6.39 GET_TABLE_NAME

適用対象

ExtractおよびReplicat

説明

GET_TABLE_NAMEファンクションでは、処理中のレコードに関連付けられているソースまたはターゲット表の完全修飾名を取得します。このファンクションは、DMLおよびDDL操作の表にのみ有効です。表以外のオブジェクトの完全修飾表名を取得するには、次を参照してください。

GET_OBJECT_NAME

完全修飾名の一部のみを返すには、次も参照してください。

GET_TABLE_NAME_ONLY  GET_SCHEMA_NAME_ONLY  GET_CATALOG_NAME_ONLY

データベース・オブジェクト名は、大/小文字の区別を含め、ホストしているデータベースで定義されているとおりに、正確に返されます。

オブジェクトが表の場合にのみ、このファンクションは値を返します。それ以外の場合は、env_value_def変数のactual_lengthは0を返します。

構文

#include "usrdecs.h"
short result_code;
env_value_def env_value;
ERCALLBACK (GET_TABLE_NAME, &env_value, &result_code);

バッファ

typedef struct
{
char *buffer;
long max_length;
long actual_length;
short value_truncated;
short index;
short source_or_target;
} env_value_def;

入力

buffer

返された表名を受け付けるバッファへのポインタ。表名はNULLで終了します。

max_length

表名を受け付けるために割り当てたバッファの最大長。NULL終了文字列として返されます。

source_or_target

ソースまたはターゲット表のどちらの名前を返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

buffer

schema.tableやcatalog.schema.tableなど、データベース・プラットフォームに応じた、NULLで終了する完全修飾表名。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、表名はセッションのキャラクタ・セットで解釈されます。

actual length

返される表名の文字列長。実際の長さにNULL終了文字は含まれません。オブジェクトが表以外の場合、返される実際の長さは0です。

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、表名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

返される値

EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.40 GET_TABLE_NAME_ONLY

適用対象

ExtractおよびReplicat

説明

GET_TABLE_NAME_ONLYファンクションでは、処理中のレコードに関連付けられているソースまたはターゲット表の名前(カタログ、コンテナまたはスキーマなし)を取得します。このファンクションは、DMLおよびDDL操作の表にのみ有効です。表以外のオブジェクトの修飾されていない名前を取得するには、次を参照してください。

GET_OBJECT_NAME_ONLY

表の完全修飾表名を返すには、次を参照してください。

GET_TABLE_NAME

表名の他の部分を返すには、次を参照してください。

GET_SCHEMA_NAME_ONLY GET_CATALOG_NAME_ONLY

データベース・オブジェクト名は、大/小文字の区別を含め、ホストしているデータベースで定義されているとおりに、正確に返されます。

オブジェクトが表の場合にのみ、このファンクションは値を返します。それ以外の場合は、env_value_def変数のactual_lengthは0を返します。

構文

#include "usrdecs.h"
short result_code;
env_value_def env_value;
ERCALLBACK (GET_TABLE_NAME_ONLY, &env_value, &result_code);

バッファ

typedef struct
{
char *buffer;
long max_length;
long actual_length;
short value_truncated;
short index;
short source_or_target;
} env_value_def;

入力

buffer

返された表名を受け付けるバッファへのポインタ。表名はNULLで終了します。

max_length

表名を受け付けるために割り当てたバッファの最大長。NULL終了文字列として返されます。

source_or_target

ソースまたはターゲット表のどちらの名前を返すかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

buffer

schema.tableやcatalog.schema.tableなど、データベース・プラットフォームに応じた、NULLで終了する完全修飾表名。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、表名はセッションのキャラクタ・セットで解釈されます。

actual length

返される表名の文字列長。実際の長さにNULL終了文字は含まれません。オブジェクトが表以外の場合、返される実際の長さは0です。

value_truncated

値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、表名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

返される値

EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.41 GET_TIMESTAMP

適用対象

ExtractおよびReplicat

説明

GET_TIMESTAMPファンクションでは、ソース・データ・レコードに関連付けられているI/OタイムスタンプをASCII日付時刻フォーマットで取得します。タイムスタンプは、その後ローカル時間に変換され、元のデータベース操作の時間に概算されます。

注意:

ASCIIコミット・タイムスタンプは、地域によって異なる夏時間の使用によって変化する可能性があります。ユーザー・イグジット・コールバックは、この差異を回避するために、GMT時間としてASCII日付時刻を返す必要があります。Oracle GoldenGateトレイルは、GMTフォーマットを使用します。GET_GMT_TIMESTAMPを参照してください。

構文

#include "usrdecs.h"
short result_code;
record_def record;
ERCALLBACK (GET_TIMESTAMP, &record, &result_code);

バッファ

typedef struct
{
char *table_name;
char *buffer;
long length;
char before_after_ind;
short io_type;
short record_type;
short transaction_ind;
int64_t timestamp;
exit_ts_str io_datetime;
short mapped;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION   */
char requesting_before_after_ind;
} record_def;

入力

なし

出力

timestamp

返されるASCIIフォーマットの64ビットI/Oタイムスタンプ。

io_datetime

ローカルI/O日付および時刻を含む、次のフォーマットのNULL終了文字列。

YYYY-MM-DD HH:MI:SS.FFFFFF

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_OK

6.42 GET_TRANSACTION_IND

適用対象

ExtractおよびReplicat

説明

GET_TRANSACTION_INDファンクションでは、データ・レコードがトランザクションの最初、最後、または中間の操作かを確認します。これは、たとえばユーザー・イグジットが各トランザクションの詳細を作成し、特別の概要レコードを出力するときに役立ちます。

構文

#include "usrdecs.h"
short result_code;
record_def record;
ERCALLBACK (GET_TRANSACTION_IND, &record, &result_code);

バッファ

typedef struct
{
char *table_name;
char *buffer;
long length;
char before_after_ind;
short io_type;
short record_type;
short transaction_ind;
int64_t timestamp;
exit_ts_str io_datetime;
short mapped;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION   */
char requesting_before_after_ind;
} record_def;

入力

なし

出力

transaction_ind

返されるトランザクション・インジケータで、次のいずれかで表されます。

BEGIN_TRANS_VAL

レコードはトランザクションの最初です。

MIDDLE_TRANS_VAL

レコードはトランザクションの中間です。

END_TRANS_VAL

レコードはトランザクションの最後です。

WHOLE_TRANS_VAL

レコードはトランザクションの唯一のレコードです。

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_OK

6.43 GET_USER_TOKEN_VALUE

適用対象

ExtractおよびReplicat

説明

GET_USER_TOKEN_VALUEファンクションでは、トレイル・レコードからユーザー・トークン値を取得します。トークン値では、キャラクタ・セットの変換は実行されません。

構文

#include "usrdecs.h"

バッファ

typedef struct
{
char *token_name;
char *token_value;
long max_length;
long actual_length;
short value_truncated;
} token_value_def;

入力

token_name

トークンの名前を表すバッファへのポインタ。トークン名は、トークンが構成されるExtractのTABLE文をホストするオペレーティング・システムのデフォルトのキャラクタ・セットでエンコードされているとみなされます。ユーザー・イグジットは、SET_SESSION_CHARSETで指定されたキャラクタ・セットでトークン名を準備しますが、一致するトークン値を取得する前に、オペレーティング・システムのキャラクタ・セットに戻します。

max_length

結果のトークン値を受け付けるために割り当てたtoken_nameバッファの最大長。NULL終了文字列として返されます。

出力

token_value

(ある場合)トークンの戻り値を表すバッファへのポインタ。トークン値は、キャラクタ・セットの変換を行わずに、ユーザー・イグジットにそのまま戻されます。

actual_length

返されるトークン値の実際の長さ。トークンが見つかっても値が存在しないときは、値0が返されます。

value_truncated

トークン値が切り捨てられたかどうかを示すフラグ(0または1)。切捨ては、表名とNULL終了文字を足した長さが、最大バッファ長を超えるときに行われます。

返される値

EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_TOKEN_NOT_FOUND
EXIT_FN_RET_OK

6.44 OUTPUT_MESSAGE_TO_REPORT

適用対象

ExtractおよびReplicat

説明

OUTPUT_MESSAGE_TO_REPORTファンクションでは、レポート・ファイルにメッセージを出力します。ユーザー・イグジットの文字セッションがSET_SESSION_CHARSETを使用して設定されている場合、メッセージはセッションのキャラクタ・セットで解釈されますが、レポート・ファイルに書き込まれる前に、オペレーティング・システムのデフォルトのキャラクタ・セットに変換されます。

構文

#include "usrdecs.h"
short result_code;
char  message[500];
ERCALLBACK (OUTPUT_MESSAGE_TO_REPORT, message, &result_code);

バッファ

なし

入力

message

NULL終了文字列。

出力

なし

返される値

EXIT_FN_RET_OK

6.45 RESET_USEREXIT_STATS

適用対象

ExtractおよびReplicat

説明

RESET_USEREXIT_STATSファンクションでは、最後のGET_STATISTICSへのコールが処理された後のOracle GoldenGateプロセスのEXIT_STAT_GROUP_USEREXIT統計をリセットします。このファンクションにより、ユーザー・イグジットはGET_STATISTICSファンクションによって返されるグループ統計をいつリセットするかを制御できますが、他の統計のリセットは許可されません。

構文

#include "usrdecs.h"
short result_code;
call_callback (RESET_USEREXIT_STATS, NULL, &result_code);

入力

なし

出力

なし

返される値

なし

6.46 SET_COLUMN_VALUE_BY_INDEX

適用対象

ExtractおよびReplicat

説明

SET_COLUMN_VALUE_BY_INDEXまたはSET_COLUMN_VALUE_BY_NAMEファンクションでは、データ・レコード全体を操作せず、単一の列値のみを変更します。ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、ユーザー・イグジットとプロセス間で交換される文字データは、セッションのキャラクタ・セットで解釈されます。

次に該当する場合、列値はセッションのキャラクタ・セットにのみ設定されます。

- 列値がSQL文字型(CHAR/VARCHAR2/CLOB、NCHAR/NVARCHAR2/NCLOB)、SQL日付/タイムスタンプ/間隔/数値型である。

- column_value_modeインジケータがEXIT_FN_CNVTED_SESS_CHAR_FORMATに設定されている。

構文

#include "usrdecs.h"
short result_code;
column_def column;
ERCALLBACK (SET_COLUMN_VALUE_BY_INDEX, &column, &result_code);

バッファ

typedef struct
{
char *column_value;
unsigned short max_value_length;
unsigned short actual_value_length;
short null_value;
short remove_column;
short value_truncated;
short column_index;
char *column_name;
/* Version 3 CALLBACK_STRUCT_VERSION */
short column_value_mode;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION */
char requesting_before_after_ind;
char more_lob_data;
/* Version 3 CALLBACK_STRUCT_VERSION  */
ULibCharSet column_charset;
} column_def;

入力

column_value

新しい列値を表すバッファへのポインタ。

actual_value_length

新しい列値の長さ(バイト)。新しい列値がASCIIフォーマットの場合、実際の長さにNULL終了文字は含めません。

null_value

新しい列値がNULLかどうかを示すフラグ(0または1)。null_valueフラグが1に設定されている場合、データ・レコードの列値はNULLに設定されます。

remove_column

存在する場合に、圧縮更新の列を削除するかどうかを示すフラグ(0または1)。圧縮更新とは、すべての列値ではなく、変更された列値のみが記録されるものです。このフラグは、レコードの操作タイプがUPDATE_COMP_SQL_VAL、PK_UPDATE_SQL_VAL、またはUPDATE_COMP_ENSCRIBE_VALの場合にのみ設定する必要があります。

column_index

データ・レコード・バッファにコピーする新しい列値の列索引。列索引はゼロから開始されます。

column_value_mode

列値のフォーマットを示します。

EXIT_FN_CHAR_FORMAT

ASCIIフォーマット: 値は、NULLで終了しているASCII (またはEBCDIC)文字列です(既知の例外としてサブデータ型UTF16_BEがあり、これはUTF8に変換されます)。

注意:

列値は、ASCII文字列として解釈され、NULLで終了する必要があるため、ユーザー・イグジットに示される際に切り捨てられる可能性があります。最初の0の値は、文字列の終了文字になります。

- 日付はCCYY-MM-DD HH:MI:SS.FFFFFFのフォーマットで、時間の端数はデータベースに依存します。

- 数値は文字列フォーマットです。たとえば、123.45は'123.45'として表されます。

- 出力不可能な文字またはバイナリ値は、16進表記法に変換されます。

- 浮動小数点型は、有効桁数が最初の14桁までのNULL終了文字列として出力されます。

EXIT_FN_RAW_FORMAT

内部Oracle GoldenGate正規フォーマット: このフォーマットには、適切な場合に、2バイトのNULLインジケータおよび2バイトの変数データ長が含まれます。文字データ型の場合、Oracle GoldenGateではこのフォーマットへのキャラクタ・セットの変換は実行されません。

EXIT_FN_CNVTED_SESS_CHAR_FORMAT

ユーザー・イグジットのキャラクタ・セット: これが適用されるのは、列のデータ型が次の場合のみです。

- シングルバイトまたはマルチバイトの文字ベースの型

- 文字列で表現する数値型

このフォーマットはNULLで終了しません。

source_or_target
ソースまたはターゲット・レコードが変更されるかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL
requesting_before_after_ind
io_typeがUPDATE_COMP_PK_SQL_VAL(主キー更新)のレコードの列値を設定するときに設定します。次のいずれかを使用して、主キー更新のどの部分にアクセスするかを指定します。デフォルトはAFTER_IMAGE_VALです。

- BEFORE_IMAGE_VAL

- AFTER_IMAGE_VAL

出力

なし

返される値

EXIT_FN_RET_BAD_COLUMN_DATA
EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK
EXIT_FN_RET_NOT_SUPPORTED
EXIT_FN_RET_INVALID_COLUMN_TYPE

6.47 SET_COLUMN_VALUE_BY_NAME

適用対象

ExtractおよびReplicat

説明

SET_COLUMN_VALUE_BY_INDEXまたはSET_COLUMN_VALUE_BY_NAMEファンクションでは、データ・レコード全体を操作せず、単一の列値のみを変更します。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、ユーザー・イグジットとプロセス間で交換される文字データは、セッションのキャラクタ・セットで解釈されます。

次に該当する場合、列値はセッションのキャラクタ・セットにのみ設定されます。

- 列値がSQL文字型(CHAR/VARCHAR2/CLOB、NCHAR/NVARCHAR2/NCLOB)、SQL日付/タイムスタンプ/間隔/数値型である。

- column_value_modeインジケータがEXIT_FN_CNVTED_SESS_CHAR_FORMATに設定されている。

データベースが大/小文字を区別する場合、オブジェクト名は、ホストしているデータベースで定義されているのと同じ大/小文字の区別で指定する必要があります。それ以外の場合、大/小文字の区別はありません。

構文

#include "usrdecs.h"
short result_code;
column_def column;
ERCALLBACK (SET_COLUMN_VALUE_BY_NAME, &column, &result_code);

バッファ

typedef struct
{
char *column_value;
unsigned short max_value_length;
unsigned short actual_value_length;
short null_value;
short remove_column;
short value_truncated;
short column_index;
char *column_name;
/* Version 3 CALLBACK_STRUCT_VERSION */
short column_value_mode;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION */
char requesting_before_after_ind;
char more_lob_data;
/* Version 3 CALLBACK_STRUCT_VERSION  */
ULibCharSet column_charset;
} column_def;

入力

column_value

新しい列値を表すバッファへのポインタ。

actual_value_length

新しい列値の長さ(バイト)。新しい列値がASCIIフォーマットの場合、実際の長さにNULL終了文字は含めません。

null_value

新しい列値がNULLかどうかを示すフラグ(0または1)。null_valueフラグが1に設定されている場合、データ・レコードの列値はNULLに設定されます。

remove_column

存在する場合に、圧縮更新の列を削除するかどうかを示すフラグ(0または1)。圧縮更新とは、すべての列値ではなく、変更された列値のみが記録されるものです。このフラグは、レコードの操作タイプがUPDATE_COMP_SQL_VAL、PK_UPDATE_SQL_VAL、またはUPDATE_COMP_ENSCRIBE_VALの場合にのみ設定する必要があります。

column_name

データ・レコード・バッファにコピーする新しい列値に対応する列名。

column_value_mode

列値のフォーマットを示します。

EXIT_FN_CHAR_FORMAT

ASCIIフォーマット: 値は、NULLで終了しているASCII (またはEBCDIC)文字列です(既知の例外としてサブデータ型UTF16_BEがあり、これはUTF8に変換されます)。

注意:

列値は、ASCII文字列として解釈され、NULLで終了する必要があるため、ユーザー・イグジットに示される際に切り捨てられる可能性があります。最初の0の値は、文字列の終了文字になります。

- 日付はCCYY-MM-DD HH:MI:SS.FFFFFFのフォーマットで、時間の端数はデータベースに依存します。

- 数値は文字列フォーマットです。たとえば、123.45は'123.45'として表されます。

- 出力不可能な文字またはバイナリ値は、16進表記法に変換されます。

- 浮動小数点型は、有効桁数が最初の14桁までのNULL終了文字列として出力されます。

EXIT_FN_RAW_FORMAT

内部Oracle GoldenGate正規フォーマット: このフォーマットには、適切な場合に、2バイトのNULLインジケータおよび2バイトの変数データ長が含まれます。文字データ型の場合、Oracle GoldenGateではこのフォーマットへのキャラクタ・セットの変換は実行されません。

EXIT_FN_CNVTED_SESS_CHAR_FORMAT

ユーザー・イグジットのキャラクタ・セット: これが適用されるのは、列のデータ型が次の場合のみです。

- シングルバイトまたはマルチバイトの文字ベースの型

- 文字列で表現する数値型

このフォーマットはNULLで終了しません。

source_or_target
ソースまたはターゲット・データ・レコードが変更されるかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL
requesting_before_after_ind
io_typeがUPDATE_COMP_PK_SQL_VAL(主キー更新)のレコードの列値を設定するときに設定します。次のいずれかを使用して、主キー更新のどの部分にアクセスするかを指定します。デフォルトはAFTER_IMAGE_VALです。

- BEFORE_IMAGE_VAL

- AFTER_IMAGE_VAL

出力

なし

返される値

EXIT_FN_RET_BAD_COLUMN_DATA
EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK
EXIT_FN_RET_NOT_SUPPORTED
EXIT_FN_RET_INVALID_COLUMN_TYPE

6.48 SET_OPERATION_TYPE

適用対象

ExtractおよびReplicat

説明

SET_OPERATION_TYPEファンクションでは、レコードに関連付けられている操作のタイプを変更します。たとえば、特定の表での削除を別の表で挿入に変更できます。レコード・ヘッダーのビフォア/アフター・インジケータは、挿入および削除操作に対して適切に変更されます。

構文

#include "usrdecs.h"
short result_code;
record_def record;
ERCALLBACK (SET_OPERATION_TYPE, &record, &result_code);

バッファ

typedef struct
{
char *table_name;
char *buffer;
long length;
char before_after_ind;
short io_type;
short record_type;
short transaction_ind;
int64_t timestamp;
exit_ts_str io_datetime;
short mapped;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION   */
char requesting_before_after_ind;
} record_def;

入力

io_type

削除、挿入、および更新に、次の1つがそれぞれ返されます。

DELETE_VAL
INSERT_VAL
UPDATE_VAL

圧縮Enscribe更新の場合は、次が返されます。

UPDATE_COMP_ENSCRIBE_VAL

圧縮SQL更新の場合は、次が返されます。

UPDATE_COMP_SQL_VAL

新しい操作タイプが挿入または削除の場合、レコードのビフォア/アフター・インジケータは次のいずれかに設定されます。

挿入: AFTER_IMAGE_VAL(アフター・イメージ)

削除: BEFORE_IMAGE_VAL(ビフォア・イメージ)

source_or_target

ソースまたはターゲット・データ・レコードのどちらの操作タイプを設定するかを示す次の一方。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

出力

なし

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

6.49 SET_RECORD_BUFFER

適用対象

ExtractおよびReplicat

説明

SET_RECORD_BUFFERファンクションは、ユーザー・イグジットとの互換性の維持、および複雑なデータ・レコード操作のために使用します。このファンクションでは、レコード全体を操作します。データ・レコード・バッファを直接正確に変更するには、Oracle GoldenGate内部レコード・フォーマットを把握する必要があるため、変更を行うときは、レコード全体ではなく個々の列値を変更する方法が最適です。列値を変更するには、SET_COLUMN_VALUE_BY_INDEXおよびSET_COLUMN_VALUE_BY_NAMEファンクションを使用します。ユーザー・イグジット内のこれらのファンクションで、ほとんどのカスタム・マッピングを十分に処理できます。

構文

#include "usrdecs.h"
short result_code;
record_def record;
ERCALLBACK (SET_RECORD_BUFFER, &record_def, &result_code);

バッファ

typedef struct
{
char *table_name;
char *buffer;
long length;
char before_after_ind;
short io_type;
short record_type;
short transaction_ind;
int64_t timestamp;
exit_ts_str io_datetime;
short mapped;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION   */
char requesting_before_after_ind;
} record_def;

入力

buffer

新しいレコード・バッファへのポインタ。通常、bufferはタイプexit_rec_buf_defのバッファへのポインタです。exit_rec_buf_defバッファには、ExtractまたはReplicatによってまもなく処理される実際のレコードが含まれます。このバッファは、コール・タイプがEXIT_CALL_DISCARD_RECORDのときに指定されます。イグジット・ルーチンは、たとえばカスタム・マッピング・ファンクションを実行するために、このバッファの内容を変えることがあります。

レコード・バッファの内容は、ユーザー・イグジットのキャラクタ・セットとの変換が行われません。これはそのままで渡されます。

length

新しいレコード・バッファの長さ。

出力

なし

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK
EXIT_FN_RET_NOT_SUPPORTED

6.50 SET_SESSION_CHARSET

適用対象

ExtractおよびReplicat

説明

SET_SESSION_CHARSETファンクションでは、ユーザー・イグジットのキャラクタ・セットを設定します。ユーザー・イグジット・セッションのキャラクタ・セットは、次のような(ただしこれらに限定されません)メタデータなど、ユーザー・イグジットとコール元プロセス(Extract、データ・ポンプ、Replicat)間で使用される文字ベースのコールバック構造メンバーのエンコーディングを示します。

- データベースの名前およびロケール

- 表名および列名

- DDLテキスト

- エラー・メッセージ

- CHARおよびNCHARなどの文字型の列

- 文字列形式で表される日時および数値の列

このファンクションは、ユーザー・イグジットが制御しているときはいつでも呼び出すことができます。ユーザー・イグジットがセッションのキャラクタ・セットを設定すると、すぐに有効になり、すべての文字値は指定したセットへの変換を開始します。このファンクションを呼び出すには、コール・タイプEXIT_CALL_STARTを使用することをお薦めします。

注意:

SET_SESSION_CHARSETはスレッドセーフではありません。

SET_SESSION_CHARSETが呼び出されない場合、セッションは、ucharset.hファイルのULIB_CS_DEFAULTの事前定義された列挙型の値であるオペレーティング・システムのデフォルトのキャラクタ・セットに設定されます。セッションのキャラクタ・セットがULIB_CS_DEFAULTからのデフォルトである場合、ユーザー・イグジットとコール元プロセス間で交換される文字型の値に対して、Oracle GoldenGateでは変換は実行されません。さらに、データベースのオブジェクト名のメタデータは、オペレーティング・システムのデフォルトのキャラクタ・セットであるとみなされます。デフォルトは適切ではない場合があることに注意してください。

ユーザー・イグジットがロードされ、SET_SESSION_CHARSETが呼び出されると、ユーザー・イグジットのキャラクタ・セットはレポート・ファイルに出力されます。セッションのキャラクタ・セットがULIB_CS_DEFAULTである場合、列データのキャラクタ・セットの変換が実行されないことを示すメッセージが表示されます。

グローバリゼーション・サポートの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

構文

#include usrdecs.h
short result_code;
session_def session_charset_def;
ERCALLBACK (SET_SESSION_CHARSET, &session_charset_def, &result_code);

バッファ

typedef struct
{
ULibCharSet  session_charset;
} session_def;

入力

session_charset

セッションのキャラクタ・セットの有効な値は、ヘッダー・ファイルucharset.hで定義されます。

出力

なし

返される値

EXIT_FN_RET_OK

6.51 SET_TABLE_NAME

適用対象

Extractおよびデータ・ポンプ

説明

SET_TABLE_NAMEファンクションでは、レコードに関連付けられている表名を変更します。たとえば、特定の表での削除を履歴表への挿入に変更できます。表名は、Extract処理中にのみ変更できます。

データベースが大/小文字を区別する場合、オブジェクト名は、ホストしているデータベースで定義されているのと同じ大/小文字の区別で指定する必要があります。それ以外の場合、大/小文字の区別はありません。2つの部分または3つの部分からなる完全名を指定します。

構文

#include "usrdecs.h"
short result_code;
record_def record;
ERCALLBACK (SET_TABLE_NAME, &record_def, &result_code);

バッファ

typedef struct
{
char *table_name;
char *buffer;
long length;
char before_after_ind;
short io_type;
short record_type;
short transaction_ind;
int64_t timestamp;
exit_ts_str io_datetime;
short mapped;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION   */
char requesting_before_after_ind;
} record_def;

入力

table_name

データ・レコードに関連付ける新しい表名を指定するNULL終了文字列。

ユーザー・イグジットの文字セッションが、SET_SESSION_CHARSETを使用して、オペレーティング・システムのデフォルトのキャラクタ・セット以外の値に設定されている場合、ucharset.hファイルのULIB_CS_DEFAULTで定義されているように、表名はセッションのキャラクタ・セットで解釈されます。

出力

なし

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK

オラクルの法律上の注意点について

コピーライトについて

Copyright © 1994-2016, Oracle and/or its affiliates.All rights reserved.

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクルまでご連絡ください。

制限付権利について

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、Oracle Corporationおよびその関連会社は一切の責任を負いかねます。

商標と登録商標について

OracleおよびJavaはオラクルおよびその関連会社の登録商標です。その他の社名、商品名等は各社の商標または登録商標である場合があります。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

アルファ版およびベータ版ドラフト・ドキュメントについて

このドキュメントが試作版の場合:

このドキュメントは試作版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のアルファ版およびベータ版ドラフト・ドキュメントについて

このドキュメントが非公開の試作版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のベータ・トライアル契約のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle PartnerNetwork Agreement、Oracle Distribution Agreementまたはその他のライセンス契約の条件に従うものとします。このドキュメントとその内容の開示、コピー、複製および配布には、オラクルによる事前の承諾を必要とします。このドキュメントはライセンス契約の一部となるものではなく、オラクルおよびその子会社や関連会社との契約を構成するものではありません。

ドキュメントのアクセシビリティについて

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc を参照してください。

Oracle Supportへのアクセス

サポートをご契約のお客様には、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害のあるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。