8 Oracle GoldenGate構成のその他の考慮事項
内容は次のとおりです。
- Oracle順序のサポートのインストール
Oracle順序をサポートするには、いくつかのデータベース・プロシージャをインストールする必要があります。 - 特別なデータ型の処理
様々なOracleデータ型に対する特別な構成要件について説明します - 他のデータベース・プロパティの処理
この項では、Oracle GoldenGateに影響する可能性のあるデータベース・プロパティと、その状態の解決または回避に使用できるパラメータについて説明します。 - チェックポイント頻度の制御
TRANLOGOPTIONS
パラメータのCHECKPOINTRETENTIONTIME
オプションでは、統合モードのExtractがチェックポイントを自動的にパージするまで保持する日数を制御します。 - Replicatトランザクションの除外
双方向構成では、トランザクションをマークするようにReplicatを構成する必要があり、また、Replicatトランザクションを除外するようにExtractを構成して、ソースに伝播されないようにする必要があります。 - Oracle GoldenGateの拡張構成オプション
ビジネス・ニーズにあわせて、拡張オプションでOracle GoldenGateを構成する必要が生じる場合があります。
Oracle順序のサポートのインストール
Oracle順序をサポートするには、いくつかのデータベース・プロシージャをインストールする必要があります。
Oracle順序オブジェクトのインストール手順
-
SQL*Plusで、
SYSDBA
としてソースおよびターゲットのOracleシステムに接続します。 -
Oracle GoldenGate DDLレプリケーション機能をサポートするデータベース・ユーザーがすでに割り当てられている場合は、このステップをスキップできます。そうでない場合は、両方のシステムのSQL*Plusで、DDLユーザーでもあるデータベース・ユーザーを作成します。
CREATE USER
DDLuser
IDENTIFIED BYpassword
; GRANT CONNECT, RESOURCE, DBA TODDLuser
; -
各システムのOracle GoldenGateインストール・ディレクトリからGGSCIを実行します。
-
GGSCIで、次のコマンドを各システムで発行します。
EDIT PARAMS ./GLOBALS
-
各
GLOBALS
ファイルにGGSCHEMA
パラメータを入力し、この手順の前の部分で作成したDDLユーザーのスキーマを指定します。GGSCHEMA
schema
-
ファイルを保存し、閉じます。
-
両方のシステムのSQL*Plusで、
sequence.sql
スクリプトをOracle GoldenGateインストール・ディレクトリのルートから実行します。このスクリプトは、Oracle GoldenGateプロセスで使用するいくつかのプロシージャを作成します。(これらを手動で実行しないでください。)最初のステップで作成したユーザー情報の入力が求められます。@sequence.sql
-
ソース・システムのSQL*Plusで、
DBLOGIN
コマンドの発行に使用されるデータベース・ユーザーにupdateSequence
プロシージャのEXECUTE
権限を付与します。このユーザーについて記録しておいてください。プロシージャをコールするFLUSH SEQUENCE
コマンドを発行する前に、DBLOGIN
を使用してデータベースにログインします。GRANT EXECUTE on
DDLuser
.updateSequence TODBLOGINuser
; -
ターゲット・システムのSQL*Plusで、Replicatデータベース・ユーザーに
replicateSequence
プロシージャのEXECUTE
権限を付与します。GRANT EXECUTE on
DDLuser
.replicateSequence TOReplicatuser
; -
ソース・システムのSQL*Plusで、次の文を発行します。
ALTER TABLE sys.seq$ ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
マルチテナント・データベースから順序をキャプチャする方法
-
順序のキャプチャ元となる各PDBにOracle GoldenGateユーザーを作成します。
-
ユーザーをGLOBALSパラメータ・ファイルに追加します。各PDBに同じユーザーを使用する方が簡単です。そうしない場合、ステップ3を実行するたびにGLOBALSファイルを変更する必要があります。
-
ステップ1で作成したユーザーを使用して、各PDBで
sequence.sql
スクリプトを実行します。 -
Admin ClientまたはGGSCIにログインします。
-
DBLOGIN
を使用して、ソースのルート・コンテナに接続します。 -
各PDBに対して
FLUSH SEQUENCE
コマンドを発行します。
-
ターゲットで、順序のレプリケート先となる各PDBに対して、前の項のステップ1で作成したとおりにユーザーを作成します。
-
そのユーザーを使用してPDBに接続し、
sequence.sql
スクリプトを実行します。
これらのデータベース・アカウントを保持しない場合は、ユーザーを削除するか、アカウントを非アクティブ化できます。
プロセス全体の例を次に示します。
Environment information
OGG 19.1 Oracle 12c to Oracle 12c Replication, Integrated
Extract, Parallel Replicat
Source: CDB GOLD, PDB CERTMISSN
Target: CDB PLAT, PDB CERTDSQ
Source Oracle GoldenGate Configuration
Container User: C##GGADMIN
PDB User for Sequences: GGATE
sqlplus / as sysdba
SQL> alter session set container=CERTMISSN;
SQL> create user ggate identified by password default tablespace
users temporary tablespace temp quota unlimited on users container=current;
Run @sequence
sqlplus / as sysdba
SQL> alter session set container=CERTMISSN;
SQL> @sequence
プロンプトが表示されたら、GGATE
を入力します
GLOBALS
GGSCHEMA GGATE
Flush Sequence
GGSCI> DBLOGIN USERIDALIAS GGADMIN DOMAIN GOLD_QC_CDB$ROOT
GGSCI> FLUSH SEQUENCE CERTMISSN.SRCSCHEMA1.
Target OGG Configuration
PDB User: GGATE
Run @sequence
sqlplus / as sysdba
SQL> alter session set container=CERTDSQ;
SQL> @sequence
プロンプトが表示されたら、GGATE
を入力します
親トピック: Oracle GoldenGate構成のその他の考慮事項
特別なデータ型の処理
異なるOracleデータ型に対する特別な構成要件について説明します。
この項は、特に断りのないかぎり、Extractがクラシック・キャプチャ・モードで動作する場合も統合キャプチャ・モードで動作する場合も該当します。
親トピック: Oracle GoldenGate構成のその他の考慮事項
マルチバイト・キャラクタ型
マルチバイト・キャラクタは、サポートされている文字セットの一部としてサポートされます。Oracleソース・データベースのセマンティクス設定がBYTE
で、Oracleターゲットの設定がCHAR
の場合、構成でReplicatパラメータSOURCEDEFS
を使用し、DEFGEN
ユーティリティによって生成された定義ファイルをターゲットに配置します。これらのステップは、ソースおよびターゲットのデータ定義が同一であるかどうかにかかわらず、セマンティクス内の差異のサポートに必要です。Replicatでは、定義ファイルを参照して固定サイズの文字列のサイズ上限を決定します。
親トピック: 特別なデータ型の処理
Oracle Spatialオブジェクト
SDO_GEORASTER
オブジェクト型の列が1つ以上含まれている表をOracleソースからOracleターゲットにレプリケートするには、それらが正しく処理されるよう、次の手順に従ってOracle GoldenGateを構成します。
ターゲットのGeoRaster表のアクティブなトリガーによって生じるラスター表のエラーを処理する適切な方法は、DISCARD
を指定してREPERROR
を使用し、エラーをトリガーした、カスケードされた削除を破棄します。ターゲットのGeoRaster表のトリガーによって、ラスター・データ表に対して削除が実行されるため、レプリケートされた削除は不要です。
MAP geo.st_rdt, TARGET geo.st_rdt, REPERROR (-1403, DISCARD) ;
エラー処理の監査証跡を保持する必要がある場合は、REPERROR
とEXCEPTION
を使用して例外処理を呼び出します。この場合、例外表を作成して、次のようにソースのラスター・ターゲット表に2回マップします。
-
1回目は実際のターゲットのラスター・データ表(1403エラーを処理する
REPERROR
を使用)。 -
2回目は例外表で、
COLMAP
句を使用して1403エラーとその他の関連する情報をキャプチャします。
例外表の使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
REPERROR
オプションの詳細は、『Oracle GoldenGateリファレンス』を参照してください。
親トピック: 特別なデータ型の処理
TIMESTAMP
タイムスタンプ・データをレプリケートするために、Oracle Databaseは、TIMESTAMP WITH LOCAL TIME ZONE
データを受信先のデータベース(Oracle GoldenGateの場合はターゲット・データベース)のローカルのタイムゾーンに正規化します。適用するデータの元のタイム・スタンプを保持するために、Replicatはセッションをソース・データベースのタイムゾーンに設定します。Replicatパラメータ・ファイルのSOURCETIMEZONE
を使用することで、このデフォルトをオーバーライドして、異なるタイムゾーンを指定できます。Replicatでセッションをターゲット・タイムゾーンに強制的に設定させるには、PRESERVETARGETTIMEZONE
パラメータを使用します。
TIMESTAMP WITH TIME ZONE
がTZR
で表されてOracle GoldenGateが異常終了しないようにするには、ExtractパラメータTRANLOGOPTIONS
をINCLUDEREGIONIDWITHOFFSET
で使用して、TZR
で表されたTIMESTAMP WITH TIMEZONE
を、バージョン10g以降のOracleソースからそれより前のOracleターゲットに、またはOracleソースからOracle以外のターゲットにレプリケートします。これらのオプションにより、TZRで表されたTIMESTAMP WITH TIME ZONE
をサポートしないOracleバージョン、およびUTCオフセットで表されたタイムゾーンのみをサポートするデータベース・システムにレプリケートできます。
SOURCETIMEZONE
パラメータを使用して、バージョン12.1.2より前のExtractでキャプチャされるデータのソース・タイムゾーンを指定することもできます。これらのバージョンは、ソース・タイムゾーンを証跡に書き込みません。
親トピック: 特別なデータ型の処理
ラージ・オブジェクト(LOB)
クラシックと統合の両方のキャプチャ・モードでのLOBに対する構成ガイドラインは、次のとおりです。
-
可能な場合、行外にラージ・オブジェクトを保存します。
-
(統合キャプチャのみ該当)統合キャプチャでは、REDOログからLOBがキャプチャされます。LOBドキュメントに対する
UPDATE
操作では、LOBの変更された部分のみが記録されます。変更された部分のみが記録される場合にLOBドキュメント全体の証跡への書込みを強制するには、Extractパラメータ・ファイルでFETCHPARTIALLOB
オプションを指定してTRANLOGOPTIONS
パラメータを使用します。Extractは、ログマイニング・サーバーから部分的なLOBコンテンツを受信すると、部分的なLOBを処理するのではなく、LOBイメージ全体をフェッチします。Oracle以外のターゲットにレプリケートする場合、またはLOBイメージ全体が必要なその他の場合にこのオプションを使用します。
親トピック: 特別なデータ型の処理
XML
Oracle GoldenGate制約内でXMLを使用するためのツールは、次のとおりです。
-
クラシックと統合の両キャプチャ・モードで、XMLスキーマへの変更のキャプチャはサポートされませんが、スキーマを展開して、再同期をしなくてもそのレプリケーションを再開できます(「XMLスキーマの変更のサポート」を参照)。
-
(統合キャプチャのみ該当)統合キャプチャでは、REDOログからXMLがキャプチャされます。XMLドキュメントの
UPDATE
操作では、OBJECT RELATIONAL
またはBINARY
として格納されている場合、XMLの変更された部分のみが記録されます。変更された部分のみが記録される場合にXMLドキュメント全体の証跡への書込みを強制するには、Extractパラメータ・ファイルでFETCHPARTIALXML
オプションを指定してTRANLOGOPTIONS
パラメータを使用します。Extractは、ログマイニング・サーバーから部分的なXMLコンテンツを受信すると、部分的なXMLを処理するのではなく、XMLドキュメント全体をフェッチします。Oracle以外のターゲットにレプリケートする場合、またはXMLイメージ全体が必要なその他の場合にこのオプションを使用します。
親トピック: 特別なデータ型の処理
ユーザー定義型
Oracle Databaseがリリース12.0.0.0.0以上と互換性がある場合、統合ExtractはREDOからデータをキャプチャします(フェッチなし)。詳細は、「フラッシュバック問合せの設定」を参照してください。
NCHAR
、NVARCHAR2
またはNCLOB
属性のユーザー定義型を含むソース・データをOracleターゲットにレプリケートする場合は、Replicatパラメータ・ファイルのHAVEUDTWITHNCHAR
パラメータを使用します。この型のデータが証跡で検出される場合は、HAVEUDTWITHNCHAR
によって、ReplicatがAL32UTF8
でOracleターゲットに接続されます(これは、これらの属性のいずれかがユーザー定義のデータ型に含まれる場合に必要です)。HAVEUDTWITHNCHAR
は、NLS_LANG
がターゲットでAL32UTF8
に設定される場合でも必要です。デフォルトのReplicatは、NLS_LANG
を無視し、データベースのネイティブ文字セットでOracle Databaseに接続します。ReplicatはOracle Call InterfaceのOCIString
オブジェクトを使用していますが、これはNCHAR
、NVARCHAR2
またはNCLOB
属性をサポートしないため、ReplicatがそれらをCHAR
としてバインドする必要があります。このような状況では、AL32UTF8
のターゲットに接続することでデータの損失を防ぎます。HAVEUDTWITHNCHAR
は、パラメータ・ファイルのUSERID
またはUSERIDALIAS
パラメータの前に存在する必要があります。
親トピック: 特別なデータ型の処理
他のデータベース・プロパティの処理
この項では、Oracle GoldenGateに影響する可能性のあるデータベース・プロパティと、その状態の解決または回避に使用できるパラメータについて説明します。
次の表でリストされるのは、データベース・プロパティおよび関連する問題点/解決策です。
データベース・プロパティ | 問題点/解決策 |
---|---|
時間隔パーティション化がある表 |
時間隔パーティション化がある表をサポートするには、 |
仮想列のある表 |
仮想列は記録されません。また、Oracleで仮想列に対するDMLは許可されません。ただし、次のようにして、このデータをキャプチャし、仮想列ではないターゲット列にマップできます。 Extractの Replicatの |
本質的に更新可能なビューを持つ表 |
本質的に更新可能なビューにレプリケートするには、関連付けの対象のソース表とターゲット表をマップする |
異なる場所にあるREDOログまたはアーカイブ |
|
|
|
順序 |
順序のDDL( 順序値のみをレプリケートするには、Extractパラメータ・ファイルで |
親トピック: Oracle GoldenGate構成のその他の考慮事項
チェックポイント頻度の制御
TRANLOGOPTIONS
パラメータのCHECKPOINTRETENTIONTIME
オプションでは、統合モードのExtractがチェックポイントを自動的にパージするまで保持する日数を制御します。
部分的な日数は、10進値を使用して指定されます。たとえば、8.25は8日と6時間を指定します。デフォルトは7日です。このパラメータの詳細は、『Oracle GoldenGateリファレンス』を参照してください。
親トピック: Oracle GoldenGate構成のその他の考慮事項
Replicatトランザクションの除外
双方向構成では、トランザクションをマークするようにReplicatを構成する必要があり、また、Replicatトランザクションを除外するようにExtractを構成して、ソースに伝播されないようにする必要があります。
これを実行するには、次の2つの方法があります。
方法1
OracleからOracleの実装にのみ有効です。
Extractがクラシックまたは統合モード(Replicatは統合また非統合モードのいずれかが可能)の場合は、次のパラメータを使用します。
-
Replicatのパラメータ・ファイルで、
DBOPTIONS
をSETTAG
オプションとともに使用します。インバウンド・サーバーは、指定した値のタグ(これらのトランザクションをREDOストリーム内で識別)をそのReplicatのトランザクションに付けます。SETTAG
のデフォルト値は00です。 -
クラシックまたは統合Extractパラメータ・ファイルで
EXCLUDETAG
オプションを指定してTRANLOGOPTIONS
パラメータを使用します。Extractに関連付けられたログマイニング・サーバーは、SETTAG
値のタグが付いたREDOを除外します。複数のEXCLUDETAG
文を使用して、必要に応じて異なるタグ値を除外できます。OracleからOracleの場合は、これが推奨される方法です。
方法2
あらゆる実装(Oracleまたは異種データベース構成)に有効です。
あるいは、Extractがクラシック・キャプチャ・モードまたは統合キャプチャ・モードの場合は、EXCLUDEUSER
またはEXCLUDEUSERID
オプションを指定してTRANLOGOPTIONS
パラメータを使用し、ユーザー名またはIDに基づいて、ReplicatのDDLおよびDMLトランザクションを無視することもできます。複数のEXCLUDEUSER
文を使用できます。指定されたユーザーは、GETREPLICATES
またはIGNOREREPLICATES
パラメータのルールの対象になります。
詳細は、『Oracle GoldenGateリファレンス』を参照してください。
親トピック: Oracle GoldenGate構成のその他の考慮事項
Oracle GoldenGateの拡張構成オプション
ビジネス・ニーズに合せて、拡張オプションでOracle GoldenGateを構成する必要が生じる場合があります。
次を参照してください。
-
特定のレプリケーション・トポロジを実現するためのその他の構成のガイドラインについては、『Oracle GoldenGateの管理』を参照してください。このガイドには、次の構成に関する手順が含まれています。
-
ライブ・レポートでのOracle GoldenGateの使用
-
リアルタイム・データ分散でのOracle GoldenGateの使用
-
リアルタイム・データ・ウェアハウスのためのOracle GoldenGateの構成
-
ライブ・スタンバイ・データベース管理のためのOracle GoldenGateの使用
-
アクティブ/ アクティブ型高可用性のためのOracle GoldenGateの使用
ガイドには、次の点に関する情報も含まれています。
-
Oracle GoldenGateのアーキテクチャ
-
Oracle GoldenGateのコマンド
-
Oracle GoldenGateの初期ロード方式
-
セキュリティの構成
-
カスタマイズ機能の使用
-
データ・フィルタリングと操作の構成
-
-
ソースまたはターゲットのいずれかのデータベースがOracle以外の場合、そのデータベース用のOracle GoldenGateインストレーションおよびセットアップ・ガイドのインストールと構成の手順に従い、その他の情報については、Oracle GoldenGateの管理とリファレンスのドキュメントを参照してください。
親トピック: Oracle GoldenGate構成のその他の考慮事項