Oracle® Fusion Middleware

Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成

12c (12.2.0.1)

E70107-04(原本部品番号:E66365-04)

2016年3月

Oracle DatabaseのためのOracle GoldenGateをインストールおよび構成する方法を説明した、インストール実行者およびシステム管理者のためのドキュメントです。

Oracle Fusion Middleware Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成, 12c (12.2.0.1)

E70107-04

Copyright © 2010, 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の登録商標です。

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

目次

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

はじめに

- 対象読者

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

- 関連情報

- 表記規則

1 システム要件とインストール前の指示

- 1.1 動作保証要件とシステム要件の確認

- 1.2 オペレーティング・システムの要件

- 1.2.1 メモリーの要件

- 1.2.2 ディスクの要件

- 1.2.2.1 Oracle GoldenGateのインストール・ファイルのディスク要件

- 1.2.2.2 ディスク領域のその他の考慮事項

- 1.2.2.3 クラスタでのインストール

- 1.2.2.4 一時ディスクの要件

- 1.2.3 ネットワーク

- 1.2.4 オペレーティング・システムの権限

- 1.2.5 Itaniumの要件

- 1.2.6 コンソールのキャラクタ・セット

- 1.2.7 その他のプログラム

- 1.3 Oracle GoldenGateのOracle Universal Installerの要件

- 1.4 データベース構成

- 1.5 各キャプチャ・モードでサポートされるOracleデータ型とオブジェクトのサマリー

- 1.6 サポートされるOracleデータ型の詳細

- 1.6.1 ANYDATAデータ型

- 1.6.1.1 サポートの制限

- 1.6.2 数値データ型

- 1.6.2.1 サポートの制限

- 1.6.3 文字データ型

- 1.6.3.1 サポートの制限

- 1.6.4 マルチバイト文字型

- 1.6.4.1 サポートの制限

- 1.6.5 バイナリ・データ型

- 1.6.6 日付およびタイムスタンプのデータ型

- 1.6.6.1 サポートの制限

- 1.6.7 ラージ・オブジェクトのデータ型

- 1.6.7.1 一般的なサポートの制限 - 統合およびクラシック・キャプチャ・モード

- 1.6.7.2 サポートの制限 - クラシック・キャプチャ・モード

- 1.6.8 XMLデータ型

- 1.6.8.1 サポートの制限 - 統合およびクラシック・キャプチャ・モード

- 1.6.8.2 サポートの制限 - 統合キャプチャ・モード

- 1.6.8.3 サポートの制限 - クラシック・キャプチャ・モード

- 1.6.9 ユーザー定義または抽象型

- 1.6.9.1 一般的なサポートの制限 - 統合およびクラシック・キャプチャ・モード

- 1.6.9.2 コレクション型に対する制限 - 統合およびクラシック・キャプチャ・モード

- 1.6.9.3 オブジェクト表に対する制限 - 統合およびクラシック・キャプチャ・モード

- 1.6.9.4 Spatial型に対する制限 - 統合およびクラシック・キャプチャ・モード

- 1.6.10 サポートされていないOracleデータ型

- 1.7 Oracle DMLのオブジェクトと操作のサポートの詳細

- 1.7.1 マルチテナント・コンテナ・データベース

- 1.7.1.1 マルチテナント・コンテナ・データベースの制限

- 1.7.2 表、ビューおよびマテリアライズド・ビュー

- 1.7.2.1 標準の表のサポートの制限

- 1.7.2.2 索引構成表のサポートの制限

- 1.7.2.3 ビューのサポートの制限

- 1.7.2.4 マテリアライズド・ビューのサポートの制限

- 1.7.2.5 クラスタリング表のサポートの制限

- 1.7.3 順序

- 1.7.3.1 順序のサポートの制限

- 1.7.4 Oracle DMLでサポートされていないオブジェクトおよび操作

- 1.8 Oracle DDLのオブジェクトと操作のサポートの詳細

- 1.8.1 Oracle DDLでサポートされているオブジェクトおよび操作

- 1.8.2 サポートされていないOracle DDLのオブジェクトおよび操作

- 1.8.2.1 除外されるオブジェクト

- 1.8.2.2 サポートされていないその他のDDL

- 1.9 サポートされているオブジェクト名とサポートされていないオブジェクト名

2 Oracle GoldenGateのインストール

- 2.1 Oracle GoldenGateディストリビューションの理解と入手

- 2.2 ORACLE_HOMEおよびORACLE_SIDの設定

- 2.2.1 UNIXおよびLinuxシステムでのOracle変数の指定

- 2.2.2 WindowsシステムでのOracle変数の指定

- 2.3 UNIX上での動的ビルドのライブラリ・パスの設定

- 2.4 クラスタ内にOracle GoldenGateをインストールする準備

- 2.4.1 Oracle GoldenGateバイナリとファイルをインストールするクラスタ内の場所の決定

- 2.4.2 Oracleクラスタ・ストレージの例

- 2.5 Oracle GoldenGateのインストール

- 2.5.1 OUIを使用した対話型インストールの実行

- 2.5.2 OUIを使用したサイレント・インストールの実行

- 2.6 クラスタへのOracle GoldenGateの統合

- 2.6.1 クラスタでの一般的な要件

- 2.6.2 Windowsクラスタ・リソースとしてのOracle GoldenGateの追加

3 Oracle GoldenGateのためのデータベースの準備

- 3.1 統合プロセスの接続の構成

- 3.2 ロギング・プロパティの構成

- 3.2.1 最小のデータベース・レベルのサプリメンタル・ロギングの有効化

- 3.2.2 スキーマ・レベルのサプリメンタル・ロギングの有効化

- 3.2.3 表レベルのサプリメンタル・ロギングの有効化

- 3.3 データベースでのOracle GoldenGateの有効化

- 3.4 フラッシュバック問合せの設定

- 3.5 サーバー・リソースの管理

4 Oracle GoldenGate資格証明の確立

- 4.1 Oracle GoldenGateへの資格証明の割当て

- 4.1.1 Extractユーザー

- 4.1.2 Replicatユーザー

- 4.1.3 その他のOracle GoldenGateユーザー

- 4.1.4 適切なユーザー権限の付与

- 4.1.4.1 Oracle 11.2.0.4以上のデータベース権限

- 4.1.4.2 Oracle 11.2.0.3以前のデータベース権限

- 4.1.4.3 dbms_goldengate_auth.grant_admin_privilegeパッケージについて

- 4.1.4.4 dbms_goldengate_auth.grant_admin_privilegeのオプションの付与

- 4.2 Oracle GoldenGate資格証明の保護

5 キャプチャおよび適用モードの選択

- 5.1 Oracle GoldenGateキャプチャおよび適用プロセスの概要

- 5.2 使用するキャプチャ方法の決定

- 5.2.1 クラシック・キャプチャについて

- 5.2.2 統合キャプチャについて

- 5.2.2.1 統合キャプチャでサポートされるデータベースのバージョン

- 5.2.2.2 統合キャプチャ・デプロイ・オプション

- 5.3 使用する適用方法の決定

- 5.3.1 非統合Replicatについて

- 5.3.2 統合Replicatについて

- 5.3.2.1 統合Replicatの利点

- 5.3.2.2 統合Replicatの要件

- 5.4 異なるキャプチャおよび適用モードの併用

- 5.5 異なるプロセスモードへの切替え

6 マルチテナント・コンテナ・データベースでのOracle GoldenGateの構成

- 6.1 プラガブル・データベースでのOracle GoldenGateの使用

- 6.1.1 プラガブル・データベースからのキャプチャ

- 6.1.2 プラガブル・データベースへの適用

- 6.1.3 構成からのオブジェクトの除外

- 6.2 マルチテナント・コンテナ・データベースのその他の要件

7 統合モードでのキャプチャの構成

- 7.1 統合キャプチャの構成の前提条件

- 7.2 これらの手順でできること

- 7.3 統合キャプチャ・モードでのプライマリExtractの構成

- 7.4 データ・ポンプExtractの構成

- 7.5 次の手順

8 クラシック・モードでのキャプチャの構成

- 8.1 クラシック・キャプチャの構成の前提条件

- 8.2 これらの手順でできること

- 8.3 クラシック・キャプチャ・モードでのプライマリExtractの構成

- 8.4 データ・ポンプExtractの構成

- 8.5 次の手順

9 Oracle GoldenGate適用の構成

- 9.1 Replicat構成の前提条件

- 9.2 これらの手順でできること

- 9.3 チェックポイント表の作成(非統合Replicatのみ)

- 9.3.1 ターゲット・データベースへのチェックポイント表の追加

- 9.3.2 Oracle GoldenGate構成でのチェックポイント表の指定

- 9.3.3 チェックポイント表へのデフォルトの非同期COMMITの無効化

- 9.4 Replicatの構成

- 9.5 次の手順

10 Oracle GoldenGate構成のその他の考慮事項

- 10.1 ソース表とターゲット表での行の一意性の保証

- 10.2 Oracle順序のサポートのインストール

- 10.3 特別なデータ型の処理

- 10.3.1 マルチバイト・キャラクタ型

- 10.3.2 Oracle Spatialオブジェクト

- 10.3.3 TIMESTAMP

- 10.3.4 ラージ・オブジェクト(LOB)

- 10.3.5 XML

- 10.3.6 ユーザー定義型

- 10.4 他のデータベース・プロパティの処理

- 10.5 チェックポイント頻度の制御

- 10.6 Replicatトランザクションの除外

- 10.7 Oracle GoldenGateの拡張構成オプション

11 クラシック・キャプチャを使用する場合の追加構成手順

- 11.1 クラシック・キャプチャ・モードでのOracle TDEデータの構成

- 11.1.1 クラシック・キャプチャ・モードでのTDEサポートの概要

- 11.1.2 クラシック・キャプチャ・モードでのTDEのキャプチャの要件

- 11.1.3 TDEサポートに必要なデータベース・パッチ

- 11.1.4 TDEサポートのクラシック・キャプチャの構成

- 11.1.4.1 Oracleの基準を満たす共通鍵の共有

- 11.1.4.2 Oracle DBAのタスク

- 11.1.4.3 Oracleセキュリティ担当者のタスク

- 11.1.4.4 Oracle GoldenGate管理者のタスク

- 11.1.5 復号化後のデータのセキュリティを維持するための推奨事項

- 11.1.6 TDEキャプチャがアクティブな場合のDDLの実行

- 11.1.7 データベースのアップグレード後の鍵の更新

- 11.1.8 パラメータ・ファイルでのOracle共通鍵の更新

- 11.2 Oracle RAC環境でのクラシック・キャプチャの使用

- 11.3 クラシック・キャプチャ・モードでのASMストアド・ログのマイニング

- 11.3.1 ASM内のトランザクション・ログへのアクセス

- 11.3.1.1 RDBMSを介したトランザクション・ログの読取り

- 11.3.1.2 ASM直接接続

- 11.3.2 ASM接続の確認

- 11.4 クラシック・キャプチャでのデータ可用性の確保

- 11.4.1 Extractリカバリ・モード別のログ保存要件

- 11.4.2 ログ保存のオプション

- 11.4.2.1 Oracle Enterprise Edition 11g以降

- 11.4.2.2 その他のOracleバージョン

- 11.4.3 保存するデータ量の判断

- 11.4.4 アーカイブ・ログの消去

- 11.4.5 アーカイブ場所の指定

- 11.4.6 その他のプラットフォームに保存されるログのマウント

- 11.5 アーカイブ・ログ専用モードでのクラシック・キャプチャの構成

- 11.5.1 ALOモードの制限および要件

- 11.5.2 ALOモードのExtractの構成

- 11.6 Oracle Active Data Guard専用モードでのキャプチャの構成

- 11.6.1 ADGモードの使用の制限および要件

- 11.6.2 ADGモードのクラシックExtractの構成

- 11.6.3 ADGデータベースとの間でのクラシックExtractの移行

- 11.6.4 ADG構成でのロール変更の処理

- 11.7 クラシック・キャプチャでのログ読取りのボトルネックの回避

12 非統合Replicatを使用するための追加の構成手順

- 12.1 ターゲット表でのトリガーと参照カスケード制約の無効化

- 12.2 ターゲット表での制約チェックの延期

- 12.2.1 11.2.0.2より前のバージョンでの一時的な主キーの重複の処理

- 12.2.2 11.2.0.2以降のバージョンでの一時的な主キーの重複の処理

13 DDLサポートの構成

- 13.1 DDL構成の前提条件

- 13.1.1 統合キャプチャ・モードでのDDLキャプチャのサポート

- 13.1.2 クラシック・キャプチャ・モードでのDDLキャプチャのサポート

- 13.2 DDL同期の概要

- 13.3 Oracle GoldenGateにおけるDDLサポートの制限事項

- 13.3.1 DDL文の長さ

- 13.3.2 サポートされているトポロジ

- 13.3.3 フィルタリング、マッピングおよび変換

- 13.3.4 名前変更

- 13.3.5 表からのフェッチとDDLとの相互作用

- 13.3.6 SQL内のコメント

- 13.3.7 コンパイル・エラー

- 13.3.8 時間隔パーティション化

- 13.3.9 DDLトリガー内で実行されたDMLまたはDDL

- 13.3.10 LogMinerデータ・ディクショナリのメンテナンス

- 13.4 DDLサポートの構成ガイドライン

- 13.4.1 データベースの権限

- 13.4.2 並列処理

- 13.4.3 オブジェクト名

- 13.4.4 データ定義

- 13.4.5 切捨て

- 13.4.6 初期同期

- 13.4.7 CREATEまたはRENAMEの後のデータ継続性

- 13.5 DDLスコープについて

- 13.5.1 マップされるスコープ

- 13.5.1.1 Oracleクラスタ表とUDTのマッピング

- 13.5.1.2 ALTER INDEXのマッピング

- 13.5.2 マップされないスコープ

- 13.5.3 他のスコープ

- 13.6 DDL内の修飾されていないオブジェクト名の正しい識別

- 13.7 DDLサポートの有効化

- 13.8 DDLレプリケーションのフィルタリング

- 13.8.1 PL/SQLコードによるフィルタ

- 13.8.2 組込みフィルタ・ルールによるフィルタ

- 13.8.2.1 DDLAUX.addRule()関数の定義

- 13.8.2.2 DDLAUX.addRule()のパラメータ

- 13.8.2.3 DDLAUX.addRule()に対して有効なDDLコンポーネント

- 13.8.2.4 ルールベースのトリガーのフィルタの例

- 13.8.2.5 フィルタ・ルールの削除

- 13.8.3 DDLパラメータを使用したフィルタリング

- 13.9 特別なフィルタのケース

- 13.9.1 DDL EXCLUDE ALL

- 13.9.2 暗黙的DDL

- 13.10 Oracle GoldenGateにおける導出オブジェクト名の処理方法

- 13.10.1 ベース・オブジェクトに対するMAPはあるが、導出オブジェクトに対するMAPはない場合

- 13.10.2 MAPがベース・オブジェクトと導出オブジェクトに存在する場合

- 13.10.3 MAPが導出オブジェクトに存在してベース・オブジェクトに存在しない場合

- 13.10.4 導出オブジェクトとしての新しい表

- 13.10.4.1 RENAMEおよびALTER TABLE RENAME

- 13.10.4.2 CREATE TABLE AS SELECT

- 13.10.5 導出オブジェクトのマッピングの無効化

- 13.11 DDL文字列置換の使用

- 13.12 様々なトポロジをサポートするためのDDLの伝播の制御

- 13.12.1 アクティブ/アクティブ(双方向)構成でのDDLの伝播

- 13.12.2 カスケード構成でのDDLの伝播

- 13.13 サプリメンタル・ログ・グループの自動追加

- 13.14 レプリケートされたDDLからのコメントの削除

- 13.15 IDENTIFIED BYパスワードのレプリケート

- 13.16 処理でDDLが評価される仕組み

- 13.17 DDL処理エラーの処理

- 13.18 DDLレポート情報の表示

- 13.18.1 ReplicatでのDDLレポートの表示

- 13.18.2 ExtractでのDDLレポートの表示

- 13.18.3 プロセス・レポートの統計

- 13.19 DDL処理のトレース

- 13.20 トリガーベースのDDLキャプチャをサポートするツールの使用

- 13.20.1 DDLトリガーのトレース

- 13.20.2 DDL履歴表のメタデータの表示

- 13.20.3 DDLトリガー・エラーの処理

- 13.21 エディションベース再定義の使用

14 プロセス・グループの作成

- 14.1 これらの手順の前提条件

- 14.2 Extractのマイニング・データベースでの登録

- 14.3 プライマリExtractの追加

- 14.4 ローカル証跡の追加

- 14.5 データ・ポンプExtractグループの追加

- 14.6 リモート証跡の追加

- 14.7 Replicatグループの追加

15 Oracle GoldenGateレプリケーションのインスタンス化

- 15.1 インスタンス化プロセスの概要

- 15.2 インスタンス化の前提条件

- 15.2.1 変更同期グループの構成および追加

- 15.2.2 DDL処理の無効化

- 15.2.3 コリジョン処理の追加

- 15.2.4 ターゲット表の準備

- 15.3 初期ロードの構成

- 15.3.1 Oracle Data Pumpを使用したロードの構成

- 15.3.2 SQL*Loaderへダイレクト・バルク・ロードするための構成

- 15.3.3 入力ファイルからSQL*Loaderへのロードの構成

- 15.4 ターゲットのインスタンス化の実行

- 15.4.1 Oracle Data Pumpを使用したインスタンス化の実行

- 15.4.2 SQL*Loaderへのダイレクト・バルク・ロードを使用する場合のインスタンス化の実行

- 15.4.3 入力ファイルからSQL*Loaderへのインスタンス化の実行

- 15.5 インスタンス化後の処理の監視および制御

- 15.6 同期の確認

- 15.7 Oracle GoldenGate環境のバックアップ

16 DDLレプリケーション環境の管理

- 16.1 DDL処理の一時的な無効化

- 16.2 DDLトリガーの有効化と無効化

- 16.3 DDLマーカー表の保持

- 16.4 DDLマーカー表の削除

- 16.5 DDL履歴表の保持

- 16.6 DDL履歴表の削除

- 16.7 DDLトレース・ファイルのパージ

- 16.8 DDLサポートが有効である場合のデータベースのパッチおよびアップグレードの適用

- 16.9 DDLサポートが有効である場合のOracle GoldenGateのパッチおよびアップグレードの適用

- 16.10 既存のDDL環境のクリーン状態への復元

- 16.11 システムからのDDLオブジェクトの削除

17 Oracle GoldenGateのアンインストール

- 17.1 プロセスの停止

- 17.2 DDL環境の削除

- 17.3 データベース・オブジェクトの削除

- 17.4 Oracle Universal Installerを使用したOracle GoldenGateのアンインストール

- 17.5 手動によるOracle GoldenGateのアンインストール

- 17.5.1 手動によるOracle GoldenGate Windowsコンポーネントの削除

- 17.5.2 Oracle GoldenGateファイルの手動削除

A 統合モード用のオプションのパラメータ

- A.1 統合キャプチャ用のその他のパラメータ・オプション

- A.2 統合Replicat用のその他のパラメータ・オプション

B ダウンストリーム・マイニング・データベースの構成

- B.1 ダウンストリーム・デプロイ用のキャプチャ・オプションの評価

- B.2 ダウンストリーム・デプロイ用のソース・データベースの準備

- B.2.1 ソース・ユーザー・アカウントの作成

- B.2.2 ソースからダウンストリーム・マイニング・データベースへのREDO転送の構成

- B.3 ダウンストリーム・マイニング・データベースの準備

- B.3.1 ダウンストリーム・マイニング・ユーザー・アカウントの作成

- B.3.2 ローカルREDOログ・ファイルをアーカイブするためのマイニング・データベースの構成

- B.3.3 リアルタイム・キャプチャ用のダウンストリーム・マイニング・データベースの準備

- B.3.3.1 スタンバイREDOログ・ファイルの作成

- B.3.3.2 スタンバイREDOログ・ファイルをローカルにアーカイブするためのデータベースの構成

C ダウンストリーム・マイニング構成の例

- C.1 例1: リアルタイム・モードでの1つのソース・データベースからのキャプチャ

- C.1.1 ローカルREDOをアーカイブするためのマイニング・データベースの準備

- C.1.2 ソース・データベースから受信したREDOをスタンバイREDOログにアーカイブするためのマイニング・データベースの準備

- C.1.3 REDOをマイニング・データベースに送信するためのソース・データベースの準備

- C.1.4 DBMSCAPでの統合キャプチャ(ext1)の設定

- C.2 例2: アーカイブログのみモードでの複数のソースからのキャプチャ

- C.2.1 ローカルREDOをアーカイブするためのマイニング・データベースの準備

- C.2.2 ソース・データベースからのREDOをアーカイブするためのマイニング・データベースの準備

- C.2.3 REDOをマイニング・データベースに送信するための最初のソース・データベースの準備

- C.2.4 REDOをマイニング・データベースに送信するための2番目のソース・データベースの準備

- C.2.5 ダウンストリーム・マイニング・データベースでのExtractの設定

- C.2.5.1 DBMS1によって送信されたアーカイブ・ログから変更をキャプチャするためのExtract (ext1)の設定

- C.2.5.2 DBMS2によって送信されたアーカイブ・ログから変更をキャプチャするためのExtract (ext2)の設定

- C.3 例3: リアルタイム・モードとアーカイブログのみモードが混在する複数ソースからのキャプチャ

- C.3.1 ローカルREDOをアーカイブするためのマイニング・データベースの準備

- C.3.2 ソース・データベースからREDOを受け入れるためのマイニング・データベースの準備

- C.3.3 REDOをマイニング・データベースに送信するための最初のソース・データベースの準備

- C.3.4 REDOをマイニング・データベースに送信するための2番目のソース・データベースの準備

- C.3.5 REDOをマイニング・データベースに送信するための3番目のソース・データベースの準備

- C.3.6 ダウンストリーム・マイニング・データベースでのExtractの設定

- C.3.6.1 DBMS1によって送信されたアーカイブ・ログから変更をキャプチャするためのExtract (ext1)の設定

- C.3.6.2 DBMS2によって送信されたアーカイブ・ログから変更をキャプチャするためのExtract (ext2)の設定

- C.3.6.3 DBMS3によって送信されたオンライン・ログからリアルタイム・モードで変更をキャプチャするためのExtract (ext3)の設定

D トリガーベースのDDLキャプチャのインストール

- D.1 トリガーベースのDDLキャプチャを使用する場合

- D.2 トリガーベースのDDLキャプチャをサポートするオブジェクトの概要

- D.3 DDLオブジェクトのインストール

E XMLスキーマの変更のサポート

- E.1 RegisterSchemaのサポート

- E.2 DeleteSchemaのサポート:

- E.3 CopyEvolveのサポート

F アクティブ/アクティブ構成のためのDBFSの準備

- F.1 サポートされている操作および前提条件

- F.2 必要なパッチの適用

- F.3 これらのプロシージャで使用されている例

- F.4 DBFS順序番号のパーティション化

- F.5 DBFSファイル・システムの構成

- F.6 ローカル・ピアとリモート・ピアの正しいマップ

G インストールされるOracle GoldenGateコンポーネント

- G.1 Oracle GoldenGateのプログラムとユーティリティ

- G.2 Oracle GoldenGateのサブディレクトリ

- G.3 その他のOracle GoldenGateのファイル

- G.4 Oracle GoldenGateのチェックポイント表

はじめに

このガイドには、Oracle DatabaseシステムでのOracle GoldenGateのインストール、構成および実行を始めるに際して有用な情報が記載されています。Oracle GoldenGate for Oracleを使用すると、次のことが可能になります。

- サポートされているほぼ同じOracleバージョン間や異なるOracleバージョン間、あるいはサポートされているOracleのバージョンとサポートされているその他のデータベースとの間のトランザクション・データ変更のマップ、フィルタおよび変換。

- 異種Oracle Database間のOracle DDL操作のレプリケートおよびフィルタ。

- Oracleまたはその他のデータベースのターゲット表への初期ロードと同期されたレプリケーション環境のインスタンス化。

このドキュメントは、Oracle環境に適した、基本的な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アダプタ

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をサポートするシステム・リソースとデータベース・リソースの要件を示します。

この章の内容は次のとおりです。

- 動作保証要件とシステム要件の確認

- オペレーティング・システムの要件

- Oracle GoldenGateのOracle Universal Installerの要件

- データベース構成

- 各キャプチャ・モードでサポートされるOracleデータ型とオブジェクトのサマリー

- サポートされるOracleデータ型の詳細

- Oracle DMLのオブジェクトと操作のサポートの詳細

- Oracle DDLのオブジェクトと操作のサポートの詳細

- サポートされているオブジェクト名とサポートされていないオブジェクト名

注意:

Oracle GoldenGateでは、Oracleソース・データベースに対して2つのキャプチャ・モードがサポートされます。一部のシステム要件は、選択されたキャプチャ・モードに応じて異なります。キャプチャ・モードの詳細は、「使用するキャプチャ方法の決定」を参照してください。

1.1 動作保証要件とシステム要件の確認

サポートされているハードウェアまたはソフトウェア構成で製品をインストールしていることを確認します。詳細は、「Oracle Fusion Middleware Supported System Configurations」ページのリリースの動作保証に関するドキュメントを参照してください。

Oracleでは、動作保証済のすべてのシステムおよび環境で製品のパフォーマンスをテストおよび検証しており、新しい動作保証情報が発表された場合は、適切な動作保証ドキュメントにすぐに追加されます。新しい動作保証情報は常に発生する可能性があるため、動作保証ドキュメントはドキュメント・ライブラリの外部に保持され、Oracle Technology Networkで利用できます。

1.2 オペレーティング・システムの要件

この項では、Oracle GoldenGateのサポートに必要なオペレーティング・システム・リソースについて説明します。

1.2.1 メモリーの要件

Oracle GoldenGateに必要なメモリーの量は、処理されるデータの量、実行されるOracle GoldenGateプロセスの数、Oracle GoldenGateで使用可能なRAMの量、およびオペレーティング・システムでRAMを開放する必要がある場合(通常はロー・ウォーターマークに達した場合)にRAMのページを一時的に格納するためにOracle GoldenGateで使用可能なディスク領域の量に応じて異なります。このRAMからディスクへの一時的な格納は、一般にスワッピングまたはページングと呼ばれます(以後スワッピングと呼びます)。プラットフォームによっては、スワップ領域という用語は、スワップ・パーティション、スワップ・ファイル、ページ・ファイル(Windows)または共有メモリー・セグメント(IBM iプラットフォーム)と呼ばれます。

最近のサーバーには、Oracle GoldenGateを実行するために十分なRAMとスワップ領域、メモリー管理システムが備わっています。ただし、Oracle GoldenGateで使用できるRAMの量を増やすと、Oracle GoldenGateのパフォーマンスおよびシステム全般のパフォーマンスが大幅に向上する場合があります。

通常のOracle GoldenGateインストールでは、RAMページからディスクへのスワッピングが過度に発生しないよう数GBのRAMが指定されます。RAMの競合が多いほど、多くのスワップ領域が使用されます。

ディスクへのスワッピングが過度に発生する場合、コミット・レコードを受信するまで各オープン・トランザクションのデータを格納する必要があるため、特にExtractプロセスにパフォーマンスの問題が生じます。Oracle GoldenGateがデータベースと同じシステムで稼働する場合、使用可能なRAMの量は、両方のパフォーマンスにとって非常に重要になります。

RAMとスワップの使用量は、Oracle GoldenGateプロセスではなく、オペレーティング・システムによって制御されます。Oracle GoldenGateキャッシュ・マネージャは、オペレーティング・システムのメモリー管理機能を利用して、Oracle GoldenGateプロセスを持続的かつ効率的に機能させます。ほとんどの場合、ユーザーは、デフォルトのOracle GoldenGateメモリー管理構成を変更する必要はありません。

Oracle GoldenGateのメモリー要件の評価の詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXのCACHEMGRパラメータに関する項を参照してください。

1.2.2 ディスクの要件

プラットフォーム、データベース、およびOracle GoldenGateを通常の方法またはOracle Universal Installer (OUI)でインストールするかに基づいて、空きディスク領域の量を割り当てます。ダウンロード・ファイルは、インストールの完了後に削除できます。

1.2.2.1 Oracle GoldenGateのインストール・ファイルのディスク要件

この項では、手動インストールおよびOUIを使用したインストールのディスク要件について説明します。

表1-1に、手動ビルドで1つのOracle GoldenGateインストールのファイルによって消費されるディスク領域を示します。手動ビルドではOUIを使用しません。Oracle GoldenGateをインストールするには、ファイルを展開して作業ディレクトリを作成します。

表1-1 手動ビルドのディスク要件

オペレーティング・システム

データベースのバージョン

タイプ

ファイル

サイズ[MB]

Linux_x64

11g

ZIP

fbo_ggs_Linux_x64_ora11g_64bit.zip

181

Linux_x64

11g

tar

fbo_ggs_Linux_x64_ora11g_64bit.tar

600

Linux_x64

11g

インストール

600

Linux_x64

12c

ZIP

fbo_ggs_Linux_x64_ora12c_64bit.zip

185

Linux_x64

12c

tar

fbo_ggs_Linux_x64_ora12c_64bit.tar

613

Linux_x64

12c

インストール

613

Solaris SPARC

11g

ZIP

ggs_Solaris_sparc_ora11g_64bit.zip

61

Solaris SPARC

11g

tar

ggs_Solaris_sparc_ora11g_64bit.tar

256

Solaris SPARC

11g

インストール

257

Solaris SPARC

12c

ZIP

ggs_Solaris_sparc_ora12c_64bit.zip

63

Solaris SPARC

12c

tar

ggs_Solaris_sparc_ora12c_64bit.tar

261

Solaris SPARC

12c

インストール

261

Windows64

11g

zip

ggs_Windows_x64_ora11g_64bit.zip

61

Windows64

11g

インストール

218

Windows64

12c

ZIP

ggs_Solaris_sparc_ora11g_64bit.zip

61

Windows64

12c

インストール

281

表1-1に、OUIが使用されている場合に、1つのOracle GoldenGateインストールのファイルで消費されるディスク領域を示します。

表1-1 OUIビルドのディスク要件

プラットフォーム

Oracleバージョン

圧縮サイズ(MB)

インストール・サイズ(MB)

Windows

11g

321 (zipファイル)

325 (OUIインストーラ)

504

Windows

12c

321 (zipファイル)

325 (OUIインストーラ)

504

Linux

11g

325 (zipファイル)

329 (OUIインストーラ)

492

Linux

12c

325 (zipファイル)

329 (OUIインストーラ)

521

Solaris SPARC

11g

214 (zipファイル)

219 (OUIインストーラ)

391

Solaris SPARC

12c

214 (zipファイル)

219 (OUIインストーラ)

391

1.2.2.2 ディスク領域のその他の考慮事項

Oracle GoldenGateによってインストールされるファイルおよびバイナリに必要なディスク領域に加えて、Oracle GoldenGate証跡をホストするシステムに追加で1GBのディスク領域を確保します。証跡とは、停止および処理中の作業データを格納する自己エージング・ファイルのセットです。証跡によって消費される領域は処理されるデータ量に応じて異なるため、これとは多少異なる容量が必要となる場合があります。Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIXで証跡のサイズ設定のガイドラインを参照してください。

ディスク領域はOracle GoldenGate Bounded Recovery機能にも必要です。Bounded Recoveryは一般的なExtractチェックポイント機能のコンポーネントです。この機能は長時間実行中のオープン・トランザクションを特定の間隔でディスクにキャッシュして、Extractの再起動における高速リカバリを有効にします。個々のBounded Recovery間隔(BRパラメータのBRINTERVALオプションで制御されます)で必要となるディスクは次のとおりです。キャッシュ済データを備えるトランザクションごとに必要とされるディスク領域は通常、64KBプラス、64KBに丸められたキャッシュ済データのサイズです。長時間実行中のトランザクションがすべてディスクに保管されるわけではありません。Bounded Recoveryの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXのBRパラメータに関する項を参照してください。

1.2.2.3 クラスタでのインストール

Oracle GoldenGateをクラスタ環境にインストールするには、すべてのクラスタ・ノードで使用可能な共有ファイル・システムにOracle GoldenGateのバイナリとファイルをOracleユーザーとしてインストールします。詳細は、「クラスタ内でのOracle GoldenGateのインストールの準備」を参照してください。

1.2.2.4 一時ディスクの要件

デフォルトでは、Oracle GoldenGateによってOracle GoldenGateインストール・ディレクトリのdirtmpサブディレクトリに、ディスクに書き込まれるデータが保持されます。キャッシュ済トランザクション・データの合計がCACHEMGRパラメータのCACHESIZE設定を超えると、Extractはキャッシュ・データの一時ファイルへの書込みを開始します。キャッシュ・マネージャは、ファイル・システムのすべての空き容量を使用可能とみなします。このディレクトリは、トランザクションのサイズの増加に伴ってトランザクションの量が増加すると、すぐに一杯になります。I/O競合とディスク関連のExtractの失敗を防ぐには、ディスクをこのディレクトリ専用にします。CACHEMGRパラメータのCACHEDIRECTORYオプションを使用して、このディレクトリに名前を割り当てます。

通常はオペレーティング・システムによるディスクへのスワップの方が、Extractによる一時ファイルの書込みよりも効率的です。デフォルトのCACHESIZE設定はこれを前提としています。したがって、これに対応する十分なディスク領域が存在する必要があります。CACHESIZEの値が超過した場合のみ、Extractがトランザクション・キャッシュ済データをファイル・システムのネームスペース内の一時ファイルに書き込むためです。システムで複数のExtractプロセスを実行する場合、ディスク要件が増大する場合があります。Oracle GoldenGateは、オープン・トランザクションを格納する十分なメモリーがないときにはディスクに書き込みます。トランザクションがコミットされるかロールバックされると、コミットされたデータは証跡ファイルに書き込まれ、データはメモリーから解放されて、Oracle GoldenGateはそのトランザクションを追跡しなくなります。1つ1つの操作後に毎回トランザクションがコミットされるときは、これらのトランザクションがディスクに書き込まれることがないため、ディスクの最小要件はありません。

1.2.3 ネットワーク

Oracle GoldenGateをサポートするには、次のネットワーク・リソースが使用可能である必要があります。

- 最適なパフォーマンスと信頼性を実現、特にターゲットでの低レイテンシを維持するには、最速のネットワークを使用して、すべての障害点で冗長性を導入する必要があります。

- DNSを含むTCP/IPサービスを使用するようにシステムを構成します。Oracle GoldenGateはIPv4とIPv6をサポートし、これらのプロトコルのいずれか、または両方ともがサポートされるシステムで稼働します。

- Oracle GoldenGateのプロセスをホストし、Oracle GoldenGateの接続先となるすべてのシステムのホスト名またはIPアドレスを使用してネットワークを構成します。ホスト名の方が便利です。

- Oracle GoldenGateでは、予約されていない制限なしのTCP/IPポートが必要とされます。必要な数は、構成内のプロセスの数とタイプによって異なります。必要なポートに対応するManagerプロセスの構成方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

- Oracle GoldenGateに割り当てたポートを記録します。Managerプロセスの構成時にパラメータを使用してそれらのポートを指定します。

- Oracle GoldenGateポートを介した接続を受け入れるようにファイアウォールを構成します。

1.2.4 オペレーティング・システムの権限

Oracle GoldenGateをインストールしてプロセスを実行するために必要なオペレーティング・システムの権限は次のとおりです。

- Windowsでインストールするには、Oracle GoldenGateをインストールするユーザーが管理者としてログインする必要があります。

- UNIXでインストールするには、Oracle GoldenGateをインストールするユーザーに、Oracle GoldenGateインストール・ディレクトリの読取りおよび書込み権限が必要です。

- Oracle GoldenGate Extract、ReplicatおよびManagerプロセスは、Oracle GoldenGateディレクトリのファイルおよびサブディレクトリに対して、読取り権限、書込み権限および削除権限を持つオペレーティング・システム・ユーザーとして動作する必要があります。また、ManagerプロセスにはOracle GoldenGateプロセスを制御するための権限が必要です。

- (クラシック・キャプチャ・モード)クラシック・キャプチャ・モードでは、ExtractプロセスでREDOログを直接読み取り、オンラインとアーカイブの両方のログ・ファイルの読取りアクセス権限を持つオペレーティング・システム・ユーザーとして操作する必要があります。UNIXシステムの場合、ユーザーはOracleインスタンスを所有するグループのメンバーであることが必要です。このドキュメントのインストール手順でManagerプロセスをWindowsサービスとしてインストールするには、正しい権限が割り当てられるように管理者としてインストールする必要があります。Managerをサービスとしてインストールできない場合は、Extractプロセスに対する読取り権限を手動で割り当て、ManagerおよびExtractを常に管理者として実行します。

- Extract、ReplicatおよびManagerの各オペレーティング・システム・ユーザーをOracle GoldenGate専用とします。Oracle GoldenGateのプロセスを実行するユーザーは、データベース認証の構成方法に応じて機密情報を入手できる場合があります。

1.2.5 Itaniumの要件

Intel Itaniumシステム上にOracle GoldenGateをインストールするには、vcredist_IA64.exeランタイム・ライブラリ・パッケージをインストールする必要があります。このパッケージはMicrosoft Webサイトからダウンロードできます。このパッケージには、Oracle GoldenGateがItaniumプラットフォーム上で動作するために必要なVisual Studio DLLが含まれています。これらのライブラリをインストールしない場合、Oracle GoldenGateによって次のエラーが生成されます。

The application failed to initialize properly (0xc0150002). Click on Ok to terminate the application.

1.2.6 コンソールのキャラクタ・セット

オペレーティング・システムとコマンド・コンソールのキャラクタ・セットが同じである必要があります。オペレーティング・システムではあるキャラクタ・セットが設定され、DOSコマンド・プロンプトでは別の古いDOSキャラクタ・セットを使用するMicrosoft Windowsシステムでは不一致が起こります。Oracle GoldenGateでは、オペレーティング・システムのキャラクタ・セットを使用してGGSCIコマンド出力に情報を送信するため、コンソールのキャラクタ・セットの不一致が原因で文字が正しく表示されません。次のDOSコマンドを使用して、GGSCIセッションを開く前にコンソールのキャラクタ・セットを設定できます。

chcp OS character set

コード・ページの設定後、文字が正しく表示されない場合、拡張文字セットを持つLucida Consoleにコンソール・フォントを変更してみます。

1.2.7 その他のプログラム

Oracle GoldenGateをサポートするために考慮すべきその他の事項を次に示します。

- Oracle GoldenGateをWindowsシステムにインストールする前に、Microsoft Visual C ++ 2010 SP1再頒布可能パッケージをインストールおよび構成します。このパッケージのSP1バージョンであることを確認し、サーバーに適したビットのバージョンを取得していることを確認します。このパッケージでは、Visual C++ライブラリのランタイム・コンポーネントがインストールされます。このパッケージの詳細およびダウンロードは、http://www.microsoft.comにアクセスしてください。

- Oracleでは、VMware仮想化環境でその製品のいずれも動作保証していません。Oracle Supportでは、次のようにVMware上でOracle製品を実行しているお客様をサポートします。Oracleでは、ネイティブOSで発生することが確認されている問題、またはVMware上で実行することで解決されると実証できる問題のサポートのみを提供します。

1.3 Oracle GoldenGateのOracle Universal Installerの要件

Oracle Universal Installerを使用してOracle GoldenGateをインストールするには、インストーラを実行する前に次の要件を満たす必要があります。

- OUIはグラフィカルなJavaアプリケーションです。ホスト・プラットフォームはJava対応である必要があります。必要なJava Runtime Environment (JRE)は、OUIで自動的にインストールされます。

- 初めてOUIでOracle製品をインストールする場合は、Oracle中央インベントリを作成するように求められます。これによって、インベントリ情報を格納するためのOracle GoldenGate用のサブディレクトリも作成されます。サブディレクトリでは、通常150KBのディスク領域が必要です。

1.4 データベース構成

この項では、Oracle Databaseに固有のOracle GoldenGate要件を示します。これらは、特に指定されていないかぎり、両方のキャプチャ・モードに適用されます。

- DBMS_LOB.LOADFROMFILEプロシージャを使用してLOB列のみを更新し、サプリメンタル・ログがすべての列にある場合、統合Extractはキー列およびパフォーマンスを改善するLOBをキャプチャします。クラシックExtractはデフォルトですべての列をキャプチャします。これらの動作は同種レプリケーションを生じさせません。ただし、データ・ウェアハウスへのレプリケーションがあると、更新のためにすべての列が必要になる場合があります。クラシックExtractから統合Extractに変換する場合、次のパラメータのうち1つを使用してExtractが確実に正しく動作するようにする必要があります。

- KEYCOLSを使用して(LOB以外の)すべての列を追加します。

- LOGALLSUPCOLSを使用して、サプリメンタル・ロギングされる列の書込みを制御します。

- データベース・ユーザーの権限および構成要件は、「Oracle GoldenGate資格証明の確立」を参照してください。

- Windowsシステム上で複数のOracleインスタンス(ORACLE_SID)に対してOracle GoldenGateを実行するには、それぞれに対してOracle GoldenGateのインスタンスをインストールする必要があります。

- 64ビットのSun Solarisでは、Oracle GoldenGateでは32ビットのOracleライブラリが含まれるようにLD_LIBRARY_PATHが必要です。LD_LIBRARY_PATHの設定については、「UNIX上での動的ビルドのライブラリ・パスの設定」を参照してください。

- Bequeath接続を使用するようにデータベースが構成されている場合、sqlnet.oraファイルにbequeath_detach=true設定が含まれている必要があります。

- Oracle GoldenGateのプログラムがOracle XDKライブラリにアクセスできるように、完全なOracleクライアントとOracle GoldenGateを併用する必要があります。それらのライブラリがないOracle Instant Clientは使用しないでください。完全なクライアントはOracle Webサイトからダウンロードできます。

- Oracle Real Application Cluster (RAC)環境にOracle GoldenGateをインストールするには、RACノードによってアクセスされる共有ドライブにOracle GoldenGateをインストールします。詳細は、「クラスタ内でのOracle GoldenGateのインストールの準備」を参照してください。

- (統合キャプチャ・モード)統合キャプチャ・モードでは、ソース・システム上またはダウンストリームOracle Databaseのログマイニング・サーバーを使用します。Oracle GoldenGate用のすべてのOracle Databaseリリース・バンドル・パッチの詳細は、My Oracle Supportの記事1557031.1を参照してください。
Oracle 11.2.0.3ソース・データベースで統合キャプチャ・モードを使用するには、統合Extractに必要な11.2.0.3データベース固有のバンドル・パッチをダウンロードしてインストールします。

詳細は、「キャプチャおよび適用モードの選択」を参照してください。

- Oracle Databaseは、Extractでログ・ファイルを処理できるように、ARCHIVELOGモードにする必要があります。

1.5 各キャプチャ・モードでサポートされるOracleデータ型とオブジェクトのサマリー

表1-3は、選択したキャプチャ・モードに応じてOracle GoldenGateでサポートされるOracleデータ型のサマリーを示しています。キャプチャ・モードの詳細は、「使用するキャプチャ方法の決定」を参照してください。

Oracleデータ型、オブジェクトおよび操作のサポートの詳細は、「サポートされるOracleデータ型の詳細」に記載されています。

表1-3 キャプチャ・モードごとにサポートされているデータ型

データ型

クラシック・キャプチャ

統合キャプチャ

DATE列およびDATETIME列を含むスカラー列

REDOからキャプチャされます。

REDOからキャプチャされます。

LONG VARCHAR

サポートされません。

REDOからキャプチャされます。

BASICFILE LOB列

DML (INSERT/UPDATE/DELETE)を使用して行われたLOBの変更は、REDOからキャプチャされます。

DBMS_LOBパッケージを使用して行われたLOBの変更は、ベース表から値をフェッチして、ソース表からキャプチャされます。

REDOからキャプチャされます。

SECUREFILE LOB列

SECUREFILE LOBがソース表からフェッチされる場合を除き、REDOからキャプチャされます。

- LOBは暗号化されています。

- LOBは圧縮されています。

- LOBは重複除外されています。

- LOBは行内に格納されています。

- LOBは、DBMS_LOBパッケージを使用して変更されます。

- NOLOGGING LOB

SECUREFILE LOBがソース表からフェッチされる場合を除き、REDOからキャプチャされます。

- LOBは、DBMS_LOB.FRAGMENT_*プロシージャを使用して変更されます。

- NOLOGGING LOB。

- ソースのOracle Databaseリリース/バイナリが12.1未満のとき、LOBが重複解除された。

ソース・データベース互換性が11.2.0.0.0以上に設定されている必要があります。

索引構成表(IOT)

次の制限付きでREDOからキャプチャされます。

- マッピング表を使用するIOTはサポートされません。

- IOT表への直接ロード挿入では、SORTED句は使用できません。

- COMPRESS句で指定された接頭辞圧縮を使用するIOTはサポートされません。

- IOTに物理ROWIDがない場合は、論理ROWIDになるため、キャプチャはサポートされません。

次の制限付きでREDOからキャプチャされます。

- マッピング表を使用するIOTはサポートされません。

CLOBとして格納されたXML列

REDOからキャプチャされます。

REDOからキャプチャされます。

ソース・データベース互換性が11.0.0.0.0以上に設定されている必要があります。

バイナリとして格納されたXML列

ソース表からフェッチされます。

ソース・データベース互換性が11.2.0.3.0以上に設定されている必要があります。

互換性が11.2.0.3.0未満の場合は、ソース表からフェッチされます。

オブジェクト・リレーショナルとして格納されたXML列

サポートされません。

REDOからキャプチャされます。

ソース・データベース互換性が11.2.0.3.0以上に設定されている必要があります。

XMLType表

サポートされません。

REDOからキャプチャされます。

ユーザー定義型(UDT)列

ソース表からフェッチされます。

次の制限付きでREDOからキャプチャされます。

TRANLOGOPTIONS USENATIVEOBJSUPPORTを指定して、REDOからのキャプチャを有効にします。

ネイティブ・オブジェクト・サポートを使用するには、ソース・データベース互換性が12.0.0.0.0以上に設定されている必要があります。

次の場合はソース表からフェッチされます。

- USENATIVEOBJSUPPORTが指定されていない

- REDO互換性が12.0.0.0.0未満の場合

- UDTにネストされた表、SDO_TOPO_GEOMETRYタイプまたはSDO_GEORASTERタイプが含まれている場合
TOPOおよびGeorasterがサポートされるように、ソースで手続き型サプリメンタル・ロギングを有効にする必要があります。

詳細は、「サポートされるOracleデータ型の詳細」で、ユーザー定義型の項を参照してください。

非表示列

サポートされません。

ANYDATA列

次のデータ型のみでソース表からフェッチされます。

BINARY_DOUBLE

BINARY_FLOAT

CHAR

DATE

INTERVAL DAY TO SECOND

INTERVAL YEAR TO MONTH

NCHAR

NUMBER

NVARCHAR2

RAW

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH LOCAL TIMEZONE

UDT

VARCHAR/VARCHAR2

ソース・データベース互換性が11.2.0.0.0以上に設定されている必要があります。

次の制限付きでREDOからキャプチャされます。

TRANLOGOPTIONS USENATIVEOBJSUPPORTを指定して、REDOからのキャプチャを有効にします。

ネイティブ・オブジェクト・サポートを使用するには、ソース・データベース互換性が12.0.0.0.0以上に設定されている必要があります。

次の場合はソース表からフェッチされます

- USENATIVEOBJSUPPORTが指定されていない

- REDO互換性が12.0.0.0.0未満の場合

詳細は、「サポートされるOracleデータ型の詳細」で、ANYDATA型の項を参照してください。

Spatial型列

ソース表からフェッチされます。

次の制限付きでREDOからキャプチャされます。

TRANLOGOPTIONS USENATIVEOBJSUPPORTを指定して、REDOからのキャプチャを有効にします。

ネイティブ・オブジェクト・サポートを使用するには、ソース・データベース互換性が12.2.0.1.0以上に設定されている必要があります。

次の場合はソース表からフェッチされます。

- USENATIVEOBJSUPPORTが指定されていない

- REDO互換性が12.0.0.0.0未満の場合

- SDO_TOPO_GEOMETRYまたはSDO_GEORASTER (ラスター表)を使用している場合
TOPOおよびGeorasterがサポートされるように、ソースで手続き型サプリメンタル・ロギングを有効にする必要があります。

詳細は、「サポートされるOracleデータ型の詳細」で、空間データ型の項を参照してください。

コレクション列(VARRAY)

ソース表からフェッチされます。

VARRAY属性のREDOからキャプチャされます

UDT型のVARRAY属性がサポートされます。

TRANLOGOPTIONS USENATIVEOBJSUPPORTを指定して、REDOからのキャプチャを有効にします。

ソース・データベース互換性が12.0.0.0.0以上に設定されている必要があります。

次の場合はソース表からフェッチされます

- USENATIVEOBJSUPPORTが指定されていない

- REDO互換性が12.0.0.0.0未満

- 最上位のVARRAY列が使用されている場合

詳細は、「サポートされるOracleデータ型の詳細」で、コレクション型の項を参照してください。

コレクション列(ネストされた表)

制限付きでソース表からフェッチされます。

「Oracle DMLのオブジェクトと操作のサポートの詳細」を参照してください。

制限付きでソース表からフェッチされます。

「Oracle DMLのオブジェクトと操作のサポートの詳細」を参照してください。

オブジェクト表

ソース表からフェッチされます。

次の制限付きでREDOからキャプチャされます。

TRANLOGOPTIONS USENATIVEOBJSUPPORTを指定して、REDOからのキャプチャを有効にします。

ネイティブ・オブジェクト・サポートを使用するには、ソース・データベース互換性が12.0.0.0.0以上に設定されている必要があります。

オブジェクト表に対するDDL操作のレプリケーションはサポートされていません。

次の場合は、追加の制限付きでソース表からフェッチされます

- USENATIVEOBJSUPPORTが指定されていない

- REDO互換性が12.0.0.0.0未満の場合

- ネストされた表、SDO_TOPO_GEOMETRYまたはSDO_GEORASTER (ラスター表)を使用している場合

詳細は、「サポートされるOracleデータ型の詳細」で、オブジェクト表の項を参照してください。

Transparent Data Encryption(列の暗号化と表領域の暗号化)

REDOからキャプチャされます。

追加設定が必要です。「クラシック・キャプチャ・モードでのOracle TDEデータの構成」を参照してください。

REDOからキャプチャされます。

ローカル・キャプチャには、追加設定は不要です。

ソース・データベース互換性が11.0.0.0.0以上に設定されている必要があります。

基本圧縮

サポートされません。

REDOからキャプチャされます。

OLTP圧縮

サポートされません。

REDOからキャプチャされます。

Exadataハイブリッド列圧縮

サポートされません。

REDOからキャプチャされます。

非RACデータベース上のXA

REDOからキャプチャされます。

REDOからキャプチャされます。

RACデータベース上のXA

サポートされません。

サポートされるには、XAのすべてのブランチが同一インスタンスに向けられていることを確認する必要があります。

REDOからキャプチャされます。

ソース・データベース互換性が11.2.0.0.0以上に設定されている必要があります。

非RACデータベース上のPDML

REDOからキャプチャされます。

REDOからキャプチャされます。

RACデータベース上のPDML

サポートされません。

サポートされるには、PDMLトランザクションから生成される子トランザクションが複数のインスタンスにまたがらないことを確認する必要があります。

REDOからキャプチャされます。

1.6 サポートされるOracleデータ型の詳細

次に、Oracle GoldenGateでサポートされるOracleデータ型の詳細を概説します。特に断りのないかぎり、クラシックと統合の両方のキャプチャ・モードでサポートされます。これらのモードの詳細は、「キャプチャおよび適用モードの選択」を参照してください。

1.6.1 ANYDATAデータ型

次のANYDATAデータ型がサポートされます。

次のデータ型のみでソース表からフェッチされます。

- BINARY_DOUBLE

- BINARY_FLOAT

- CHAR

- DATEINTERVAL DAY TO SECOND

- INTERVAL YEAR TO MONTH

- NCHAR

- NUMBER

- NVARCHAR2

- RAW

- TIMESTAMP

- TIMESTAMP WITH TIME ZONE

- TIMESTAMP WITH LOCAL TIMEZONE

- UDT

- VARCHAR/VARCHAR2

1.6.1.1 サポートの制限

- ソース・データベース互換性が11.2.0.0.0以上に設定されている必要があります。これらのデータ型内に埋め込まれた名前付きコレクションおよびVARRAYに対するサポート。

1.6.2 数値データ型

次の数値データ型がサポートされます。

- Oracleによって許可されている最大サイズまでのNUMBER

- BINARY FLOAT

- BINARY DOUBLE

- UROWID

1.6.2.1 サポートの制限

浮動小数点数の範囲および精度のサポートは、ホスト・マシンによって異なります。通常は有効桁数が16桁の精度ですが、データベースのドキュメントで想定されている近似について確認してください。Oracle GoldenGateでは、サポートされる精度を超える値は丸められるか切り捨てられます。

1.6.3 文字データ型

次の文字データ型がサポートされます。

- CHAR

- VARCHAR2

- LONG

- NCHAR

- NVARCHAR2

1.6.3.1 サポートの制限

- 拡張VARCHAR列が一意索引または制約の一部の場合、この表へのダイレクト・パス挿入により、Replicatが異常終了して警告が表示されることがあります。all_indexes/all_ind_columns (一意索引)またはall_cons_columns/all_constraints (一意制約)をチェックして、拡張VARCHARによって異常終了が発生したことを確認します。拡張VARCHARを確認したら、索引を一時的に削除にするか、制約を無効にできます。

一意索引の場合:

drop index t2u;

一意制約の場合:

alter table v32ind modify constraint sys_c0010125 disable;

- 拡張(32K) VARCHAR2およびNVARCHAR2列は、Extractが統合キャプチャ・モードである間は変更されません。Replicatのすべてのモードは、32K VARCHAR2およびNVARCHAR2列をサポートします。次の制限が適用されます。

- Oracle GoldenGateは、キーまたは一意索引の一部、またはTABLEまたはMAPパラメータのKEYCOLS句の列として、32K VARCHAR2およびNVARCHAR2列をサポートしません。32K列は、主キーの一部になる場合でも、補足的にログに記録されないため、行識別子として使用できません。

- 32K列は、CDR (競合の検出および解決)構成の解決列、またはトランザクション・ログに列値が必要なその他の作業の基準としてサポートされません。

- Oracle GoldenGateでは、32K列の数に制限がありませんが、各証跡レコードには、インライン・レコードで4MBの長さの制限があります。この制限に達する32K列の数は約160列ですが、列の数は、拡張されたVARCHAR2列の実際のサイズによっても異なります。

1.6.4 マルチバイト文字型

次のマルチバイト文字型がサポートされます。

- NCHARおよびNVARCHAR2のマルチバイト文字データ型

- CHAR列およびVARCHAR2列に保存されるマルチバイト・データ

1.6.4.1 サポートの制限

- Oracle GoldenGateでマルチバイト文字データをサポートするには、ソースとターゲットのデータベースが、レプリケートされる表と順序のスキーマ定義に関して論理上同一である必要があります。変換、フィルタリングおよび他の操作はサポートされていません。2つのデータベース間のキャラクタ・セットは、次のいずれかである必要があります。

- 同一。たとえば、ソースとターゲットでSHIFT-JISなどです。

- 同等。同じキャラクタ・セットではありませんが、同じ文字のセットを含みます(SHIFT-JISとEUC-JPなど)。

- ターゲットはソースのスーパーセットです。たとえば、UNICODEはすべての文字タイプのスーパーセットです。したがって、他のすべてのキャラクタ・セットのスーパーセットです。

- 長さセマンティクスがバイト単位であるか、文字単位であるかに関係なく、マルチバイト・データがサポートされています。

その他の構成要件については、「特別なデータ型の処理」を参照してください。

1.6.5 バイナリ・データ型

次のバイナリ・データ型がサポートされます。

- RAW

- LONG RAW

1.6.6 日付およびタイムスタンプのデータ型

次の日時データ型がサポートされます。

- DATE

- TIMESTAMP(「サポートの制限」を参照)

1.6.6.1 サポートの制限

- Oracle GoldenGateでは、マイナスの日付はサポートされていません。

- ターゲット列のサイズがソースのサイズ以上である場合にのみ、INTERVAL DAYおよびINTERVAL YEARがサポートされます。

- Oracle GoldenGateでは、UTCオフセットで表されたTIMESTAMP WITH TIME ZONE (TIMESTAMP '2011-01-01 8:00:00 -8:00')のキャプチャとレプリケーションがサポートされます。

- TZR(リージョンID)で表されたTIMESTAMP WITH TIME ZONEは、データ変更のレプリケーションについてはサポートされますが、初期ロード、SQLEXECまたは列をデータベースからフェッチする必要がある操作についてはサポートされません。これらの場合、列が選択されると、データベースによってリージョンIDが時間オフセットに変換されます。Replicatでは、タイムスタンプは、時間オフセット値付きの日付と時間のデータとしてレプリケートされます。

- Oracle GoldenGateでは、0001/01/03 00:00:00から9999/12/31 23:59:59のタイムスタンプ・データをサポートします。タイムスタンプがGMTからローカル時間に変換されると、これらの制限も変換後のタイムスタンプに適用されます。タイムゾーンに応じて、変換により時間が追加または引かれる場合があり、これにより、タイムスタンプがサポートされている上限を超えたり、下回ったりすることがあります。

- Oracle GoldenGateでは、+12:00から-12:00の間の時間オフセット値をサポートしています。

TZRで表されたTIMESTAMP WITH TIME ZONEをサポートし、TIMESTAMP WITH LOCAL TIMEZONEの適切な処理も行うには、「特別なデータ型の処理」を参照してください。

1.6.7 ラージ・オブジェクトのデータ型

次のラージ・オブジェクト型がサポートされます。

- CLOB

- NCLOB

- BLOB

- SECUREFILEおよびBASICFILE

1.6.7.1 一般的なサポートの制限 - 統合およびクラシック・キャプチャ・モード

- Oracle GoldenGateでは、4Kより大きいラージ・オブジェクトのフィルタリング、列マッピングまたは操作はサポートされません。

- DDLサポートが有効な場合、Oracle GoldenGateでCTAS文をレプリケートし、基となるターゲット表からのデータの選択を可能にします。これはGET_CTAS_DMLSパラメータを使用して制御され、すべての型付き表に適用されます。このパラメータが使用されると、OIDが保持されます。

1.6.7.2 サポートの制限 - クラシック・キャプチャ・モード

- BASICFILEオプションLOBは、REDOログからキャプチャされますが、次の場合、データベースからフェッチされます。

- ExtractでLOBが無効と判断される場合。

- LOBデータがREDOログ内にない場合。これは、BASICFILE LOBがNOLOGGINGオプションを指定して作成された場合に起こります。

- LOBがCACHEオプションを使用して作成されています。

- LOBが一部のみ更新される場合。Oracle GoldenGateでは、部分的な列データはサポートされていません。LOBがLOBリセット・レコードから開始しない場合、あるいは新しいLOBの長さに則した最初のバイトで開始せず、最後のバイトで終了しない場合に、ExtractによってLOBデータは不完全であるとみなされます。部分更新は、OCILOBWrite()、OCILobAppend()、OCiLobCopy()、OCILobLoadFromFile()およびOCILobTrim()の各OCIコールと、dbms_lobパッケージのプロシージャを使用して行われた更新によって生成されます。

- ExtractでLOBデータの異常が検出される場合。

- SECUREFILEオプションLOBは、更新が完了し、LOBの変換(列の圧縮、暗号化または重複除外)が行われず、行外に格納される場合にのみ、REDOログからキャプチャされます。SECUREFILE LOBは、次の場合にデータベースからフェッチされます。

- LOBが行内に格納される場合。

- LOBが圧縮または暗号化のいずれかにより変換される場合。

- LOBがCACHE属性を使用して作成されている場合。

- ExtractによってLOBインスタンスが無効であることが決定される場合。

- REDOログにLOBデータがない場合。これが行われる可能性があるのは、DEDUPLICATE、NOLOGGING、FILESYSTEM_LIKE_LOGGNGのいずれかのオプションを使用してLOBを作成した場合です。

- LOBは、OCILOBWrite()、OCILobAppend()、OCiLobCopy()、OCILobLoadFromFile()およびOCILobTrim()を使用するか、dbms_lobパッケージのプロシージャを介して更新されています。

- Extractによって検出されるようなその他の異常。

- SECUREFILE LOBをある記憶域から別の記憶域に変更すると(たとえば、ENCRYPTからDECRYPTに)、Oracleによって表全体が更新され、Extractによってそれらの更新がログからキャプチャされます。そのため、Oracleによって表に関連付けられているすべてのデータ・ブロックが更新されているように見えます。ALTER TABLEコマンドによってDEFAULT値がNULL値の列に設定される場合も、これが発生する可能性があります。

- JavaScriptオブジェクト注釈(JSON)列を含む表を持つ、管理バンドル・エージェント(XAG)の高可用性環境では、デフォルトのReplicatモードでデータをレプリケートできませんが、Extractsでは、このデータを抽出できます。Replicatの異常終了を回避するには、DBOPTIONS NOSKIPTEMPLOBパラメータを設定する必要があります。

その他の設定要件については、「特別なデータ型の処理」を参照してください。

1.6.8 XMLデータ型

次のXML型がサポートされます。

- 統合キャプチャ・モードでは、Oracle GoldenGateは、XML CLOB、XMLオブジェクト・リレーショナルおよびXMLバイナリとして格納されるXMLType列およびXMLType表をサポートします。

- クラシック・キャプチャ・モードでは、Oracle GoldenGateは、XML CLOBおよびXMLバイナリとして格納されるXMLType列をサポートします。

1.6.8.1 サポートの制限 - 統合およびクラシック・キャプチャ・モード

次のものはサポートされません。

- フィルタリングと操作はサポートされていません。TABLE文またはMAP文でCOLMAP句を使用して、オブジェクトのXML表現を文字列にマップできます。

- XMLデータで作業する場合は、AL32UTF8キャラクタ・セットをデータベース・キャラクタ・セットにすることをお薦めします。これにより、Oracle GoldenGateによってソースからターゲットに正しく変換されます。

- 階層対応の表は、Oracle XMLデータベース・リポジトリで管理され、手続き型ロギングでサポートされます。

- DDLサポートが有効な場合、Oracle GoldenGateでCTAS文をレプリケートし、基となるターゲット表からのデータの選択を可能にします。これはTRANSLOGOPTIONS GETCTASDMLパラメータを使用して制御され、すべての型付き表に適用されます。このパラメータが使用されると、OIDが保持されます。XMLType表の場合、行オブジェクトIDがソースとターゲットの間で一致する必要がありますが、これは、Replicatで論理SQL文を使用すると保持されません。空の文(新規表にデータを挿入しない)で作成されたXMLType表は適切に保持されません。

- 主キーベースのオブジェクト識別子(OID)を持つXMLType表

- 1つのXML列を持つリレーショナル表

- XMLバイナリおよびXMLオブジェクト・リレーショナルに対するSQL*Loader直接パス挿入

- XMLスキーマベースのXMLTypeはサポートされますが、XMLスキーマに対する変更はレプリケートされず、DBMS_XMLSCHEMAパッケージを使用してソースとターゲットの両方のデータベースに登録する必要があります。

- XMLType列を含む表が、スカラー列で構成された1つ以上の一意キー制約を持つか、すべてのスカラー列の組合せで一意性が保証される必要があります。ExtractまたはReplicatでは、行の識別用のXML属性で構成された一意キー制約または主キー制約は使用できません。

1.6.8.2 サポートの制限 - 統合キャプチャ・モード

- ネイティブ・キャプチャの場合、XML ORおよびXML Binary。XMLバイナリ/ORは、11.2.0.3より上のリリースと互換性がある場合にフェッチされます。

- XML CLOBでは、ソース・データベース互換性はリリース11.0.0.0.0より上です。

- XMLTypeを更新するSET全体の長さは、新しいコンテンツと他の操作、XQueryバインド値を含めて最大32Kです。

1.6.8.3 サポートの制限 - クラシック・キャプチャ・モード

- XMLバイナリの場合、Oracle GoldenGateによってソース・データベースから追加の行データがフェッチされます。フェッチされたデータは元のトランザクションの一部ではない場合があるため、不整合が発生する可能性があります。

- XML Object Relationalは、クラシック・キャプチャ・モードでサポートされません。

XMLのレプリケートの詳細は、「特別なデータ型の処理」を参照してください。

1.6.9 ユーザー定義または抽象型

ソースおよびターゲットの構造が同一である場合、Oracle GoldenGateでユーザー定義型(UDT)または抽象データ型(ADT)がサポートされます。スキーマ名は別々にすることができます。

1.6.9.1 一般的なサポートの制限 - 統合およびクラシック・キャプチャ・モード

- REDOベースはほとんどの属性タイプをサポートしますが、UDTに次のものが含まれている場合は、ソース表からフェッチにフォールバックします。

- ネストされた表

- SDO_TOPO_GEOMETRY

- SDO_GEORASTER

- フェッチベースは、次のものを含むUDTをサポートしません。

- ANYDATA

- TIMESTAMP WITH TIMEZONE

- TIMESTAMP WITH LOCAL TIMEZONE

- INTERVAL YEAR TO MONTH

- INTERVAL DAY TO SECOND

- BINARY FLOAT

- BINARY DOUBLE

- BFILE

- Oracle GoldenGateは、次のものを含むUDTをサポートしません。

- CFILE

- REF

- OPAQUE (XMLTypeおよびANYDATAを除く)

- UDTが含まれている表には、主キー、一意な制約がある列または一意な索引を設定する必要があります。

- キーにUDTが含まれている、またはUDTが列のみであるオブジェクトまたはリレーショナル表はサポートされていません。

- RMTTASKパラメータはUDTをサポートしていません。

- バイナリまたは印刷できない文字が含まれているCHAR属性およびVARCHAR属性は、サポートされていません。

- オブジェクトの列または行内に値が含まれているUDTは、TABLE文またはMAP文のフィルタ基準で使用したり、Oracle GoldenGateの列変換関数の入力または出力、SQLEXECまたは他の組込みデータ操作ツールとして使用することはできません。Oracleの同様のソースおよびターゲットにのみ、サポートが提供されます。

- UDTおよびネストされた表はサポートされますが、次の制限があります。

- ネストされた表のUDTには、CHAR、NVARCHAR2またはNCLOB属性を含めることができません。

- 拡張(32k) VARCHAR2またはRAW属性がUDTにある場合、ネストされた表はサポートされません。

- CLOBまたはBLOB属性がUDTにある場合、ネストされた表はサポートされません。

- 他のUDTの一部である、ネストされた表の列/属性はサポートされません。

その他の設定要件については、「特別なデータ型の処理」を参照してください。

1.6.9.2 コレクション型に対する制限 - 統合およびクラシック・キャプチャ・モード

- ネストされた表のデータを更新する際には、ネストされた表が含まれている行を同時に更新する必要があります。

- VARRAYSとネストされた表をフェッチすると、変更箇所のみでなく、毎回、列の内容全体がフェッチされます。

1.6.9.3 オブジェクト表に対する制限 - 統合およびクラシック・キャプチャ・モード

統合キャプチャのみ(REDOベース)

- REDOベースは、REDOからオブジェクト表をキャプチャしますが、オブジェクト表に次の属性が含まれている場合は、ソース表からフェッチにフォールバックします。

- ネストされた表

- SDO_TOPO_GEOMETRY

- SDO_GEORASTER

- CREATE TABLE as SELECT (CTAS)文で作成されたオブジェクト表を完全にサポートするには、CTAS文からDMLをキャプチャするように統合キャプチャを構成する必要があります。CTASの詳細は、「CREATE TABLE AS SELECT」を参照してください。

- Oracleのオブジェクト表は、サポートされているターゲット・データベースのOracle以外のオブジェクト表にマップできます。

クラシックおよび統合キャプチャ(フェッチベース)

- フェッチベースは、リーフレベルのすべての属性、ルートレベルLOB、XML、UDT、ANYDATA、およびコレクションの属性をフェッチします。

- フェッチベースは、次のリーフレベルの属性を含むオブジェクト表をサポートしません。

- ANYDATA

- TIMESTAMP WITH TIMEZONE

- TIMESTAMP WITH LOCAL TIMEZONE

- INTERVAL YEAR TO MONTH

- INTERVAL DAY TO SECIND

- BINARY FLOAT

- BINARY DOUBLE

- Oracle GoldenGatでは、1方向とアクティブ/アクティブ構成でオブジェクト表がサポートされます。オブジェクト表はREDOログからキャプチャされますが、LOB、コレクション型などの標準のリレーショナル表の場合はデータベースからフェッチされる特定のデータ型もオブジェクト表の場合はフェッチされます。同様に、標準の表の場合にコレクション型に適用される現在の制限が、オブジェクト表の場合のそれらの型にも適用されます。

- 主キーは、オブジェクト表のルートレベルのオブジェクト属性で定義する必要があり、リーフレベルの属性を含めることはできません。キーが定義されていない場合には、Oracle GoldenGateで有効なすべての列が擬似キーとして使用されます。

- Oracle GoldenGateは、オブジェクト表のDDL操作のレプリケーションをサポートしていません。この制限には、オブジェクト表のALTERと関連付けられているデータベース・オブジェクトのバージョニングが含まれます。

- オブジェクト表またはオブジェクト型が含まれているオブジェクト表では、シノニムはサポートされていません。

1.6.9.4 Spatial型に対する制限 - 統合およびクラシック・キャプチャ・モード

Oracle GoldenGateでは、SDO_GEOMETRY、SDO_TOPO_GEOMETRYおよびSDO_GEORASTER(ラスター表)がサポートされています。

その他の構成情報は、「特別なデータ型の処理」を参照してください。

1.6.10 サポートされていないOracleデータ型

Oracle GoldenGateでは、次のデータ型はサポートされません。

- これらのデータ型内に埋め込まれた名前付きコレクションおよびVARRAYSを含まないVARRAYSを指定したデータ型に対する、ANYDATAフェッチベースの列サポート

- 最上位のVARRAY列

- ANYDATASET

- ANYTYPE

- MLSLABEL

- ORDDICOM

- REF

- TIMEZONE_ABBR

- URITYPE

- サポートされていないOracleデータ型を含むUDT

- Oracle GoldenGateでは、ID列データまたはValid Time Temporal列データのレプリケーションをサポートしていません。

その他の除外については、「各キャプチャ・モードでサポートされるOracleデータ型とオブジェクトのサマリー」を参照してください。

1.7 Oracle DMLのオブジェクトと操作のサポートの詳細

この項では、DML操作のキャプチャとレプリケーションについてOracle GoldenGateでサポートされるOracleオブジェクトと操作について概説します。

1.7.1 マルチテナント・コンテナ・データベース

Oracle GoldenGateは、マルチテナント・コンテナ・データベースとの間でキャプチャと配信を行います。Oracle GoldenGateによるマルチテナント・コンテナ・データベースのサポートの詳細は、「マルチテナント・コンテナ・データベースでのOracle GoldenGateの構成」を参照してください。

1.7.1.1 マルチテナント・コンテナ・データベースの制限

Oracle GoldenGate Extractは、Oracle Database 12.2のマルチテナント・コンテナ・データベースをサポートしていません。

1.7.2 表、ビューおよびマテリアライズド・ビュー

Oracle GoldenGateでは、標準の表、索引構成表、クラスタ化された表およびマテリアライズド・ビューに対して行われる次のDML操作がサポートされます。

- INSERT

- UPDATE

- DELETE

- 関連するトランザクション制御操作

ヒント:

DBA_GOLDENGATE_SUPPORT_MODEデータ・ディクショナリ・ビューを使用して、データベースの表に対するOracle GoldenGateキャプチャ・プロセス・サポートのレベルの情報を表示できます。詳細は、『Oracle Databaseリファレンス』を参照してください。

1.7.2.1 標準の表のサポートの制限

次の制限は、統合キャプチャ・モードとクラシック・キャプチャ・モードに適用されます。

- Oracle GoldenGateでは、任意の数の行を含む表をサポートします。

- 行の長さは最大4MBです。列の変更前および変更後の両方イメージを処理範囲に含むようにOracle GoldenGateが構成されている場合、完全な変更前イメージと変更後イメージの長さの合計に適用される長さは、最大4MBになります。たとえば、行識別子として使用されている列でUPDATE操作が実行されると、変更前および変更後のイメージが処理され、合計で4MBを超えることはできません。変更前および変更後のイメージは、行識別子でない列にも必要ですが、競合の検出および解決(CDR)の比較列として使用されます。CLOBなど、4KBを超えるデータが許可される文字の列では、最初の4KBのデータのみが行内に格納され、4MBの最大行長が可能になります。BLOBなど、4KBを超えるデータが許可されるバイナリの列では、最初の8KBのデータが行内に格納され、4MBの最大行長が可能になります。

- Oracle GoldenGateでは、データベースによってサポートされている表ごとに最大列数がサポートされています。

- Oracle GoldenGateでは、データベースによってサポートされている最大列サイズがサポートされます。

- Oracle GoldenGateでは、列に次のデータ型の1つが含まれていないかぎり、列が1つだけ含まれている表がサポートされています。

- LOB

- LONG

- LONG VARCHAR

- ネストされた表

- UDT

- VARRAY

- XMLType

- Oracle GoldenGateでは、未使用の列を含む表がサポートされていますが、デフォルトではサポートが無効になっており、Extractがそれらで異常終了します。「他のデータベース・プロパティの処理」を参照してください。

- Oracle GoldenGateでは、次のパーティション化属性を持つ表がサポートされます。

- レンジ・パーティション化

- ハッシュ・パーティション化および時間隔パーティション化

- コンポジット・パーティション化

- 仮想列ベースのパーティション化

- 参照パーティション化

- リスト・パーティション化

「他のデータベース・プロパティの処理」を参照してください。

- Oracle GoldenGateでは、仮想列を含む表がサポートされますが、これらの列に対する変更データのキャプチャも適用も行われません。データベースでは仮想列がトランザクション・ログに書き込まれず、Oracle Databaseでは仮想列に対するDMLが許可されません。同じ理由から、初期ロード・データは仮想列に適用できません。仮想列から非仮想列へのデータのマップは行えます。「他のデータベース・プロパティの処理」を参照してください。

- Oracle GoldenGateでは、仮想列を含む一意索引を考慮しません。

- Oracle GoldenGateでは、Oracle Exadataとの間のレプリケーションがサポートされます。Exadataハイブリッド列圧縮をサポートするには、Extractが統合キャプチャ・モードで動作する必要があります。Exadataハイブリッド列圧縮をサポートするには、ソース・データベース互換性が11.2.0.0.0以上に設定されている必要があります。

- Oracle GoldenGateでは、Transparent Data Encryption(TDE)がサポートされます。

- Extractは、統合キャプチャ・モードでは設定要件なしで、TDE列の暗号化およびTDE表領域の暗号化をサポートします。統合キャプチャの場合、ソース・データベースは、11.0.0.0以上の互換性設定のOracleバージョン11.1.0である必要があります。

- クラシック・キャプチャ・モードでは、ExtractはOracle 11.1および11.2のすべてのバージョンで列の暗号化をサポートします。表領域の暗号化は、Oracle 11.2.0.1のすべてのバージョンでサポートされます。クラシック・キャプチャ・モードのTDEには設定が必要です。クラシック・キャプチャ・モードでのOracle TDEデータの構成を参照してください。

- Oracle GoldenGateでは、DDLレプリケーション・サポートの一環として、あるいはDDLサポートとは無関係のスタンドアロン機能としてTRUNCATE文がサポートされます。「他のデータベース・プロパティの処理」を参照してください。

- Oracle GoldenGateでは、XMLバイナリおよびXMLオブジェクト・リレーショナルのSQL*Loaderダイレクト・パス・インサートを除き、ダイレクト・ロードINSERTのキャプチャがサポートされます(「サポートの制限 - 統合およびクラシック・キャプチャ・モード」を参照)。サプリメンタル・ロギングが有効であることと、データベースがアーカイブ・ログ・モードであることが必要です。次の直接ロード方式がサポートされています。

- /*+ APPEND */ヒント

- /*+ PARALLEL */ヒント(クラシック・キャプチャ・モードのRACではサポートされません)

- DIRECT=TRUEを設定したSQLLDR

- Oracle GoldenGateは、Extractが統合キャプチャ・モードの場合に、圧縮されたオブジェクトからのキャプチャを完全にサポートしています。ソース・データベース・バージョンは、ダウンストリーム・マイニング・データベースからのキャプチャの場合は11.2.0.0以上、ソース・データベースがマイニング・データベースの場合は11.2.0.3である必要があります。クラシック・モードのExtractでは、圧縮されたオブジェクトはサポートされません。

- Oracle GoldenGateでは、統合キャプチャ・モードでのXAおよびPDML分散トランザクションがサポートされます。クラシック・モードのExtractでは、RACのPDMLまたはXAはサポートされません。

- Oracle GoldenGateでは、FLASHBACK ARCHIVEを有効にした表でのDML操作がサポートされます。ただし、Oracle GoldenGateでは、FLASHBACK ARCHIVE句を含む表を作成するDDL、またはフラッシュバック・データ・アーカイブ自身を作成、変更または削除するDDLはサポートされません。

1.7.2.2 索引構成表のサポートの制限

次の制限がクラシック・キャプチャ・モードに適用されます。

- キー圧縮が有効(key_compression句のCOMPRESSキーワードで指定)なIOTは、クラシック・キャプチャ・モードではサポートされませんが、統合キャプチャ・モードではサポートされます。

1.7.2.3 ビューのサポートの制限

次の制限は、統合キャプチャ・モードとクラシック・キャプチャ・モードに適用されます。

- Extractが初期ロード・モードの場合、Oracle GoldenGateでビューからのキャプチャがサポートされます(REDOログではなく、ソース・ビューからの直接のキャプチャ)。

- Oracle GoldenGateで、変更データはビューからキャプチャされませんが、ビューの基になる表からのキャプチャはサポートされます。

- Oracle GoldenGateでは、ビューが本質的に更新可能であるかぎり、ビューにレプリケートできます。ソース表とターゲット・ビューの構造は同一である必要があります。

ビューの構成要件については、「他のデータベース・プロパティの処理」を参照してください。

1.7.2.4 マテリアライズド・ビューのサポートの制限

マテリアライズド・ビューは、クラシックおよび統合モードのExtractでサポートされますが、次の制限があります。

- WITH ROWIDを使用して作成されるマテリアライズド・ビューはサポートされていません。

- WITH ROWIDを使用してマテリアライズド・ビューのログを作成できます。

- ソース表に主キーを設定しておく必要があります。

- マテリアライズド・ビューの切捨てはサポートされていません。DELETE FROM文を使用できます。

- マテリアライズド・ビューの全体リフレッシュのDML(DDLではない)はサポートされます。この機能のDDLサポートが必要な場合はOracle GoldenGateのサポート事例をオープンしてください。

- Replicatの場合、Create MVコマンドにFOR UPDATE句を含める必要があります。

- マテリアライズド・ビューまたは基礎となるベース表のいずれか(両方ではない)をレプリケートできます。

1.7.2.5 クラスタリング表のサポートの制限

索引付けされたクラスタは、統合とクラシックの両方のキャプチャ・モードでサポートされますが、ハッシュ・クラスタは、いずれのモードでもサポートされません。クラシック・キャプチャ・モードでは、次の制限が適用されます。

- 暗号化および圧縮されたクラスタリング表は、クラシック・キャプチャではサポートされていません。

- クラシック・キャプチャ・モードのExtractでは、クラスタ・サイズが変わらない場合、索引クラスタリング表へのDML変更がキャプチャされます。クラスタ・サイズの増減につながるDDLによって、Extractでその表に対する後続のDMLが不適切にキャプチャされる可能性があります。

1.7.3 順序

- Oracle GoldenGateは、1方向のアクティブ/パッシブ高可用性構成での順序値のレプリケーションはサポートします。

- Oracle GoldenGateによって、ターゲットの順序値が常にソースの順序値よりも大きくなります(または、キャッシュが0の場合、それらに等しくなります)。

1.7.3.1 順序のサポートの制限

次の制限は、統合キャプチャ・モードとクラシック・キャプチャ・モードに適用されます。

- Oracle GoldenGateは、アクティブ/アクティブ双方向構成での順序値のレプリケーションはサポートしません。

- ソースおよびターゲットの順序のキャッシュ・サイズおよび増分間隔は、同一である必要があります。キャッシュは0を含む任意のサイズにできます(NOCACHE)。

- 順序は、循環を有効または無効に設定できますが、ソース・データベースとターゲット・データベースの設定は同一にする必要があります。

「他のデータベース・プロパティの処理」の構成要件を参照してください。

1.7.4 Oracle DMLでサポートされていないオブジェクトおよび操作

クラシックまたは統合キャプチャ・モードのいずれかのExtractでもサポートされない追加のOracleオブジェクトまたは操作は、次のとおりです。

- REF

- アクティブ/アクティブ双方向構成での順序値

- データベース・リプレイ

- EXTERNALとして作成された表

- 非表示列は、クラシックExtractではサポートされません

次のものは、クラシック・キャプチャ・モードではサポートされません。

- Exadataハイブリッド列圧縮

- OLTP表圧縮された表からのキャプチャ

- COMPRESSを使用して作成または変更される表領域および表からのキャプチャ

- 暗号化および圧縮されたクラスタリング表からのキャプチャ

- 非表示列

- 分散トランザクション。Oracleバージョン11.1.0.6以上では、次のコマンドを使用して非分散にする(データベースの再起動が必要)と、これらのトランザクションをキャプチャできます。

alter system set _CLUSTERWIDE_GLOBAL_TRANSACTIONS=FALSE;

- RAC分散XAおよびPDML分散トランザクション

- バージョン対応の表

- IDENTITY列

1.8 Oracle DDLのオブジェクトと操作のサポートの詳細

この項では、DDL操作のキャプチャとレプリケーションについてOracle GoldenGateでサポートされるOracleオブジェクトと操作について概説します。DDLサポートの詳細は、次を参照してください。

DDLサポートの構成

トリガーベースのDDLキャプチャのインストール(トリガー・ベースのキャプチャはバージョン11.2.0.4より前のOracleリリースで必要です。Extractがバージョン11.2.0.4以上のOracle Databaseに対して統合モードで実行される場合、DDLトリガーおよびサポート・オブジェクトは不要です。)

1.8.1 Oracle DDLでサポートされているオブジェクトおよび操作

ソース・データベースがOracle 11.2.0.4以上でExtractが統合モードで動作する場合、DDLキャプチャ・サポートはデータベース・ログマイニング・サーバーに統合され、DDLトリガーを使用する必要はありません。データベース・パラメータの互換性を11.2.0.4.0に設定する必要があります。統合キャプチャ・モードでは、Extractは次のようなパスワード・ベースの列の暗号化を含むDDLはサポートしません。

- CREATE TABLE t1 ( a number, b varchar2(32) ENCRYPT IDENTIFIED BY my_password);

- ALTER TABLE t1 ADD COLUMN c varchar2(64) ENCRYPT IDENTIFIED BY my_password;

注意:

DDLのパスワード・ベースの列の暗号化は、クラシック・キャプチャ・モードではサポートされません。

DDLサポートに関して、統合およびクラシックの両方のキャプチャ・モードに次の追加の文が適用されます。

- Oracle GoldenGateのすべてのトポロジ構成は、Oracle DDLレプリケーションでサポートされています。

- Oracle DDLのアクティブ/アクティブ(双方向)レプリケーションは、同一のメタデータが含まれている2つ(および2つだけ)のデータベース間でサポートされています。

- Oracle GoldenGateでは、次のオブジェクトでDDLはサポートされます。

- クラスタ

- ディレクトリ

- 関数

- 索引

- パッケージ

- プロシージャ

- 表

- 表領域

- ロール

- 順序

- シノニム

- トリガー

- 型

- ビュー

- マテリアライズド・ビュー

- ユーザー

- 非表示列

- Oracle DDLのOracle Edition-Based Redefinition (EBR)データベース・レプリケーションは、次のOracle Databaseオブジェクトの統合Extractでサポートされています。

- 関数

- ライブラリ

- パッケージ(仕様と本体)

- プロシージャ

- シノニム

- 型(仕様と本体)

- ビュー

EBRは、DDLトリガーの使用をサポートしていません。

- Oracle GoldenGateでは、最大4MBのサイズのDDL操作がサポートされます。Oracle GoldenGateでは、DDL文のサイズが文字ではなくバイトで測定されます。このサイズ制限にはパッケージ、プロシージャおよび関数が含まれます。DDLサポートの実際のサイズには、文のテキストに加え、オブジェクト名の長さ、DDL型および内部でのDDLレコード保持のその他の特性に応じて異なるOracle GoldenGateのメンテナンス・オーバーヘッドも含まれるため、実際のサイズ制限は概算です。

- Oracle GoldenGateは、グローバル一時表(GTT) DDL操作をレプリケートできるように、Extractへのこの操作の表示をサポートしています。この操作はデフォルトでは設定されていないため、有効にするにはDDLOPTIONSパラメータを設定する必要があります。

- Oracle GoldenGateは、NOUSERIDおよびTRANLOGOPTIONS GETCTASDMLとともに使用する統合ディクショナリをサポートしています。これは、ExtractはDDLトリガーのかわりに、ディクショナリ・オブジェクトに問い合せずにLogMinerディクショナリからオブジェクト・メタデータ取得することを意味しています。Oracle GoldenGateは、ソース・データベース互換性パラメータが11.2.0.4以上で、統合Extractが使用されているときには、自動的に統合ディクショナリを使用します。
統合ディクショナリの機能は、クラシックExtractではサポートされていません。

Oracle GoldenGate release 12.2.xで統合ディクショナリおよび証跡フォーマットを使用するときには、Oracle Databaseのリリースが12.1.0.2よりも前の場合、統合キャプチャではLogminerパッチがマイニング・データベース上で適用されることが必要になります。

- Oracle GoldenGateでは、統合キャプチャ・モードでの非表示列のレプリケーションがサポートされます。証跡フォーマット・リリース12.2が必要です。ReplicatではMAPINVISIBLECOLUMNSパラメータを指定するか、MAPパラメータのCOLMAP句で非表示列に明示的にマップする必要があります。
SOURCEDEFSまたはTARGETDEFSを使用する場合、Oracle表の定義ファイルのメタデータ・フォーマットは証跡フォーマットと互換性があることが必要です。メタデータ・フォーマット12.2は証跡フォーマット12.2と互換性があり、12.2より前のメタデータ・フォーマットは12.2より前の証跡フォーマットと互換性があります。定義ファイルのメタデータ・フォーマットを指定するには、DEFGENで定義ファイルが生成される際にDEFSFILEパラメータのFORMAT RELEASEオプションを使用します。

- ネームスペース・コンテキストを作成するDDL文(CREATE CONTEXT)は、Extractによってキャプチャされ、Replicatによって適用されます。

- ポンプ・モードのExtractは、次のDDLオプションをサポートしています。

- DDL INCLUDE ALL

- DDL EXCLUDE ALL

- DDL EXCLUDE OBJNAME

DDL EXCLUDEのSOURCECATALOGおよびALLCATALOGオプションもサポートされています。

DDLパラメータが指定されていない場合、すべてのDDLが証跡に書き込まれます。DDL EXCLUDE OBJNAMEが指定されている場合は、オブジェクト所有者が除外ルールに一致しないと証跡に書き込まれます。

1.8.2 サポートされていないOracle DDLのオブジェクトおよび操作

次の文は、統合キャプチャ・モードとクラシック・キャプチャ・モードに適用されます。

1.8.2.1 除外されるオブジェクト

次の名前または名前の接頭辞はOracle予約済とみなされ、Oracle GoldenGate DDL構成から除外する必要があります。これらの名前を含むオブジェクトはOracle GoldenGateによって無視されます。

除外されるスキーマ:

"ANONYMOUS", // HTTP access to XDB
"APPQOSSYS", // QOS system user
"AUDSYS", // audit super user
"BI", // Business Intelligence
"CTXSYS", // Text
"DBSNMP", // SNMP agent for OEM
"DIP", // Directory Integration Platform
"DMSYS", // Data Mining
"DVF", // Database Vault
"DVSYS", // Database Vault
"EXDSYS", // External ODCI System User
"EXFSYS", // Expression Filter
"GSMADMIN_INTERNAL", // Global Service Manager
"GSMCATUSER", // Global Service Manager
"GSMUSER", // Global Service Manager
"LBACSYS", // Label Security
"MDSYS", // Spatial
"MGMT_VIEW", // OEM Database Control
"MDDATA",
"MTSSYS", // MS Transaction Server
"ODM", // Data Mining
"ODM_MTR", // Data Mining Repository
"OJVMSYS", // Java Policy SRO Schema
"OLAPSYS", // OLAP catalogs
"ORACLE_OCM", // Oracle Configuration Manager User
"ORDDATA", // Intermedia
"ORDPLUGINS", // Intermedia
"ORDSYS", // Intermedia
"OUTLN", // Outlines (Plan Stability)
"SI_INFORMTN_SCHEMA", // SQL/MM Still Image
"SPATIAL_CSW_ADMIN", // Spatial Catalog Services for Web
"SPATIAL_CSW_ADMIN_USR",
"SPATIAL_WFS_ADMIN", // Spatial Web Feature Service
"SPATIAL_WFS_ADMIN_USR",
"SYS",
"SYSBACKUP",
"SYSDG",
"SYSKM",
"SYSMAN", // Adminstrator OEM
"SYSTEM",
"TSMSYS", // Transparent Session Migration
"WKPROXY", // Ultrasearch
"WKSYS", // Ultrasearch
"WK_TEST",
"WMSYS", // Workspace Manager
"XDB", // XML DB
"XS$NULL",
"XTISYS", // Time Index

特別なスキーマ:

"AURORA$JIS$UTILITY$", // JSERV
"AURORA$ORB$UNAUTHENTICATED", // JSERV
"DSSYS", // Dynamic Services Secured Web Service
"OSE$HTTP$ADMIN", // JSERV
"PERFSTAT", // STATSPACK
"REPADMIN",
"TRACESVR" // Trace server for OEM

除外される表は次のとおりです(*ワイルドカードは任意のスキーマまたは文字を示します)。

"*.AQ$*", // advanced queues
"*.DR$*$*", // oracle text
"*.M*_*$$", // Spatial index
"*.MLOG$*", // materialized views
"*.OGGQT$*",
"*.OGG$*", // AQ OGG queue table
"*.ET$*", // Data Pump external tables
"*.RUPD$*", // materialized views
"*.SYS_C*", // constraints
"*.MDR*_*$", // Spatial Sequence and Table
"*.SYS_IMPORT_TABLE*",
"*.CMP*$*", // space management, rdbms >= 12.1
"*.DBMS_TABCOMP_TEMP_*", // space management, rdbms < 12.1
"*.MDXT_*$*" // Spatial extended statistics tables

1.8.2.2 サポートされていないその他のDDL

Oracle GoldenGateでは次のものはサポートされていません。

- ネストされた表に対するDDL。

- IDENTITY列に対するDDL。

- ALTER DATABASEおよびALTER SYSTEM (これらはDDLとはみなされません)。統合ディクショナリを使用している場合は、ALTER DATABASE DEFAULT EDITIONおよびALTER PLUGGABLE DATABASE DEFAULT EDITIONをレプリケートできます。その他のALTER [PLUGABLE] DATABASEコマンドはすべて無視されます。

- スタンバイ・データベースに対するDDL。

- データベース・リンクDDL。

- FLASHBACK ARCHIVE句を含む表を作成するDDL、またはフラッシュバック・データ・アーカイブ自身を作成、変更または削除するDDL。FLASHBACK ARCHIVEを含む表に対するDMLはサポートされません。

- クラシック・キャプチャ・モードでは、次のようなパスワード・ベースの列の暗号化を含むDDLはサポートされません。

- CREATE TABLE t1 ( a number, b varchar2(32) ENCRYPT IDENTIFIED BY my_password);

- ALTER TABLE t1 ADD COLUMN c varchar2(64) ENCRYPT IDENTIFIED BY my_password;

1.9 サポートされているオブジェクト名とサポートされていないオブジェクト名

Oracleオブジェクト名は、デフォルトで大文字と小文字を区別しませんが、二重引用符を使用することで、大文字と小文字を区別するようにできます。Oracle GoldenGateでは、Oracle大文字/小文字の区別がサポートされます。オブジェクト名および大文字/小文字のOracle GoldenGateサポートは、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

2 Oracle GoldenGateのインストール

この章では、Oracle GoldenGateを初めてインストールする場合の手順について説明します。Oracle GoldenGateをインストールすると、処理の実行および管理に必要なすべてのコンポーネントが(ドライバやライブラリなどの他のベンダー製の必要なコンポーネントを除いて)インストールされ、また、Oracle GoldenGateユーティリティがインストールされます。この章の内容は次のとおりです。

- Oracle GoldenGateディストリビューションの理解と入手

- ORACLE_HOMEおよびORACLE_SIDの設定

- UNIX上での動的ビルドのライブラリ・パスの設定

- クラスタ内にOracle GoldenGateをインストールする準備

- Oracle GoldenGateのインストール

- クラスタへのOracle GoldenGateの統合

ここでは、Oracle GoldenGateを初めてインストールする場合の手順を説明します。また、この手順は、Oracle GoldenGateの新バージョンのベース・リリースをダウンロードするためのものです。

それ以降のパッチをダウンロードしてベース・リリースにインストールするには、次の場所でMy Oracle Supportの「パッチと更新版」タブにアクセスします。

http://support.oracle.com

Oracle GoldenGateをあるバージョンから別のバージョンにアップグレードするには、次の場所にあるアップグレード手順に従います。

http://docs.oracle.com/goldengate/c1221/gg-winux/index.html

2.1 Oracle GoldenGateディストリビューションの理解と入手

Oracle Fusion Middlewareソフトウェアの入手方法の詳細は、『Oracle Fusion Middlewareのインストールのプランニング』の製品ディストリビューションの理解と入手に関する項を参照してください。

Oracle WebLogic Server and Coherenceソフトウェアを開発または評価用にダウンロードするには、Oracle Technology Network (OTN)で次の場所を参照してください。

http://www.oracle.com/technetwork/middleware/fusion-middleware/downloads/index.html

Oracle Fusion Middleware製品の検索やダウンロードの詳細は、OTNで『Oracle Fusion Middlewareダウンロード、インストール、構成のREADMEファイル』を参照してください。

元のテキストは次のとおりです。ファイル名はそのままにしますか。

Oracle GoldenGateを入手するには、次の手順に従います。

1. Oracle Technology Networkに移動します。

2. Oracle GoldenGate 12c (12.2.0.1)リリースを探して、使用中のシステムにZIPファイルをダウンロードします。

2.2 ORACLE_HOMEおよびORACLE_SIDの設定

ORACLE_HOMEおよびORACLE_SIDのシステム環境変数が正しいOracleインスタンスに設定されていることを確認します。Oracle GoldenGateのプロセスでは、データベースへの接続時にそれらを参照します。

UNIXおよびLinuxシステムでのOracle変数の指定

WindowsシステムでのOracle変数の指定

2.2.1 UNIXおよびLinuxシステムでのOracle変数の指定

システム上に1つのOracle Databaseインスタンスが存在する場合には、システム・レベルでORACLE_HOMEおよびORACLE_SID環境変数を設定します。これらをそのように設定できない場合、インスタンスに接続されるすべてのExtractおよびReplicatのグループのパラメータ・ファイルで次のSETENV文を使用します。SETENVパラメータはシステムの設定より優先され、これらのパラメータによって、Oracle GoldenGateのプロセスがデータベースに接続する際にセッション・レベルでの変数の設定が可能になります。

SETENV (ORACLE_HOME = "path to Oracle home location")

SETENV (ORACLE_SID = "SID")

システムに複数のOracleインスタンスがあり、ExtractおよびReplicatのプロセスがそれらに接続する場合、各プロセス・グループのパラメータ・ファイルでSETENV文を使用する必要があります。SETENVパラメータへの入力として、Oracle GoldenGateを正しいOracleインスタンスに指し示すためにORACLE_HOMEおよびORACLE_SID環境変数を使用します。たとえば、別のOracleインスタンスからキャプチャする、2つのExtractグループのパラメータ・ファイルを次に示します。

グループ1:

EXTRACT ora9a
SETENV (ORACLE_HOME = "/home/oracle/ora/product")
SETENV (ORACLE_SID = "oraa")
USERIDALIAS tiger1
RMTHOST sysb
RMTTRAIL /home/ggs/dirdat/rt
TABLE hr.emp;
TABLE hr.salary;

グループ2:

EXTRACT orab
SETENV (ORACLE_HOME = "/home/oracle/ora/product")
SETENV (ORACLE_SID = "orab")
USERIDALIAS tiger1
RMTHOST sysb
RMTTRAIL /home/ggs/dirdat/st
TABLE fin.sales;
TABLE fin.cust;

2.2.2 WindowsシステムでのOracle変数の指定

システム上に1つのOracleインスタンスが存在する場合、Oracle GoldenGateについてはORACLE_HOMEとORACLE_SIDのレジストリ設定で十分です。それらの設定がレジストリで不正確であり、それらの設定を変更できない場合、次のようにオーバーライドを設定できます。

1. デスクトップまたは「スタート」メニュー(Windowsのバージョンに応じて)で、「マイ コンピュータ」を右クリックして「プロパティ」を選択します。

2. 「プロパティ」で「詳細設定」タブをクリックします。

3. 「環境変数」をクリックします。

4. 「システム環境変数」の下にある「新規」をクリックします。

5. 「変数名」にORACLE_HOMEと入力します。

6. 「変数値」にOracleバイナリのパスを入力します。

7. 「OK」をクリックします。

8. 「新規」を再度クリックします。

9. 「変数名」にORACLE_SIDと入力します。

10. 「変数値」にインスタンス名を入力します。

11. 「OK」をクリックします。

システムに複数のOracleインスタンスがあり、ExtractおよびReplicatのプロセスがそれらに接続する場合、次の手順を実行します。

1. 前の手順(システムに1つのOracleインスタンス)を使用して、ORACLE_HOMEおよびORACLE_SIDのシステム変数を最初のOracleインスタンスに設定します。

2. そのインスタンスに接続するOracle GoldenGateのすべてのプロセスを開始します。

3. 次のOracleインスタンスに対して手順を繰り返しますが、まず既存のORACLE_HOMEおよびORACLE_SIDの変数を編集して新しい情報を指定します。

4. そのインスタンスに接続するOracle GoldenGateのプロセスを開始します。

5. 残りのOracleインスタンスに対して編集と起動の手順を繰り返します。

window.name='GUID-1242CEAD-3BE2-4E33-8882-11405F1B99CA' function footdisplay(footnum,footnote) { var msg = window.open('', 'NewWindow' + footnum, 'directories=no,height=120,location=no,menubar=no,resizable=yes,' + 'scrollbars=yes,status=no,toolbar=no,width=598'); msg.document.open('text/html'); }
2.3 UNIX上での動的ビルドのライブラリ・パスの設定

Oracle GoldenGateでは、共有ライブラリを使用します。Oracle GoldenGateをUNIXシステムにインストールする場合、GGSCIまたは他のOracle GoldenGateプロセスを実行する前に、必ず次のことを確認してください。

1. データベースのライブラリがシステムの共有ライブラリ環境変数に追加されていることを確認します。通常、この手順はデータベースのインストール時に実行します。不明な点はデータベース管理者に問い合せてください。

Oracle GoldenGateがデータベースと同じサーバーで実行されている場合は、次のすべてが64ビットである必要があります。

- Oracleライブラリのバージョン

- Oracle GoldenGateのバージョン

- データベースのバージョン

Oracle GoldenGateがSQL*Net経由でリモートからデータベース・サーバーに接続する場合は、次の条件を満たす必要があります。

- Replicat: Oracleクライアント・ライブラリとOracle GoldenGateビルドでOracleバージョン、ビット・タイプ(64ビットまたはIA64)およびオペレーティング・システムのバージョンを同一にしておく必要があります。

- Extract: Oracleクライアント・ライブラリとOracle GoldenGateビルドでOracleバージョン、ビット・タイプ(64ビットまたはIA64)およびオペレーティング・システムのバージョンを同一にしておく必要があります。さらに、両方のオペレーティング・システムは同じエンディアンであることが必要です。

2. Oracle GoldenGateプログラムをUNIXシステム上のOracle GoldenGateインストール・ディレクトリ外から実行する場合は、次のようにします。

- (オプション) Oracle GoldenGateインストール・ディレクトリをPATH環境変数に追加します。

- (必須) Oracle GoldenGateインストール・ディレクトリを共有ライブラリの環境変数に追加します。

たとえば、Oracle GoldenGateインストール・ディレクトリが/users/oggの場合、次の例の2つ目のコマンドではこれらの変数が設定されている必要があります。

コマンド

環境変数にGGライブラリが必要か

$ users/ogg > ./ggsci

不要

$ users > ./ogg/ggsci

必要

例2-1 Kornシェルで変数を設定する場合

PATH=installation_directory:$PATH
export PATH
shared_libraries_variable=absolute_path_of_installation_directory:$shared_libraries_variable
export shared_libraries_variable

例2-2 Bourneシェルで変数を設定する場合

export PATH=installation_directory:$PATH
export shared_libraries_variable=absolute_path_of_installation_directory:$shared_libraries_variable

例2-3 Cシェルで変数を設定する場合

setenv PATH installation_directory:$PATH
setenv shared_libraries_variable absolute_path_of_installation_directory:$shared_libraries_variable

説明: shared libraries variableは、表2-1に示す変数のいずれかです。

表2-1 プラットフォームごとのUNIX/Linuxライブラリ・パス変数

プラットフォーム

環境変数

IBM AIX

LIBPATH

HP-UX

LD_LIBRARY_PATH

Sun Solaris

LINUX

LD_LIBRARY_PATH脚注1

脚注1

32ビットのOracle Databaseが存在する64ビット環境の場合、Oracle GoldenGateでは32ビットのOracleライブラリが含まれるようにLD_LIBRARY_PATHを設定する必要があります。

次に、Bourneシェルで変数を設定する方法の例を示します。

export LD_LIBRARY_PATH=/ggs/11.0:$LD_LIBRARY_PATH

注意:

Oracle GoldenGateのプロセスに必要なライブラリを表示するには、そのプロセスを開始する前にldd goldengate_processシェル・コマンドを使用します。なんらかの不足があれば、このコマンドでエラー・メッセージも表示されます。

2.4 クラスタ内にOracle GoldenGateをインストールする準備

この項では、Oracle GoldenGateをクラスタ環境にインストールする場合のインストール要件について説明します。Oracle GoldenGateは、フェイルオーバーを自動化する機能を持つクラスタ管理ソリューションと組み合せて使用できます。Oracle Clusterwareソリューションによって、Oracle RACデータベースと組み合せて、あるいは組み合せずに使用できるという利点が得られ、Oracle GoldenGateが実行される非データベース・サーバーを含めることができます。

2.4.1 Oracle GoldenGateのバイナリおよびファイルをインストールするクラスタ内の場所の決定

Oracle GoldenGateで高可用性を確保するには、クラスタの各ノードのローカル・ストレージにGoldenGateバイナリをインストールすることをお薦めします。ローカル・ノードにインストールすると、現在GoldenGateが実行されているノードに影響せずに、クラスタの1つ以上のノードでGoldenGateソフトウェアにパッチを適用しアップグレードすることができます。こうすると、事前定義された時刻に、アップグレードされたノードのいずれかにGoldenGateを切り替えることができます。

クラスタ化されたノードのいずれかでGoldenGateを実行するには、共有ストレージに特定のディレクトリを配置する必要があります。こうすると、クラスタの別のノードで実行されていたときにわかっていた前回の位置から、GoldenGateプロセスを再起動できるようになります。

Oracle GoldenGateをこのように実行する場合は、次の推奨事項に従ってください。

- Oracle GoldenGateインストールの場所のパスが、すべてのノードで同一であることが必要です。

- 最低でも次のディレクトリを共有記憶域にインストールし、Oracle GoldenGateのリカバリ要件をサポートします。UNIXまたはLinuxでは、各ノードのインストール・ディレクトリからのシンボリック・リンクを作成できます。

- br

- dirchk

- dirdat

- dirbdb

- dirprm

これらは、インストール中にCREATE SUBDIRSを発行した際に作成されたディレクトリです。

Oracle GoldenGateのインストール後、「クラスタへのOracle GoldenGateの統合」を参照してください。

クラスタでOracle GoldenGateをインストールして使用する方法については、Oracle Maximum Availability (MAA)のホワイトペーパー(http://www.oracle.com/technetwork/database/features/availability/maa-goldengate-rac-2007111.pdf)を参照してください。

2.4.2 Oracleクラスタ・ストレージの例

少なくともいくつかのOracle GoldenGateディレクトリを共有記憶域にインストールする必要があります。クラスタのどのノードからも独立していて、すべてのノードから使用可能なクラスタ対応の共有記憶域を選択します。次の例に示すOracleクラスタ・ストレージ・オプションのいずれかを使用できます。

- Oracle Database File System (DBFS) - データベース・ファイル・システム (DBFS)は、データベース表に格納されているファイルおよびディレクトリの上に標準のファイル・システム・インタフェースを作成します。DBFSは、ローカル・ファイル・システムのような共有ネットワーク・ファイル・システムを提供するという点でNFSに似ており、サーバー・コンポーネントとクライアント・コンポーネントがあります。ファイルはデータベース内部に格納されるので、Oracle Data Guardの高可用性とともに、データベースのバックアップおよびリカバリ機能を使用して保護されます。

- Oracle Storage Management Cluster File System (ACFS) - Oracle ACFSは、マルチプラットフォーム対応のスケーラブルなファイル・システムであり、Oracle Automatic Storage Management (Oracle ASM)機能を拡張してPOSIX互換のファイル・システムを提供するストレージ管理テクノロジです。

- Oracle ZFS - NFSプロトコルを使用してクラスタの各ノードからマウントできる、Oracle ZFS Applianceを使用します。

2.5 Oracle GoldenGateのインストール

Oracle DatabaseのためのOracle GoldenGateはOracle Universal Installer (OUI)からインストールされます。OUIは、Oracle GoldenGateバイナリおよび作業ファイルのインストール、ならびにOracle GoldenGateが動作する適切なデータベース環境の設定に必要な入力を求めるグラフィック・インストール・プログラムです。

OUIは、OUIおよびOracle GoldenGateでサポートされるすべてのLinux、UNIXおよびWindowsプラットフォームで使用できます。

OUIは、Oracleバージョン11g以上でサポートされます。Oracle GoldenGateのインスタンスは、1つのOracle Databaseメジャー・バージョンのみで、指定した任意のOracleホームにインストールできます。たとえば、Oracle Database 11.2と12.1を使用している場合は、それぞれにOracle GoldenGateをインストールする必要があります。これは、同じメジャー・リリース内のデータ・パッチ・レベルには適用されません。同じまたは異なるデータベースの場合は、同じホストにOracle GoldenGateの複数のインスタンスをインストールできます。

インストーラは、選択したデータベースに関連付けられる中央インベントリにOracle GoldenGateホーム・ディレクトリを登録します。OUIを使用して製品がインストールされている場合、インベントリには、ホストにインストールされるすべてのOracleソフトウェア製品の情報が格納されます。

2.5.1 OUIを使用した対話型インストールの実行

対話型インストールでは、必要なインストール情報を求めるグラフィカル・ユーザー・インタフェースが提供されます。次の手順は新規のインストール、ならびにアップグレードに適用されます。ただし、Oracle GoldenGateへのアップグレードを実行するには、Oracle GoldenGateのアップグレードfor Windows and UNIXの手順に従ってください。これには適切な時期にOUIを実行するためのプロンプトが含まれます。

1. インストール・ファイルを展開します。

2. 展開されたディレクトリから、runInstallerプログラム(UNIXまたはLinux)またはsetup.exe (Windows)を実行します。

3. 「Select Installation Option」ページで、インストールするOracle GoldenGateのバージョンを選択し、「Next」をクリックして続行します。

4. 「Specify Installation Details」ページで、次を指定します。

- 「Software Location」で、Oracle GoldenGateのインストール・ディレクトリを指定します。これには、空でディスク領域の量が画面に表示される新規または既存のディレクトリ(12.1.2.0.0より前のバージョンのOracle GoldenGateの場合)か、既存のOracle GoldenGateのインストール場所(既存のOracle GoldenGateインストールをアップグレードする場合)内のディレクトリが可能です。デフォルトの場所は、ユーザーのホーム・ディレクトリの下にありますが、マウントされておらず、割当て制限のないローカル・ディレクトリに変更することをお薦めします。指定したディレクトリは、Oracle中央インベントリの登録済のホームにはできません。クラスタにインストールする場合は、クラスタ内の各ノードのローカル・ストレージにOracle GoldenGateをインストールすることで、アップグレードおよびソフトウェア・パッチ適用のための高可用性オプションを利用できます。クラスタへのOracle GoldenGateのインストールの詳細は、「クラスタ内でのOracle GoldenGateのインストールの準備」を参照してください。

- (オプション)「Start Manager」を選択し、Oracle GoldenGateのサブディレクトリをインストール場所に作成する、ライブラリ・パスを設定する、指定したポート番号でManagerを開始するなどの構成機能を実行します。続行するには、データベースがシステムに存在する必要があります。「Start Manager」を選択すると、「Database Location」および「Manager Port」フィールドが表示されます。

- 「Database Location」で、指定した場所のデータベース・バージョンをOracle Database 12c (Oracle GoldenGate for Oracle Database 12cをインストールしている場合)またはOracle Database 11g (Oracle GoldenGate for Oracle Database11gをインストールしている場合)にする必要があります。データベースには、Oracle中央インベントリの登録済のホームが含まれる必要があります。インストーラによって、Oracle GoldenGateホーム・ディレクトリが中央インベントリに登録されます。

- 「Manager Port」で、デフォルトのポート番号をそのまま使用するか、予約および制限されていないManagerプロセス用の異なるポート番号を入力し、プロセス間通信に使用します。デフォルトのポートは、7809から始まる最初に使用可能なポートです。Oracle GoldenGateの複数のインスタンスを同じシステムにインストールする場合は、それぞれ異なるポート番号を使用する必要があります。

- 「Next」をクリックして続行します。これが既存のOracle GoldenGateインストールへのアップグレードである場合、OUIでは選択したソフトウェアの場所にファイルまたはディレクトリがあると示されます。「Yes」をクリックします。

5. 中央インベントリが含まれないホストにOUIからOracle製品を最初にインストールする場合は、「Create Inventory」ページが表示されます。

- 「Inventory Directory」で、中央インベントリのディレクトリを指定します。これには、空の新規または既存のディレクトリが可能で、ディスク領域の量が画面に表示されます。ディレクトリを共有ドライブ上に置くことはできません。

- メンバーにインベントリ・ディレクトリへの書込み権限があるオペレーティング・システム・グループを選択します。このグループは、Oracle GoldenGateのサブフォルダへのインベントリ情報の追加に使用されます。

6. 「Summary」ページで、インストールに十分な領域があり、インストールの選択が正しいことを確認します。オプションで、「Save Response File」をクリックして、インストール情報をレスポンス・ファイルに保存します。このファイルを入力として使用して、コマンドラインからインストーラを実行し、他のシステムで成功したインストールの結果を複製します。このファイルを編集、またはテンプレートから新しいファイルを作成できます。「OUIを使用したサイレント・インストールの実行」を参照してください。

7. 「Install」をクリックしてインストールを開始するか、「Back」をクリックして戻り、入力指定を変更します。既存のOracle GoldenGateインストールをアップグレードする際、OUIではソフトウェアの場所にファイルまたはディレクトリがあると示されます。「Yes」をクリックして続行します。インストールが終了すると、通知されます。

8. 中央インベントリ・ディレクトリを作成すると、INVENTORY_LOCATION/orainstRoot.shスクリプトを実行するように求められます。このスクリプトは、rootオペレーティング・システム・ユーザーとして実行されます。このスクリプトでは、インベントリ・データが確立され、インストールされるOracle製品ごと(この場合はOracle GoldenGate)にサブディレクトリが作成されます。

2.5.2 OUIを使用したサイレント・インストールの実行

次の手順は新規のインストール、ならびにアップグレードに適用されます。ただし、Oracle GoldenGateへのアップグレードを実行するには、Oracle GoldenGateのアップグレードfor Windows and UNIXの手順に従ってください。これには適切な時期にOUIを実行するためのプロンプトが含まれます。

システムにX-Windowsインタフェースがない場合、または自動インストールを実行する場合は、コマンド・コンソールからサイレント・インストールを実行できます。サイレント・インストールでは、Oracle製品をインストールする場合に、組織の複数のユーザーが同じインストール・プロセス・オプションを使用できます。

サイレント・インストールを実行するには、レスポンス・ファイルを実行します。レスポンス・ファイルを作成するには、例2-4に示すように、インタラクティブOUIセッション中に「Save Response File」オプションを選択するか、テンプレートを編集します。レスポンス・ファイルを実行するには、次のコマンドを発行します。

-silent -nowait -responseFile path_to_file

レスポンス・ファイルおよびテンプレートは、Oracle GoldenGateインストール・ディレクトリのresponseサブディレクトリに格納されます。Oracle GoldenGateレスポンス・ファイルには、Oracle GoldenGateに固有のパラメータに加えて、Oracle構成パラメータの標準のセットが含まれます。これらのパラメータは、インタラクティブ・セッションのフィールドに対応します。

注意:

既存のOracle GoldenGateインストールをサイレント・オプションでアップグレードする場合、次の警告が示される場合があります。

WARNING:OUI-10030: 製品のインストール先として、空ではないディレクトリを指定しました。空のディレクトリ、または存在しないディレクトリを指定することをお薦めします。ただし、オペレーティング・システムで生成されたlost+foundなどのファイルまたはサブディレクトリがディレクトリにある場合は、このメッセージを無視することもできます。このOracleホームへのインストールを続行しますか。

[Enter]を押して続行します。

例2-4 Oracle GoldenGateレスポンス・ファイルのテンプレート

####################################################################
## Copyright(c) Oracle Corporation 2013. All rights reserved.     ##
##                                                                ##
## Specify values for the variables listed below to customize     ##
## your installation.                                             ##
##                                                                ##
## Each variable is associated with a comment. The comment        ##
## can help to populate the variables with the appropriate        ##
## values.                                                        ##
##                                                                ##
## IMPORTANT NOTE: This file should be secured to have read       ##
## permission only by the oracle user or an administrator who     ##
## own this installation to protect any sensitive input values.   ##
##                                                                ##
####################################################################
#-------------------------------------------------------------------------------
# Do not change the following system generated value. #-------------------------------------------------------------------------------
oracle.install.responseFileVersion=/oracle/install/rspfmt_ogginstall_response_
schema_v12_1_2################################################################################
##                                                                            ##
## Oracle GoldenGate installation option and details                          ####                                                                            ##
################################################################################
#-------------------------------------------------------------------------------
# Specify the installation option.
# Specify ORA12c for installing Oracle GoldenGate for Oracle Database 12c and
#         ORA11g for installing Oracle GoldenGate for Oracle Database 11g
#-------------------------------------------------------------------------------
INSTALL_OPTION=

#-------------------------------------------------------------------------------
# Specify a location to install Oracle GoldenGate#-------------------------------------------------------------------------------
SOFTWARE_LOCATION=

#-------------------------------------------------------------------------------
# Specify true to start the manager after installation.

#-------------------------------------------------------------------------------
START_MANAGER=

#-------------------------------------------------------------------------------
# Specify a free port within the valid range for the manager process.
# Required only if START_MANAGER is true.
#-------------------------------------------------------------------------------
MANAGER_PORT=

#-------------------------------------------------------------------------------
# Specify the location of the Oracle Database.
# Required only if START_MANAGER is true.
#-------------------------------------------------------------------------------
DATABASE_LOCATION=

################################################################################
##                                                                            ##
## Specify details to Create inventory for Oracle installs                    ##
## Required only for the first Oracle product install on a system.            ##
##                                                                            ##
################################################################################

#-------------------------------------------------------------------------------
# Specify the location which holds the install inventory files.
# This is an optional parameter if installing on# Windows based Operating System.#-------------------------------------------------------------------------------INVENTORY_LOCATION=

#-------------------------------------------------------------------------------
# UNIX group to be set for the inventory directory.  # This parameter is not applicable if installing on
# Windows based Operating System.
#-------------------------------------------------------------------------------
UNIX_GROUP_NAME=

2.6 クラスタへのOracle GoldenGateの統合

Oracle GoldenGateをクラスタにインストールした場合、次の手順を実行してOracle GoldenGateをクラスタ・ソリューション内に統合します。

クラスタでOracle GoldenGateをインストールして使用する方法については、Oracle GoldenGate with Oracle Real Application Clusters Configurationのホワイトペーパー(http://www.oracle.com/technetwork/database/features/availability/maa-goldengate-rac-2007111.pdf)を参照してください。

2.6.1 クラスタでの一般的な要件

1. クラスタ・ノードでGoldenGateプロセスを自動的に管理するように、Oracle Grid Infrastructure Bundled Agent (XAG)を構成します。XAGを使用すると、GoldenGateプロセスを起動する前に、必要なクラスタ・ファイル・システムがマウントされていることを確認できます。クラスタでアプリケーションの仮想IP (VIP)を使用している場合は、正しいノードでVIPが起動していることも、バンドルされたエージェントによって確認されます。

2. AUTOSTARTおよびAUTORESTARTパラメータを使用してOracle GoldenGate Managerプロセスを構成し、Managerでレプリケーション・プロセスを自動的に起動するようにします。

3. 1つのノードのみで共有ドライブをマウントします。これによって、他のノードでプロセスが起動されなくなります。すべてのノードで同じマウント・ポイントを使用します。Oracle Grid Infrastructure Bundled Agentを使用している場合は、必要なファイル・システムのマウントが自動的に実行されます。

4. クラスタのすべてのデータベース・インスタンスで、COMPATIBLEパラメータの設定が同じことを確認します。

5. このドキュメントに記載のとおり、Oracle GoldenGateを構成します。

2.6.2 Windowsクラスタ・リソースとしてのOracle GoldenGateの追加

Oracle GoldenGateをWindowsクラスタにインストールした場合は、次の手順に従ってOracle GoldenGateをクラスタ・リソースとして設定し、すべてのノード上にManagerサービスを正しく設定します。

- クラスタ・アドミニストレータで、Oracle GoldenGateの接続先のデータベース・インスタンスを含むグループにManagerプロセスを追加します。

- Oracle GoldenGateが稼働するすべてのノードが、リソースの実行可能な所有者として選択されていることを確認します。

- Manager Windowsサービスに次の依存関係(「サービス」コントロール・パネルから構成可能)があることを確認します。

- データベース・リソース

- Oracle GoldenGateディレクトリが含まれているディスク・リソース

- データベース・トランザクション・ログ・ファイルを含むディスク・リソース

- データベースのトランザクション・ログ・バックアップ・ファイルを含むディスク・リソース

3 Oracle GoldenGateのためのデータベースの準備

この章では、トランザクションの変更のキャプチャがサポートされるように、ソースOracle Databaseを適切に構成する手順について説明します。

この章の内容は次のとおりです。

- 統合プロセスの接続の構成

- ロギング・プロパティの構成

- データベースでのOracle GoldenGateの有効化

- フラッシュバック問合せの設定

- サーバー・リソースの管理

3.1 統合プロセスの接続の構成

統合キャプチャおよび統合Replicatを使用する場合、専用のサーバー接続がtnsnames.oraファイルにそれぞれ必要です。これらのプロセスを構成する場合は、ExtractのUSERIDまたはUSERIDALIASパラメータおよびReplicatパラメータを使用して、これらの接続を使用するようにプロセスを指定します。

次に、統合キャプチャ(Extract)および統合Replicatに必要な専用の接続の例を示します。

TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = test2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)

ExtractまたはReplicatパラメータ・ファイルに接続文字列を指定するセキュリティ・オプションは、次のとおりです。

パスワード暗号化の方法:

USERID intext@test, PASSWORD mypassword

資格証明ストアの方法:

USERIDALIAS ext

USERIDALIASの場合、次の例のように、別名extは、実際の接続文字列を含むOracle GoldenGate資格証明ストアに格納されます。

GGSCI> INFO CREDENTIALSTORE DOMAIN support
Domain: Support
Alias: ext
Userid: intext@test

パラメータ・ファイルにデータベース接続情報を指定する方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

3.2 ロギング・プロパティの構成

Oracle GoldenGateは、REDOログを使用して、ソース・トランザクションのレプリケートに必要なデータをキャプチャします。Oracle GoldenGateの処理を始める前に、Oracle REDOログをソース・システムに適切に構成する必要があります。

注意:

この必要なロギングによってREDOの量が増えます。Oracle GoldenGate処理を開始してログが有効化されるまで待つ場合があります。

この項では、Oracle GoldenGateに適用される次のロギング・レベルについて説明します。使用するロギング・レベルは、Oracle GoldenGate機能または使用している機能によって異なります。

- 最小のデータベース・レベルのサプリメンタル・ロギングの有効化

- スキーマ・レベルのサプリメンタル・ロギングの有効化

- 表レベルのサプリメンタル・ロギングの有効化

表3-1に、様々なロギング・プロパティのOracle GoldenGateユースケースを示します。詳細な情報は次のとおりです。

表3-1 ユースケース別のサプリメンタル・ロギングのオプション

ロギング・オプション

GGSCIコマンド

機能

ユースケース

強制ロギング・モード

なし: データベースを通じて有効化します。

すべてのトランザクションおよびロードのロギングを強制します。

すべてのOracle GoldenGateユースケースで強くお薦めします。

最小のデータベース・レベルのサプリメンタル・ロギング

なし: データベースを通じて有効化します。

最小サプリメンタル・ロギングで行連鎖情報をREDOログに追加できるようにします。

すべてのOracle GoldenGateユースケースに必要です。

スキーマ・レベルのサプリメンタル・ロギング、デフォルト設定

「スキーマ・レベルのサプリメンタル・ロギングの有効化」を参照してください。

ADD SCHEMATRANDATA

主キーの無条件のサプリメンタル・ロギングを有効化し、スキーマのすべての表の一意キーおよび外部キーの条件付きのサプリメンタル・ロギングを有効化します。これらのキーは、すべてスケジューリング列と呼ばれます。

スキーマの現在および将来のすべての表でロギングを有効化します。主キー、一意キーおよび外部キーの列がソースとターゲットの両方で同じでない場合は、ALLCOLSを使用します。DDLサポートを使用する場合に必要です。

サポートされるすべての列で無条件のロギングを使用したスキーマ・レベルのサプリメンタル・ロギング。(サポートされない列タイプの場合は、「スキーマ・レベルのサプリメンタル・ロギングの有効化」を参照してください。)

ALLCOLSオプションを指定したADD SCHEMATRANDATA

スキーマのすべての表で、表のすべての列の無条件のサプリメンタル・ロギングを有効化します。

双方向およびアクティブ/アクティブ構成で使用され、そこでは更新または削除の実行時に、変更された列だけでなくすべての列値がチェックされます。より多くのリソースが消費されますが、最高レベルのリアルタイム・データ検証と競合検出が可能になります。

ソースおよびターゲットの主キー、一意キーおよび外部キーがソースとターゲット間で同一でないか、定期的に変更される場合にも使用できます。

スキーマ・レベルのサプリメンタル・ロギング、最小設定

NOSCHEDULINGCOLSオプションを指定したADD SCHEMATRANDATA

スキーマのすべての表の主キーおよび有効なすべての一意索引の無条件のサプリメンタル・ロギングを有効化します。

非統合Replicatでのみ使用します。これは、最低限必要なスキーマ・レベルのロギングです。

統合Replicatの組込みサポートを使用した表レベルのサプリメンタル・ロギング

「表レベルのサプリメンタル・ロギングの有効化」を参照してください。

ADD TRANDATA

主キーの無条件のサプリメンタル・ロギングを有効化し、表の一意キーおよび外部キーの条件付きのサプリメンタル・ロギングを有効化します。これらのキーは、すべてスケジューリング列と呼ばれます。

スキーマ・レベルのサプリメンタル・ロギングが使用されていないかぎり、すべてのOracle GoldenGateユースケースで必要です。主キー、一意キーおよび外部キーの列がソースとターゲットの両方で同じでない場合は、ALLCOLSを使用します。

サポートされるすべての列で無条件のロギングを使用した表レベルのサプリメンタル・ロギング。(サポートされない列タイプの場合は、「表レベルのサプリメンタル・ロギングの有効化」を参照してください。)

ALLCOLSオプションを指定したADD TRANDATA

表のすべての列の無条件のサプリメンタル・ロギングを有効化します。

双方向およびアクティブ/アクティブ構成で使用され、そこでは更新または削除の実行時に、変更された列だけでなくすべての列値がチェックされます。より多くのリソースが消費されますが、最高レベルのリアルタイム・データ検証と競合検出が可能になります。

ソースおよびターゲットの主キー、一意キーおよび外部キーがソースとターゲット間で同一でないか、定期的に変更される場合にも使用できます。

表レベルのサプリメンタル・ロギング、最小設定

NOSCHEDULINGCOLSオプションを指定したADD TRANDATA

表の主キーおよび有効なすべての一意索引の無条件のサプリメンタル・ロギングを有効化します。

非統合Replicatでのみ使用します。これは、最低限必要な表レベルのロギングです。

3.2.1 最小のデータベース・レベルのサプリメンタル・ロギングの有効化

Oracleソース・データベースを強制ロギング・モードにすることを強くお薦めします。強制ロギング・モードでは、すべてのトランザクションおよびロードのロギングを強制し、反対にユーザーまたは記憶域の設定をオーバーライドします。これにより、Extract構成のソース・データが失われることがなくなります。

また、最小サプリメンタル・ロギング、データベース・レベル・オプションは、Oracle GoldenGateを使用する場合にOracleソース・データベースに必要です。これは、連鎖行の情報(存在する場合)を更新操作用のREDOログに追加します。

注意:

レプリケーションの外部の表に過剰なオーバーヘッドが発生するため、データベース・レベルの主キー(PK)および一意索引(UI)ロギングはあまりお薦めしません。これらのロギング・オプションがビジネス用途に必要でないかぎり、必要な操作は、最小サプリメンタル・ロギングをデータベース・レベルで有効化し、Oracle GoldenGateのロギングを強制するだけです。

次の手順を実行し、必要に応じて最小サプリメンタル・ロギングおよび強制ロギングを確認して有効化します。

1. ALTER SYSTEM権限を持つユーザーとしてSQL*Plusにログインします。

2. 次のコマンドを発行し、データベースがサプリメンタル・ロギング・モードかどうか、および強制ロギング・モードかどうかを確認します。両方の問合せで結果がYESの場合、データベースはOracle GoldenGate要件を満たしています。

SELECT supplemental_log_data_min, force_logging FROM v$database;

3. いずれかまたは両方のプロパティで結果がNOの場合、次のステップに進み、必要に応じて有効化します。

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER DATABASE FORCE LOGGING;

4. 次のコマンドを発行し、これらのプロパティが有効化されていることを確認します。

SELECT supplemental_log_data_min, force_logging FROM v$database;

両方のプロパティで、この問合せの出力がYESになる必要があります。

5. ログ・ファイルを切り替えます。

SQL> ALTER SYSTEM SWITCH LOGFILE;

3.2.2 スキーマ・レベルのサプリメンタル・ロギングの有効化

Oracle GoldenGateでは、スキーマ・レベルのサプリメンタル・ロギングをサポートしています。スキーマ・レベルのロギングは、Oracle GoldenGate DDLレプリケーション機能を使用する場合に、Oracleソース・データベースで必要です。その他すべてのユースケースではオプションですが、表レベルのロギングをかわりに使用する必要があります(「表レベルのサプリメンタル・ロギングの有効化」を参照してください)。

スキーマ・レベルのロギングでは、デフォルトで主キーの無条件のサプリメンタル・ロギングを自動的に有効化し、スキーマのすべての表の一意キーおよび外部キーの条件付きのサプリメンタル・ロギングを自動的に有効化します。必要に応じて、オプションでロギングを変更できます。

注意:

ワイルドカード指定を満たす場合に、スキーマに追加される新しい表がキャプチャされるため、表レベルのロギングよりもスキーマ・レベルのロギングを使用することを強くお薦めします。

次の手順をソース・システムで実行して、スキーマ・レベルのサプリメンタル・ロギングを有効化します。

1. 11.2.0.2より前のバージョンの場合、ソースOracle DatabaseにOracle Patch 13794550を適用します。

2. ソース・システムでGGSCIを実行します。

3. 資格証明ストア内の、スキーマ・レベルのサプリメンタル・ロギングを有効にする権限を持つユーザーの別名でDBLOGINコマンドを発行します。

DBLOGIN USERIDALIAS alias

DBLOGINおよび追加オプションの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4. Oracle GoldenGateでデータの変更をキャプチャする対象の各スキーマに対し、ADD SCHEMATRANDATAコマンドを発行します。

ADD SCHEMATRANDATA schema [ALLCOLS | NOSCHEDULINGCOLS]

説明:

- オプションがない場合、ADD SCHEMATRANDATAスキーマでは、主キーのソース・システムで無条件のサプリメンタル・ロギングを有効化し、指定したスキーマの現在および将来のすべての表のすべての一意キーおよび外部キーの条件付きのサプリメンタル・ロギングを有効化します。無条件ロギングでは、主キーの値を、キーが現在の操作で変更されたかどうかにかかわらず、強制的にログに記録します。条件付きロギングは、外部キーまたは一意キーの列のすべての値を、それらのうちの少なくとも1つが現在の操作で変更された場合に、ログに記録します。デフォルトは、非統合Replicatをオプションでサポートしますが、依存関係を計算するために、主キー、一意キーおよび外部キーをすべてインバウンド・サーバーで使用できるようにする必要があるため、統合Replicatをサポートする必要があります。統合Replicatの詳細は、「使用する適用方法の決定」を参照してください。

- ALLCOLSを使用すると、表のすべての列の無条件のサプリメンタル・ロギングを有効化して、指定したスキーマの現在および将来のすべての表に適用できます。ソース表とターゲット表に異なるスケジューリング列が含まれる場合に、統合Replicatをサポートするために使用します。(スケジューリング列は、主キー、一意キーおよび外部キーです。)

- NOSCHEDULINGCOLSは、スキーマの既存の表および後で追加された新しい表で、主キーおよび有効なすべての一意索引の値のみをログに記録します。これは、必要最小限のレベルのスキーマ・レベルのロギングで、非統合モードのReplicatのみで有効です。

次の例では、financeスキーマのデフォルトのサプリメンタル・ロギングをコマンドで有効にします。

ADD SCHEMATRANDATA finance

次の例では、hrスキーマの主キーおよび有効な一意索引のみでサプリメンタル・ロギングをコマンドで有効にします。

ADD SCHEMATRANDATA hr NOSCHEDULINGCOLS

ADD SCHEMATRANDATAの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

3.2.3 表レベルのサプリメンタル・ロギングの有効化

表レベルのサプリメンタル・ロギングは、次の場合にソース・システムで有効化します。

- スキーマ・レベルのロギングを使用しない場合に、必要なレベルのロギングを有効にする場合(「スキーマ・レベルのサプリメンタル・ロギングの有効化」を参照)。スキーマ・レベルまたは表レベルのロギングを使用する必要があります。表レベルのロギングでは、デフォルトで主キーの無条件のサプリメンタル・ロギングを自動的に有効化し、表の一意キーおよび外部キーの条件付きのサプリメンタル・ロギングを自動的に有効化します。必要に応じて、オプションでロギングを変更できます。

- 指定した表で主キーのロギングを回避する場合。

- キー以外の列の値を表レベルで記録し、Oracle GoldenGateの特定の機能(フィルタリング、競合検出および解決ロジックなど)をサポートする場合。

次の手順をソース・システムで実行して、表レベルのサプリメンタル・ロギングを有効化するか、コマンドのオプションの機能を使用します。

1. ソース・システムでGGSCIを実行します。

2. 資格証明ストア内の、表レベルのサプリメンタル・ロギングを有効にする権限を持つユーザーの別名を使用してDBLOGINコマンドを発行します。

DBLOGIN USERIDALIAS alias

DBLOGINおよび追加オプションの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

3. ADD TRANDATAコマンドを発行します。

ADD TRANDATA [container.]schema.table [, COLS (columns)] [, NOKEY] [, ALLCOLS | NOSCHEDULINGCOLS]

説明:

- containerは、表がマルチテナント・コンテナ・データベースにある場合、ルート・コンテナまたはプラガブル・データベースの名前です。

- schemaは、表を含むソース・スキーマです。

- tableは、表の名前です。オブジェクト名を指定する手順は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

- ADD TRANDATAで他のオプションを指定しない場合は、主キーの無条件のサプリメンタル・ロギングを自動的に有効化し、表の一意キーおよび外部キーの条件付きのサプリメンタル・ロギングを自動的に有効化します。無条件ロギングでは、主キーの値を、キーが現在の操作で変更されたかどうかにかかわらず、強制的にログに記録します。条件付きロギングは、外部キーまたは一意キーの列のすべての値を、それらのうちの少なくとも1つが現在の操作で変更された場合に、ログに記録します。デフォルトは、非統合Replicat (NOSCHEDULINGCOLSも参照)をオプションでサポートしますが、依存関係を計算するために、主キー、一意キーおよび外部キーをすべてインバウンド・サーバーで使用できるようにする必要があるため、統合Replicatをサポートする必要があります。統合Replicatの詳細は、「使用する適用方法の決定」を参照してください。

- ALLCOLSでは、表のすべての列の無条件のサプリメンタル・ロギングを有効化します。ソース表とターゲット表に異なるスケジューリング列が含まれる場合に、統合Replicatをサポートするために使用します。(スケジューリング列は、主キー、一意キーおよび外部キーです。)

- NOSCHEDULINGCOLSは、非統合モードのReplicatプロセスでのみ有効です。これは、表に対して定義されている一意制約のタイプ、または一意制約のないすべての列に適した、ADD SUPPLEMENTAL LOG DATA ALWAYS句を含むALTER TABLEコマンドを発行します。このコマンドは、スキーマ・レベルのロギングが使用されていない場合に、Oracle GoldenGateの表レベルのロギングの基本要件を満たします。Oracle GoldenGateがキーまたは索引をどのように選択するかについては、「ソース表とターゲット表での行の一意性の保証」を参照してください。

- COLS columnsは、KEYCOLS句またはフィルタリングおよび操作に必要なキー以外の列を記録します。パラメータが必要です。NOKEYオプションが存在しないかぎり、主キーに加えてこれらの列もログに記録されます。

- NOKEYによって、主キーまたは一意なキーのロギングが回避されます。TABLEパラメータおよびMAPパラメータにKEYCOLS句が必要で、ADD TRANDATAコマンドでCOLS句を使用して代替のKEYCOLS列を記録する必要があります。

4. ADD TRANDATAにCOLSオプションを使用する場合、ターゲットでそれらの列に一意の索引を作成して行の取得を最適化します。KEYCOLS句の代替キーとしてこれらの列を記録する場合は、Oracle GoldenGateプロセスを構成するときにKEYCOLS句をTABLEおよびMAP文に追加する必要があります。

ADD TRANDATAの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

3.3 データベースでのOracle GoldenGateの有効化

Oracle GoldenGateキャプチャをサポートおよび適用するために必要なデータベース・サービスは、11.2.0.4以上のOracleデータベースで明示的に有効化する必要があります。これは、ExtractおよびReplicatのすべてのモードに必要です。

Oracle GoldenGateを有効化するには、次のデータベース初期化パラメータを設定します。Oracle RACのすべてのインスタンスで同じ設定にする必要があります。

ENABLE_GOLDENGATE_REPLICATION=true

このパラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

3.4 フラッシュバック問合せの設定

特定の更新レコードを処理するために、Extractによってソース・データベースから追加の行データがフェッチされます。Oracle GoldenGateでフェッチされるデータは次のとおりです。

- ユーザー定義型

- ネストされた表

- XMLTypeオブジェクト

デフォルトでは、Oracle GoldenGateでフラッシュバック問合せを使用してUNDO (ロールバック)表領域から値をフェッチします。そのように、Oracle GoldenGateでは特定の時点またはSCNで読取り一貫性行イメージを再構築し、REDOレコードと一致させることができます。

最適なフェッチ結果を得るには、ソース・データベースを次のように構成します。

1. 次のようにOracle初期化パラメータUNDO_MANAGEMENTおよびUNDO_RETENTION(秒単位)を設定することで、REDO保存に十分な時間を設定します。

UNDO_MANAGEMENT=AUTO

UNDO_RETENTION=86400

UNDO_RETENTION can be adjusted upward in high-volume environments.

2. 次の式を使用して、UNDO表領域で必要な領域を計算します。

undo_space = UNDO_RETENTION * UPS + overhead

説明:

- undo_spaceは、UNDOブロック数です。

- UNDO_RETENTIONは、UNDO_RETENTIONパラメータの値です(秒単位)。

- UPSは、1秒当たりのUNDOブロック数です。

- overheadは、メタデータ(トランザクション表など)の最小オーバーヘッドです。

システム・ビューV$UNDOSTATを使用して、UPSおよびoverheadを見積ります。

3. LOBが含まれている表には、次のいずれかを実行します。

- LOB記憶域句をRETENTIONに設定します。これは、UNDO_MANAGEMENTをAUTOに設定したときに作成される表のデフォルトです。

- RETENTIONのかわりにPCTVERSIONを使用する場合、PCTVERSIONを初期値の25に設定します。これは、STATS EXTRACTコマンドでレポートされるフェッチ統計に基づいて調整できます(表3-2を参照)。これらの統計のSTAT_OPER_ROWFETCH CURRENTBYROWIDフィールドまたはSTAT_OPER_ROWFETCH_CURRENTBYKEYフィールドの値が大きい場合、統計で低い値を示すまでPCTVERSIONを10ずつ増やします。

4. 次の権限のいずれかをOracle GoldenGate Extractユーザーに付与します。

GRANT FLASHBACK ANY TABLE TO db_user

GRANT FLASHBACK ON schema.table TO db_user

Oracle GoldenGateによって、フェッチの管理に次のパラメータが提供されます。

表3-2 フェッチの管理用のOracle GoldenGateパラメータとコマンド

パラメータまたはコマンド

説明

REPORTFETCHオプションを使用したSTATS EXTRACTコマンド

必要に応じてExtractフェッチ統計を表示します。

REPORTFETCHオプションを使用したSTATOPTIONSパラメータ

常にフェッチ統計が表示されるようにSTATS EXTRACTコマンドを設定します。

MAXFETCHSTATEMENTSパラメータ

Extractによってソース・データベースに保持される準備済の問合せおよびSQLEXEC操作のオープン・カーソル数を制御します。

MAXFETCHSTATEMENTSパラメータ

Extractのデフォルトのフェッチ動作(Extractでフラッシュバック問合せを実行するか、現在のイメージを表からフェッチするか)を制御します。

USELATESTVERSIONまたはNOUSELATESTVERSIONオプションを使用したFETCHOPTIONSパラメータ

UNDOの保存期限が切れている場合や、表の構造が変更された場合など、Extractのフラッシュバック問合せの失敗を処理します。Extractは、現在のイメージを表からフェッチするか、失敗を無視するように設定できます。

REPFETCHEDCOLOPTIONSパラメータ

フェッチされたデータが含まれる証跡レコード、または列が見つからない証跡レコードの処理時に、Replicatで応答を制御します。

3.5 サーバー・リソースの管理

統合モードでは、Extractは、ソース・データベースの基礎となるログマイニング・サーバーと対話し、Replicatはターゲット・データベースのインバウンド・サーバーと対話します。この項では、これらのサーバーで消費される共有メモリーを管理するためのガイドラインについて説明します。

サーバーで使用される共有メモリーは、データベースのシステム・グローバル領域(SGA)のStreamsプール部分です。したがって、統合モードで実行されるExtractおよびReplicatプロセスで使用できるメモリーを十分に保持するには、データベース初期化パラメータのSTREAMS_POOL_SIZEを十分に高い値に設定する必要があります。Streamsプールは、データベースの他のコンポーネント(Oracle Streams、アドバンスト・キューイング、データポンプ・エクスポート/インポートなど)でも使用されるため、Oracle GoldenGateのStreamsプールのサイズを設定する際、このことを必ず考慮に入れてください。

デフォルトでは、1つの統合キャプチャExtractで、ログマイニング・サーバーが1GBのMAX_SGA_SIZEと2のPARALLELISMを使用して実行されるよう要求されます。したがって、3つのExtractを統合キャプチャ・モードで同一データベース・インスタンスで実行する場合、3GB以上のメモリーをStreamsプールに割り当てる必要があります。ベスト・プラクティスとしては、Streamsプールの25パーセントが使用可能であるようにします。たとえば、3つのExtractを統合キャプチャ・モードで実行する場合、次のようにSTREAMS_POOL_SIZEを設定します。

3 GB + (3 GB * 0.25) = 3.75 GB

4 Oracle GoldenGate資格証明の確立

この章では、データベースと対話するプロセスにデータベース・ユーザーを作成し、適切な権限を割り当てて、不正な使用から資格証明を保護するためのガイドラインについて説明します。

この章の内容は次のとおりです。

- Oracle GoldenGateへの資格証明の割当て

- Oracle GoldenGate資格証明の保護

4.1 Oracle GoldenGateへの資格証明の割当て

Oracle GoldenGateプロセスでは、データベース・バージョン、データベース構成、および使用しているOracle GoldenGate機能の適切なデータベース権限が含まれるデータベース資格証明が1つ以上必要です。ソース・システムとターゲット・システムのOracle GoldenGateにそれぞれ専用のソース・データベース・ユーザーとターゲット・データベース・ユーザーを作成します。割り当てられたユーザーには、ソースまたはターゲットのOracle Databaseに接続するすべてのOracle GoldenGateプロセスに同じユーザーを使用できます。

次の項では、ユーザー資格証明が必要とされるOracle GoldenGateプロセスの概要を示します。

- Extractユーザー

- Replicatユーザー

- その他のOracle GoldenGateユーザー

適切なユーザー権限の付与では、これらの各プロセスで必要とされるデータベース権限の概要を示します。

4.1.1 Extractユーザー

Extractユーザーは、ソース・データベースに対してメタデータ問合せを実行し、必要に応じてソース表からデータをフェッチします。統合キャプチャのローカル・マイニング・デプロイでは、このユーザーは、作成、変更、ログマイニング・サーバーへの接続およびログマイニング・サーバーからの論理変更レコード(LCR)の受信も行います。(キャプチャ・モードの詳細は、「使用するキャプチャ方法の決定」を参照してください。)

ソース・データベースがマルチテナント・コンテナ・データベースの場合、Extractユーザーは共通ユーザーである必要があり、ルート・コンテナにログインする必要があります。詳細は、「マルチテナント・コンテナ・データベースでのOracle GoldenGateの構成」を参照してください。

Extractが統合キャプチャ・モードで動作しており、データストリーム・マイニング・データベースを使用している場合は、追加のユーザーを割り当てる必要があります。このユーザーは、マイニング・ユーザーになり、ダウンストリーム・データベースに作成されます。マイニング・ユーザーは、マイニング・データベースで作成、変更およびログマイニング・サーバーへの接続を行い、ログマイニング・サーバーから論理変更レコード(LCR)を受信します。このユーザーはソースExtractユーザーと同じでも別でもかまいません。マイニング・ユーザーの名前は慎重に選択してください。このユーザーによる作成後、データベース・ログマイニング・サーバーは、他のユーザーが変更したり、使用できません。ダウンストリーム・マイニングの構成の詳細は、「ダウンストリーム・マイニング・データベースの構成」を参照してください。

4.1.2 Replicatユーザー

Replicatユーザーは、Replicatチェックポイント表を作成し(使用されている場合)、Replicatモードに応じて、Oracle Call Interfaceまたはデータベース・インバウンド・サーバーを通じてDMLおよびDDL操作を適用します。(Replicatモードの詳細は、「使用する適用方法の決定」を参照してください。)

4.1.3 その他のOracle GoldenGateユーザー

Oracle GoldenGate DDLサポートを使用している場合は、Managerプロセスでソース・データベースにユーザーが必要です。このユーザーは、DDLキャプチャをサポートするOracle GoldenGateデータベース・オブジェクトでメンテナンスを実行します。

DEFGENユーティリティでは、ソースまたはターゲット・データベースにユーザーが必要です。場所は、データ定義ファイルが生成される場所によって異なります。このユーザーは、ローカル・メタデータの問合せを行い、リモートOracle GoldenGateインスタンスにメタデータを提供するデータ定義ファイルを作成します。データ定義ファイルの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

Extractがクラシック・キャプチャ・モードで実行される場合、次の機能を使用するには追加のユーザーまたは権限が必要な場合があります。

- RMANログ保存(「ログ保存のオプション」を参照)

- TDEサポート(「クラシック・キャプチャ・モードでのOracle TDEデータの構成」を参照)

- ASM (「クラシック・キャプチャ・モードでのASMストアド・ログのマイニング」を参照)

4.1.4 適切なユーザー権限の付与

Oracle GoldenGateに必要なユーザー権限は、データベース・バージョンおよびExtractまたはReplicatプロセスのモードによって異なります。プロセス・モードの詳細は、「キャプチャおよび適用モードの選択」を参照してください。

4.1.4.1 Oracle 11.2.0.4以上のデータベース権限

次の権限は、11.2.0.4以上のOracleバージョンに適用されます。

表4-1 Oracle GoldenGate権限、バージョン11.2.0.4以上

権限

Extractクラシック・モード

Extract統合モード

Replicat全モード

目的

CREATE SESSION

X

X

X

データベースに接続

CONNECT

X

X

X

Replicatの場合は、Replicatがターゲット・オブジェクトを所有している場合のみ必要。または、CREATE objectを使用。

RESOURCE

X

X

X

オブジェクトを作成

RESOURCEをReplicatに付与できない場合は、次を使用:

ALTER USER user QUOTA {size | UNLIMITED} ON tablespace;

ALTER ANY TABLE

X

X

ADD TRANDATAコマンドを発行する場合のみ、Oracle 12.1.0.1で必要。

ALTER SYSTEM

X

X

ロギングの有効化などの管理変更を実行

ALTER USER <GGADMIN> set container_data=all container=current;

X

X

マルチテナント・アーキテクチャに必要であり、<GGADMIN>は有効なOracle GoldenGate管理者スキーマである必要があります。

dbms_goldengate_auth.grant_admin_privilegeで付与された権限

X

X

X

(Extract)ログマイニング・サーバーを含む、クラシックおよび統合Extractの両方の権限を付与。(Replicat)データベース・インバウンド・サーバー(Oracle 11.2.0.4以上)を含む、非統合および統合Replicatの両方の権限を付与。

dbms_goldengate_auth.grant_admin_privilegeのオプションの任意またはすべての権限

X

X

X

- Data Vaultからキャプチャ

- 仮想プライベート・データベースからキャプチャ

- リダクション済データをキャプチャ

詳細は、「dbms_goldengate_auth.grant_admin_privilegeのオプションの付与」を参照してください。

ターゲット表に対するINSERT、UPDATE、DELETE

X

レプリケートされたDMLをターゲット・オブジェクトに適用

CREATE TABLE

X

チェックポイント表をターゲット・データベースに作成

ターゲット・オブジェクトのDDL権限(DDLサポートを使用している場合)

X

レプリケートされたDDLをターゲット・オブジェクトに発行

DBA

X

X

DDLおよびシーケンス・サポート

LOCK ANY TABLE

X

ターゲット表をロック。SQL*Loaderへのダイレクト・バルク・ロードを使用する初期ロードのみに必要。

SELECT ANY TRANSACTION

X

新しいOracle ASM APIを使用。「クラシック・キャプチャ・モードでのASMストアド・ログのマイニング」を参照してください。

4.1.4.2 Oracle 11.2.0.3以前のデータベース権限

次の権限は、11.2.0.3以前のOracleバージョンに適用されます。

表4-2 Oracle GoldenGate権限、Oracleバージョン11.2.0.3以前

権限

Extractクラシック・モード

Extract統合モード

Replicat

Manager

目的

CREATE SESSION

および

ALTER SESSION

X

X

X

データベースに接続

ALTER SYSTEM

X

X

ロギングの有効化などの管理変更を実行

RESOURCE

X

X

X

オブジェクトを作成

RESOURCEをReplicatに付与できない場合は、次を使用:

ALTER USER user QUOTA {size | UNLIMITED} ON tablespace;

CONNECT

X

X

X

Replicatの場合は、Replicatがターゲット・オブジェクトを所有している場合のみ必要。または、CREATE objectを使用。

SELECT ANY DICTIONARY

X

X

X

SYSスキーマのデータ・ディクショナリ・オブジェクトの問合せを実行

FLASHBACK ANY TABLE

または

FLASHBACK ON schema.table

X

X

フラッシュバック問合せを実行

SELECT ANY TABLE

または

schema.tableに対するSELECT

X

X

X

任意の表で問合せを実行

dba_clustersに対するSELECT

X

X

ターゲット表に対するINSERT、UPDATE、DELETE

X

レプリケートされたDMLをターゲット・オブジェクトに適用

CREATE TABLE

X

チェックポイント表をターゲット・データベースに作成

DBMS_FLASHBACKパッケージに対するEXECUTE

X

X

DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBERをコール

ターゲット・オブジェクトのDDL権限(DDLサポートを使用している場合)

X

レプリケートされたDDLをターゲット・オブジェクトに発行

GGS_GGSUSER_ROLE (DDLサポートを使用している場合)

X

X

Oracle GoldenGate DDLオブジェクトのDML権限。ロールは、DDLオブジェクトのインストール時に、SYSDBA権限を持つユーザーによって作成されます。

Oracle GoldenGate DDLオブジェクトに対するDELETE

X

Oracle GoldenGate DDLオブジェクトを保持するパラメータを使用

LOCK ANY TABLE

X

ターゲット表をロック。SQL*Loaderへのダイレクト・バルク・ロードを使用する初期ロードのみに必要。

SELECT ANY TRANSACTION

X

新しいOracle ASM APIを使用。「クラシック・キャプチャ・モードでのASMストアド・ログのマイニング」を参照してください。

dbms_streams_auth.grant_admin_privilegeで付与される権限

X

データベース・ログマイニング・サーバーと対話

dbms_logmnr_d packageに対するEXECUTE

X

REGISTER EXTRACTコマンドを発行

11.1.0.5以上11.2.0.1以下のOracleバージョンに必要。

sys.logmnr_buildlogからのSELECT

X

REGISTER EXTRACTコマンドを発行

11.1.0.5以上11.2.0.1以下のOracleバージョンに必要。

4.1.4.3 dbms_goldengate_auth.grant_admin_privilegeパッケージについて

ExtractおよびReplicatがクラシックおよび統合モードで動作するために必要なほとんどの権限は、dbms_goldengate_auth.grant_admin_privilegeパッケージを使用して付与されます。

- 次は、Oracle 11.2.0.4以上の基本的な権限を付与します。最初の例はデフォルトで、キャプチャおよび適用の両方に付与します。2番目は、キャプチャまたは適用(この場合はキャプチャ)に明示的に付与する方法を示します。

grant_admin_privilege('ggadm')
grant_admin_privilege('ggadm','capture');

- 次は、Oracle 11.2.0.3の基本的な権限を付与します。最初の例はデフォルトで、キャプチャおよび適用の両方に付与します。2番目は、キャプチャに明示的に付与する方法を示します。

grant_admin_privilege('ggadm',grant_select_privileges=>true)
grant_admin_privilege('ggadm','capture',grant_select_privileges=>true)

4.1.4.4 dbms_goldengate_auth.grant_admin_privilegeのオプションの付与

表4-3に示すように、オプションの機能をサポートするために、追加の付与をdbms_goldengate_auth.grant_admin_privilegeに追加できます。

表4-3 オプションのdbms_goldengate_auth.grant_admin_privilege付与

ロール/権限

Extractクラシック・モード

Extract統合モード

Replicat

目的

DV_GOLDENGATE_ADMIN

X

X

X

Oracle Data Vaultが使用されている場合にキャプチャまたは適用。

Oracle Database Vault環境にユーザー・アカウントを作成するDV_ACCTMGRロールを付与。

また、Oracle Data VaultでTRANLOGOPTIONS DBLOGREADERのクラシック・キャプチャを使用している場合は、DV_GOLDENGATE_REDO_ACCESSも付与。「クラシック・キャプチャ・モードでのASMストアド・ログのマイニング」を参照してください。

レルムに適用する場合は、DBMS_MACADM.ADD_AUTH_TO_REALMの権限もReplicatに付与。

EXEMPT ACCESS POLICY

X

X

X

Oracle Virtual Private Databaseが使用されている場合にキャプチャまたは適用。

EXEMPT REDACTION POLICY

X

X

X

リダクション済データをキャプチャまたは適用

これらの権限の1つ以上をカンマ区切りリストとして'CAPTURE'、'APPLY'、または'*'に付与できます。デフォルトは* (キャプチャまたは適用)です。

- 次の例では、Extractに必要な権限に加えて、DV_GOLDENGATE_ADMINおよびEXEMPT REDACTION POLICYがExtract (キャプチャ)ユーザーggadmに付与されています。

dbms_goldengate_auth.grant_admin_privilege('ggadm','capture', grant_optional_privilege=>'DV_GOLDENGATE_ADMIN,EXEMPT REDACTION POLICY')

- 次の例では、Extractに必要な権限に加えて、オプションのすべての権限がExtract (キャプチャ)ユーザーggadmに付与されています。

dbms_goldengate_auth.grant_admin_privilege('ggadm','capture', grant_optional_privileges=>'*')

- Extractが統合モードのDatabase Vault 12c環境の場合、Database Vault所有者は追加で次の2つの権限を付与する必要があります。

- BEGIN
DVSYS.DBMS_MACADM.ADD_AUTH_TO_REALM
(REALM_NAME   => 'Oracle Default Component Protection Realm'
,GRANTEE      => '<GGADMIN>'
,AUTH_OPTIONS => DBMS_MACUTL.G_REALM_AUTH_OWNER) ;
END ;
/

- BEGIN
dbms_macadm.authorize_ddl('SYS','SYSTEM');
END;
/

- Extractがクラシック・モードのOracle Transparent Data Encryption (TDE)環境の場合、ORACLE_HOME/rdbms/adminから追加でprvtclkm.plbパッケージをインストールし、GoldenGate管理ユーザー<GGADMIN>に実行権限を付与する必要があります。
grant execute on sys.dbms_internal_clkm to <GGADMIN>

dbms_goldengate_auth.grant_admin_privilegeの詳細は、次を参照してください。

Data Vault要件の詳細は、次を参照してください。

4.2 Oracle GoldenGate資格証明の保護

データのセキュリティを確保し、Oracle GoldenGateの処理を正確に監視するため、他のユーザー、アプリケーションまたはプロセスにOracle GoldenGateデータベース・ユーザーとしてのログオンまたは操作を許可しないでください。

Oracle GoldenGateには、Oracle GoldenGateプロセスに割り当てられたログイン資格証明を保護する様々なオプションが用意されています。推奨されるオプションは、資格証明ストアを使用することです。1つの資格証明ストアを作成して、Oracle GoldenGateのすべてのインストールでアクセス可能な共有の場所に格納したり、Oracle GoldenGateがインストールされるシステムごとに個別の資格証明ストアを作成したりできます。

資格証明ストアには、割り当てられている各Oracle GoldenGateユーザーのユーザー名およびパスワードが格納されます。ユーザーIDは1つ以上の別名に関連付けられ、実際のユーザー名またはパスワードではなく、コマンドおよびパラメータ・ファイルで提供される別名です。資格証明ファイルはドメインにパーティション化できるため、別名の標準のセットをプロセスに使用して、各システムの管理者がローカルで管理できます。

資格証明ストアの作成およびユーザー資格証明の追加の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

5 キャプチャおよび適用モードの選択

この章では、データベース環境に適切なキャプチャおよび適用モードを決定するために役立つ情報について説明します。

この章の内容は次のとおりです。

- Oracle GoldenGateキャプチャおよび適用プロセスの概要

- 使用するキャプチャ方法の決定

- 使用する適用方法の決定

- 異なるキャプチャおよび適用モードの併用

- 異なるプロセスモードへの切替え

5.1 Oracle GoldenGateキャプチャおよび適用プロセスの概要

Oracle GoldenGateキャプチャ・プロセスは、Extractと呼ばれます。Extractプロセスの各インスタンスは、groupと呼ばれ、プロセス自身と、プロセスをサポートする関連ファイルが含まれます。

data pumpと呼ばれる追加のExtractプロセスは、ソース・システムで使用することをお薦めします(これにより、キャプチャされたデータは、trailと呼ばれる一連のファイルにローカルに保持できます)。データ・ポンプはデータをキャプチャしませんが、ローカルの証跡を読み取り、ネットワーク経由でデータをターゲットに伝播します。

Oracle GoldenGate適用プロセスは、Replicatと呼ばれます。Replicatプロセスの各インスタンスは、groupと呼ばれ、プロセス自身と、プロセスをサポートする関連ファイルが含まれます。Replicatは、trailと呼ばれる、ローカル記憶域に送信されるデータを読み取り、ターゲット・データベースに適用します。

図5-1は基本的なOracle GoldenGateプロセス構成を示しています。Oracle GoldenGateプロセスの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

図5-1 基本的な構成

注意:

Oracle Databaseは、Extractでログ・ファイルを処理できるように、ARCHIVELOGモードにする必要があります。

5.2 使用するキャプチャ方法の決定

Oracleソース・データベースの場合、クラシック・キャプチャ・モードまたは統合キャプチャ・モードのいずれかでExtractを実行できます。使用する方法によって、Oracle GoldenGateプロセスの構成が決定されますが、次のような要因に依存します。

- 含まれるデータ型

- データベース構成

- Oracle Databaseのバージョン

次に、これらのモードと各モードでサポートされるデータベースのバージョンについて説明します。

5.2.1 クラシック・キャプチャについて

クラシック・キャプチャ・モードでは、Oracle GoldenGate Extractプロセスは、ソース・システムのOracle REDOまたはアーカイブ・ログ・ファイルまたはスタンバイ・システムの転送されたアーカイブ・ログからデータ変更をキャプチャします。図5-2はクラシック・キャプチャ・モードでのExtractの構成を示しています。

図5-2 クラシック・キャプチャ

クラシック・キャプチャでは、ほとんどのOracleデータ型が完全にサポートされ、複雑なデータ型は制限付きでサポートされます。クラシック・キャプチャは、オリジナルのOracle GoldenGateキャプチャ方法です。クラシック・キャプチャは、マルチテナント・コンテナ・データベースを除く、Oracle GoldenGateでサポートされる任意のソースOracle RDBMSに対して使用できます。

次のもののサポートにクラシック・キャプチャを使用できます。

- ソース・データベース互換性が11.2.0.0.0未満に設定されたUDT、VARRAY、NOLOGGING LOB

- ソース・データベース互換性が11.0.0.0.0未満に設定されたTransparent Data Encryptionサポート

- ソース・データベース互換性が11.2.0.0.0未満に設定されたSECUREFILE LOBサポート

- ソース・データベース互換性が11.2.0.0.0未満に設定されたNOLOGGING LOBサポート

詳細は、「各キャプチャ・モードでサポートされるOracleデータ型とオブジェクトのサマリー」を参照してください。

5.2.2 統合キャプチャについて

統合キャプチャ・モードでは、Oracle GoldenGate Extractプロセスはデータベース・ログマイニング・サーバーと直接対話し、論理変更レコード(LCR)形式でデータの変更を受け取ります。図5-3は統合キャプチャ・モードでのExtractの構成を示しています。

図5-3 統合キャプチャ

統合キャプチャでは、クラシック・キャプチャより多くのデータと記憶域のタイプがサポートされ、サポートがより透過的です。詳細は、「各キャプチャ・モードでサポートされるOracleデータ型とオブジェクトのサマリー」を参照してください。

統合キャプチャのその他の利点は、次のとおりです。

- 統合キャプチャはデータベースと完全に統合されているため、Oracle RAC、ASMおよびTDEと組み合せる場合に追加設定は必要ありません。

- 統合キャプチャでは、データベース・ログマイニング・サーバーを使用してOracle REDOストリームにアクセスします。アーカイブ・ログの異なるコピー間またはオンライン・ログの異なるミラー・バージョン間での切替えは自動的に行われます。したがって、統合キャプチャでは、ディスクの破損、ハードウェア障害またはオペレータの誤操作によって使用できないログ・ファイルがある場合、その他のアーカイブ・ログやオンライン・ログが使用できれば、この状態が透過的に処理されます。

- 統合キャプチャによって、表のフィルタリングが高速になります。

- 統合キャプチャでは、Point-in-TimeリカバリおよびRAC統合がより効率的に処理されます。

- 統合キャプチャには、統合ログ管理の機能が備わっています。Oracle Recovery Manager (RMAN)で、Extractで必要なアーカイブ・ログが自動的に保持されます。

- 統合キャプチャは、マルチテナント・コンテナ・データベースからのキャプチャをサポートする唯一のモードです。1つのExtractで、マルチテナント・コンテナ・データベース内の複数のプラガブル・データベースをマイニングできます。

- リリース11.2.0.4以降のソース・データベース(11.2.0.4以上に設定されたソース互換性)の場合、DDLのキャプチャはログマイニング・サーバーによって非同期に実行され、専用のトリガー、表またはその他のデータベース・オブジェクトをインストールする必要はありません。Oracle GoldenGateのアップグレードは、ユーザー・アプリケーションを停止することなく実行できます。DDLトリガーおよびサポート・オブジェクトを使用する必要があるのは、Extractが統合モードで、Oracle 11gソース・データベースがバージョン11.2.0.4より前の場合です。

- 統合キャプチャおよび統合適用は両方ともデータベース・オブジェクトのため、オブジェクトの命名は、他のOracle Databasオブジェクトと同じルールに従います。詳細は、次を参照してください。

5.2.2.1 統合キャプチャでサポートされるデータベースのバージョン

データベースのバージョンによって、統合キャプチャで使用可能なデータ型サポートが決まります。

- フル・サポート: すべてのOracleデータ型と記憶域のタイプをサポートするには、ソース・データベースの互換性設定を統合Extract 11.2.x用11.2.0.3データベース固有のバンドル・パッチ(My Oracle SupportドキュメントID 1557031.1)が適用された11.2.0.3以上にする必要があります。このパッチをMy Oracle Supportから入手するには、次へ移動します。
https://support.oracle.com/oip/faces/secure/km/DocumentDisplay.jspx?id=1557031.1

- DDLサポート・オブジェクトをインストールせずにDDLキャプチャをサポートするには、ソース・データベースをOracle 11.2.0.4以上にする必要があります。それより前のデータベース・バージョンでは、DDLサポート・オブジェクトが必要です。詳細は、「トリガーベースのDDLキャプチャのインストール」を参照してください。

- 制限付きサポート: 統合キャプチャは、互換性が11.2.0.3未満のソース・データベースに対する11.2.0.3ダウンストリーム・マイニング・データベースで使用できますが、このモードでは、SECUREFILE LOB、XML列、Transparent Data EncryptionおよびUDTのサポートは、データベース・バージョンおよび互換性に基づいて制限されます。ダウンストリーム・マイニング・データベースは、統合Extract 11.2.x用11.2.0.3データベース固有のバンドル・パッチ(Doc ID 1557031.1)が適用されている必要があります。「統合キャプチャ・デプロイ・オプション」を参照してください。ダウンストリーム・マイニング・データベースは、マイニングされるソース・データベース・リリースと同じ(またはそれ以上の)データベース・リリース(11.2.0.3以上)である必要があります。

異なるRDBMSバージョン間のデータ型サポートの違いを理解するには、「各キャプチャ・モードでサポートされるOracleデータ型とオブジェクトのサマリー」を参照してください。

5.2.2.2 統合キャプチャ・デプロイ・オプション

この項では、統合キャプチャのデプロイ・オプションについて説明しますが、それらはマイニング・データベースのデプロイ場所によって異なります。マイニング・データベースは、ログマイニング・サーバーがデプロイされているデータベースです。

- ローカル・デプロイ: ローカル・デプロイの場合、ソース・データベースとマイニング・データベースは同じです。ソース・データベースは、REDOストリームをマイニングして変更をキャプチャする対象のデータベースで、ログマイニング・サーバーのデプロイ先でもあります。統合キャプチャはデータベースと完全に統合されているため、このモードでは、特別なデータベース設定は不要です。

- ダウンストリーム・デプロイ: ダウンストリーム・デプロイでは、ソース・データベースとマイニング・データベースは、異なるデータベースです。ログマイニング・サーバーは、ダウンストリーム・データベースに作成します。REDOログをダウンストリーム・マイニング・データベースに転送してそこでキャプチャを行うようにソース・データベースのREDO転送を構成します。キャプチャのオーバーヘッドや変換によるその他のオーバーヘッドおよび本番サーバーの他の処理を軽減するには、キャプチャにダウンストリーム・マイニング・サーバーを使用することをお薦めしますが、これにはログの転送や他の構成が必要です。
ダウンストリーム・マイニング構成を使用する場合、ソース・データベースとマイニング・データベースは同じプラットフォームのものである必要があります。たとえば、ソース・データベースがWindows 64ビットで稼働している場合、ダウンストリーム・データベースのプラットフォームもWindows 64ビットである必要があります。ダウンストリーム・マイニング・データベースを構成するには、「ダウンストリーム・マイニング・データベースの構成」および「ダウンストリーム・マイニング構成の例」を参照してください。

- ダウンストリームOracle Active Data Guardデプロイ: FETCHUSERIDまたはFETCHUSERIDALIASパラメータを使用してuserid/pwd@adgを設定し、Oracle Active Data Guard (ADG)からフェッチできます。

- ダウンストリーム・ソースレスExtractデプロイ: Extractパラメータ・ファイルでUSERIDパラメータをNOUSERIDで置換します。TRANLOGOPTIONS MININGUSERを使用する必要があります。このデプロイメントでは、ソース・データベースのREDOがOracle GoldenGateリリース11.2.0.4以上と互換性があることが必要です。Extractは必要な情報をすべてダウンストリーム・マイニング・データベースから取得します。ソース・データベースへの接続には依存しません。Extractに影響を与えることなくソース・データベースを停止および再起動できます。
ソース・データベースからデータをフェッチする必要があるREDO変更が発生すると、Extractは異常終了します。

- ADGスタンバイ・データベースからの統合Extractデプロイ: 従来、Extractがデータをフェッチするときは、ソース・データベースに接続して、そこからデータをフェッチしていました。このデプロイメントを使用すると、フェッチをADGスタンバイ・データベースにオフロードできます。これにより、レプリケーションの有効化に必要なソース・データベース上の処理が削減されます。ダウンストリームおよびソースレス構成と併用すると、ソース・データベースで必要な処理がほぼ完全になくなります。

5.3 使用する適用方法の決定

Replicatプロセスは、レプリケートされたデータをOracleターゲット・データベースに適用します。Oracle GoldenGateプロセスの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

Oracleターゲット・データベースの場合、非統合モードまたは統合モードのいずれかでReplicatを実行できます。次に、これらのモードと各モードでサポートされるデータベースのバージョンについて説明します。

5.3.1 非統合Replicatについて

非統合モードでは、Replicatプロセスは標準のSQLを使用してデータを直接ターゲット・データベースに適用します。このモードでは、Replicatは次のように動作します。

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

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

- ソース・データベースのDMLまたはDDLトランザクションを表すSQL文を作成します(コミット順)。

- Oracle Call Interface (OCI)でSQLをターゲットに適用する。

図5-4は非統合モードでのReplicatの構成を示しています。

図5-4 非統合Replicat

非統合Replicatは、次の場合に使用します。

- ターゲットOracle DatabaseのバージョンがOracle 11.2.0.4より前の場合。

- 非統合Replicatモードでサポートされない機能を多用する場合。詳細は、「統合Replicatについて」を参照してください。

条件付きReplicat構成を使用することで、トランザクションを非統合Replicatと並行して適用できます。詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

5.3.2 統合Replicatについて

統合モードでは、Replicatプロセスは、Oracle Database内で使用可能な適用処理機能を利用します。このモードでは、Replicatは次のように動作します。

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

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

- ソース・データベースDMLトランザクションを表す論理変更レコード(LCR)を構築する(コミットされた順)。DDLはReplicatによって直接適用されます。

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

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

図5-5は統合モードでのReplicatの構成を示しています。

図5-5 統合Replicat

単一のReplicat構成内で、適用サーバーと呼ばれるインバウンド・サーバーの複数の子プロセスがトランザクションをパラレルに適用し、元のトランザクションのアトミック性を保持します。この並列度は、Replicatプロセスの構成時、または必要に応じて動的に、ターゲット・システムのサポートに応じて増加できます。図5-6は2つの並列適用サーバーで構成された統合Replicatを示しています。

図5-6 2つの並列適用サーバーの統合Replicat

統合Replicatはトランザクションを非同期に適用します。高速のスループットを達成するために、相互依存性のないトランザクションを安全に実行して順不同でコミットできます。相互依存性のあるトランザクションは、ソースと同じ順序で適用されます。

インバウンド・サーバーのリーダー・プロセスは、ターゲット・データベースで定義される制約(主キー、一意キー、外部キー)に基づいて、ワークロードのトランザクション間の相互依存性を計算します。バリア・トランザクションおよびDDL操作も自動的に管理されます。コーディネータ・プロセスは、複数のトランザクションを調整し、適用サーバー間の順序を管理します。

インバウンド・サーバーが構成済機能または列タイプをサポートしていない場合、Replicatはインバウンド・サーバーから切断して、インバウンド・サーバーがキューのトランザクションを完了するのを待機し、OCIを使用して直接適用モードでトランザクションをデータベースに適用します。Replicatは、直接トランザクションの適用後に統合モードで処理を再開します。

次の機能は、Replicatによって直接モードで適用されます。

- DDL操作

- 順序操作

- TABLE内のSQLEXECパラメータまたはMAPパラメータ

- EVENTACTIONS処理

- UDTに関する注意: ExtractがUSENATIVEOBJSUPPORTを使用してUDTを取得すると、統合Replicatがインバウンド・サーバーで適用し、そうでない場合は、Replicatによって直接処理されます。

トランザクションは、直接適用モードでシリアルに適用されるため、このような操作を多用すると、統合Replicatモードのパフォーマンスが低下する場合があります。統合Replicatは、適用処理のほとんどが統合モードで実行可能な場合に、最高のパフォーマンスを発揮します。「インスタンス化後の処理の監視および制御」を参照してください。

注意:

ユーザー・イグジットは統合モードで実行されます。ユーザー・イグジットにより予期しない結果が発生する場合がありますが、終了コードは、レプリケーション・ストリームのデータによって異なります。

5.3.2.1 統合Replicatの利点

非統合Replicatではなく統合Replicatを使用する利点は次のとおりです。

- 統合Replicatは、複数のトランザクションを同時に適用するパラレル適用プロセス間で自動的にパーティション化でき、ソース・トランザクションの完全性とアトミック性を保持します。適用プロセスの最小数および最大数の両方をPARALLELISMおよびMAX_PARALLELISMパラメータで構成できます。Replicatは、ワークロードが増加すると、追加のサーバーを自動的に追加し、ワークロードが軽減されると、再度下方に調整します。

- 統合Replicatでは、最小の作業を構成する必要があります。すべての作業は、レンジ・パーティションを構成することなく1つのReplicatパラメータ・ファイル内に構成されます。

- 高パフォーマンスの適用ストリーミングは、Replicatおよびインバウンド・サーバー間で、軽量アプリケーション・プログラミング・インタフェース(API)によって、統合Replicatで有効化されます。

- バリア・トランザクションは、複数のサーバー適用プロセス間で、統合Replicatによって調整されます。

- DDL操作は、DDLの実行前にサーバー処理が完了まで待機することで、バリアを強制する直接トランザクションとして処理されます。

- 一時的な重複主キー更新は、統合Replicatによってシームレスに処理されます。

- 統合Replicatは、単一またはプラガブル・データベースで動作します。

5.3.2.2 統合Replicatの要件

統合Replicatを使用するには、次の条件を満たす必要があります。

- ターゲットOracle DatabaseがOracle 11.2.0.4以上である必要があります。

- 表間の依存性の計算およびターゲットでの同時トランザクションのスケジューリングをサポートするには、サプリメンタル・ロギングをソース・データベースで有効にする必要があります。必要なロギングの有効化の手順は、「ロギング・プロパティの構成」を参照してください。このロギングは任意の時点で有効化できますが、その前に、Oracle GoldenGateプロセスを開始します。

5.4 異なるキャプチャおよび適用モードの併用

次のキャプチャおよび適用モードを一緒に使用できます。

- クラシック・キャプチャ(Oracleまたは非Oracleソース)および非統合Replicat

- クラシック・キャプチャ(Oracleまたは非Oracleソース)および統合Replicat

- 統合キャプチャおよび非統合Replicat

- 統合キャプチャおよび統合Replicat

統合キャプチャおよびクラシック・キャプチャを同じソースOracle GoldenGateインスタンス内で同時に使用し、統合Replicatおよび非統合Replicatを同じターゲットOracle GoldenGateインスタンス内で同時に使用できます。クラシック・キャプチャ・モードと統合キャプチャ・モード間、および非統合Replicatモードと統合Replicatモード間では、DDLまたはDMLは調整されないため、この構成には、適切なプロセス・グループ内にオブジェクトを慎重に配置する必要があります。各Extractグループでは、表のデータ型および属性に基づいて、処理モードに適したオブジェクトを処理する必要があります。一方のExtractのオブジェクトに、もう一方のExtractのオブジェクトのDMLまたはDDL依存性を含めることはできません。同じタイプの分離をReplicat構成に適用する必要があります。

Oracleバージョンによってサポートされる場合、推奨されるOracle GoldenGate構成は、1つの統合キャプチャをOracleソースで使用し、Oracleターゲットのソース・データベースごとに、1つの統合Replicatを使用することです。統合キャプチャは、クラシック・キャプチャよりも特定のデータ型を完全にサポートします。インバウンド・サーバーを使用するか、必要時に直接適用に切り替えることで、1つの統合Replicat構成ですべてのOracleデータ型をサポートし、ソース・トランザクションの完全性を保持します。必要に応じて、並列度設定を目的の適用パフォーマンス・レベルに調整できます。

ターゲット・データベースが統合ReplicatをサポートしないOracleバージョンか、Oracle Database以外の場合は、調整済のReplicat構成を使用できます。詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

5.5 異なるプロセスモードへの切替え

プロセス・モードを切り替えることができます。たとえば、クラシック・キャプチャから統合キャプチャ、統合キャプチャからクラシック・キャプチャに切り替えることができます。詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

6 マルチテナント・コンテナ・データベースでのOracle GoldenGateの構成

この章では、マルチテナント・コンテナ・データベース(CDB)にOracle GoldenGateを構成する場合の手順について説明します。

この章の内容は次のとおりです。

- プラガブル・データベースでのOracle GoldenGateの使用

- マルチテナント・コンテナ・データベースのその他の要件

6.1 プラガブル・データベースでのOracle GoldenGateの使用

ほとんどの場合、Oracle GoldenGateは、通常のOracle Databaseでの動作と同じように、マルチテナント・コンテナ・データベースで動作します。したがって、次の章の実際の構成手順の基本として、次の手順を考慮します。

統合モードでのキャプチャの構成

Oracle GoldenGateの適用の構成

6.1.1 プラガブル・データベースからのキャプチャ

1つのExtractグループで、複数のプラガブル・データベースから単一の証跡にキャプチャできます。パラメータ・ファイルで、container.schema.objectの形式の3つの部分からなる完全修飾名で、ソース・オブジェクトをTABLEおよびSEQUENCE文に指定する必要があります。

3つの部分からなる名前を指定する代替方法として、SOURCECATALOGパラメータでデフォルトのプラガブル・データベースを指定し、後続のTABLEまたはSEQUENCEパラメータに、schema.objectのみを指定できます。この構成の複数のインスタンスを使用して、複数のソース・プラガブル・データベースを処理できます。次に例を示します。

SOURCECATALOG pdb1
TABLE schema*.tab*;
SEQUENCE schema*.seq*;
SOURCECATALOG pdb2
TABLE schema*.tab*;
SEQUENCE schema*.seq*;

6.1.2 プラガブル・データベースへの適用

Replicatは、1つのプラガブル・データベースのみに接続して適用できます。正しいものを指定するには、USERIDまたはUSERIDALIASパラメータで指定するデータベース・ユーザーにSQL*Net接続文字列を使用します。たとえば、GGADMIN@FINANCEです。パラメータ・ファイルで、MAP文のTARGETの部分に、schema.objectのみを指定します。MAPの部分で、3つの部分からなる名前の複数のプラガブル・データベースからキャプチャされるソース・オブジェクトを識別するか、2つの部分からなる名前のSOURCECATALOGパラメータを使用します。次に、この構成の例を示します。

SOURCECATALOG pdb1
MAP schema*.tab*, TARGET *1.*;
MAP schema*.seq*, TARGET *1.*;
SOURCECATALOG pdb2
MAP schema*.tab*, TARGET *2.*;
MAP schema*.seq*, TARGET *2.*;

次に、SOURCECATALOGを使用せずにソース・プラガブル・データベースを識別する例を示します。この場合、ソース・オブジェクトは3つの部分からなる名前で指定されます。

MAP pdb1.schema*.tab*, TARGET *1.*;
MAP pdb1.schema*.seq*, TARGET *1.*;

複数のソース・プラガブル・データベースから複数のターゲット・プラガブル・データベースへのレプリケーションを構成するには、パラレルExtractおよびReplicatストリームを構成し、それぞれ1つのプラガブル・データベースのデータを処理できます。または、複数のソース・プラガブル・データベースから1つのExtractキャプチャを構成できます(複数のReplicatグループによって読み取られる1つの証跡を書き込み、それぞれ異なるターゲット・プラガブル・データベースに適用します)。別の代替方法として、複数の証跡への1つのExtract書込みを使用する方法があり、各証跡は、特定のターゲット・プラガブル・データベースに割り当てられたReplicatによって読み取られます(図6-1を参照)。

図6-1 複数のプラガブル・データベースからのキャプチャおよび適用の可能な構成

6.1.3 構成からのオブジェクトの除外

プラガブル・データベース、スキーマおよびオブジェクトを構成から除外するには、CATALOGEXCLUDE、SCHEMAEXCLUDE、TABLEEXCLUDE、MAPEXCLUDEおよびEXCLUDEWILDCARDOBJECTSONLYパラメータを使用できます。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

6.2 マルチテナント・コンテナ・データベースのその他の要件

マルチテナント・コンテナ・データベースとの間でレプリケーションを適用する特別な条件は次のとおりです。

- マルチテナント・コンテナ・データベースのすべてのプラガブル・データベースは、キャラクタ・セット、ロケール、大文字/小文字の区別など、同じ属性が必要です。プラガブル・データベースのキャラクタ・セットはルート・コンテナのキャラクタ・セットのサブセットにできます。

- Extractは統合キャプチャ・モードで動作する必要があります。Extractキャプチャ・モードの詳細は、「使用するキャプチャ方法の決定」 を参照してください。Replicatは任意のモードで動作できます。

- ログマイニング・サーバーと対話するには、Extractが共通ユーザーとしてルート・コンテナ(cdb$root)に接続する必要があります。ルート・コンテナを指定するには、USERIDまたはUSERIDALIASパラメータで指定するデータベース・ユーザーに適切なSQL*Net接続文字列を使用します。例: C##GGADMIN@FINANCE。Oracle GoldenGateプロセスのユーザーの作成および適切な権限を付与する方法は、「Oracle GoldenGate資格証明の確立」を参照してください。

- dbms_goldengate_auth.grant_admin_privilegeパッケージは、マルチテナント・コンテナ・データベース内のキャプチャおよび適用の適切な権限を付与します。これにはcontainerパラメータが含まれ、次の例のようにALLに設定する必要があります。

dbms_goldengate_auth.grant_admin_privilege('C##GGADMIN',container=>'all')

Oracle GoldenGateプロセスの構成を開始するには、次の章を参照してください。

統合モードでのキャプチャの構成

Oracle GoldenGateの適用の構成

7 統合モードでのキャプチャの構成

この章では、統合モードでトランザクション・データをキャプチャするようにOracle GoldenGateキャプチャ・プロセスを構成する手順について説明します。Extractのモードの詳細は、「キャプチャおよび適用モードの選択」を参照してください。

この章は次の項で構成されています:

- 統合キャプチャの構成の前提条件

- この手順でできること

- 統合キャプチャ・モードでのプライマリExtractの構成

- データ・ポンプExtractの構成

- 次の手順

注意:

アクティブなExtract構成をクラシック・モードから統合モードにモードに切り替えるには、次の構成手順を実行し、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

7.1 統合キャプチャの構成の前提条件

統合モードでExtractを構成する前に、次の項のガイドラインを満たす必要があります。

1. Oracle GoldenGateのためのデータベースの準備

2. Oracle GoldenGate資格証明の確立

3. 「キャプチャおよび適用モードの選択」

4. Managerプロセスを構成して、ソース・システムにOracle GoldenGateインスタンスを作成します。Oracle GoldenGate Windows and UNIXの管理を参照してください。

5. また、Oracle GoldenGateの管理for Windows and UNIXのガイドラインも確認してください

7.2 この手順でできること

次の手順では、プライマリExtract(データ・ソースからトランザクション・データをキャプチャ)、およびデータ・ポンプExtract (trailにローカルに格納されているキャプチャ済データをソース・システムからターゲット・システムに伝播)の基本的なExtractパラメータ(構成)ファイルの構成方法について説明します。ビジネス要件によってはより複雑なトポロジが必要ですが、この手順がその他の構成手順の基礎となります。

手順を実行することで、次のことが可能です。

- 基本的な構成ファイルが作成されます。

- 後で環境に適用する機能や要件について決定を下してパラメータを追加し、それらを拡張します。

- コピーを使用して、一から作成するよりも短時間で追加パラメータ・ファイルを作成します。

7.3 統合キャプチャ・モードでのプライマリExtractの構成

プライマリExtractがログマイニング・サーバーからログ変更のレコードをキャプチャするマイニング・データベースは、ローカルまたはソース・データベースからダウンストリームのいずれかが可能です。次の手順では、いずれかの場所から統合モードでトランザクション・データをキャプチャするようにプライマリExtractを構成します。ダウンストリーム・マイニング・データベースからのキャプチャの詳細は、「ダウンストリーム・マイニング・データベースの構成」および「ダウンストリーム・マイニング構成の例」を参照してください。

注意:

マルチテナント・コンテナ・データベース内の単一データベースまたは複数のプラガブル・データベースからキャプチャするには、一般的に1つのExtractグループで十分です。「マルチテナント・コンテナ・データベースでのOracle GoldenGateの構成」を参照してください。

1. ソース・システムのGGSCIで、Extractパラメータ・ファイルを作成します。

EDIT PARAMS name

説明: nameは、プライマリExtractの名前です。

2. 次に示す順序でExtractパラメータを入力します。パラメータ文ごとに新しい行を開始します。通常のデータベースおよびマルチテナント・コンテナ・データベースの例を示します。2つの違いは、TABLEおよびSEQUENCE指定の2つの部分からなるオブジェクト名を使用する必要があるか、または3つの部分からなるオブジェクト名を使用する必要があるかです。詳細およびパラメータの説明は、表7-1を参照してください。

マイニング・データベースがダウンストリーム・データベースであり、FETCHに使用されるソースADGを備える通常のデータベースの場合のExtractの基本的なパラメータ

EXTRACT financep
USERIDALIAS tiger1
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
DDL INCLUDE MAPPED
ENCRYPTTRAIL AES192
EXTTRAIL /ggs/dirdat/lt
SEQUENCE hr.employees_seq;
TABLE hr.*;

マイニング・データベースがダウンストリーム・データベースであり、FETCHに使用されるソースADGを備えるマルチテナント・コンテナ・データベースの場合のExtractの基本的なパラメータ

EXTRACT financep
USERIDALIAS tiger1
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
DDL INCLUDE MAPPED SOURCECATALOG pdb1 INCLUDE MAPPED SOURCECATALOG pdb2
ENCRYPTTRAIL AES192
EXTTRAIL /ggs/dirdat/lt
TABLE test.ogg.tab1;
SOURCECATALOG pdb1
SEQUENCE hr.employees_seq;
TABLE hr.*;
SOURCECATALOG pdb2
TABLE sales.*;
TABLE acct.*;

マイニング・データベースがダウンストリーム・データベースおよび通常のデータベースの場合のExtractの基本的なパラメータ

EXTRACT financep
USERIDALIAS tiger1
TRANLOGOPTIONS MININGUSERALIAS tiger2
TRANLOGOPTIONS INTEGRATEDPARAMS (MAX_SGA_SIZE 164, &
DOWNSTREAM_REAL_TIME_MINE y)
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
DDL INCLUDE MAPPED
ENCRYPTTRAIL AES192
EXTTRAIL /ggs/dirdat/lt
SEQUENCE hr.employees_seq;
TABLE hr.*;

マイニング・データベースがダウンストリーム・データベースおよびマルチテナント・コンテナ・データベースの場合のプライマリExtractの基本的なパラメータ

EXTRACT financep
USERIDALIAS tiger1
TRANLOGOPTIONS MININGUSERALIAS tiger2
TRANLOGOPTIONS INTEGRATEDPARAMS (MAX_SGA_SIZE 164, &
DOWNSTREAM_REAL_TIME_MINE y)
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
DDL INCLUDE MAPPED SOURCECATALOG pdb1 INCLUDE MAPPED SOURCECATALOG pdb2
ENCRYPTTRAIL AES192EXTTRAIL /ggs/dirdat/lt
TABLE test.ogg.tab1;
SOURCECATALOG pdb1
SEQUENCE hr.employees_seq;
TABLE hr.*;
SOURCECATALOG pdb2
TABLE sales.*;
TABLE acct.*;

表7-1 統合キャプチャ・モードでのプライマリExtractの基本的なパラメータ

パラメータ

説明

EXTRACT group

groupは、Extractグループの名前です。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

USERIDALIAS alias

Extractに割り当てられるユーザーのデータベース・ログイン資格証明の別名を指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGate資格証明の確立」を参照してください。

LOGALLSUPCOLS

競合検出および解決に必要な列、統合Replicatのサポートに必要なスケジューリング列を含む、証跡に補足的にログに記録されるすべての列を書き込みます。(スケジューリング列は、主キー、一意索引および外部キー列です。)これらの列をGGSCIコマンドでログに記録するようにデータベースを構成します。「ロギング・プロパティの構成」を参照してください。

UPDATERECORDFORMAT COMPACT

UPDATE操作の変更前および変更後のイメージを証跡の単一レコードに結合します。このパラメータは、Oracle Databaseバージョン12c以上で有効で、統合モードのReplicatをサポートします。必須パラメータではありませんが、UPDATERECORDFORMAT COMPACTがベスト・プラクティスで、Replicatパフォーマンスを大幅に改善します。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

TRANLOGOPTIONS MININGUSERALIAS alias

ダウンストリーム・マイニング・データベース(使用する場合)で、ログマイニング・サーバーの接続情報を指定します。

MININGUSERALIASでは、ダウンストリーム・マイニング・データベースのExtractユーザーの別名を指定します。これは、「ダウンストリーム・マイニング・データベースの構成」で作成したユーザーです。このユーザーの資格証明は、Oracle GoldenGate資格証明ストアに格納する必要があります。詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

データベース・ログマイニング・サーバーがソース・データベースと異なるデータベースにある場合にのみMININGUSERALIASを使用し、そうでない場合はUSERIDALIASを使用します。MININGUSERALIASを使用する場合、両方のデータベースで資格証明が必要なため、USERIDALIASとともに使用します。

TRANLOGOPTIONS [INTEGRATEDPARAMS (parameter[, ...])]

(オプション)データベース・ログマイニング・サーバーを含むOracle Databaseにパラメータを渡します。ログマイニング・サーバー・パラメータをデフォルト設定から変更する場合にのみ使用します。「統合キャプチャ用のその他のパラメータ・オプション」を参照してください。

TRANLOGOPTIONS CHECKPOINTRETENTIONTIME days

(オプション)チェックポイントが自動的にパージされるまでExtractが保持する日数を制御します。部分的な日数は、10進値を使用して指定されます。たとえば、8.25は8日と6時間を指定します。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

DDL include_clause

DDL操作をレプリケートする場合に必要です。詳細は、「DDLサポートの構成」を参照してください。

ENCRYPTTRAIL algorithm

ローカル証跡を暗号化します。Oracle GoldenGateの証跡暗号化オプションの詳細は、Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIXを参照してください。

EXTTRAIL pathname

プライマリExtractによってキャプチャされたデータが書き込まれるローカル証跡のパス名を指定します。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください

SOURCECATALOG container

このパラメータは、ソース・データベースがマルチテナント・コンテナ・データベースの場合に使用します。2つの部分からなる名前を含む後続のすべてのTABLEおよびSEQUENCEパラメータで、デフォルトのコンテナとして使用されるプラガブル・データベースの名前を指定します。このパラメータでは、3つの部分からなる名前(container.schema.object)ではなく、2つの部分からなるオブジェクト名(schema.object)を使用できます。別のSOURCECATALOGパラメータが発生するか、3つの部分からなる完全なTABLEまたはSEQUENCE指定が発生するまで実質的に保持されます。

{TABLE | SEQUENCE} [container.]schema.object;

データをキャプチャするデータベース・オブジェクトを指定します。

- TABLEは、表または表のワイルドカード・セットを指定します。

- SEQUENCEは、順序または順序のワイルドカード・セットを指定します。

- containerは、オブジェクトを格納するプラガブル・データベース(PDB)の名前です(このデータベースがマルチテナント・コンテナ・データベースの場合)。このExtractグループが1つのPDBからのデータのみを処理し、デフォルトのPDBがSOURCECATALOGパラメータで指定されている場合、名前のコンテナの部分は不要です。構成要件の詳細は、「マルチテナント・コンテナ・データベースでのOracle GoldenGateの構成」を参照してください。

- schemaは、スキーマ名またはスキーマのワイルドカード・セットです。

- objectは、表または順序名、またはこれらのオブジェクトのワイルドカード・セットです。

ワイルドカードを使用して、または使用せずにオブジェクト名を指定する方法の詳細は、Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIXを参照してください。

パラメータ文はセミコロンで終了します。

名前をワイルドカード指定から除外するには、必要に応じてCATALOGEXCLUDE、SCHEMAEXCLUDE、TABLEEXCLUDEおよびEXCLUDEWILDCARDOBJECTSONLYパラメータを使用します。

詳細およびデータのフィルタリング、マッピングおよび操作を制御するその他のTABLEオプションについては、Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

MAPINVISIBLECOLUMNS

Replicatがデフォルトの列マッピングでOracleターゲット表に非表示列を含めるかどうかを制御します。列マッピングで非表示列を構成するには、SQLを使用して列名を明示的に指定します。次に例を示します。

CREATE TABLE tab1 (id NUMBER, data CLOB INVISIBLE);
INSERT INTO tab1 VALUES (1, 'a');ERROR: ORA-913
INSERT INTO tab1 (id, data) VALUES (1, 'a'); OK

列の可視性を変更するには、ALTER TABLEを使用します。非表示列は、主キーや一意索引などを含む索引を構成することができます。

3. 構成に推奨されるオプションのExtractパラメータを入力します。このファイルは、GGSCIのEDIT PARAMSコマンドを使用して、処理を開始する前にいつでも編集できます。詳細は、Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4. ファイルを保存して閉じます。

7.4 データ・ポンプExtractの構成

次の手順では、ローカル証跡を読み取り、データをネットワーク経由でリモート証跡に送信するデータ・ポンプを構成します。データ・ポンプはオプションですが、使用することをお薦めします。データ・ポンプの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

1. ソース・システムのGGSCIで、データ・ポンプ・パラメータ・ファイルを作成します。

EDIT PARAMS name

説明: nameは、データ・ポンプExtractの名前です。

2. 次に示す順序でデータ・ポンプ・パラメータを入力します。パラメータ文ごとに新しい行を開始します。入力変数は異なるものになります。説明については、表7-2を参照してください。

2つの部分からなるオブジェクト名を使用したデータ・ポンプExtractグループの基本的なパラメータ:

EXTRACT extpump
USERIDALIAS tiger1
RMTHOST fin1, MGRPORT 7809 ENCRYPT AES192, KEYNAME securekey2
RMTTRAIL /ggs/dirdat/rt
SEQUENCE hr.employees_seq;
TABLE hr.*;

3つの部分からなるオブジェクト名を使用したデータ・ポンプExtractグループの基本的なパラメータ(プラガブル・データベースを含む):

EXTRACT extpump
USERIDALIAS tiger1
RMTHOST fin1, MGRPORT 7809 ENCRYPT AES192, KEYNAME securekey2
RMTTRAIL /ggs/dirdat/rt
TABLE test.ogg.tab1;
SOURCECATALOG pdb1
SEQUENCE hr.employees_seq;
TABLE hr.*;
SOURCECATALOG pdb2
TABLE sales.*;
TABLE acct.*;

表7-2 データ・ポンプExtractグループの基本的なパラメータ

パラメータ

説明

EXTRACT group

groupは、データ・ポンプExtractの名前です。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

USERIDALIAS alias

Extractに割り当てられるユーザーのデータベース・ログイン資格証明の別名を指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGate資格証明の確立」を参照してください

RMTHOST hostname,
MGRPORT portnumber,
[, ENCRYPT algorithm
KEYNAME keyname]

- RMTHOSTは、ターゲット・システムの名前またはIPアドレスを指定します。

- MGRPORTは、ターゲットでManagerが実行されるポート番号を指定します。

- ENCRYPTは、TCP/IPでのオプションのデータの暗号化を指定します。

その他のオプションおよび暗号化の詳細は、Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

RMTTRAIL pathname

リモート証跡のパス名を指定します。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

SOURCECATALOG container

このパラメータは、ソース・データベースがマルチテナント・コンテナ・データベースの場合に使用します。2つの部分からなる名前を含む後続のすべてのTABLEおよびSEQUENCEパラメータで、デフォルトのコンテナとして使用されるプラガブル・データベースの名前を指定します。このパラメータでは、3つの部分からなる名前(container.schema.object)ではなく、2つの部分からなるオブジェクト名(schema.object)を使用できます。別のSOURCECATALOGパラメータが発生するか、3つの部分からなる完全なTABLEまたはSEQUENCE指定が発生するまで実質的に保持されます。このパラメータは、ソース・データベースがマルチテナント・コンテナ・データベースの場合に使用します。SOURCECATALOGの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

{TABLE | SEQUENCE} [container.]schema.object;

表または順序、またはワイルドカードで指定された複数のオブジェクトを指定します。ほとんどの場合、このリストはプライマリExtractパラメータ・ファイルのリストと同じです。

- TABLEは、表または表のワイルドカード・セットを指定します。

- SEQUENCEは、順序または順序のワイルドカード・セットを指定します。

- containerは、表または順序を格納するルート・コンテナまたはプラガブル・データベースの名前です(このソース・データベースがマルチテナント・コンテナ・データベースの場合)。この表のSOURCECATALOGの説明を参照してください。

- schemaは、スキーマ名またはスキーマのワイルドカード・セットです。

- objectは、表または順序の名前、またはこれらのオブジェクトのワイルドカード・セットです。

ワイルドカードを使用して、または使用せずにオブジェクト名を指定する方法の詳細は、Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIXを参照してください。

このパラメータ文はセミコロンで終了します。

表または順序をワイルドカード指定から除外するには、TABLE文の後にTABLEEXCLUDEまたはSEQUENCEEXCLUDEパラメータを使用します。

詳細およびデータのフィルタリング、マッピングおよび操作を制御するその他のTABLEオプションについては、Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

3. 構成に推奨されるオプションのExtractパラメータを入力します。このファイルは、GGSCIのEDIT PARAMSコマンドを使用して、処理を開始する前にいつでも編集できます。詳細は、Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4. 構成のその他の考慮事項の詳細は、「統合モード用のオプションのパラメータ」を参照してください。

5. ファイルを保存して閉じます。

7.5 次の手順

統合キャプチャの基本的なパラメータ・ファイルを作成したら、次の追加の構成手順を参照してください。

Oracle GoldenGateの適用の構成

「マルチテナント・コンテナ・データベースでのOracle GoldenGateの構成」

「Oracle GoldenGate構成のその他の考慮事項」

「DDLサポートの構成」(Oracle GoldenGate DDLサポートを使用する場合)

プロセス・グループの作成

「Oracle GoldenGateレプリケーションのインスタンス化」

統合モード用のオプションのパラメータ

ダウンストリーム・マイニング・データベースの構成

ダウンストリーム・マイニング構成の例

XMLスキーマの変更のサポート

8 クラシック・モードでのキャプチャの構成

この章では、クラシック・モードでOracle GoldenGateキャプチャ・プロセスを構成する手順について説明します。

この章の内容は次のとおりです。

- クラシック・キャプチャの構成の前提条件

- この手順でできること

- クラシック・キャプチャ・モードでのプライマリExtractの構成

- データ・ポンプExtractの構成

- 次の手順

注意:

アクティブなExtract構成を統合モードからクラシック・モードにモードに切り替えるには、次の構成手順を実行し、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

8.1 クラシック・キャプチャの構成の前提条件

統合モードでExtractを構成する前に、次の項のガイドラインを満たす必要があります。

1. Oracle GoldenGateのためのデータベースの準備

2. Oracle GoldenGate資格証明の確立

3. 「キャプチャおよび適用モードの選択」

4. Managerプロセスを構成して、ソース・システムにOracle GoldenGateインスタンスを作成します。Oracle GoldenGate Windows and UNIXの管理を参照してください。

5. また、Oracle GoldenGateの管理for Windows and UNIXのガイドラインも確認してください。

8.2 この手順でできること

次の手順では、プライマリExtract(データ・ソースからトランザクション・データをキャプチャ)、およびデータ・ポンプExtract (trailにローカルに格納されているキャプチャ済データをソース・システムからターゲット・システムに伝播)の基本的なExtractパラメータ(構成)ファイルの構成方法について説明します。ビジネス要件によってはより複雑なトポロジが必要ですが、この手順がその他の構成手順の基礎となります。

手順を実行することで、次のことが可能です。

- 基本的な構成ファイルが作成されます。

- 後で環境に適用する機能や要件について決定を下してパラメータを追加し、それらを拡張します。

- コピーを使用して、一から作成するよりも短時間で追加パラメータ・ファイルを作成します。

注意:

これらの手順では、DDLキャプチャまたはレプリケーションを実行するようにOracle GoldenGateを構成しません。DDLをサポートするには、パラメータ・ファイルを作成し、次の章を参照してください。

「トリガーベースのDDLキャプチャのインストール」

DDLサポートの構成

8.3 クラシック・キャプチャ・モードでのプライマリExtractの構成

次の手順では、クラシック・モードでトランザクション・データをキャプチャするようにExtractを構成します。Extractのモードの詳細は、「キャプチャおよび適用モードの選択」を参照してください。

1. ソース・システムのGGSCIで、Extractパラメータ・ファイルを作成します。

EDIT PARAMS name

説明: nameは、プライマリExtractの名前です。

2. 次に示す順序でExtractパラメータを入力します。パラメータ文ごとに新しい行を開始します。詳細およびパラメータの説明は、表8-1を参照してください。

クラシック・キャプチャ・モードでのプライマリExtractの基本的なパラメータ

EXTRACT finance
USERIDALIAS tiger1
LOGALLSUPCOLS
ENCRYPTTRAIL AES192
EXTTRAIL /ggs/dirdat/lt
SEQUENCE hr.employees_seq;
TABLE hr.*;

表8-1 クラシック・キャプチャ・モードでのプライマリExtractの基本的なパラメータ

パラメータ

説明

EXTRACT group

groupは、Extractグループの名前です。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

USERIDALIAS alias

Extractに割り当てられるユーザーのデータベース・ログイン資格証明の別名を指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGate資格証明の確立」を参照してください。

LOGALLSUPCOLS

競合検出および解決に必要な列、統合Replicatのサポートに必要なスケジューリング列を含む、証跡に補足的にログに記録されるすべての列を書き込みます。(スケジューリング列は、主キー、一意索引および外部キー列です。)これらの列をGGSCIコマンドでログに記録するようにデータベースを構成します。「ロギング・プロパティの構成」を参照してください。

UPDATERECORDFORMAT COMPACT

UPDATE操作の変更前および変更後のイメージを証跡の単一レコードに結合します。このパラメータは、Oracle Databaseバージョン12c以上で有効で、統合モードのReplicatをサポートします。必須パラメータではありませんが、UPDATERECORDFORMAT COMPACTがベスト・プラクティスで、Replicatパフォーマンスを大幅に改善します。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

ENCRYPTTRAIL algorithm

ローカル証跡を暗号化します。Oracle GoldenGateの証跡暗号化オプションの詳細は、Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIXを参照してください。

EXTTRAIL pathname

プライマリExtractによってキャプチャされたデータが書き込まれるローカル証跡のパス名を指定します。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください

{TABLE | SEQUENCE} schema.object;

データをキャプチャするデータベース・オブジェクトを指定します。

- TABLEは、表または表のワイルドカード・セットを指定します。

- SEQUENCEは、順序または順序のワイルドカード・セットを指定します。

- schemaは、スキーマ名またはスキーマのワイルドカード・セットです。

- objectは、表または順序名、またはこれらのオブジェクトのワイルドカード・セットです。

ワイルドカードを使用して、または使用せずにオブジェクト名を指定する方法の詳細は、Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIXを参照してください。

パラメータ文はセミコロンで終了します。

ワイルドカード指定から表を除外するには、TABLEEXCLUDEパラメータを使用します。使用方法および構文の詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

詳細およびデータのフィルタリング、マッピングおよび操作を制御するその他のTABLEオプションについては、Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

3. 構成に推奨されるオプションのExtractパラメータを入力します。このファイルは、GGSCIのEDIT PARAMSコマンドを使用して、処理を開始する前にいつでも編集できます。詳細は、Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4. ファイルを保存して閉じます。

8.4 データ・ポンプExtractの構成

次の手順では、ローカル証跡を読み取り、データをネットワーク経由でリモート証跡に送信するデータ・ポンプを構成します。データ・ポンプはオプションですが、使用することをお薦めします。データ・ポンプの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

1. ソース・システムのGGSCIで、データ・ポンプ・パラメータ・ファイルを作成します。

EDIT PARAMS name

説明: nameは、データ・ポンプExtractの名前です。

2. 次に示す順序でデータ・ポンプ・パラメータを入力します。パラメータ文ごとに新しい行を開始します。入力変数は異なるものになります。説明については、表8-2を参照してください。

データ・ポンプExtractグループの基本パラメータ:

EXTRACT extpump
USERIDALIAS tiger1
RMTHOST fin1, MGRPORT 7809 ENCRYPT AES192, KEYNAME securekey2
RMTTRAIL /ggs/dirdat/rt
SEQUENCE hr.employees_seq;
TABLE hr.*;

表8-2 データ・ポンプExtractの基本的なパラメータ

パラメータ

説明

EXTRACT group

groupは、データ・ポンプExtractの名前です。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

USERIDALIAS alias

Extractに割り当てられるユーザーのデータベース・ログイン資格証明の別名を指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGate資格証明の確立」を参照してください。

RMTHOST hostname, MGRPORT portnumber,[, ENCRYPT algorithm KEYNAME keyname]

- RMTHOSTは、ターゲット・システムの名前またはIPアドレスを指定します。

- MGRPORTは、ターゲットでManagerが実行されるポート番号を指定します。

- ENCRYPTは、TCP/IPでのオプションのデータの暗号化を指定します。

その他のオプションおよび暗号化の詳細は、Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

RMTTRAIL pathname

リモート証跡のパス名を指定します。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

{TABLE | SEQUENCE} schema.object;

表または順序、またはワイルドカードで指定された複数のオブジェクトを指定します。ほとんどの場合、このリストはプライマリExtractパラメータ・ファイルのリストと同じです。

- TABLEは、表または表のワイルドカード・セットを指定します。

- SEQUENCEは、順序または順序のワイルドカード・セットを指定します。

- schemaは、スキーマ名またはスキーマのワイルドカード・セットです。

- objectは、表または順序の名前、またはこれらのオブジェクトのワイルドカード・セットです。

ワイルドカードを使用して、または使用せずにオブジェクト名を指定する方法の詳細は、Oracle GoldenGate Oracle GoldenGateの管理for Windows and UNIXを参照してください。

このパラメータ文はセミコロンで終了します。

表または順序をワイルドカード指定から除外するには、TABLE文の後にTABLEEXCLUDEまたはSEQUENCEEXCLUDEパラメータを使用します。

詳細およびデータのフィルタリング、マッピングおよび操作を制御するその他のTABLEオプションについては、Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

3. 構成に推奨されるオプションのExtractパラメータを入力します。このファイルは、GGSCIのEDIT PARAMSコマンドを使用して、処理を開始する前にいつでも編集できます。詳細は、Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4. 構成のその他の考慮事項の詳細は、「統合モード用のオプションのパラメータ」を参照してください。

5. ファイルを保存して閉じます。

8.5 次の手順

クラシック・キャプチャの基本的なパラメータ・ファイルを作成したら、次の関連の構成手順を参照してください。

Oracle GoldenGateの適用の構成

「Oracle GoldenGate構成のその他の考慮事項」

「クラシック・キャプチャを使用する場合の追加構成手順」

「トリガーベースのDDLキャプチャのインストール」 (Oracle GoldenGate DDLサポートを使用する場合)

「DDLサポートの構成」(Oracle GoldenGate DDLサポートを使用する場合)

プロセス・グループの作成

「Oracle GoldenGateレプリケーションのインスタンス化」

XMLスキーマの変更のサポート

9 Oracle GoldenGate適用の構成

この章では、非統合または統合モードのいずれかでReplicat適用プロセスを構成する手順について説明します。Extractのモードの詳細は、「キャプチャおよび適用モードの選択」を参照してください。

この章の内容は次のとおりです。

- Replicat構成の前提条件

- この手順でできること

- チェックポイント表の作成(非統合Replicatのみ)

- Replicatの構成

- 次の手順

9.1 Replicat構成の前提条件

統合モードでExtractを構成する前に、次の項のガイドラインを満たす必要があります。

1. Oracle GoldenGateのためのデータベースの準備

2. Oracle GoldenGate資格証明の確立

3. 「キャプチャおよび適用モードの選択」

4. Managerプロセスを構成して、ターゲット・システムにOracle GoldenGateインスタンスを作成します。Oracle GoldenGate Windows and UNIXの管理を参照してください。

5. また、Oracle GoldenGateの管理for Windows and UNIXのガイドラインも確認してください。

注意:

アクティブなReplicat構成をモード間で切り替えるには、次の構成手順を実行し、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

9.2 この手順でできること

次の手順では、基本的なReplicatパラメータ(構成)ファイルの構成方法について説明します。ビジネス要件によってはより複雑なトポロジが必要ですが、この手順がその他の構成手順の基礎となります。

手順を実行することで、次のことが可能です。

- 基本的な構成ファイルが作成されます。

- 後で環境に適用する機能や要件について決定を下してパラメータを追加し、それらを拡張します。

- コピーを使用して、一から作成するよりも短時間で追加のReplicatパラメータ・ファイルを作成します。

注意:

これらの手順では、DDLをターゲットに適用するようにReplicatは構成されません。DDLをサポートするには、基本的なReplicatパラメータ・ファイルを作成し、「DDLサポートの構成」を参照して構成手順を確認します。

9.3 チェックポイント表の作成(非統合Replicatのみ)

チェックポイント表は、非統合Replicatに必要なコンポーネントです。統合Replicatには不要なため、使用しても実行時に無視されます。

非統合Replicatは、リカバリ・チェックポイントをチェックポイント表に保持し、ターゲット・データベースに格納されます。チェックポイントは、Replicatトランザクション内でチェックポイント表に書き込まれます。チェックポイントはトランザクションに対して成功または失敗のいずれかであるため、プロセスまたはデータベースで障害が発生した場合でも、トランザクションは一度のみ適用されることがReplicatにより保証されます。

注意:

この手順では、デフォルトのチェックポイント表をインストールします。ほとんどの場合、デフォルトで十分です。複数のチェックポイント表を使用(Replicatグループごとに異なる表を使用するなど)することができます。デフォルト以外のチェックポイント表(デフォルトの表をオーバーライドする)を使用するには、「Oracle GoldenGateレプリケーションのインスタンス化」の手順でReplicatプロセスを作成する際、ADD REPLICATのオプションCHECKPOINTTABLEを使用します。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

9.3.1 ターゲット・データベースへのチェックポイント表の追加

1. ターゲットのOracle GoldenGateディレクトリからGGSCIを実行し、DBLOGINコマンドを発行してターゲット・データベースにログインします。

DBLOGIN USERIDALIAS alias

説明:

- aliasでは、Replicatにアクセス可能なスキーマに表を作成できるユーザーのデータベース・ログイン資格証明の別名を指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGate資格証明の確立」を参照してください。

2. GGSCIで、任意のスキーマ(Oracle GoldenGate専用であることが推奨されます)にチェックポイント表を作成します。

ADD CHECKPOINTTABLE [container.]schema.table

説明:

- containerは、コンテナの名前です(schema.tableがマルチテナント・コンテナ・データベースにある場合)。このコンテナは、表を格納するルート・コンテナまたはプラガブル・データベースになります。

- schema.tableは、表のスキーマおよび名前です。オブジェクト名を指定する手順は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

9.3.2 Oracle GoldenGate構成でのチェックポイント表の指定

Oracle GoldenGate構成でチェックポイント表を指定する手順:

1. GLOBALSファイルを作成します(あるいは、既存のものを編集します)。

EDIT PARAMS ./GLOBALS

注意:

EDIT PARAMSで、単純なテキスト・ファイルが作成されます。EDIT PARAMS後にファイルを保存すると、拡張子なしのGLOBALS(大文字)という名前で保存されます。これはそのままにし、ファイルはOracle GoldenGateルートディレクトリのままにします。

2. GLOBALSファイルで、CHECKPOINTTABLEパラメータを入力します。

CHECKPOINTTABLE [container.]schema.table

3. GLOBALSファイルを保存し、閉じます。

9.3.3 チェックポイント表へのデフォルトの非同期COMMITの無効化

非統合Replicatがチェックポイント表を使用する際、NOWAITオプションを指定して非同期のCOMMITを使用し、パフォーマンスを向上させます。ReplicatはこのCOMMITの適用直後に処理を続行できます。データベースでのトランザクションの記録はバックグラウンドで行われます。Replicatパラメータ・ファイルにDBOPTIONSパラメータとDISABLECOMMITNOWAITオプションを使用すると、NOWAITを指定した非同期のCOMMITを無効にできます。

注意:

非統合Replicatグループの構成にチェックポイント表が含まれない場合、チェックポイントはディスク上のファイルに保持されます。この場合、ReplicatはWAITを指定してCOMMITを使用し、データベースの障害が発生した場合に、チェックポイント・ファイルで指定されたトランザクションの状態がリカバリ後に異なるような矛盾が生じないようにします。

9.4 Replicatの構成

次の手順では、Replicatプロセスを構成します。統合および非統合Replicatモードが考慮されます。高度なマッピングのオプションの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

注意:

プラガブル・データベースに対してReplicatを構成するには、統合適用モードでReplicatプロセスを構成する必要があります

1. ターゲット・システムのGGSCIで、Replicatパラメータ・ファイルを作成します。

EDIT PARAMS name

説明: nameは、Replicatグループの名前です。

2. 次に示す順序でReplicatパラメータを入力します。パラメータ文ごとに新しい行を開始します。説明については、表9-1を参照してください。

非統合モードのReplicatグループの基本的なパラメータ:

REPLICAT financer
USERIDALIAS tiger2
ASSUMETARGETDEFS
MAP hr.*, TARGET hr2.*;

統合ReplicatモードのReplicatグループの基本的なパラメータ:

REPLICAT financer
DBOPTIONS INTEGRATEDPARAMS(parallelism 6)
USERIDALIAS tiger2
ASSUMETARGETDEFS
MAP hr.*, TARGET hr2.*;

表9-1 Replicatの基本的なパラメータ

パラメータ

説明

REPLICAT group

groupは、Replicatグループの名前です。

DBOPTIONS DEFERREFCONST

非統合モードのReplicatに適用されます。DEFERREFCONSTでは、ターゲット・データベースによるカスケード制約の適用をReplicatトランザクションのコミットまで遅延させるDEFERRABLEに制約を設定します。重要な情報の詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

DBOPTIONS INTEGRATEDPARAMS (parameter[, ...])

このパラメータ指定は、統合モードのReplicatに適用されます。インバウンド・サーバーのオプション・パラメータを指定します。

DBOPTIONSオプションのその他の重要情報は、「統合モード用のオプションのパラメータ」を参照してください。

USERIDALIAS alias

Replicatに割り当てられているユーザーのデータベース・ログイン資格証明のエイリアスを指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGate資格証明の確立」を参照してください

SOURCECATALOG container

このパラメータは、ソース・データベースがマルチテナント・コンテナ・データベースの場合に使用します。2つの部分からなる名前を含む後続のすべてのMAPパラメータで、デフォルトのコンテナとして使用されるプラガブル・データベースの名前を指定します。このパラメータでは、3つの部分からなる名前(container.schema.object)ではなく、2つの部分からなるオブジェクト名(schema.object)を使用できます。別のSOURCECATALOGパラメータが発生するか、3つの部分からなる完全なMAP指定が発生するまで実質的に保持されます。SOURCECATALOGの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

MAP [container.]schema.object, TARGET schema.object;

ソース表または順序、複数オブジェクト、および対応するターゲットオブジェクトの関係を指定します。

- MAPは、ソース表または順序、またはオブジェクトのワイルドカード・セットを指定します。

- TARGETは、ターゲット表または順序、またはオブジェクトのワイルドカード・セットを指定します。

- containerは、コンテナの名前です(ソース・データベースがマルチテナント・コンテナ・データベースの場合)。

- schemaは、スキーマ名またはスキーマのワイルドカード・セットです。

- objectは、表または順序の名前、またはオブジェクトのワイルドカード・セットです。

このパラメータ文はセミコロンで終了します。

ワイルドカード指定からオブジェクトを除外するには、MAPEXCLUDEパラメータを使用します。

データのフィルタリング、マッピングおよび操作を制御するその他のオプションとその詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXのMAPの項を参照してください。

3. 統合Replicatを使用している場合は、Extractのパラメータ・ファイルに次のパラメータを追加します。

- LOGALLSUPCOLS: このパラメータでは、変更前イメージの補足的にログに記録される列をキャプチャします。このパラメータは、Oracle GoldenGateでサポートされるすべてのソース・データベースで有効です。12cより前のExtractバージョンでは、GETUPDATEBEFORESおよびNOCOMPRESSDELETESパラメータを使用して、同じ要件を満たすことができます。主キー、一意キーおよび外部キーの変更前および変更後の値をログに記録するようにデータベースを構成する必要があります。LOGALLSUPCOLSの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

- COMPACTに設定されるUPDATERECORDFORMATパラメータ: この設定では、ExtractでUPDATE操作の変更前および変更後のイメージを証跡の単一レコードに結合します。このパラメータは、Oracle Databaseバージョン11.2.0.4以上で有効で、統合Replicatのパフォーマンスを改善します。詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

4. 構成に推奨されるオプションのReplicatパラメータを入力します。このファイルは、GGSCIのEDIT PARAMSコマンドを使用して、処理を開始する前にいつでも編集できます。詳細は、Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

5. 構成のその他の考慮事項の詳細は、「統合モード用のオプションのパラメータ」を参照してください。

6. ファイルを保存して閉じます。

注意:

統合Replicatを使用している場合に、処理の開始後にReplicatに構成変更を行う方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

9.5 次の手順

Replicatの基本的なパラメータ・ファイルを作成したら、次の追加の構成手順を参照してください。

「クラシック・モードでのキャプチャの構成」または「統合モードでのキャプチャの構成」(キャプチャをまだ構成していない場合)。

「非統合Replicatを使用するための追加の構成手順」(非統合Replicatを使用している場合)

「Oracle GoldenGate構成のその他の考慮事項」

「DDLサポートの構成」(Oracle GoldenGate DDLサポートを使用する場合)

プロセス・グループの作成

「Oracle GoldenGateレプリケーションのインスタンス化」

10 Oracle GoldenGate構成のその他の考慮事項

この章では、データベース環境に適用可能な構成のその他の考慮事項について説明します。

この章の内容は次のとおりです。

- ソース表とターゲット表での行の一意性の保証

- Oracle順序のサポートのインストール

- 特別なデータ型の処理

- 他のデータベース・プロパティの処理

- チェックポイント頻度の制御

- Replicatトランザクションの除外

- Oracle GoldenGateの拡張構成オプション

10.1 ソース表とターゲット表での行の一意性の保証

Oracle GoldenGateでは、レプリケートされた更新および削除に対して正しいターゲット行を見つけるために、ソース表とターゲット表に一意の行識別子が必要です。TABLE文またはMAP文で、KEYCOLS句を使用しない場合には、ロギングされる制約数およびタイプに応じて、Oracle GoldenGateにより、使用される行識別子が次の優先順位で選択されます(「ロギング・プロパティの構成」を参照)。

1. 拡張(32K) VARCHAR2/NVARCHAR2列が含まれない場合は、主キー。非表示列を含まない主キー。

2. 一意キー。非表示列を含まない一意キー。
非統合Replicatの場合、一意キーの選択は次のとおりです。

- 仮想列、UDT、ファンクション・ベース列、NULL値可能列、および拡張(32K) VARCHAR2/NVARCHAR2列がない英数字順で最初の一意キー。表示されない索引の一部である列を含むキーをサポートするには、Oracle GoldenGate GLOBALSファイルでALLOWINVISIBLEINDEXKEYSパラメータを使用する必要があります。

- 仮想列、UDT、拡張(32K) VARCHAR2/NVARCHAR2列、ファンクション・ベース列はないが、Null値可能列がある英数字順で最初の一意キー。表示されない索引の一部である列を含むキーをサポートするには、Oracle GoldenGate GLOBALSファイルでALLOWINVISIBLEINDEXKEYSパラメータを使用する必要があります。

3. 前のどのキー型も存在しない場合(表に定義されているその他のキー型が存在する可能性があっても)、Oracle GoldenGateによって、一意なキーでデータベースを使用できるすべての列の擬似キー(仮想列、UDT、ファンクション・ベース列、拡張(32K) VARCHAR2/NVARCHAR2列、およびOracle GoldenGateユーザーによって、Oracle GoldenGate構成から明示的に除外されている列を除く)が作成されます。
前述の制限事項によって除外されないかぎり、非表示列は擬似キーで使用できます。

注意:

表に使用可能な他のキーがない場合や、表にキーがまったくない場合、Oracle GoldenGateは該当するメッセージをレポート・ファイルに記録します。すべての列からキーを作成すると、ソース・システムのOracle GoldenGateのパフォーマンスが低下します。ターゲットでは、このキーはReplicatであまり効率的でないより大きいWHERE句が使用される原因となります。

表に適切なキーがない場合、あるいは既存のキーを使用しない場合は、表に一意の値が常に含まれる列があれば、代替キーを定義できます。この代替キーは、ExtractのTABLEパラメータおよびReplicatのMAPパラメータにKEYCOLS句を指定して定義します。指定したキーにより、Oracle GoldenGateで検出される既存の主キーまたは一意キーはオーバーライドされます。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

10.2 Oracle順序のサポートのインストール

Oracle順序をサポートするには、いくつかのデータベース・プロシージャをインストールする必要があります。これらのプロシージャは、Oracle GoldenGateプロセスを初めて起動した直後(通常、初期データ同期手順を実行するとき)に発行するOracle GoldenGate FLUSH SEQUENCEコマンドをサポートします。

Oracle順序オブジェクトのインストール手順

ソース・システムおよびターゲット・システムで、手順を実行します。

1. SQL*Plusで、SYSDBAとしてソースおよびターゲットのOracleシステムに接続します。

2. Oracle GoldenGate DDLレプリケーション機能をサポートするデータベース・ユーザーがすでに割り当てられている場合は、この手順をスキップできます。そうでない場合は、両方のシステムのSQL*Plusで、DDLユーザーでもあるデータベース・ユーザーを作成します。

CREATE USER DDLuser IDENTIFIED BY password;
GRANT CONNECT, RESOURCE, DBA TO DDLuser;

3. 各システムのOracle GoldenGateインストール・ディレクトリからGGSCIを実行します。

4. GGSCIで、次のコマンドを各システムで発行します。

EDIT PARAMS ./GLOBALS

5. 各GLOBALSファイルにGGSCHEMAパラメータを入力し、この手順の前の部分で作成したDDLユーザーのスキーマを指定します。

GGSCHEMA schema

6. ファイルを保存し、閉じます。

7. 両方のシステムのSQL*Plusで、sequence.sqlスクリプトをOracle GoldenGateインストール・ディレクトリのルートから実行します。このスクリプトは、Oracle GoldenGateプロセスで使用するいくつかのプロシージャを作成します。(これらを手動で実行しないでください。)最初の手順で作成したユーザー情報の入力が求められます。

@sequence.sql

8. ソース・システムのSQL*Plusで、DBLOGINコマンドの発行に使用されるデータベース・ユーザーにupdateSequenceプロシージャのEXECUTE権限を付与します。このユーザーについて記録しておいてください。プロシージャをコールするFLUSH SEQUENCEコマンドを発行する前に、DBLOGINを使用してデータベースにログインします。

GRANT EXECUTE on DDLuser.updateSequence TO DBLOGINuser;

9. ターゲット・システムのSQL*Plusで、Replicatデータベース・ユーザーにreplicateSequenceプロシージャのEXECUTE権限を付与します。

GRANT EXECUTE on DDLuser.replicateSequence TO Replicatuser;

10. ソース・システムのSQL*Plusで、次の文を発行します。

ALTER TABLE sys.seq$ ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

10.3 特別なデータ型の処理

この項は、特に断りのないかぎり、Extractがクラシック・キャプチャ・モードで動作する場合も統合キャプチャ・モードで動作する場合も該当します。次のOracleデータ型に対する特別な構成要件について説明します。

- マルチバイト・キャラクタ型

- Oracle Spatialオブジェクト

- TIMESTAMP

- ラージ・オブジェクト(LOB)

- XML

- ユーザー定義型

10.3.1 マルチバイト・キャラクタ型

マルチバイト・キャラクタは、サポートされている文字セットの一部としてサポートされます。Oracleソース・データベースのセマンティクス設定がBYTEで、Oracleターゲットの設定がCHARの場合、構成でReplicatパラメータSOURCEDEFSを使用し、DEFGENユーティリティによって生成された定義ファイルをターゲットに配置します。これらの手順は、ソースおよびターゲットのデータ定義が同一であるかどうかにかかわらず、セマンティクス内の差異のサポートに必要です。Replicatでは、定義ファイルを参照して固定サイズの文字列のサイズ上限を決定します。

キャラクタ・セットのサポートの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

SOURCEDEFSおよびDEFGENユーティリティの詳細は、『Oracle GoldenGateの管理for Windows and UNIX』を参照してください。

10.3.2 Oracle Spatialオブジェクト

SDO_GEORASTERオブジェクト型の列が1つ以上含まれている表をOracleソースからOracleターゲットにレプリケートするには、それらが正しく処理されるよう、次の手順に従ってOracle GoldenGateを構成します。

1. GeoRaster表とそれに関連するラスター・データ表に対するTABLE文とMAP文を作成します。

2. SDO_GEORASTERデータ型のMETADATA属性の値が1MBを超える場合、XMLBUFSIZEオプションを指定してDBOPTIONSパラメータを使用し、SDO_GEORASTERデータ型の埋込みSYS.XMLTYPE属性を格納するメモリー・バッファのサイズを大きくします。バッファが小さすぎる場合、Extractは異常終了します。XMLBUFSIZEの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

3. ターゲットのGeoRaster表とSpatialデータの整合性を確実にするには、トリガーをソースとターゲットの両方で有効にしておきます。MAPパラメータのREPERRORオプションを使用して、トリガーをターゲットで有効にしているために発生する「ORA-01403 No data found」エラーを処理します。ソースのGeoRaster表の行を削除すると、トリガーによって削除がラスター・データ表にカスケードされます。両方の削除がレプリケートされます。レプリケートされた親削除によって、ターゲット上でカスケードされた(子)削除がトリガーされます。レプリケートされた子削除が行われると、冗長になりエラーが発生します。REPERRORを使用するには、次のようにします。

- ラスター・データ表が含まれている各MAP文でREPERROR文を使用します。

- Oracleエラー1403をSQLエラーとして使用します。

- いずれかの応答オプションをエラー処理に使用します。

ターゲットの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リファレンスfor Windows and UNIXを参照してください。

10.3.3 TIMESTAMP

タイムスタンプ・データをレプリケートするには、次のガイドラインに従います。

1. TZRで表されたTIMESTAMP WITH TIME ZONEでOracle GoldenGateが異常終了しないようにするには、次のいずれかを指定してExtractパラメータTRANLOGOPTIONSを使用します。

- INCLUDEREGIONID: TZRで表されたTIMESTAMP WITH TIME ZONEを、Oracleソースから同じバージョン以降のOracleターゲットにレプリケートします。

- INCLUDEREGIONIDWITHOFFSET: TZRで表されたTIMESTAMP WITH TIMEZONEを、v10g以降のOracleソースから、それより前のOracleターゲットに、またはOracleソースからOracle以外のターゲットにレプリケートします。

これらのオプションにより、TZRで表されたTIMESTAMP WITH TIME ZONEをサポートしないOracleバージョン、およびUTCオフセットで表されたタイムゾーンのみをサポートするデータベース・システムにレプリケートすることができます。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

2. Oracle Databaseは、TIMESTAMP WITH LOCAL TIME ZONEデータを受信先のデータベース(Oracle GoldenGateの場合はターゲット・データベース)のローカルのタイムゾーンに正規化します。適用するデータの元のタイム・スタンプを保持するために、Replicatはセッションをソース・データベースのタイムゾーンに設定します。Replicatパラメータ・ファイルのSOURCETIMEZONEを使用することで、このデフォルトをオーバーライドして、異なるタイムゾーンを指定できます。Replicatでセッションをターゲット・タイムゾーンに強制的に設定させるには、PRESERVETARGETTIMEZONEパラメータを使用します。

SOURCETIMEZONEパラメータを使用して、バージョン12.1.2より前のExtractでキャプチャされるデータのソース・タイムゾーンを指定することもできます。これらのバージョンは、ソース・タイムゾーンを証跡に書き込みません。

10.3.4 ラージ・オブジェクト(LOB)

クラシックと統合の両方のキャプチャ・モードでのLOBに対する構成ガイドラインは、次のとおりです。

1. 可能な場合、行外にラージ・オブジェクトを保存します。

2. (統合キャプチャのみ該当)統合キャプチャでは、REDOログからLOBがキャプチャされます。LOBドキュメントに対するUPDATE操作では、LOBの変更された部分のみが記録されます。変更された部分のみが記録される場合にLOBドキュメント全体の証跡への書込みを強制するには、Extractパラメータ・ファイルでFETCHPARTIALLOBオプションを指定してTRANLOGOPTIONSパラメータを使用します。Extractは、ログマイニング・サーバーから部分的なLOBコンテンツを受信すると、部分的なLOBを処理するのではなく、LOBイメージ全体をフェッチします。Oracle以外のターゲットにレプリケートする場合、またはLOBイメージ全体が必要なその他の場合にこのオプションを使用します。TRANLOGOPTIONSの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

10.3.5 XML

Oracle GoldenGate制約内でXMLを使用するためのツールは、次のとおりです。

- クラシックと統合の両キャプチャ・モードで、XMLスキーマへの変更のキャプチャはサポートされませんが、スキーマを展開して、再同期をしなくてもそのレプリケーションを再開できます。「XMLスキーマの変更のサポート」を参照してください。

- (統合キャプチャのみ該当)統合キャプチャでは、REDOログからXMLがキャプチャされます。XMLドキュメントのUPDATE操作では、OBJECT RELATIONALまたはBINARYとして格納されている場合、XMLの変更された部分のみが記録されます。変更された部分のみが記録される場合にXMLドキュメント全体の証跡への書込みを強制するには、Extractパラメータ・ファイルでFETCHPARTIALXMLオプションを指定してTRANLOGOPTIONSパラメータを使用します。Extractは、ログマイニング・サーバーから部分的なXMLコンテンツを受信すると、部分的なXMLを処理するのではなく、XMLドキュメント全体をフェッチします。Oracle以外のターゲットにレプリケートする場合、またはXMLイメージ全体が必要なその他の場合にこのオプションを使用します。TRANLOGOPTIONSの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

10.3.6 ユーザー定義型

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パラメータの前に存在する必要があります。

10.4 他のデータベース・プロパティの処理

次の表に、Oracle GoldenGateに影響する可能性のあるデータベース・プロパティと、その状態の解決または回避に使用できるパラメータを示します。

表10-1 他のデータベース・プロパティの処理

データベース・プロパティ

問題点/解決策

時間隔パーティション化がある表

時間隔パーティション化がある表をサポートするには、WILDCARDRESOLVEパラメータがそのデフォルトのDYNAMICのままであることを確認します。

仮想列のある表

仮想列は記録されません。また、Oracleで仮想列に対するDMLは許可されません。ただし、次のようにして、このデータをキャプチャし、仮想列ではないターゲット列にマップできます。

ExtractのTABLE文に表を含め、TABLEのFETCHCOLSオプションを使用してデータベースの仮想列から値をフェッチします。

ReplicatのMAP文で、ソースの仮想列を仮想ではないターゲット列にマップします。

本質的に更新可能なビューを持つ表

本質的に更新可能なビューにレプリケートするには、関連付けの対象のソース表とターゲット表をマップするMAP文にKEYCOLS句を使用して、更新可能なビューの一意の列にキーを定義します。

異なる場所にあるREDOログまたはアーカイブ

TRANLOGOPTIONSパラメータには、データベースのデフォルトとは異なる場所またはExtractが実行されているのとは異なるプラットフォームにREDOログまたはアーカイブが格納される環境を処理するためのオプションが含まれます。これらのオプションは、Extractがクラシック・キャプチャ・モードで動作する場合に必要になることがあります。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

TRUNCATE操作

TRUNCATE操作をレプリケートするには、次の2つのオプションのいずれかを選択します。

- GETTRUNCATESパラメータを使用したスタンドアロンのTRUNCATEサポートでは、TRUNCATE TABLEはレプリケートされますが、他のTRUNCATEオプションはレプリケートされません。Oracle GoldenGate DDLサポートを使用している場合にのみ使用します。

- 完全DDLサポートでは、TRUNCATE TABLE、ALTER TABLE TRUNCATE PARTITIONおよび他のDDLがレプリケートされます。このサポートをインストールするには、「トリガーベースのDDLキャプチャのインストール」を参照してください。

順序

順序のDDL(CREATE、ALTER、DROP、RENAME)をレプリケートするには、Oracle GoldenGate DDLサポートを使用します。

順序値のみをレプリケートするには、Extractパラメータ・ファイルでSEQUENCEパラメータを使用します。これには、Oracle GoldenGate DDLサポート環境は不要です。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

10.5 チェックポイント頻度の制御

TRANLOGOPTIONSパラメータのCHECKPOINTRETENTIONTIMEオプションでは、統合モードのExtractがチェックポイントを自動的にパージするまで保持する日数を制御します。部分的な日数は、10進値を使用して指定されます。たとえば、8.25は8日と6時間を指定します。デフォルトは7日です。このパラメータの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

10.6 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 for Windows and UNIXリファレンス』を参照してください。

10.7 Oracle GoldenGateの拡張構成オプション

ビジネス・ニーズに合せて、拡張オプションでOracle GoldenGateを構成する必要が生じる場合があります。次を参照してください。

- 特定のレプリケーション・トポロジを実現するためのその他の構成のガイドラインについては、Oracle GoldenGateの管理for Windows and UNIXを参照してください。このガイドには、次の構成に関する手順が含まれています。

- ライブ・レポートでのOracle GoldenGateの使用

- リアルタイム・データ分散でのOracle GoldenGateの使用

- リアルタイム・データ・ウェアハウスのためのOracle GoldenGateの構成

- ライブ・スタンバイ・データベース管理のためのOracle GoldenGateの使用

- アクティブ/ アクティブ型高可用性のためのOracle GoldenGateの使用

ガイドには、次の点に関する情報も含まれています。

- Oracle GoldenGateのアーキテクチャ

- Oracle GoldenGateのコマンド

- Oracle GoldenGateの初期ロード方式

- セキュリティの構成

- カスタマイズ機能の使用

- データ・フィルタリングと操作の構成

- ソースまたはターゲットのいずれかのデータベースがOracle以外の場合、そのデータベース用のOracle GoldenGateインストレーションおよびセットアップ・ガイドのインストールと構成の手順に従い、その他の情報については、Oracle GoldenGateの管理とリファレンスのドキュメントを参照してください。

11 クラシック・キャプチャを使用する場合の追加構成手順

この章では、クラシック・キャプチャ・モードで動作する場合のExtractに固有の追加構成と準備の要件について説明します。

この章の内容は次のとおりです。

- クラシック・キャプチャ・モードでのOracle TDEデータの構成

- Oracle RAC環境でのクラシック・キャプチャの使用

- クラシック・キャプチャ・モードでのASMストアド・ログのマイニング

- クラシック・キャプチャでのデータ可用性の確保

- アーカイブ・ログ専用モードでのクラシック・キャプチャの構成

- Oracle Active Data Guard専用モードでのキャプチャの構成

- クラシック・キャプチャでのログ読取りのボトルネックの回避

これらの要件は、次に記載されている基本的な構成要件を補完します。

クラシック・モードでのキャプチャの構成

11.1 クラシック・キャプチャ・モードでのOracle TDEデータの構成

クラシック・キャプチャ・モードでのExtractの場合、TDEをサポートするには、次の特別な構成手順が必要です。この項は、統合キャプチャ・モードのExtractには適用されません。

注意:

統合モードでは、Extractはデータベース・ログマイニング・サーバーを活用して、特別な設定要件またはパラメータ設定なしで、TDE列の暗号化およびTDE表領域の暗号化をサポートします。統合キャプチャの詳細は、「キャプチャおよび適用モードの選択」を参照してください。

11.1.1 クラシック・キャプチャ・モードでのTDEサポートの概要

クラシック・キャプチャ・モードでのExtractの場合、TDEサポートには2種類の鍵の交換が必要です。

- 暗号化鍵は、表鍵(列レベルの暗号化)、暗号化REDOログ鍵(表領域レベルの暗号化)、またはその両方のいずれにすることも可能です。この鍵はOracle DatabaseとExtract間で共有されます。

- 復号化鍵にはORACLEGGの名前が付けられ、そのパスワードは共通鍵と呼ばれます。この鍵は、OracleおよびOracle GoldenGateドメインに安全に格納されます。共通鍵を所有するユーザーのみが、表およびREDOログ鍵を復号化できます。

復号化キーは、組込みPL/SQLコードによってExtractプロセスに配信されます。Extractでは共通鍵を使用してデータが復号化されます。Extractでは、ウォレットのマスター・キー自体は処理されず、またマスター・キーのパスワードも認識されません。これらは、Oracle Databaseセキュリティ・フレームワークの範囲内です。

Extractでは、復号化されたデータが破棄ファイル(DISCARDFILEパラメータで指定)を含む証跡ファイル以外のファイルに書き込まれることはありません。"ENCRYPTED"という語が使用中の破棄ファイルに書き込まれます。

Oracle GoldenGateのパフォーマンスに対するこの機能の影響には、データベース・パフォーマンスに対する復号化の影響が反映されます。Extractの起動時間がわずかに長くなる以外は、TDEデータのレプリケートによるパフォーマンスへの影響は最小限です。

11.1.2 クラシック・キャプチャ・モードでのTDEのキャプチャの要件

ExtractでTDEキャプチャをサポートするための要件は次のとおりです。

- 高いセキュリティ基準を維持するため、Oracle GoldenGate Extractプロセスはoracleユーザー(Oracle Databaseを実行するユーザー)の一部として実行する必要があります。これにより、oracleユーザーと同じ権限でメモリー内で鍵が保護されます。

- Extractプロセスは、データベースのインストールと同じマシン上で実行される必要があります。

- ハードウェア・セキュリティ・モジュールでTDEを使用している場合でも、ソフトウェア・ウォレットを使用する必要があります。HSMのみの構成からHSMとウォレットの構成に移行し、sqlnet.oraファイルを正しく構成するための各手順の詳細は、「Oracleセキュリティ担当者のタスク」の構成手順を参照してください。

- ソース・データベースがアップグレードされる場合は、マスター・キーを必ず更新する必要があります。

11.1.3 TDEサポートに必要なデータベース・パッチ

Oracle 11.2.0.2でTDEをサポートするには、My Oracle Support Webサイト(https://support.oracle.com)の記事1557031.1を参照してください。

11.1.4 TDEサポートのクラシック・キャプチャの構成

次に、OracleサーバーとExtractプロセス間の通信を確立するためにOracleセキュリティ担当者およびOracle GoldenGate管理者が実行する手順を説明します。

11.1.4.1 Oracleの基準を満たす共通鍵の共有

Oracleパスワードの基準以上の共通鍵パスワードを共有します。このパスワードは他のユーザーに知られないようにする必要があります。安全なパスワードの作成のガイドラインについては、次を参照してください。

11.1.4.2 Oracle DBAのタスク

1. SYSDBAシステム権限を持つユーザーとしてSQL*Plusにログインします。次に例を示します。

sqlplus sys/as sysdba
Connected.
Enter password: password

2. Oracle adminディレクトリにインストールされているprvtclkm.plbファイルを実行します。prvtclkm.plbファイルによってDBMS_INTERNAL_CLKM PL/SQLパッケージが作成され、Oracle GoldenGateによる暗号化されたデータのOracle Databaseからの抽出が可能になります。

@?/app/oracle/product/orcl111/rdbms/admin/prvtclkm.plb

3. DBMS_INTERNAL_CLKM PL/SQLパッケージに対するEXEC権限をExtractのデータベース・ユーザーに付与します。

GRANT EXECUTE ON DBMS_INTERNAL_CLKM TO psmith;

4. SQL*Plusを終了します。

11.1.4.3 Oracleセキュリティ担当者のタスク

1. Oracle GoldenGateでは、HSMともソフトウェア・ウォレットを使用する必要があります。HSMのみのモードを現在使用している場合は、次の手順に従って、HSMとウォレットのモードに移行します。

a. 次の例に示すように、sqlnet.oraファイル構成を変更します(ウォレット・ディレクトリは、Oracle Databaseの所有者によってアクセス可能な(rwx)ディスク上の任意の場所が可能です)。次の例は、ベスト・プラクティスの場所(my_dbは$ORACLE_SID)を示します。

ENCRYPTION_WALLET_LOCATION=
(SOURCE=(METHOD=HSM)(METHOD_DATA=
(DIRECTORY=/etc/oracle/wallets/my_db)))

b. Oracle Databaseの所有者としてorapki (またはWallet Manager)にログインし、sqlnet.oraファイルに指定した場所に自動ログイン・ウォレットを作成します。ウォレットのパスワードを求められたら、HSMパスワードと同じパスワード(またはHSM接続文字列)を指定します。これらの2つのパスワードは同じにする必要があります。

cd /etc/oracle/wallets/my_db
orapki wallet create -wallet . -auto_login[_local]

注意:

Oracle Database所有者には、ウォレットの完全なオペレーティング・システム権限が必要です。

c. 次のエントリを空のウォレットに追加して、'auto-open' HSMを有効にします。

mkstore -wrl . -createEntry ORACLE.TDE.HSM.AUTOLOGIN non-empty-string

2. ORACLEGGのエントリをウォレットに作成します。ORACLEGGは、この鍵の名前にする必要があります。この鍵のパスワードは、共通鍵を共有する必要がありますが、このパスワードをコマンドラインから入力しないでください。かわりに、入力を求められるまで待ちます。

mkstore -wrl ./ -createEntry ORACLE.SECURITY.CL.ENCRYPTION.ORACLEGG
Oracle Secret Store Tool : Version 11.2.0.3.0 - Production
Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
Your secret/Password is missing in the command line
Enter your secret/Password: sharedsecret
Re-enter your secret/Password: sharedsecret
Enter wallet password: hsm/wallet_password

3. ORACLEGGのエントリを確認します。

mkstore -wrl . -list
Oracle Secret Store Tool : Version 11.2.0.3.0 - Production
Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
Enter wallet password: hsm/wallet_password
Oracle Secret Store entries:
ORACLE.SECURITY.CL.ENCRYPTION.ORACLEGG

4. SYSDBAシステム権限を持つユーザーとしてSQL*Plusにログインします。

5. ウォレットを閉じ、再度開きます。

SQL> alter system set encryption wallet close identified by "hsm/wallet_password";
System altered.
SQL> alter system set encryption wallet open identified by "hsm/wallet_password";
System altered.

これによってパスワードが自動オープン・ウォレットに挿入されるため、HSMに保存されたTDEマスター暗号化鍵を使用して暗号化されたデータにアクセスする際、パスワードは不要です。

6. ログ・ファイルを切り替えます。

alter system switch logfile;
System altered.

7. Oracle RAC環境で、各ノードでウォレットのコピーを使用している場合、ここでコピーを作成し、各ウォレットを再度開きます。

注意:

共有の場所にある1つのウォレットを、すべてのOracle RACノード間でアクセスが同期化された状態で使用することをお薦めします。

11.1.4.4 Oracle GoldenGate管理者のタスク

1. GGSCIを実行します。

2. ENCRYPT PASSWORDコマンドを発行して、Extractパラメータ・ファイル内で不明瞭化されるように共通鍵を暗号化します。これはセキュリティ要件です。

ENCRYPT PASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname

説明:

- sharedsecretは、クリアテキストの共通鍵です。この値では大文字/小文字が区別されます。

- {AES128 | AES192 | AES256}では、Advanced Encryption Standard (AES)暗号化を指定します。使用する鍵の長さを表す、いずれかの値を指定します。

- keynameは、ENCKEYS参照ファイル内の暗号化鍵の論理名です。Oracle GoldenGateは、この鍵を使用して、ENCKEYSファイルで実際の鍵を検索します。鍵およびnd ENCKEYSファイルを作成する場合、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
例:

ENCRYPT PASSWORD sharedsecret AES256 ENCRYPTKEY mykey1

3. Extractパラメータ・ファイルで、DECRYPTPASSWORDオプションを指定してDBOPTIONSパラメータを使用します。入力値として、暗号化された共通鍵と復号化鍵を指定します。

DBOPTIONS DECRYPTPASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname

説明:

- sharedsecretは、暗号化された共通鍵です。

- {AES128 | AES192 | AES256}は、ENCRYPT PASSWORDに使用したものと同じ値である必要があります。

- keynameは、ENCKEYS参照ファイル内の暗号化鍵の論理名です。
例:

DBOPTIONS DECRYPTPASSWORD AACAAAAAAAAAAAIALCKDZIRHOJBHOJUH AES256 ENCRYPTKEY mykey1

4. SYSDBAシステム権限を持つユーザーとしてSQL*Plusにログインします。

5. ウォレットを閉じ、再度開きます。

SQL> alter system set encryption wallet close identified by "hsm/wallet_password";
System altered.
SQL> alter system set encryption wallet open identified by "hsm/wallet_password";
System altered.

11.1.5 復号化後のデータのセキュリティを維持するための推奨事項

Extractでは、TDEデータは復号化され、クリア・テキストとして証跡内に書き込まれます。ターゲット・データベースへの経路を含めてデータのセキュリティを維持するには、次のOracle GoldenGateのセキュリティ機能も使用することをお薦めします。

- 証跡内のデータの暗号化

- TCP/IP間の遷移でのデータの暗号化

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

11.1.6 TDEキャプチャがアクティブな場合のDDLの実行

DDLが列レベルの暗号化が存在する表で実行される場合や表キーが更新される場合には、DDLの実行中に表を停止するか、Oracle GoldenGate DDLサポートを有効にする必要があります。通常、キーの更新はセキュリティ違反に伴って行われ、すぐに実行される必要があるため、いつでも対応できるよう、DDL環境をアクティブにしておくとより実用的です。Oracle GoldenGate DDL環境をインストールするには、「トリガーベースのDDLキャプチャのインストール」を参照してください。Oracle GoldenGate DDLサポートを構成するには、「DDLサポートの構成」を参照してください。表レベルの暗号化の場合は、Oracle GoldenGate DDLサポートは必要ありません。

11.1.7 データベースのアップグレード後の鍵の更新

ソース・データベースがアップグレードされ、Oracle GoldenGateがTDEデータをキャプチャしている場合は、マスター・キーを更新し、データベースおよびExtractを再起動する必要があります。マスター・キーを更新するコマンドは次のとおりです。

alter system set encryption key identified by "mykey";

11.1.8 パラメータ・ファイルでのOracle共通鍵の更新

次の手順を使用して、Extractパラメータ・ファイル内でTDE共通鍵を更新し、暗号化します。

1. GGSCIを実行します。

2. Extractプロセスを停止します。

STOP EXTRACT group

3. Oracleウォレット内のORACLEGGエントリを変更します。鍵の名前は、ORACLEGGのままである必要があります。手順は、次を参照してください。

4. ENCRYPT PASSWORDコマンドを発行して新しい共通鍵を暗号化します。

ENCRYPT PASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname

説明:

- sharedsecretは、クリアテキストの共通鍵です。この値では大文字/小文字が区別されます。

- {AES128 | AES192 | AES256}では、Advanced Encryption Standard (AES)暗号化を指定します。使用する鍵の長さを表す、いずれかの値を指定します。

- keynameは、ENCKEYS参照ファイル内の暗号化鍵の論理名です。
例:

ENCRYPT PASSWORD sharedsecret AES256 ENCRYPTKEY mykey1

5. Extractパラメータ・ファイルで、DECRYPTPASSWORDオプションを指定してDBOPTIONSパラメータを使用します。入力値として、暗号化された共通鍵と、Oracle GoldenGate生成型またはユーザー定義型の復号化鍵を指定します。

DBOPTIONS DECRYPTPASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname

説明:

- sharedsecretは、暗号化された共通鍵です。

- {AES128 | AES192 | AES256}は、ENCRYPT PASSWORDに使用したものと同じ値である必要があります。

- keynameは、ENCKEYS参照ファイル内の暗号化鍵の論理名です。
例:

DBOPTIONS DECRYPTPASSWORD AACAAAAAAAAAAAIALCKDZIRHOJBHOJUH AES256 ENCRYPTKEY mykey1

6. SYSDBAシステム権限を持つユーザーとしてSQL*Plusにログインします。

7. ウォレットを閉じ、再度開きます。

SQL> alter system set encryption wallet close identified by "hsm/wallet_password";
System altered.
SQL> alter system set encryption wallet open identified by "hsm/wallet_password";
System altered.

8. Extractを起動します。

START EXTRACT group

11.2 Oracle RAC環境でのクラシック・キャプチャの使用

次の一般的なガイドラインは、クラシック・キャプチャ・モードでExtractが実行される場合のOracle RACに適用されます。

- 操作中になんらかの理由でOracle GoldenGateを実行しているプライマリ・データベース・インスタンスが停止または失敗すると、Extractが異常終了します。処理を再開するには、インスタンスを再開するか、Oracle GoldenGateのバイナリをデータベースを実行している別のノードにマウントしてOracle GoldenGateのプロセスを再開します。別のノードからOracle GoldenGateのプロセスを開始する前に、元のモードでManagerプロセスを停止します。

- REDOスレッド数は常に変更されるため、Extractグループをドロップおよび再作成する必要があります。推奨される手順は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

- トランザクションの発生元のRACインスタンスに関係なく、Extractは必ずトランザクションをコミット順に証跡ファイルに書き込みます。1つ以上のRACインスタンスがアイドルの可能性がある状態でExtractがアーカイブ・ログのみモードでキャプチャする場合、アイドル・ノードでアーカイブ・ログ・スイッチを実行して、アクティブ・インスタンスの操作が証跡ファイルにタイムリに記録されるようにする必要があります。archive_lag_targetパラメータを設定して、事前に設定された間隔でこのログ・アーカイブを自動的に行うようOracle RDBMSに指定することができます。たとえば、ログが15分間隔でアーカイブされるようにするには、アクティビティに関係なく、RACシステムのすべてのインスタンスで次のコマンドを発行します。

SQL> alter system set archive_lag_target 900

- Extractを停止する前にRACクラスタで最後のトランザクションを処理するには、ダミー・レコードをOracle GoldenGateによってレプリケートされるソース表に挿入してから、すべてのノード上でログ・ファイルを切り替えます。これにより、Extractのチェックポイントが更新され、使用可能なすべてのアーカイブ・ログの読取りが可能であることが確認されます。さらに、それによってそれらのアーカイブ・ログのすべてのトランザクションがキャプチャされ、正しい順序で証跡に書き込まれることが確認されます。

次の表に、Oracle GoldenGateのパラメータの中で、Oracle RACで特に便利なパラメータを示します。

表11-1 Oracle RACのクラシックExtractパラメータ

パラメータ

説明

INQUEUESIZEおよびOUTQUEUESIZEオプションを使用したTHREADOPTIONSパラメータ

ターゲット・システムに送信する前にExtractによってメモリーのキューに入れられるデータの量を設定します。これらのパラメータを調整することによって、Oracle RACでExtractのパフォーマンスを向上できる場合があります。

PURGEORPHANEDTRANSACTIONS | NOPURGEORPHANEDTRANSACTIONSおよびTRANSCLEANUPFREQUENCYオプションを使用したTRANLOGOPTIONSパラメータ

トランザクション時にノードが失敗してExtractでロールバックをキャプチャできない場合に発生する可能性がある親のないトランザクションを、Extractが処理する方法を制御します。データベースによってフェイルオーバー・ノードでロールバックが実行されますが、それ以外の場合、トランザクションはExtractトランザクション・リストに無限に残ったままになり、トランザクションを処理していたExtractスレッドに追加のチェックポイントが実行されません。デフォルトでは、トランザクションが親なしであると確認された後にOracle GoldenGateによってそのリストからそれらがパージされます。この機能は、GGSCIでのSEND EXTRACTコマンドを使用して必要に応じて制御することもできます。

window.name='GUID-DAB8EA41-31AE-476A-92D4-302A0FB768B3' function footdisplay(footnum,footnote) { var msg = window.open('', 'NewWindow' + footnum, 'directories=no,height=120,location=no,menubar=no,resizable=yes,' + 'scrollbars=yes,status=no,toolbar=no,width=598'); msg.document.open('text/html'); }
11.3 クラシック・キャプチャ・モードでのASMストアド・ログのマイニング

このトピックでは、Oracle GoldenGateがOracle Automatic Storage Management (ASM)に格納されているトランザクション・ログをマイニングする場合に適用される追加の構成要件について説明します。

11.3.1 ASM内のトランザクション・ログへのアクセス

Extractは、ASMに格納されているログを読み取るよう構成されている必要があります。データベースのバージョンに応じて、次のオプションを使用できます。

11.3.1.1 RDBMSを介したトランザクション・ログの読取り

RDBMSがOracle 11.1.0.7、またはOracle 11.2.0.2以上の11g R2のバージョンである場合、DBLOGREADERオプションを指定してTRANLOGOPTIONSパラメータを使用します。

これらのリリース(ただしOracle 11g R1バージョンではない場合)には、データベース・サーバーを使用してREDOおよびアーカイブ・ログにアクセスするAPIが存在します。使用した場合、このAPIによってExtractで最大4MBの読込みバッファ・サイズが使用できるようになります。バッファを大きくすると、REDO率が高い場合にExtractのパフォーマンスが向上する可能性があります。TRANLOGOPTIONSのDBLOGREADERBUFSIZEオプションを使用してバッファ・サイズを指定できます。

注意:

REDOおよびアーカイブ・ログが通常のディスクまたはRAWデバイス上にある場合は、DBLOGREADERを使用することもできます。

DBLOGREADERおよびOracle Data Vaultを使用している場合は、「Oracle GoldenGate資格証明の確立」にリストされている権限に加えて、DV_GOLDENGATE_REDO_ACCESSロールをExtractデータベース・ユーザーに付与します。

11.3.1.2 ASM直接接続

RDBMSバージョンが「RDBMSを介したトランザクション・ログの読取り」にリストされているバージョンでない場合は、次を実行します。

1. ASMインスタンスに直接アクセスするExtractプロセスのユーザーを作成します。このユーザーに、ASMインスタンスのSYSまたはSYSDBA権限を割り当てます。Oracle GoldenGateは、ASMユーザーのオペレーティング・システム認証をサポートしていません。詳細は、表11-2を参照してください。

表11-2 Extractデータベースの権限: ASMインスタンス

ASMパスワード構成(1)

許可されたユーザー

ASMインスタンスとデータベースでパスワード・ファイルを共有する

Oracle GoldenGateソース・データベース・ユーザーにSYSDBAを付与した場合、そのユーザーを使用できます。あるいは、SYSDBA権限を持つその他のデータベース・ユーザーを使用できます。

ASMインスタンスとソース・データベースで別々のパスワード・ファイルを設定する

ASMパスワード・ファイルをソース・データベースのパスワード・ファイルで上書きできます。この手順によって、ASMインスタンスのSYSパスワードがデータベースのパスワード・ファイルに含まれている値に変わります。また、ASMアクセス権限がデータベースのパスワード・ファイルの他のユーザーに付与されます。それを上書きする前にASMファイルのコピーを保存します。

脚注 1 現在のパスワードの構成方法を表示するには、ASMインスタンスをログオンしてSQL*Plusで次のコマンドを発行します。 SQL> SELECT name, value FROM v$parameter WHERE name = 'remote_login_passwordfile';

2. ALTER CREDENTIALSTOREコマンドを発行して、ASMユーザー資格証明をOracle GoldenGate資格証明ストアに追加します。使用手順および構文は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

3. TRANLOGOPTIONSパラメータにASMUSERALIASオプションを指定して、Extractパラメータ・ファイルにASMログイン別名を指定します。TRANLOGOPTIONSの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

11.3.2 ASM接続の確認

Oracle GoldenGate Extractプロセスが確実にASMインスタンスに接続できるようにするには、tnsnames.oraファイルにASMインスタンスをリストします。Oracle GoldenGateがデータベースのホスト・マシンで実行されている場合には、ASMインスタンスへの接続に、Bequeath (BEQ)プロトコルを使用することをお薦めします。BEQプロトコルにはリスナーは必要ありません。TCP/IPプロトコルを使用する場合は、OracleリスナーがASMインスタンスへの新しい接続をリスニングしていることを確認します。listener.oraファイルに、次のようなエントリが含まれている必要があります。

SID_LIST_LISTENER_ASM =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ASM)
(ORACLE_HOME = /u01/app/grid)
(SID_NAME = +ASM1)
)
)

注意:

リモートExtract構成を使用する場合、BEQ接続は機能しません。TNSNAMESとTCP/IPプロトコルを使用します。

11.4 クラシック・キャプチャでのデータ可用性の確保

Extractがクラシック・キャプチャ・モードで動作する場合、キャプチャ処理の継続性および整合性を保証するには、アーカイブ・ロギングを有効にします。Extractが処理を終了する前にオンライン・ログが再利用される場合、アーカイブ・ログがセカンダリ・データ・ソースになります。オープン・トランザクションのアーカイブ・ログは、Extractでリカバリを実行するためにこれらからのデータの再キャプチャが必要となる場合に備え、システム上に保存する必要があります。

警告:

アーカイブ・ロギングを有効にできない場合、トランザクションがまだアクティブな間にExtractの停止につながる障害が発生した場合、ソースとターゲットのオブジェクトを完全に再同期し、レプリケーションを再インスタンス化する必要があるというリスクを伴います。この方法で操作する必要がある場合、次のガイドラインに従ってオンライン・ログを構成し、オンライン・ログが再利用される前にExtractでキャプチャする必要のあるデータが保持されるようにします。長時間のトランザクションに加え、ネットワークの機能停止とその他の外部要因によって発生するExtractのバックログも考慮してください。

RAC構成では、Oracle GoldenGateがインストールされているクラスタを含むクラスタのすべてのノードのオンラインおよびアーカイブのログにExtractがアクセスできるようにしておく必要があります。

11.4.1 Extractリカバリ・モード別のログ保存要件

Extractで使用される可能性がある様々なリカバリ・モード、およびそれぞれのログ保存要件について次に要約します。

- デフォルトでは制限付きリカバリ・モードが有効で、ExtractではBRパラメータを使用して設定されている制限付きリカバリ期間の2倍までさかのぼってログにアクセスする必要があります。この期間は、CHECKPOINTSECSパラメータによって制御されている、Extractの標準のチェックポイント間隔の整数倍です。これらの2つのパラメータによってOracle GoldenGateの制限付きリカバリ機能が制御され、障害が発生したときにオープンしていた最も古いトランザクションがどんなに古くても、Extractで障害後にインメモリー・キャプチャされたデータのリカバリが可能です。制限付きリカバリの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

- Extractでリカバリを試みたときに制限付きリカバリ・メカニズムが失敗した場合、Extractは通常のリカバリ・モードに戻ります。この場合、失敗時にオープンしていたメモリー内で最も古いトランザクションの始まりが含まれているアーカイブ・ログと、それ以降のすべてのログへのアクセス権をExtractに設定しておく必要があります。

11.4.2 ログ保存のオプション

必要なログがシステム上に保持されるようにするためのオプションは、Oracleのバージョンによって異なります。

11.4.2.1 Oracle Enterprise Edition 11g以降

これらのバージョンの場合、Oracle Recovery Manager (RMAN)を使用して、Extractでリカバリに必要となるログが保存されるようExtractを構成できます。REGISTER EXTRACTコマンドを発行する場合、この機能を有効にします。詳細は、「プロセス・グループの作成」を参照してください。この機能を使用するには、Extractデータベース・ユーザーに、「Oracle GoldenGate資格証明の確立」に示す基本的な権限以外に次の権限がある必要があります。

表11-3 Extractデータベース権限: ログ保存

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.3以降

パッケージを実行してOracle GoldenGateの管理権限を付与します。

exec dbms_goldengate_auth.grant_admin_privilege('user')

ログ保存が有効な場合、Extractは制限付きリカバリを実行するのに十分なログを保持しますが、LOGRETENTIONオプションをSRに設定したTRANLOGOPTIONSパラメータを使用して、通常のリカバリに必要なログをRMANを介して保持するようExtractを構成できます。RMANログ保存の使用を無効にするオプションもあります。Extractを構成する前に『Oracle GoldenGateリファレンスfor Windows and UNIX』に記載されているLOGRETENTIONのオプションを確認してください。LOGRETENTIONをDISABLEDに設定する場合は、「保存するデータ量の判断」を参照してください。

注意:

11.2.0.3より前のOracleバージョンのOracle RACでRMANログ保存をサポートするには、Extractグループを追加する前にBUGFIX 11879974で提供されているデータベース・パッチをダウンロードおよびインストールする必要があります。

RMANログ保存機能により、各Extractグループに基本の(ただし機能しない)Oracle Streamsのキャプチャ・プロセスが作成されます。キャプチャの名前は、関連するExtractグループの名前に基づきます。ログ保存機能は、他のローカルのOracle Streamsインストールと同時に動作可能です。Extractグループを作成するとき、ログは現在のデータベースSCNから保存されます。

注意:

記憶域が一杯の場合は、Extractで必要とされてもRMANによってアーカイブ・ログがパージされます。この制限は、Extract (および他のOracleレプリケーション・コンポーネント)の要件がデータベースへのREDOの可用性を妨げないようにするために存在します。

11.4.2.2 その他のOracleバージョン

Enterprise Edition以外のバージョンのOracleの場合は、任意の管理ツールを使用してログ保存プロセスを管理する必要があります。「保存するデータ量の判断」の指示に従います。

11.4.3 保存するデータ量の判断

ログ保存を管理する場合、Extractで通常のリカバリ(制限付きリカバリではなく)を実行するのに必要となるログに迅速にアクセスできるようにしてください。「Extractリカバリ・モード別のログ保存要件」を参照してください。アーカイブをデータベース・システムから移動する必要がある場合、TRANLOGOPTIONSパラメータで別の場所を指定することができます。「アーカイブ場所の指定」を参照してください。

推奨される保存期間は少なくとも24時間であり、これはオンラインおよびアーカイブのログを含むトランザクション・データを保存できる時間に相当します。Extractが任意の時点で必要とする可能性がある最も古いログを判断するには、SHOWTRANSオプションを使用してSEND EXTRACTコマンドを発行します。データ量とビジネス要件を考慮して最適な保存時間を決定するためにテストを実行しなければならない場合があります。

処理時にExtractで必要なデータがオンラインまたはアーカイブのログに保存されていなかった場合、次のいずれかの修正処理が必要になる可能性があります。

- Extractを変更して、ログ・データが使用できる後の時点から取得します(さらにターゲットで起こり得るデータ損失を受け入れます)。

- ソースおよびターゲットのデータを再同期してから、Oracle GoldenGate環境の開始をさらに繰り返す。

11.4.4 アーカイブ・ログの消去

古いアーカイブ・ファイルが新しいバックアップで上書きされる原因となるバックアップグレードまたはアーカイブのオプションを使用していないことを確認します。理想的には、新しいバックアップは、古い名前とは異なる名前の別のファイルにしてください。これによって、Extractが特定のログを探す際にそのログが確実に存在することになり、また、サポートのために必要になった場合に確実にデータを使用できます。

11.4.5 アーカイブ場所の指定

アーカイブ・ログがOracleのデフォルト・ディレクトリ以外の場所にある場合は、Extractパラメータ・ファイルでTRANLOGOPTIONSパラメータのALTARCHIVELOGDESTオプションを使用してそのディレクトリを指定します。

OracleパラメータLOG_ARCHIVE_FORMATで指定されている形式にサブディレクトリが含まれている場合、TRANLOGOPTIONSのALTARCHIVEDLOGFORMATオプションを使用しなければならないこともあります。ALTARCHIVEDLOGFORMATによって、サブディレクトリをパスから削除する代替形式が指定されます。たとえば、%T/log_%t_%s_%r.arcはlog_%t_%s_%r.arcに変更されます。ALTARCHIVEDLOGFORMATを使用するかわりに、手動でサブディレクトリを作成してから、ログ・ファイルをそれに移動することもできます。

11.4.6 その他のプラットフォームに保存されるログのマウント

Extractが作成されるプラットフォームとは異なるプラットフォームに、オンラインおよびアーカイブのREDOログを保存した場合、次の操作を実行します。

- アーカイブ・ファイルをNFSマウントします。

- ExtractパラメータTRANLOGOPTIONSのLOGSOURCEおよびPATHMAPオプションを使用することで、ファイル構造をソース・システムの構造にマップします。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

11.5 アーカイブ・ログ専用モードでのクラシック・キャプチャの構成

Extractは、アーカイブ・ログからのみ読取りを行うよう構成できます。これはアーカイブ・ログのみ(ALO)モードと呼ばれます。このモードでは、Extractによって、指定された場所に保存されているアーカイブ・ログからのみ読み取られます。ALOモードを使用すると、Extractではデータ・ソースとしてセカンダリ・データベース(スタンバイなど)に転送される本番ログを使用できます。オンライン・ログは使用されません。GoldenGateでは、必要に応じて、セカンダリ・データベースに接続してメタデータとその他の必要なデータを取得します。代替としてALOモードが本番システムでサポートされています。

注意:

ALOモードは、統合キャプチャ・モードで動作するExtractと互換性はありません。

11.5.1 ALOモードの制限および要件

ExtractをALOモードで使用する場合、次の制限およびガイドラインに従います。

- スタンバイ・データベースの作成後にソース・データベースでログのリセット(RESETLOG)を実行することはできません。

- 本番システムがOracle RACであり、スタンバイ・データベースがRAC以外である場合、スタンバイ・データベースでALOを使用することはできません。両方のシステムをOracle RACにすることに加え、各システムのノード数も同一にする必要があります。

- Oracle RAC上のALOでは、ソース・サーバーへの専用接続が必要です。その接続が失われると、Oracle GoldenGateの処理が停止します。

- Oracle RAC用のOracle GoldenGateをALOモードで使用する際は、別々のアーカイブ・ログ・ディレクトリを使用するのがベスト・プラクティスです。これによって、同じファイル名が2回表示され、それが原因で"out of order scn"エラーがExtractで返される可能性が、回避されます。

- ExtractがALOモードの場合、LOGRETENTIONパラメータのデフォルトはDISABLEDです。必要に応じてLOGRETENTION設定を使用し、これをオーバーライドできます。

11.5.2 ALOモードのExtractの構成

ExtractをALOモード用に構成するには、「クラシック・モードでのキャプチャの構成」に記載されたOracle GoldenGateの構成プロセスの一環として次の手順を実行します。

1. ソース・データベースの表に対して、表レベルおよびデータベース表のサプリメンタル・ロギングを有効にします。(「ロギング・プロパティの構成」を参照してください。)

2. Oracle GoldenGateがソース・データベースとは異なるサーバー上で実行されている場合、TNSNAMESファイルに正しいエントリを入力するなど、SQL*Netがリモート・サーバーに接続するように正しく構成されていることを確認します。Extractにソース・データベースへのSQL*Net接続を保持する権限を設定しておく必要があります。

3. プロセスに割り当てられる資格証明ストアのユーザーの名前にSQL*Net接続文字列を使用します。このユーザーの別名を次に指定します。

- そのデータベースに接続するすべてのOracle GoldenGateプロセスのパラメータ・ファイル内のUSERIDALIASパラメータ。

- GGSCIのDBLOGINコマンドのUSERIDALIASの部分。

注意:

Oracle GoldenGateを実行しているサーバーにローカルのスタンバイ・サーバーがある場合、ユーザー指定のUSERIDALIASに接続文字列を使用する必要はありません。ユーザーのログイン名のみを入力できます。

資格証明ストアの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

4. ExtractパラメータTRANLOGOPTIONSとARCHIVEDLOGONLYオプションを使用します。このオプションを使用すると、v$databaseビューのdb_role列のPRIMARYまたはLOGICAL STANDBYの値によって決まる、プライマリまたはロジカルのスタンバイ・データベースに対してExtractが強制的にALOモードで動作します。デフォルトは、オンライン・ログの読取りになっています。v$databaseのdb_role列のPHYSICAL STANDBYの値によって決まる、フィジカル・スタンバイ・データベースに対してALOモードを使用する場合、TRANLOGOPTIONSでARCHIVEDLOGONLYを指定する必要はありません。データベースがフィジカル・スタンバイであることが検出されると、Extractは自動的にALOモードで動作します。

5. ご使用の環境に対してTRANLOGOPTIONSの他のオプションが必要になる場合があります。たとえば、使用するコピー・プログラムに応じて、Extractエラーを回避するためにCOMPLETEARCHIVEDLOGONLYオプションが必要になる場合があります。

6. Extractで表名をソース・オブジェクトIDにマップするには、MAPパラメータを使用します。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

7. BEGINオプションでタイムスタンプを指定してADD EXTRACTコマンドを発行するか、ADD EXTRACTにSEQNOおよびRBAオプションを使用して、Extractグループを追加します。最適なのは、NOW引数を使用するのではなく、データの抽出を開始する既知の開始点をExtractに設定することです。NOWの開始時間は、現在のオンラインREDOログの時間と一致しますが、ALOのExtractではオンライン・ログを読み取ることはできないため、Oracleでのログの切替え時にそのログがアーカイブされるまで待機する必要があります。切替えのタイミングはREDOログのサイズとデータベース・アクティビティのボリュームに依存するため、Extractの開始時とデータのキャプチャ時の間にラグが発生することがあります。これは、通常およびRACのデータベース構成で発生する可能性があります。

11.6 Oracle Active Data Guard専用モードでのキャプチャの構成

Oracle Active Data Guardを使用して、REDOデータおよびメタデータの両方にリアルタイムでアクセスし、ソース・データベース・アクティビティを正常にレプリケートするように、クラシックExtractを構成できます。これは、Active Data Guard (ADG)モードと呼ばれます。ADGモードを使用すると、Extractではデータ・ソースとしてスタンバイ・データベースに転送される本番ログを使用できます。オンライン・ログは使用されません。GoldenGateでは、必要に応じて、スタンバイ・データベースに接続してメタデータとその他の必要なデータを取得します。

このモードは、ADGがすでに適切に配置または実装可能な、負荷の影響を受けやすい環境で便利です。これは、計画されたADGブローカ・ロール(スイッチオーバー)またはフェイルオーバー(計画外)の変更を使用して高可用性を実装する、コスト効率に優れた方法として使用することもできます。ADG構成では、スイッチオーバーおよびフェイルオーバーはロールとみなされます。いずれかの操作が実行されると、それはロール変更とみなされます。詳細は、『Oracle Data Guard概要および管理』および『Oracle Data Guard Broker』を参照してください。

フェッチに必要な表データおよびメタデータをソース・データベースではなくADGからフェッチするように、統合Extractを構成できます。これが可能なのは、ADGがソース・データベースの物理レプリカであるからです。FETCHUSERパラメータを使用したADGからのフェッチは、クラシックExtractとして稼働している場合を除き、すべての構成のExtractでサポートされます。クラシックExtractには、USERIDパラメータを使用して指定された標準接続情報を使用してADGに直接接続し、そのREDOログをマイニングして、そこからフェッチする機能がすでに用意されています。ADGからフェッチする場合、Extractは起動時にソース・データベースから情報(互換性レベル、データベース・タイプ、ソース・データベース検証チェックなど)を収集するので、ソース・データベースへの影響は最小限に抑えられます。

前のフェッチ機能およびパラメータはすべてサポートされます。

11.6.1 ADGモードの使用の制限および要件

ExtractをADGモードで使用する場合、次の制限およびガイドラインに従います。

- ADGモードのExtractは、適用プロセスによってスタンバイ・データベースに適用されているREDOデータのみを適用します。Extractがスタンバイ・データベースの前に実行されると、スタンバイ・データベースがキャッチアップするまで待機します。

- スタンバイ・データベースでExtractを実行するには、クラシックExtractパラメータ・ファイルにADGモードを明示的に指定する必要があります。

- フェッチおよびその他のメタデータの解決はデータベースで実行されるため、ADGシステムに接続するには、データベース・ユーザーおよびパスワードを指定する必要があります。

- スタンバイ・データベースのスタンバイ・ログのREDOスレッドの数は、プライマリ・データベースのノードの数と一致する必要があります。

- クラシックExtractがスタンバイ・データベースで作成された後は、新しいRACインスタンスをプライマリ・データベースに追加することはできません。新しいインスタンスを追加すると、新しいスレッドのREDOデータはクラシックExtractによってキャプチャされません。

- スタンバイ・データベースからアクセスされるアーカイブ・ログおよびスタンバイREDOログは、プライマリ・データベースの正確なコピーになります。REDOデータ、トランザクション・データおよびサプリメンタル・データを含む、サイズおよび内容は一致します。これは、適切に構成されたADGデプロイメントによって保証されます。

- ADGロール変更は不定期で、どちらの場合もユーザーの介入が必要です。

- スイッチオーバーでは、REDOログ・ファイル・ヘッダー(REDOログの終端(EOR)マーカー)に、ログ・ストリームの終端を示すインジケータがあり、これにより、スタンバイのクラシックExtractはRAC調整を正常に完了し、コミットされたすべてのトランザクションを証跡ファイルに転送できます。

- フェイルオーバーでは、新しいインカーネーションID、RESETLOG順序番号およびSCN値で、プライマリ・データベースとスタンバイ・データベースの両方に新しいインカーネーションが作成されます。

- TRANDATAまたはSCHEMATRANDATAの追加はプライマリ・データベースで実行されるため、これを行うには、GGSCIからプライマリ・データベースに接続する必要があります。

- DDLレプリケーション(ADDTRANDATAを除く)をサポートするために、DDLトリガーをスタンバイ・データベースで使用することはできません。Oracle GoldenGate DDLパッケージをプライマリ・データベースにインストールする必要があります。

- DDL ADDTRANDATAはADGモードではサポートされておらず、DDLレプリケーションにはADDSCHEMATRANDATAを使用する必要があります。

- スタンバイ・データベースでExtractを追加する場合は、特定のSCN値、タイムスタンプおよびログの位置を使用して、開始位置を指定する必要があります。NOWなどのタイムスタンプの相対値は不明瞭になり、データの不整合につながる場合があります。

- スタンバイ・データベースでExtractを追加する場合は、プライマリ・データベースからのすべての関連スレッドを含む、スレッドの番号を指定する必要があります。

- フェイルオーバーまたはスイッチオーバーの実行中または実行後は、プライマリ・データベースまたはスタンバイ・データベースにスレッドを追加したり、削除することはできません。

- クラシックExtractは、1つのRESETLOG操作の介在のみを使用します。

- Oracle GoldenGateインストールを再配置しない場合は、プライマリ・データベースおよびスタンバイ・データベースからOracle GoldenGateインストール・ディレクトリにアクセスできる共有スペースに配置する必要があります。

- キャプチャをADGスタンバイ・データベースからプライマリ・データベースに移動する場合は、ネット別名がプライマリ・データベースを指すようにし、TRANLOGオプションを削除する必要があります。

- 互換性設定が10.2以上(10gリリース2)で実行しているOracle Databaseリリースのみがサポートされます。

- クラシックExtractでは、DBLOGREADERオプションを使用できません。ASMUSER (約20GB/時の読取り制限があります)を使用するか、プライマリ・データベースとスタンバイ・データベースの両方で、オプション・ログとアーカイブ・ログをアプリケーション・セキュリティ・マネージャの外に移動します。

11.6.2 ADGモードのクラシックExtractの構成

クラシックExtractをADGモード用に構成するには、「クラシック・モードでのキャプチャの構成」に記載されたOracle GoldenGateの構成プロセスの一環として次の手順を実行します。

1. プライマリ・データベースの表に対して、ADD SCHEMATRANDATAパラメータを使用して、表レベルおよびデータベース・レベルのサプリメンタル・ロギングを有効にします。必要に応じて、DDLキャプチャを作成します。(「ロギング・プロパティの構成」を参照してください。)

2. Oracle GoldenGateがソース・データベースとは異なるサーバー上で実行されている場合、TNSNAMESファイルに正しいエントリを入力するなど、SQL*Netがリモート・サーバーに接続するように正しく構成されていることを確認します。Extractにソース・データベースへのSQL*Net接続を保持する権限を設定しておく必要があります。

3. スタンバイ・データベースで、MINEFROMACTIVEDGオプションを指定して、ExtractパラメータTRANLOGOPTIONSを使用します。このオプションを使用すると、v$databaseビューのdb_role列のPRIMARYまたはLOGICAL STANDBYの値によって決まる、スタンバイ・データベースに対してExtractが強制的にADGモードで動作します。

ご使用の環境に対してTRANLOGOPTIONSの他のオプションが必要になる場合があります。たとえば、使用するコピー・プログラムに応じて、Extractエラーを回避するためにCOMPLETEARCHIVEDLOGONLYオプションが必要になる場合があります。

4. スタンバイ・データベースで、指定したSCNのプライマリ・データベースでアクティブなスレッドの数を指定するADD EXTRACTコマンドを発行して、Extractグループを追加します。切替えのタイミングはREDOログのサイズとデータベース・アクティビティのボリュームに依存するため、Extractの開始時とデータのキャプチャ時の間に制限されたラグが発生することがあります。これは、通常およびRACのデータベース構成で発生する可能性があります。

11.6.3 ADGデータベースとの間でのクラシックExtractの移行

ADGデータベースとの間でクラシックExtractの移行を試みる前に、パラメータ・ファイル、チェックポイント・ファイル、Bounded Recoveryファイルおよび証跡ファイルを共有記憶域に格納するか、ADGデータベースにコピーする必要があります。また、ロール変更の介在がないようにするか、Extractが同じREDOのブランチをマイニングする必要があります。

ADGデータベースに移動するには、次の手順を使用します。

1. パラメータ・ファイルext1.prmを編集し、次のパラメータを追加します。

DBLOGIN USERID userid@ADG PASSWORD password
TRANLOGOPTIONS MINEFROMACTIVEDG

2. START EXTRACT ext1コマンドを発行して、Extractを起動します。

ADGデータベースから移動するには、次の手順を使用します。

1. パラメータ・ファイルext1.prmを編集し、次のパラメータを削除します。

DBLOGIN USERID userid@ADG PASSWORD password
TRANLOGOPTIONS MINEFROMACTIVEDG

2. START EXTRACT ext1コマンドを発行して、Extractを起動します。

11.6.4 ADG構成でのロール変更の処理

スタンバイ・データベースに関するロール変更では、Extractで使用されている接続を含む、プライマリ・データベースおよびスタンバイ・データベースのすべてのセッションが最初に切断されます。これにより、両方のデータベースが停止し、元のプライマリがスタンバイ・データベースとしてマウントされ、元のスタンバイがプライマリ・データベースとして開かれます。

ロール変更の手順は、クラシックExtractの初期デプロイメント、および必要なデプロイメント関係(データベースまたはロール)によって決定されます。次の表は、4つの可能なロール変更を示しており、prisysおよびstansysの2つのデータベースで構成されるADG構成を前提としています。prisysシステムにはプライマリ・データベース、stansysにはスタンバイ・データベースが含まれ、prisysには2つのREDOスレッド・アーカイブ、stansysには4つのREDOスレッド・アーカイブが含まれます。

初期デプロイメント・プライマリ(prisys)

初期デプロイメントADG (stansys)

元のデプロイメント:

ext1.prm
DBLOGIN USERID userid@prisys, PASSWORD password

ext1.prm
DBLOGIN USERID userid@stansys, PASSWORD password
TRANLOGOPTIONS MINEFROMACTIVEDG

データベース関連:

ロール・トランジション後: クラシックExtractからADG

1. ext1.prmファイルを編集して、次を追加します。
TRANLOGOPTIONS MINEFROMACTIVEDG

2. フェイルオーバーの場合は、TRANLOGOPTIONS USEPREVRESETLOGSIDを追加します。

3. Extractを起動します。
START EXTRACT ext1

Extractはロール・トランジション・ポイントに到達すると、異常終了し、内部BR_RESETを実行して、I/Oチェックポイントおよび現在のチェックポイントの両方をSCN sに移動します。

4. フェイルオーバーの場合は、パラメータ・ファイルを再度編集し、次を削除します。
TRANLOGOPTIONS USEPREVRESETLOGSID

5. ALTER EXTRACT ext1 SCN #を実行します( #は、ロール・スイッチ・メッセージからのSCN値です)。

6. スレッド数に基づいて、次のいずれかを実行します。
スレッド数がデータベース間で同じ場合は、START EXTRACT ext1;コマンドを実行します。

または

スレッド数がデータベース間で異なる場合は、次のコマンドを実行します。

DROP EXTRACT ext1

ADD EXTRACT ext1 THREADS t BEGIN SCN s

START EXTRACT ext1

ロール・トランジション後: ADGからクラシックExtract

1. ext1.prmを編集して、次を削除します。
TRANLOGOPTIONS MINEFROMACTIVEDG

2. フェイルオーバーの場合は、TRANLOGOPTIONS USEPREVRESETLOGSIDを追加します。

3. Extractを起動します。
START EXTRACT ext1

Extractはロール・トランジション・ポイントに到達すると、異常終了し、内部BR_RESETを実行して、I/Oチェックポイントおよび現在のチェックポイントの両方をSCN sに移動します。

4. フェイルオーバーの場合は、パラメータ・ファイルを再度編集し、次を削除します。
TRANLOGOPTIONS USEPREVRESETLOGSID

5. ALTER EXTRACT ext1 SCN #を実行します( #は、ロール・スイッチ・メッセージからのSCN値です)。

6. スレッド数に基づいて、次のいずれかを実行します。
スレッド数がデータベース間で同じ場合は、START EXTRACT ext1;コマンドを実行します。

または

スレッド数がデータベース間で異なる場合は、次のコマンドを実行します。

DROP EXTRACT ext1

ADD EXTRACT ext1 THREADS t BEGIN SCN s

START EXTRACT ext1

ロール関連:

ロール・トランジション後: クラシックExtractからクラシックExtract

1. ext1.prmを編集して、データベース・システムをスタンバイ・システムに変更します。
DBLOGIN USERID userid@stansys, PASSWORD password

2. フェイルオーバーの場合は、TRANLOGOPTIONS USEPREVRESETLOGSIDを追加します。

3. Extractを起動します。
START EXTRACT ext1

Extractはロール・トランジション・ポイントに到達すると、異常終了し、内部BR_RESETを実行して、I/Oチェックポイントおよび現在のチェックポイントの両方をSCN sに移動します。

4. フェイルオーバーの場合は、パラメータ・ファイルを再度編集し、次を削除します。
TRANLOGOPTIONS USEPREVRESETLOGSID

5. ALTER EXTRACT ext1 SCN #を実行します(#は、ロール・スイッチ・メッセージからのSCN値です)。

6. スレッド数に基づいて、次のいずれかを実行します。
スレッド数がデータベース間で同じ場合は、START EXTRACT ext1;コマンドを実行します。

または

スレッド数がデータベース間で異なる場合は、次のコマンドを実行します。

DROP EXTRACT ext1

ADD EXTRACT ext1 THREADS t BEGIN SCN s

START EXTRACT ext1

ロール・トランジション後: ADGからADG

1. ext1.prmを編集して、データベース・システムをプライマリ・システムに変更します。
DBLOGIN USERID userid@prisys, PASSWORD password

2. フェイルオーバーの場合は、TRANLOGOPTIONS USEPREVRESETLOGSIDを追加します。

3. Extractを起動します。
START EXTRACT ext1

Extractはロール・トランジション・ポイントに到達すると、異常終了し、内部BR_RESETを実行して、I/Oチェックポイントおよび現在のチェックポイントの両方をSCN sに移動します。

4. フェイルオーバーの場合は、パラメータ・ファイルを再度編集し、次を削除します。
TRANLOGOPTIONS USEPREVRESETLOGSID

5. ALTER EXTRACT ext1 SCN #を実行します(#は、ロール・スイッチ・メッセージからのSCN値です)。

6. スレッド数に基づいて、次のいずれかを実行します。
スレッド数がデータベース間で同じ場合は、START EXTRACT ext1;コマンドを実行します。

または

スレッド数がデータベース間で異なる場合は、次のコマンドを実行します。

DROP EXTRACT ext1

ADD EXTRACT ext1 THREADS t BEGIN SCN s

START EXTRACT ext1

11.7 クラシック・キャプチャでのログ読取りのボトルネックの回避

Oracle GoldenGateによってREDOログからデータがキャプチャされると、データベースのロギング・メカニズムによって書き込まれている同じファイルがExtractで読み取られるため、I/Oボトルネックが発生する可能性があります。同じログを読み取るExtractプロセスの数の増加に伴ってパフォーマンスが低下します。次の操作を実行できます。

- さらに高速なドライバおよびコントローラを使用してみます。さらに高速なI/OシステムでExtractとデータベースの両方のロギング・メカニズムの速度が速くなります。

- RAID 0+1にログを保存します。書き込まれたすべてのブロックでチェックサムを実行し、高レベルの連続したI/Oには不向きなRAID5は使用しないでください。

12 非統合Replicatを使用するための追加の構成手順

この章では、非統合モードで動作する場合のReplicat専用の手順について説明します。Replicatが非統合モードで動作する場合、トリガー、カスケード制約および一意の識別子を、Oracle GoldenGate環境で適切に構成する必要があります。

この章の内容は次のとおりです。

- ターゲット表でのトリガーと参照カスケード制約の無効化

- ターゲット表での制約チェックの延期

この章は、「Oracle GoldenGateの適用の構成」に記載されている基本的な構成要件を補足するものです。

12.1 ターゲット表でのトリガーと参照カスケード制約の無効化

Replicatが非統合モードの場合、トリガーとカスケード制約をOracleターゲット表で無効にする必要があります。Oracle GoldenGateには、Oracleバージョンに応じてトリガーまたはカスケード制約を自動的に処理するオプションがいくつか用意されています。

- Oracle 11.2.0.2以降の11gR2の各バージョンの場合、Replicatは、セッション中、トリガーによって行われる処理を無効にします。トリガーは無効になりませんが、かわりに、トリガー本体が実行されなくなります。ただし、トリガーのWHEN部分はコンパイルして実行し、データベース・エラーが起きないようにする必要があります。トリガーの起動を有効にするには、または手動で無効にするには、DBOPTIONSのNOSUPPRESSTRIGGERSオプションを使用して、USERIDALIASパラメータの後に文を配置します。特定のトリガーの起動を許可するには、次のデータベース・プロシージャを使用します。trigger_ownerはトリガーの所有者で、trigger_nameはトリガーの名前です。特定のトリガーに対してプロシージャがFALSEでコールされると、そのプロシージャがTRUEでコールされるまで設定されたままになります。

- dbms_ddl.set_trigger_firing_property(trigger_owner "trigger_name", FALSE)

- Oracle 11.2.0.2以降の11gR2の各バージョンの場合、DEFERREFCONSTオプションを指定してDBOPTIONSパラメータを使用し、Replicatトランザクションがコミットされるまで、カスケード更新およびカスケード削除の制約のチェックおよび強制を延期できます。

- 他のOracleのバージョンの場合、トリガーと整合性制約を無効にするか、それらを手動で変更して、Replicatデータベース・ユーザーを無視します。

Oracle GoldenGateでは、トリガーまたはカスケード制約の発生によって生じたDMLがレプリケートされるため、Replicatが非統合モードの場合は制約を無効にする必要があります。同じトリガーや制約がターゲット表でアクティブになった場合、レプリケートされたバージョンのために重複となり、データベースでエラーが返されます。ソース表がemp_srcおよびsalary_src、ターゲット表がemp_targおよびsalary_targである場合の次の例を検討してください。

1. emp_srcに削除が発行されます。

2. それによって、削除がsalary_srcにカスケードされます。

3. Oracle GoldenGateが、両方の削除をターゲットに送信します。

4. 親削除が最初に到達し、emp_targに適用されます。

5. 親削除によって、削除がsalary_targにカスケードされます。

6. salary_srcからカスケードされた削除がsalary_targに適用されます。

7. 行は、すでに手順5で削除されているため、見つかりません。

12.2 ターゲット表での制約チェックの延期

Replicatが非統合モードの場合、ターゲットで制約チェックを延期する必要がある場合があります。

1. ソースで制約がDEFERRABLEである場合、ターゲットの制約もDEFERRABLEにする必要があります。次のパラメータ文のいずれかを使用して、Replicatのトランザクションがコミットされるまで制約チェックを延期できます。

- Replicatセッション全体で制約を延期するには、Replicatパラメータ・ファイルのルート・レベルでSQLEXECを使用します。
SQLEXEC ("alter session set constraint deferred")

- DEFERREFCONSTオプションを指定してReplicatパラメータDBOPTIONSを使用し、各Replicatトランザクションに対する制約チェックを遅延させます。

2. 一時的な主キーの重複によって生じた整合性エラーに対応するようにReplicatを構成する必要がある場合があります。一時的な主キーの重複は、トランザクションの実行中に一時的に生じ、トランザクションのコミット時に解決する重複です。この種の操作では、通常、SET x = x+n式または新しい値が既存の値と等しくなるように値を変更するその他の操作を使用します。

次に、制約が延期されない場合に一時的な主キーの重複が発生する可能性がある一連の値変更を示します。例では、主キー列は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;

この例では、キー値2がすでに表に存在するため、Replicatによって最初の更新がターゲットに適用されると、ORA-00001(一意制約)エラーになります。Replicatトランザクションによって制約違反エラーが返されます。デフォルトでは、Replicatによってそれらの違反および異常終了は処理されません。

12.2.1 11.2.0.2より前のバージョンでの一時的な主キーの重複の処理

11.2.0.2より前のバージョンで一時的な主キーの重複を処理するには、ReplicatパラメータHANDLETPKUPDATEを使用します。この構成では、非統合Replicatは、制約を一時的に延期して一時的な主キーの更新を処理します。この機能をサポートするには、ターゲット表でDEFERRABLE INITIALLY IMMEDIATEとして制約を作成または変更する必要があります。制約がDEFERRABLEでない場合、Replicatは、HANDLECOLLISIONSおよびREPERRORパラメータを使用して指定されているルール(存在する場合)に従ってエラーを処理するか、異常終了します。

12.2.2 11.2.0.2以降のバージョンでの一時的な主キーの重複の処理

11.2.0.2より後のバージョンの場合、非統合Replicatは、デフォルトではOracle Workspace Managerの作業領域を使用して一時的な主キーの重複を自動的に解決しようとします。この構成では、Replicatは、コミット時まで制約チェックを延期します。制約は、明示的に延期可能として定義されている必要はありません。

一時的な主キーの重複の自動処理の要件は、次のとおりです。

- Replicatデータベース・ユーザーに次のOracle関数へのアクセス権を付与します。

DBMS_XSTREAM_GG.ENABLE_TDUP_WORKSPACE()

- ターゲット表は延期可能な制約を持つことはできません。延期可能な制約がある場合、Replicatはエラーを返し、異常終了します。

延期可能な制約を持つ表を処理するには、制約がDEFERRABLE INITIALLY IMMEDIATEであることを確認し、その表をマップするMAP文でHANDLETPKUPDATEパラメータを使用します。HANDLETPKUPDATEパラメータでは、デフォルトである重複の自動処理がオーバーライドされます。作業領域の使用によって、次のOracle GoldenGateのエラー処理パラメータが影響を受けます。

- HANDLECOLLISIONS

- REPERROR

ReplicatによってOracle Workspace Managerの作業領域が有効になると、HANDLECOLLISIONS、REPERRORなどのOracle GoldenGateパラメータで指定されたエラー処理が無視されます。かわりに、グループ化されたトランザクション(BATCHSQLが有効な場合)がReplicatによって異常終了され、アクティブな作業領域を使用して通常のモードで更新が再試行されます。再度ORA-00001が発生する場合、Replicatでトランザクションがロールバックされ、有効なエラー処理ルールを使用してトランザクションが再試行されます。

注意:

非更新レコードに対してORA-00001が発生する場合、HANDLECOLLISIONS、REPERRORなどのエラー処理のパラメータによってエラーが処理されます。

一時的な主キーの重複を含む操作に、LOBやXMLTypeなどの行外列の更新も含まれる場合、作業領域は使用できません。したがって、そのようなケースはサポートされず、ターゲットで未検出のデータの破損が発生する可能性があります。この例は、次のとおりです。

update T set PK = PK + 1, C_LOB = 'ABC';

13 DDLサポートの構成

この章では、Oracle GoldenGateにおけるDDLサポートの理解とその構成方法について説明します。

この章の内容は次のとおりです。

- DDL構成の前提条件

- DDL同期の概要

- Oracle GoldenGate DDLサポートの制限

- DDLサポートに関する構成のガイドライン

- DDLスコープについて

- DDL内の修飾されていないオブジェクト名の正しい識別

- DDLサポートの有効化

- DDLレプリケーションのフィルタリング

- 特別なフィルタのケース

- Oracle GoldenGateによる導出オブジェクト名の処理方法

- DDL文字列置換の使用

- 様々なトポロジをサポートするためのDDLの伝播の制御

- サプリメンタル・ログ・グループの自動追加

- レプリケートされたDDLからのコメントの削除

- IDENTIFIED BYパスワードのレプリケート

- 処理でDDLが評価される仕組み

- DDL処理エラーの処理

- DDLレポート情報の表示

- DDL処理のトレース

- トリガーベースのDDLキャプチャをサポートするツールの使用

- エディションベース再定義の使用

13.1 DDL構成の前提条件

Extractでは、ソースOracle Databaseから専用のDDLトリガーを使用するか、またはOracleログマイニング・サーバーを介してネイティブに、DDL操作をキャプチャできます。どちらの方法を使用できるかは、Extractのキャプチャ・モードおよびソースOracle Databaseのバージョンによって決まります。この項では、各キャプチャ・モードで使用可能なサポートについて説明します。これらのモードの詳細は、「キャプチャおよび適用モードの選択」を参照してください。

13.1.1 統合キャプチャ・モードでのDDLキャプチャのサポート

Extractの統合キャプチャ・モードでは、DDLのキャプチャ方法が2つサポートされています。

- Oracle 11.2.0.4以降: データベースのCOMPATIBLEパラメータが11.2.0.4以上に設定されているOracle Databaseは、データベース・ログマイニング・サーバーからのDDLキャプチャをサポートしています。この方法はネイティブDDLキャプチャと呼ばれます(トリガーレスDDLキャプチャとも呼ばれます)。トリガーやインストール済サポート対象オブジェクトは不要です。ネイティブDDLキャプチャは、マルチテナント・コンテナ・データベースからDDLをキャプチャする場合にサポートされている唯一の方法です。ダウンストリーム・マイニングの場合、データベース・ログマイニング・サーバーからのDDLキャプチャをサポートするには、ソース・データベースでデータベースのCOMPATIBLEが11.2.0.4以上に設定されていることも必要です。

- 11.2.0.4より前のバージョン: COMPATIBLEパラメータが11.2.0.4より前に設定されているOracle Databaseには、Oracle GoldenGate DDLトリガーの使用が必要です。トリガーベースのDDLキャプチャを使用するには、DDLサポート用にExtractを構成する前に、DDLトリガーおよびサポートされているオブジェクトをインストールしておく必要があります。手順については、「トリガーベースのDDLキャプチャのインストール」を参照してください。

13.1.2 クラシック・キャプチャ・モードでのDDLキャプチャのサポート

クラシック・キャプチャ・モードでは、Oracle DatabaseからのDDLのキャプチャにOracle GoldenGateのDDLトリガーを使用する必要があります。ネイティブのDDLキャプチャは、クラシック・キャプチャ・モードではサポートされません。マルチテナント・コンテナ・データベースからのDDLキャプチャは、クラシック・キャプチャ・モードではサポートされません。

トリガーベースのDDLキャプチャを使用するには、DDLサポート用にExtractを構成する前に、DDLトリガーおよびサポートされているオブジェクトをインストールしておく必要があります。手順については、「トリガーベースのDDLキャプチャのインストール」を参照してください。

13.2 DDL同期の概要

Oracle GoldenGateでは、あるデータベースから別のデータベースへのDDL操作の同期がサポートされています。DDL同期は、次のような場合にアクティブになります。

- ビジネス・アプリケーションが、ソースとターゲットのオブジェクトにアクティブにアクセスし、更新している場合。

- Oracle GoldenGateのトランザクション・データの同期がアクティブな場合。

DDLのレプリケーションおよびトランザクション・データ変更(DML)のレプリケーションをサポートするコンポーネント同士は、相互に独立しています。そのため、次のような同期が可能です。

- DDL変更のみ

- DML変更のみ

- DDLとDMLの両方

Oracleに対するDDLサポートについて、サポートされているオブジェクトと操作のリストは、「Oracle DDLでサポートされているオブジェクトおよび操作」を参照してください。

13.3 Oracle GoldenGateにおけるDDLサポートの制限事項

この項では、DDL機能の制限について説明します。このドキュメントの発行後に明らかになったその他の制限事項については、『Oracle GoldenGateリリース・ノートfor Windows and UNIX』を参照してください。

13.3.1 DDL文の長さ

Oracle GoldenGateでは、文字数ではなく、バイト数でDDL文の長さが計測されます。サポートされる長さは、約4MBです。これには、影響を受けるオブジェクトの名前とそのDDLタイプやその他の特性に応じてサイズが異なる内部的なオーバーヘッドが含まれます。DDLがサポートされているサイズより長い場合は、Extractにより警告が発行され、DDL操作が無視されます。

ExtractがDDLトリガーによってDDLをキャプチャしている場合、無視されたDDLはマーカー表に保存されます。無視されたOracle DDL文とその他のOracle DDL文は、DDL操作をOracleのUSER_DUMP_DESTディレクトリのテキスト・ファイルに保存するddl_ddl2file.sqlスクリプトを使用してキャプチャできます。スクリプトから、次の入力を求められます。

- Oracle GoldenGate DDLオブジェクトを含むスキーマの名前。これは、GLOBALSファイルに指定されています。

- Oracle GoldenGateマーカー順序番号。これは、Extractパラメータ・ファイルでDDLOPTIONSにREPORTオプションが使用されている場合にExtractレポート・ファイルに記録されます。

- 出力ファイルの名前。

13.3.2 サポートされているトポロジ

Oracle GoldenGateでは、同じ構成においてのみDDL同期がサポートされます。ソースとターゲットのオブジェクト定義は同一であることが必要です。

Oracle GoldenGateは、スタンバイ・データベースではDDLをサポートしていません。

Oracle GoldenGateでは、2つ(のみ)のシステム間のすべてのサポートされている1方向構成および双方向構成でDDLレプリケーションがサポートされます。Oracleアクティブ/アクティブ構成で特に考慮する事項については、「アクティブ/アクティブ(双方向)構成でのDDLの伝播」を参照してください。

13.3.3 フィルタリング、マッピングおよび変換

DDL操作は、Oracle GoldenGateプロセスでは変換されません。ただし、プライマリExtractまたはReplicatプロセスで、ソースDDLを別のターゲット・オブジェクトにマップおよびフィルタリングできます。データ・ポンプExtractによるDDLのマッピングやフィルタリングはできません。DDLは、プライマリExtractから受信したとおりに渡されます。

たとえば、ALTER TABLE TableAは、データ・ポンプによってALTER TABLE TableAとして処理されます。TABLE文の指定に関係なく、そのプロセスでALTER TABLE TableBとしてマップされません。

13.3.4 名前変更

スキーマ名をターゲットのDDL文に含めることができるように、表でのRENAME操作は同等のALTER TABLE RENAMEに変換されます。たとえば、RENAME tab1 TO tab2は、ALTER TABLE schema.tab1 RENAME TO schema.tab2に変更されます。変換は、Replicatプロセスのレポート・ファイルにレポートされます。

13.3.5 表からのフェッチとDDLとの相互作用

Oracle GoldenGateでは、一部のデータ型は、変更された行をREDOストリームから特定し、基になる表に問い合せて変更された列をフェッチすることでサポートされます。たとえば、クラシック・キャプチャで、LOBの部分的な更新(dbms_lobパッケージを介した変更)は、変更された行とLOB列をREDOログから特定し、ベース表に行のLOB列の値を問い合せることでサポートされます。同様の手法が、UDTのサポートに使用されます(クラシックと統合の両方のキャプチャ)。

注意:

統合キャプチャでは、ネイティブ・オブジェクト・サポートを使用していない場合のみ、UDTのためのフェッチが必要になります。

そのようなフェッチベースのサポートは、トランザクションがコミットされたSCN(システム変更番号)に基づいてデータベースにフラッシュバック問合せを発行することで実装されます。フラッシュバック問合せ機能にはいくつかの制限があります。一部のDDL操作が妨げとなり、そのDDLより前のデータを取得するためのフラッシュバック問合せが成功しません。そのようなDDLの例には、ALTER TABLE MODIFY COLUMNやALTER TABLE DROP COLUMNがあります。

したがって、Extractのキャプチャにラグがある場合、間にあるDDLによって、そのDDLより前のデータに対するフェッチ・リクエストが失敗することがあります。そのような場合、Extractは元に戻り、変更された列に対するデータの現在のスナップショットをフェッチします。この方法には、いくつかの制限があります。1つ目は、DDLによって、Extractがフェッチする必要のある列が変更されている可能性があるということです(たとえば、間にあるDDLによって、キャプチャ対象のUDTに新規属性が追加された場合など)。2つ目に、DDLによってExtractで論理行識別子として使用される列の1つが変更されている可能性があります。3つ目に、Extractがデータをフェッチする前に、表の名前が変更されている可能性があります。

このようなフェッチに関連する不整合を防ぐには、列の変更の際、次のような予防策を講じます。

1. 表に対するすべてのDMLを一時停止します。

2. Extractが残りのすべてのREDOのキャプチャを終了するのを待ち、Replicatがキャプチャされたデータの証跡からの処理を終了するのを待ちます。Replicatが終了したかどうかを判断するには、処理するデータがこれ以上存在しないことを示すメッセージが表示されるまでGGSCIで次のコマンドを発行します。

INFO REPLICAT group

3. DDLをソースで実行します。

4. ソースのDML操作を再開します。

13.3.6 SQL内のコメント

ソースDDL文でオブジェクト名の間にコメントが含まれている場合、そのコメントは、ターゲットDDL文ではオブジェクト名の最後に表示されますい。次に例を示します。

ソース:

CREATE TABLE hr./*comment*/emp ...

ターゲット:

CREATE TABLE hr.emp /*comment*/ ...

これは、DDL同期の整合性に影響しません。DDL文の他の箇所のコメントは、レプリケート時、元のままです。

13.3.7 コンパイル・エラー

トリガー、プロシージャ、ファンクションまたはパッケージに対するCREATE操作がコンパイル・エラーになった場合でも、Oracle GoldenGateは、ターゲットに対してそのDDL操作を実行します。実際、DDL操作自体は正常に完了し、再帰プロシージャなどでターゲットに対する依存性の実行が可能になるようこれらの操作を伝播できます。

13.3.8 時間隔パーティション化

DDLが暗黙的であるため、DDLレプリケーションは時間隔パーティション化の影響を受けません。ただし、これはシステム生成の名前であるため、Replicatではこれをターゲットに変換できません(これは予想される動作と思います)。ソース上でパーティションを削除する必要があります。次に例を示します。

alter table t2 drop partition for (20);

13.3.9 DDLトリガー内で実行されたDMLまたはDDL

DDLトリガー内で実行されたDMLまたはDDL操作は、キャプチャされません。

13.3.10 LogMinerデータ・ディクショナリのメンテナンス

Extractが登録され(LogMinerセッション)、LogMinerディクショナリがロードされるか、データベースの重要なDDLアクティビティの後に、ディクショナリ統計を収集することをお薦めします。

13.4 DDLサポートの構成ガイドライン

次に、Oracle GoldenGateプロセスがDDLレプリケーションをサポートするよう構成する際に考慮するガイドラインを示します。

13.4.1 データベースの権限

Oracle GoldenGateでDDLのキャプチャとレプリケーションをサポートするために必要なデータベース権限については、「Oracle GoldenGate資格証明の確立」を参照してください。

13.4.2 並列処理

Extract/Replicatの並列処理を使用している場合は、関連するDDLとDMLを同じプロセス・ストリームに保持し、データの整合性を確保します。プロセスを次のように構成します。

- あるオブジェクトに対するすべてのDDLおよびDMLが、同じExtractグループおよび同じReplicatグループで処理されるようにします。

- 相互に関連するすべてのオブジェクトが、同じプロセス・グループで処理されるようにします。

たとえば、ReplicatAがTable1のDMLを処理する場合は、Table1のDDLも処理する必要があります。Table2にTable1に対する外部キーがある場合は、そのDMLとDDLの操作もReplicatAによって処理される必要があります。

Extractグループが、異なるReplicatグループによって読み取られる複数の証跡に書き込む場合、ExtractはすべてのDDLをすべての証跡に送信します。Replicatパラメータ・ファイルにあるDDLパラメータのフィルタ・オプションを使用してDDLをフィルタするには、各Replicatグループを使用します。

13.4.3 オブジェクト名

Oracle GoldenGateでは、データベース定義のオブジェクト名、ケースおよびキャラクタ・セットが保持されます。このサポートにより、データベース階層のすべてのレベルにおいて、シングルバイト名とマルチバイト名、記号およびアクセント文字が保持されます。オブジェクト名のサポートの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

DDL同期をサポートするパラメータの入力として指定する場合、オブジェクト名は2つの部分または3つの部分からなる名前として完全修飾されている必要があります。DDL同期をサポートする構成パラメータで、疑問符(?)およびアスタリスク(*)のワイルドカードを使用してオブジェクト名を指定できます。ただし、ワイルドカード指定も、2つの部分または3つの部分からなる名前として完全修飾されている必要があります。ワイルドカードのサポートの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。ワイルドカードを正しく処理するため、WILDCARDRESOLVEパラメータはデフォルトでDYNAMICに設定されています。WILDCARDRESOLVEがそれ以外に設定されている場合、DDL操作を処理しているOracle GoldenGateプロセスが異常終了し、プロセス・レポートにエラーが書き込まれます。

13.4.4 データ定義

DDLサポートには同一の構成が必要であるため、Replicatパラメータ・ファイルにASSUMETARGETDEFSパラメータを使用する必要があります。オブジェクトがDDLサポート向けに構成されている場合に、SOURCEDEFSパラメータが使用されていると、Replicatが異常終了します。ASSUMETARGETDEFSの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

定義ファイルの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

13.4.5 切捨て

TRUNCATE文は、次のようにサポートされます。

- Oracle GoldenGateのフルDDLサポートの一環として、TRUNCATE TABLE、ALTER TABLE TRUNCATE PARTITIONおよび他のDDLがサポートされます。これは、DDLパラメータによって制御されます(「DDLサポートの有効化」を参照)。

- スタンドアロンTRUNCATEサポートとして。このサポートによって、TRUNCATE TABLEはレプリケートできますが、他のDDLはできません。GETTRUNCATESパラメータによって、スタンドアロンのTRUNCATE機能が制御されます。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

重複操作によるエラーを回避するために、同時にアクティブにできるのはこれらの機能の1つだけです。

13.4.6 初期同期

DDLレプリケーションを構成するには、ソース・データベースと同期しているターゲット・データベースから開始します。DDLサポートはReplicatの初期ロード・メソッドと互換性があります。

初期ロードを実行する前に、DDLの抽出およびレプリケーションを無効化します。DDL処理は、ExtractおよびReplicatのパラメータ・ファイルのDDLパラメータによって制御されます。

ソース・データとターゲット・データの初期同期ができたら、ソース・アプリケーションを実行する前に、NEXTVALですべてのソース順序値を少なくとも1回使用します。システム内の各順序からNEXTVALを選択するスクリプトを使用できます。これは、Extractの実行中に行われる必要があります。

13.4.7 CREATEまたはRENAMEの後のデータ継続性

CREATE操作またはRENAME操作の結果生じた新規のOracle表に対するDML操作をレプリケートするには、新規表の名前がパラメータ・ファイルのTABLE文およびMAP文に指定される必要があります。ワイルドカードを使用して、それらが必ず含まれるようにできます。

CREATE USERを使用して新規ユーザーを作成し、新規または名前が変更された表をそのスキーマに移動するには、新規ユーザー名がTABLE文およびMAP文に指定される必要があります。新規ユーザーfin2を作成し、新規または名前が変更された表をそのスキーマに移動する場合、fin2オブジェクトをターゲットの同じスキーマにマップするか、異なるスキーマにマップするかに応じて、パラメータ文は次のようになります。

Extract:

TABLE fin2.*;

Replicat:

MAP fin2.*, TARGET different_schema.*;

window.name='GUID-58579393-3E95-423C-A3BB-F87288327B9E' function footdisplay(footnum,footnote) { var msg = window.open('', 'NewWindow' + footnum, 'directories=no,height=120,location=no,menubar=no,resizable=yes,' + 'scrollbars=yes,status=no,toolbar=no,width=598'); msg.document.open('text/html'); }
13.5 DDLスコープについて

データベース・オブジェクトは、スコープで分類されます。スコープは、オブジェクトに対するDDL操作がOracle GoldenGateでどのように処理されるかを定義するカテゴリです。スコープは次のとおりです。

- MAPPED

- UNMAPPED

- OTHER

スコープを使用すると、DDL操作、文字列の置換およびエラー処理のフィルタリングをより詳細に制御できます。

13.5.1 マップされるスコープ

TABLEおよびMAP文に指定されるオブジェクトは、MAPPEDスコープです。それらの文での抽出とレプリケーションの指示は、オーバーライド・ルールが適用されていないかぎり、指定されたオブジェクトに対するデータ(DML)とDDLの両方に適用されます。

TABLE文とMAP文内のオブジェクトでは、次の表にリストされたDDL操作がサポートされます。

表13-1 MAP文とTABLE文でマップできるオブジェクト

操作

対象のオブジェクト(1)

CREATE

ALTER

DROP

RENAME

COMMENT ON脚注2

TABLE脚注3

INDEX

TRIGGER

SEQUENCE

MATERIALIZED VIEW

VIEW

FUNCTION

PACKAGE

PROCEDURE

SYNONYM

PUBLIC SYNONYM脚注4

GRANT

REVOKE

TABLE

SEQUENCE

MATERIALIZED VIEW

ANALYZE

TABLE

INDEX

CLUSTER

脚注 1 TABLEおよびMAPでは、これらの操作の対象のオブジェクト名に使用される可能性のある一部の特殊文字がサポートされません。サポートされていない特殊文字が使用されたオブジェクトは、UNMAPPEDおよびOTHERのスコープでサポートされます。

脚注2

COMMENT ON TABLE、COMMENT ON COLUMNに適用されます。

脚注3

AS SELECTが含まれます。

脚注4

表名は、スキーマ名で修飾する必要があります。

Extractの場合、MAPPEDスコープでTABLE文の指示に従ってDDLキャプチャ用にオブジェクトがマークされます。Replicatの場合、MAPPEDスコープでレプリケーション用にDDLがマークされ、MAP文のTARGET句のスキーマと名前によって指定されたオブジェクトにマップされます。このマッピングを実行するために、ReplicatによってALTER SESSIONが発行され、ReplicatセッションのスキーマがTARGET句で指定されたスキーマに設定されます。修飾されていないオブジェクトがDDLに含まれている場合、ターゲットで割り当てられるスキーマは、「DDL内の修飾されていないオブジェクト名の正しい識別」に説明されている状況に応じて異なります。

TABLE文とMAP文が次のとおりであるとします。

Extract (ソース)

TABLE fin.expen;
TABLE hr.tab*;

Replicat (ターゲット)

MAP fin.expen, TARGET fin2.expen2;
MAP hr.tab*, TARGET hrBackup.bak_*;

次のソースDDL文もあるとします。

ALTER TABLE fin.expen ADD notes varchar2(100);

この例では、ソース表fin.expenが、別のスキーマと表名にマップするTARGET句が指定されたMAP文にあるため、ターゲットのDDL文は次のようになります。

ALTER TABLE fin2.expen2 ADD notes varchar2(100);

同様に、次のソースおよびターゲットDDL文は、例のTABLE文およびMAP文の2つ目のセットに使用できます。

ソース:

CREATE TABLE hr.tabPayables ... ;

ターゲット:

CREATE TABLE hrBackup.bak_tabPayables ...;

オブジェクトがMAPPEDスコープの場合は、DDLサポートをさらに絞り込む場合を除き、DDL構成パラメータでそのオブジェクト名を省略できます。TABLE文およびMAP文でオブジェクト名を変更する必要がある場合、変更内容はそれらのオブジェクトのDDLに自動的に適用されます。

TABLE文にはオブジェクトを指定し、MAP文には指定しない場合、そのオブジェクトのDDLは、ソースではスコープがMAPPEDになり、ターゲットではUNMAPPEDになります。

13.5.1.1 Oracleクラスタ表とUDTのマッピング

Oracleクラスタ表またはOracleユーザー定義型(UDT)は、別のターゲット名にはマップできませんが、別のターゲット・スキーマにはマップできます。これらの特別なオブジェクトは、それ自体がMAPPEDとUNMAPPEDの混在の可能性のある、基になる表で構成されるため、名前のマッピングは使用できません。

13.5.1.2 ALTER INDEXのマッピング

ALTER INDEX...RENAMEコマンドは、別のターゲット索引名にはマップできませんが、別のターゲット・スキーマにはマップできます。

有効な例:

ALTER INDEX src.ind RENAME TO indnew;

このDDLは、ワイルドカードを使用して、次のようにマップできます。

MAP src.* TARGET tgt.*;

または次のように、ソースとターゲットの指定で元の索引名を使用することを確認し、明示的にマップすることも可能です。

MAP src.ind TARGET tgt.ind;

前述のケースのいずれの場合も、ターゲットDDLは次のようになります。

ALTER INDEX tgt.ind RENAME TO indnew;

無効な例:

次のようなMAP文は無効です。

MAP src.ind TARGET tgt.indnew;

その文で古い名前が新しい名前にマップされ、ターゲットDDLは次のようになります。

ALTER INDEX tgt.indnew RENAME TO indnew;

13.5.2 マップされないスコープ

TABLE文またはMAP文でDDL操作の使用がサポートされているが、ベース・オブジェクト名がそれらのパラメータに含まれていない場合は、UNMAPPEDスコープになります。

オブジェクト名のスコープが、ソースではUNMAPPED (ExtractのTABLE文にない)で、ターゲットではMAPPED (ReplicatのMAP文にある)であることも、その逆もあります。Oracle DDLのスコープがReplicat構成でUNMAPPEDの場合、Replicatはデフォルトでは次のようにします。

1. Replicatセッションの現在のスキーマをソースDDLオブジェクトのスキーマに設定します。

2. DDLをそのスキーマとして実行します。

3. ReplicatをReplicatセッションの現在のスキーマとしてリストアします。

「DDL内の修飾されていないオブジェクト名の正しい識別」を参照してください。

13.5.3 他のスコープ

マップできないDDL操作は、OTHERスコープになります。DDLがReplicat構成でOTHERスコープの場合、ソースDDLと同じスキーマ名とオブジェクト名でターゲットに適用されます。

OTHERスコープの例は、データ・ファイル名に対して操作を実行するDDLなど、システム固有の参照を行うDDL操作です。

OTHERスコープのその他の例は、次のとおりです。

CREATE USER joe IDENTIFIED by joe;
CREATE ROLE ggs_gguser_role IDENTIFIED GLOBALLY;
ALTER TABLESPACE gg_user TABLESPACE GROUP gg_grp_user;

「DDL内の修飾されていないオブジェクト名の正しい識別」を参照してください。

13.6 DDL内の修飾されていないオブジェクト名の正しい識別

Extractでは、DDL操作の実行時に有効な現在のスキーマ(セッション・スキーマとも呼ばれる)をキャプチャします。ソースがマルチテナント・コンテナ・データベースの場合、現在のコンテナもキャプチャされます。コンテナとスキーマは、DDL内の修飾されていないオブジェクト名の解決に使用されます。

次の例で考えてみます。

CONNECT SCOTT/TIGER
CREATE TABLE TAB1 (X NUMBER);
CREATE TABLE SRC1.TAB2(X NUMBER) AS SELECT * FROM TAB1;

両方のDDL文の修飾されていない表TAB1は、DDLの実行時に有効な現在のスキーマSCOTTに基づいてSCOTT.TAB1と解決されます。

現在のスキーマを設定する方法には、次の例に示すようにセッションのcurrent_schemaを設定するという別の方法もあります。

CONNECT SCOTT/TIGER
ALTER SESSION SET CURRENT_SCHEMA=SRC;
CREATE TABLE TAB1 (X NUMBER);
CREATE TABLE SRC1.TAB2(X NUMBER) AS SELECT * FROM TAB1;

両方のDDL文の修飾されていない表TAB1は、DDLの実行時に有効な現在のスキーマSRCに基づいてSRC.TAB1と解決されます。

クラシックと統合の両方のキャプチャ・モードで、ExtractはDDLの実行時に有効な現在のスキーマをキャプチャし、現在のスキーマを使用して、修飾されていないオブジェクト名(ある場合)を解決します。その結果、Replicatに対して指定されるMAP文は、修飾されていないオブジェクト名を使用するDDLについて正しく機能します。

ターゲットでDDLが成功するために必要な場合、ソース・セッション・スキーマを別のターゲット・セッション・スキーマにマップすることもできます。このマッピングはグローバルで、同じスキーマ名を含む他のマッピングをオーバーライドします。セッション・スキーマをマップするには、MAPSESSIONSCHEMAオプションを指定してDDLOPTIONSパラメータを使用します。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

デフォルトまたはマップされたセッション・スキーマのマッピングが失敗した場合、次のDDLERRORパラメータ文を使用してエラーを処理することができます。エラー1435は、スキーマが存在しないことを示します。

DDLERROR 1435 IGNORE INCLUDE OPTYPE ALTER OBJTYPE SESSION

13.7 DDLサポートの有効化

デフォルトでは、DDLレプリケーション・サポートのステータスは次のようになります。

- ソースでは、Oracle GoldenGate DDLサポートはデフォルトで無効です。DDLを取得するには、DDLパラメータを使用してExtractを構成する必要があります。

- ターゲットでは、DDLサポートはデフォルトで有効で、レプリケートされるトランザクション・データの整合性が保たれます。デフォルトでは、Replicatによって証跡に含まれるすべてのDDL操作を処理します。必要な場合は、DDLパラメータを使用し、Replicatを構成してDDL操作を無視するかフィルタすることが可能です。

13.8 DDLレプリケーションのフィルタリング

次の方法を使用して、要件に応じて特定(またはすべて)のDDLがターゲット・データベースに適用されるよう、DDL操作をフィルタできます。デフォルトでは、すべてのDDLがExtractに渡されます。

- PL/SQLコードによるフィルタ: トリガーベースのDDLキャプチャでのみ有効です。この方法では、DDL操作が発生するとDDLトリガーによってコールされるOracle関数を使用してDDLをExtractに送信するかどうかを判断します。PL/SQLコードによるフィルタは、DDLトリガーが使用されている場合に、ソース・データベースのパフォーマンスを改善するためにのみ使用する必要があります。組込みルールおよびDDLパラメータによるフィルタと組み合せることができます(次を参照)。DDLトリガーまたはフィルタ・ルールによってフィルタされた後でExtractに渡されるDDLを、DDLパラメータを使用して特定のニーズにあわせてさらにフィルタできます。

- 組込みフィルタ・ルールによるフィルタ: トリガーベースのDDLキャプチャでのみ有効です。この方法では、フィルタ・ルールをOracle GoldenGateトリガー・ロジックに組み込むために実行するプロシージャを使用します。この方法では、Extractに送信するオブジェクトのタイプを注意深く制御でき、ルールの評価の順序付けが可能です。この方法は、DDLトリガーが使用されている場合に、ソース・データベースのパフォーマンスを改善するためにのみ使用する必要があります。組込みルールをPL/SQLおよびDDLパラメータによるフィルタと組み合せることができます。DDLトリガーまたはフィルタ・ルールによってフィルタされた後でExtractに渡されるDDLを、DDLパラメータを使用して特定のニーズにあわせてさらにフィルタできます。

注意:

統合キャプチャ・モードで動作するExtractの場合、PL/SQLまたは組込みフィルタ・ルールによるフィルタは不要です。Extractがクラシック・モードで動作する必要がある場合に、これらのフィルタリング方法を使用する際は、フィルタ処理済オブジェクトに関連付けられている任意のトランザクション・データ(DML)に対して同じフィルタ処理を行う必要があります。たとえば、ACCOUNTSという名前の表を作成するDDLをフィルタ処理で除外する場合は、ACCOUNTS表がTABLE文またはMAP文で指定されないようにするか、適切な除外パラメータを使用してワイルドカードの解決から除外する必要があります。ワイルドカード除外パラメータのリストについては、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

- DDLパラメータによるフィルタ: トリガーベースとネイティブDDLの両方で有効です。これは推奨されるフィルタリング方法で、Oracle GoldenGate内で実行され、ExtractとReplicatの両方でフィルタ基準を実行できます。Extractでフィルタリングを行うか、すべてのDDLを証跡に送り、Replicatでフィルタリングを行います。あるいは、異なる場所の組合せでフィルタすることもできます。DDLパラメータでは、フィルタリングを行う場所を制御でき、DDLスコープに基づいてまとめてフィルタする(すべてのMAPPEDスコープを含めるなど)機能など、トリガーの方法よりも多くのフィルタリング・オプションがあります。

注意:

TRANSACTIONの実行中にDDL操作が失敗すると、コミットが強制されます(DDLにまたがるトランザクションが2つに分割されます)。前半はコミットされ、後半を再起動できます。リカバリが実行されると、トランザクションのヘッダーに含まれる情報がなくなるため、トランザクションの後半をフィルタすることはできません。

13.8.1 PL/SQLコードによるフィルタ

この方法は、トリガーベースのキャプチャでのみ有効です。

PL/SQLコードを記述して、DDLをExtractに渡すかどうかを判断する関数にDDLに関する情報を渡します。Extractに送信するDDL操作を少なくすることでキャプチャのパフォーマンスを向上させることができます。

1. Oracle GoldenGateのインストール・ディレクトリにあるddl_filter.sqlファイルを、これから記述するコードをテストできるテスト・マシンにコピーします。

2. ファイルを編集用に開きます。filterDDLという名前のPL/SQL関数が含まれており、これを変更してif/thenフィルタ基準を指定できます。この関数に渡される情報は、次のとおりです。

- ora_owner: DDLオブジェクトのスキーマ

- ora_name: オブジェクトの定義されている名前

- ora_objtype: オブジェクトのタイプ(TABLE、INDEXなど)

- ora_optype: 操作のタイプ(CREATE、ALTERなど)

- ora_login_user: DDLを実行したユーザー

- retVal: Extractの処理にDDLを含める場合はINCLUDE。DDLを除外する場合はEXCLUDE。

'compute retVal here'コメントの後ろに、フィルタするDDLのタイプごとにフィルタ・コードを記述します。次に例を示します。

if ora_owner='SYS' then
retVal:='EXCLUDE';
end if;
if ora_objtype='USER' and ora_optype ='DROP' then
retVal:='EXCLUDE';
end if;
if ora_owner='JOE' and ora_name like 'TEMP%' then
retVal:='EXCLUDE';
end if;

この例では、次のDDLが、DDLトリガーによる処理から除外されます。

- SYSによって所有されているオブジェクトに対するDDL

- 任意のDROP USER

- JOE.TEMP%に対する任意のDDL

3. (オプション)フィルタリングをトレースするには、PL/SQLの各if/then文に次の構文を追加します。

if ora_owner='JOE' and ora_name like 'TEMP%' then
retVal:='EXCLUDE';
if "&gg_user" .DDLReplication.trace_level >= 1 then
"&gg_user" .trace_put_line ('DDLFILTER', 'excluded JOE.TEMP%');
end if;

説明:

- &gg_userは、Oracle GoldenGate DDLサポート・オブジェクトのスキーマです。

- .DDLReplication.trace_levelは、DDLトレースのレベルです。トリガー・トレースを使用するには、Extractパラメータ・ファイルでDDLまたはDDLONLYオプションを指定してTRACEまたはTRACE2パラメータを使用する必要があります。.DDLReplication.trace_levelパラメータを>=1に設定する必要があります。

- trace_put_lineは、Extractがトレース・ファイルに書き込む、フィルタされたDDLのタイプを表すユーザー定義テキスト文字列です。

4. コードを保存します。

5. テスト・システムでDDLアクティビティを停止します。

6. SQL*Plusで次のようにddl_filter.sqlファイルをコンパイルします。ここで、schema_nameは、Oracle GoldenGate DDLオブジェクトがインストールされているスキーマです。

@ddl_filter schema_name

7. テスト環境でテストし、フィルタリングが機能することを確認します。コード内のエラーによってソースとターゲットのDDLが同期しなくなることがあるため、このテストを実行することは重要です。

8. テストが成功したら、ファイルをソース本番システムのOracle GoldenGateのインストール・ディレクトリにコピーします。

9. ソース・システムでDDLアクティビティを停止します。

10. 前に行ったようにddl_filter.sqlファイルをコンパイルします。

@ddl_filter schema_name

11. ソース・システムでDDLアクティビティを停止します。

13.8.2 組込みフィルタ・ルールによるフィルタ

この方法は、トリガーベースのキャプチャでのみ有効です。

選択ルールまたは除外ルールを追加して、DDLトリガーによってExtractに送信されるDDL操作を制御できます。ルールを格納し、Extractに送信するDDL操作を少なくすることでキャプチャのパフォーマンスを向上させることができます。

1. DDLAUX.addRule()関数を使用して、次のガイドに則したルールを定義します。この関数は、ddl_setup.sqlスクリプトを使用してDDLオブジェクトがインストールされた後にOracle GoldenGate DDLスキーマにインストールされます。

2. ルールをアクティブにするには、SQL*Plusで関数を実行するか、SQLファイルに一連のルールを入力してそのファイルをSQL*Plusで実行します。

13.8.2.1 DDLAUX.addRule()関数の定義

FUNCTION addRule( obj_name IN VARCHAR2 DEFAULT NULL,
base_obj_name IN VARCHAR2 DEFAULT NULL,
owner_name IN VARCHAR2 DEFAULT NULL,
base_owner_name IN VARCHAR2 DEFAULT NULL,
base_obj_property IN NUMBER DEFAULT NULL,
obj_type IN NUMBER DEFAULT NULL,
command IN VARCHAR2 DEFAULT NULL,
inclusion IN boolean DEFAULT NULL ,
sno IN NUMBER DEFAULT NULL)
RETURN NUMBER;

13.8.2.2 DDLAUX.addRule()のパラメータ

この関数に渡される情報は次のパラメータで、オブジェクトの属性と関連しています。すべてのパラメータがオプションで、複数のパラメータを指定できます。

- sno: ルールを識別するシリアル番号を指定します。ルールの評価は、シリアル番号の小さいものから大きいものの順に、一致が見つかるまで行われます。snoを使用して除外ルールの前に選択ルールを置き、除外ルールの例外を作成できます。これはファンクションでプロシージャではないため、ルールのシリアル番号を返します。これを使用して削除するルールをDDLAUX.dropRule()に指定します。コードの冒頭でDECLARE sno NUMBER; BEGIN sno :=を使用して指定しないかぎり、シリアル番号は自動的に生成されます。
次に例を示します。

DECLARE
sno NUMBER;
BEGIN
sno := tkggadmin..DDLAUX.ADDRULE(obj_name => 'GGS%' ,
obj_type => TYPE_TABLE);
END;
/

- obj_name: オブジェクト名を指定します。名前に大文字と小文字の区別がある場合は、二重引用符で囲みます。

- owner_name: オブジェクトのスキーマの名前を指定します。

- base_obj_name: DDLオブジェクトのベース・オブジェクト名を指定します(オブジェクトが索引の場合のベース表など)。名前に大文字と小文字の区別がある場合は、二重引用符で囲みます。

- base_owner_name: ベース・オブジェクトのスキーマ名を指定します。

- base_obj_property: ベース・オブジェクトのプロパティを指定します。「DDLAUX.addRule()に対して有効なDDLコンポーネント」を参照してください。

- obj_type: オブジェクト・タイプを指定します。「DDLAUX.addRule()に対して有効なDDLコンポーネント」を参照してください。

- command: コマンドを指定します。「DDLAUX.addRule()に対して有効なDDLコンポーネント」を参照してください。

- inclusion = TRUE: 指定されたオブジェクトがDDLトリガーによってキャプチャされることを示します。このパラメータが指定されない場合、ルールは除外ルールとなり、指定されたオブジェクトはキャプチャされません。除外ルールと選択ルールの両方を指定できます。DDLがルールのいずれにも一致しない場合、デフォルトで選択されます(Extractに渡されます)。パラメータなしでDDLAUX.addRule()をコールすると、すべてのオブジェクトに対するすべてのDDLを除外する空のルールが生成されます。

13.8.2.3 DDLAUX.addRule()に対して有効なDDLコンポーネント

関数コードで指定できる定義済DDLオブジェクト・タイプ、ベース・オブジェクト・プロパティおよびDDLコマンドは次のとおりです。

有効なオブジェクトは次のとおりです。

- TYPE_INDEX

- TYPE_TABLE

- TYPE_VIEW

- TYPE_SYNONYM

- TYPE_SEQUENCE

- TYPE_PROCEDURE

- TYPE_FUNCTION

- TYPE_PACKAGE

- TYPE_TRIGGER

有効なベース・オブジェクト・プロパティは次のとおりです。

- TB_IOT

- TB_CLUSTER

- TB_NESTED

- TB_TEMP

- TB_EXTERNAL

有効なコマンドは次のとおりです。

- CMD_CREATE

- CMD_DROP

- CMD_TRUNCATE

- CMD_ALTER

13.8.2.4 ルールベースのトリガーのフィルタの例

次の例では、名前がIMPTEMPで始まる表以外のすべての一時表を除外します。

1. DDLAUX.ADDRULE(obj_name => 'IMPTEMP%', base_obj_property => TB_TEMP, obj_type => TYPE_TABLE, INCLUSION => TRUE);
2. DDLAUX.ADDRULE(base_obj_property => TB_TEMP, obj_type => TYPE_TABLE);

注意:

IMPTEMP%表を含めるため、そのルールを先にします。

次の例では、名前が'GGS%'のすべての表を除外します。

DECLARE sno NUMBER; BEGIN sno := DDLAUX.ADDRULE(obj_name => 'GGS%' , obj_type => TYPE_TABLE); END

次の例では、すべての一時表を除外します。

DDLAUX.ADDRULE(base_obj_property => TB_TEMP, obj_type => TYPE_TABLE);

次の例では、TEMP表のすべての索引を除外します。

DDLAUX.ADDRULE(base_obj_property => TB_TEMP, obj_type => TYPE_INDEX);

次の例では、スキーマTKGGADMINのすべてのオブジェクトを除外します。

DDLAUX.ADDRULE(owner_name => 'TKGGADMIN');

次の例では、TEMP表に対するTRUNCATE操作のすべてのオブジェクトを除外します。

DDLAUX.ADDRULE(base_obj_property => TB_TEMP, obj_type => TYPE_TABLE, command => CMD_TRUNCATE)

13.8.2.5 フィルタ・ルールの削除

削除するルールを指定してDDLAUX.dropRule()関数を使用します。この関数は、ddl_setup.sqlスクリプトを使用してDDLオブジェクトがインストールされた後にOracle GoldenGate DDLスキーマにインストールされます。入力として、削除するルールのシリアル番号を指定します。

FUNCTION dropRule(sno IN NUMBER) RETURN BOOLEAN;

13.8.3 DDLパラメータを使用したフィルタリング

この方法は、トリガーベースのキャプチャ・モードおよび統合キャプチャ・モードでのみ有効です。

DDLパラメータは、ExtractおよびReplicatプロセス内でDDLをフィルタリングするための主要なOracle GoldenGateパラメータです。

オプションを指定せずに使用すると、DDLパラメータによるフィルタリングが実行されず、すべてのDDL操作が次のように伝播されます。

- Extractパラメータとして、サポートされているすべてのデータベース・オブジェクトで生成された、サポートされている全DDL操作が取得されて証跡に送信されます。

- Replicatパラメータとして、Oracle GoldenGateの証跡からすべてのDDL操作がレプリケートされ、ターゲットに適用されます。これは、このパラメータを使用しない場合のデフォルトの動作と同じです。

オプションを指定して使用すると、DDLパラメータがフィルタリング・エージェントとして機能し、次に基づいてDDL操作が含まれるか除外されます。

- スコープ

- オブジェクト・タイプ

- 操作タイプ

- オブジェクト名

- DDLコマンド構文またはコメント、あるいはその両方の文字列

パラメータ・ファイルで使用できるDDLパラメータは1つのみですが、他のオプションとともに複数の選択オプションと除外オプションを組み合せて、必要なレベルまでDDLをフィルタできます。

- DDLフィルタリング・オプションは、トランザクション・ソースから取得するプライマリExtractには有効ですが、データ・ポンプExtractには無効です。

- 複数のフィルタ・オプションの指定を組み合せた場合、AND文として論理的にリンクされます。

- レプリケートされるDDL文では、複数のオプションが指定されたすべてのフィルタ基準を満たしている必要があります。

- 複雑なDDLフィルタリング基準を使用する場合、本番環境で使用する前にテスト環境で構成をテストすることをお薦めします。

DDLパラメータ構文およびその他の使用方法のガイドラインについては、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

注意:

DDLサポートを構成する前に、「処理でDDLが評価される仕組み」を参照することをお薦めします。

13.9 特別なフィルタのケース

次に、フィルタ条件を作成する場合に注意する必要がある特別なケースを示します。

13.9.1 DDL EXCLUDE ALL

DDL EXCLUDE ALLは、トリガーベースのDDLキャプチャを使用している場合に、主としてExtractのために用意されている特別な処理オプションです。DDL EXCLUDE ALLはDDL操作のレプリケーションをブロックしますが、Oracle GoldenGateが現在のオブジェクト・メタデータを保持できるようにします。Extractがログマイニング・サーバーから直接DDLを受信する場合(トリガーレスDDLキャプチャ・モード)、現在のメタデータは常に保持されます。

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を解決できるようにします。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

すべてのDDLメタデータおよび操作がレプリケートされないようにするには、DDLパラメータ全体を省略します。

13.9.2 暗黙的DDL

ユーザーによって生成されたDDL操作によって、暗黙的DDL操作が生成される場合があります。たとえば、次の文では、2つの異なるDDL操作が生成されます。

CREATE TABLE customers (custID number, name varchar2(50), address varchar2(75), address2 varchar2(75), city varchar2(50), state (varchar2(2), zip number, contact varchar2(50), areacode number(3), phone number(7), primary key (custID));

最初の(明示的)DDL操作は、CREATE TABLE文自体です。

2つ目のDDL操作は、暗黙的なCREATE UNIQUE INDEX文で、主キーの索引を作成します。この操作は、ユーザー・アプリケーションではなく、データベース・エンジンによって生成されます。

暗黙的DDLのフィルタリングのガイドライン

暗黙的DDLのフィルタ方法は、DDLのフィルタに使用するメカニズムによって異なります。詳細は、「DDLレプリケーションのフィルタリング」を参照してください。

- DDLパラメータを使用してDDL操作をフィルタする場合、ターゲットで明示的DDLによって暗黙的DDLが生成されるため、デフォルトではOracle GoldenGateで暗黙的DDLは除外されます。たとえば、前述の例のCREATE TABLE文がReplicatによって適用されると、ターゲット・データベースで適切な索引が作成されます。

- DDLトリガーを使用してDDL操作をフィルタする場合、次の事項に基づいて、フィルタ・ルールで暗黙的DDLを処理する必要があります。

- フィルタ・ルールで明示的DDLを伝播から除外する場合、暗黙的DDLを除外するルールも作成する必要があります。たとえば、次の例のCREATE TABLE文は除外するが、暗黙的CREATE UNIQUE INDEX文は除外しない場合、ターゲット・データベースは、存在しない表に索引を作成しようとします。

CREATE TABLE customers (custID number, name varchar2(50), address varchar2(75), address2 varchar2(75), city varchar2(50), state (varchar2(2), zip number, contact varchar2(50), areacode number(3), phone number(7), primary key (custID));

- フィルタリング・ルールで明示的DDLの伝播が許可されている場合、暗黙的DDLを除外する必要はありません。Oracle GoldenGateおよびターゲット・データベースによって適切に処理されます。

window.name='GUID-D00E9913-6372-4431-9EBB-ED877ED6071A' function footdisplay(footnum,footnote) { var msg = window.open('', 'NewWindow' + footnum, 'directories=no,height=120,location=no,menubar=no,resizable=yes,' + 'scrollbars=yes,status=no,toolbar=no,width=598'); msg.document.open('text/html'); }
13.10 Oracle GoldenGateにおける導出オブジェクト名の処理方法

DDL操作には、ベース・オブジェクト名と導出オブジェクト名を含めることができます。ベース・オブジェクトは、データを含むオブジェクトです。導出オブジェクトは、ベース・オブジェクトの一部の属性を継承し、そのオブジェクトに関連する関数を実行するオブジェクトです。ベース・オブジェクトと導出オブジェクトの両方を含むDDL文は、次のとおりです。

- RENAMEおよびALTER RENAME

- 索引、シノニムまたはトリガーに対するCREATEおよびDROP

次のDDL文があるとします。

CREATE INDEX hr.indexPayrollDate ON TABLE hr.tabPayroll (payDate);

この場合、表がベース・オブジェクトです。その名前(hr.tabPayroll)がベース名で、MAPPEDスコープでのTABLEまたはMAPによるマッピングの対象です。導出オブジェクトは索引で、その名前(hr.indexPayrollDate)が導出名です。

導出名は、ベース・オブジェクトとは別に、それ自体のTABLEまたはMAP文でマップできます。または、1つのMAP文で両方を処理できます。MAPの場合、ターゲットでの導出オブジェクト名の変換は次のように処理されます。

13.10.1 ベース・オブジェクトに対するMAPはあるが、導出オブジェクトに対するMAPはない場合

MAP文がベース・オブジェクトに存在して、導出オブジェクトに存在しない場合、結果は導出オブジェクトの暗黙的マッピングになります。DDL文にMAPPEDが含まれる場合、Replicatによって、ベース・オブジェクトと同じターゲット・スキーマが導出オブジェクトに付与されます。導出オブジェクトの名前は、ソース文と同じです。たとえば、次のようだとします。

Extract (ソース)

Table hr.tab*;

Replicat (ターゲット)

MAP hr.tab*, TARGET hrBackup.*;

次のソースDDL文があるとします。

CREATE INDEX hr.indexPayrollDate ON TABLE hr.tabPayroll (payDate);

ターゲットでReplicatによって実行されるCREATE INDEX文は次のとおりです。

CREATE INDEX hrBackup.indexPayrollDate ON TABLE hrBackup.tabPayroll (payDate);

暗黙的マッピングのルールは、導出オブジェクトにベース・オブジェクトと同じスキーマを割り当てるという一般的な方法に基づきます。導出オブジェクトの名前がソースの文で完全修飾されていない場合でも、名前が適切に変換されることが保証されます。また、ベース・オブジェクトと同じターゲット・スキーマによって索引が所有される場合、暗黙的マッピングによって、導出オブジェクト名を明示的にマップする必要がなくなります。

13.10.2 MAPがベース・オブジェクトと導出オブジェクトに存在する場合

ベース・オブジェクトに対するMAP文があり、導出オブジェクトに対するものもある場合、結果は明示的マッピングです。DDL文にMAPPEDが含まれる場合、Replicatで独自のTARGET句に従って各オブジェクトのスキーマと名前が変換されます。たとえば、次のようだとします。

Extract (ソース)

TABLE hr.tab*;  TABLE hr.index*;

Replicat (ターゲット)

MAP hr.tab*, TARGET hrBackup.*;MAP hr.index*, TARGET hrIndex.*;

次のソースDDL文があるとします。

CREATE INDEX hr.indexPayrollDate ON TABLE hr.tabPayroll (payDate);

ターゲットでReplicatによって実行されるCREATE INDEX文は次のとおりです。

CREATE INDEX hrIndex.indexPayrollDate ON TABLE hrBackup.tabPayroll (payDate);

ターゲットの索引が、ベース・オブジェクトとは異なるスキーマによって所有される必要がある場合、またはターゲットでの名前がソースの名前と異なる必要がある場合、明示的マッピングを使用します。

13.10.3 MAPが導出オブジェクトに存在してベース・オブジェクトに存在しない場合

MAP文が導出オブジェクトに存在して、ベース・オブジェクトに存在しない場合、Replicatでは、どちらのオブジェクトに対しても名前の変換が行われません。ターゲットのDDL文は、ソースと同じになります。導出オブジェクトをマップするには、次の方法があります。

- ベース・オブジェクトに明示的MAP文を使用します。

- 名前の問題がない場合は、ワイルドカードを使用して、ベース・オブジェクトと導出オブジェクトの両方を同じMAP文にマップします。

- 名前をどのように変換するかに応じて、各オブジェクトのMAP文を作成します。

13.10.4 導出オブジェクトとしての新しい表

次のものから作成された新規の表のOracle GoldenGateによる処理方法について、次に説明します。

- RENAMEおよびALTER RENAME

- CREATE TABLE AS SELECT

13.10.4.1 RENAMEおよびALTER TABLE RENAME

RENAMEおよびALTER TABLE RENAME操作では、ベース・オブジェクトは常に新規の表の名前です。次の例において、ベース・オブジェクト名はindex_paydateです。

ALTER TABLE hr.indexPayrollDate RENAME TO index_paydate;

または

RENAME hr.indexPayrollDate TO index_paydate;

導出オブジェクト名はhr.indexPayrollDateです。

13.10.4.2 CREATE TABLE AS SELECT

CREATE TABLE AS SELECT (CTAS)文には、基礎となる任意の数のオブジェクトを参照するSELECT文とINSERT文が含まれます。デフォルトでは、Oracle GoldenGateにより、ターゲット・データベースからAS SELECT句のデータが取得されます。このパラメータを使用して元の挿入を保持するようにCTAS操作を強制できます。

注意:

このため、CTAS (CREATE TABLE AS SELECT)文から作成されるOracle XMLTypeの表はサポートされません。XMLType表の場合、行オブジェクトIDがソースとターゲットの間で一致する必要がありますが、これは、このシナリオでは保持されません。空のCTAS文(新規表にデータを挿入しない)で作成されたXMLType表は適切に保持されません。

また、CTASによるCTASの挿入への応答を可能にするGETCTASDMLパラメータを使用できるため、レプリケーション中にOIDを保持できます。このパラメータは、統合ディクショナリでのみサポートされるため、トレイルを使用するには、ダウンストリームReplicatが12.1.2.1以上である必要があり、そうでないと、相違が生じる場合があります。

ターゲット・データベースにはAS SELECT句のオブジェクトが存在し、その名前がソースのものと同一であることが必要です。

MAP文でOracle GoldenGateは、新規の表の名前(CREATE TABLE name)のみTARGET指定にマップします。AS SELECT句の基になるオブジェクトの名前はマップしません。名前がTARGETの指定に変換されると、データ不整合の原因となるオブジェクトに対する依存性が存在する可能性があります。

次に、ソースのCREATE TABLE AS SELECT文と、この文がOracle GoldenGateによってターゲットにどのようにレプリケートされるかの例を示します。

CREATE TABLE a.tab1 AS SELECT * FROM a.tab2;

ReplicatのMAP文は次のとおりです。

MAP a.tab*, TARGET a.x*;

Replicatによって適用されるターゲットのDDL文は次のとおりです。

CREATE TABLE a.xtab1 AS SELECT * FROM a.tab2;

AS SELECT * FROM句の表名は、ソースと同じtab2のまま(xtab2ではなく)です。

ソースとターゲットで、基礎となるオブジェクトのデータの一貫性を保つには、Oracle GoldenGateによるデータ・レプリケーションに備えて構成します。前述の例では、次の文を使用してこの要件に対応できます。

ソース

TABLE a.tab*;

ターゲット

MAPEXCLUDE a.tab2
MAP a.tab*, TARGET a.x*;
MAP a.tab2, TARGET a.tab2;

「DDL内の修飾されていないオブジェクト名の正しい識別」を参照してください。

13.10.5 導出オブジェクトのマッピングの無効化

NOMAPDERIVEDオプションを指定してDDLOPTIONSパラメータを使用し、これを含むMAP文のTARGET句に従って導出オブジェクトの名前が変換されないようにします。NOMAPDERIVEDによって、ベースまたは導出オブジェクトの名前を含む明示的なMAP文はオーバーライドされます。導出オブジェクトを含むソースDDLは、ソースと同じスキーマとオブジェクト名のターゲットにレプリケートされます。

次の表に、MAP文がベース・オブジェクトのみに対するものか、導出オブジェクトのみに対するものか、両方に対するものかに基づいたMAPDERIVEDの結果を、NOMAPDERIVEDと比較して示します。

表13-2 マッピング構成に基づいた、ターゲットでの[NO]MAPDERIVEDの結果

ベース・オブジェクト

導出オブジェクト

MAP/NOMAP DERIVED

MAPごとの導出オブジェクトの変換されるか

導出オブジェクトにベース・オブジェクトのスキーマが割り当てられるか

マップされる脚注1

マップされる

MAPDERIVED

はい

いいえ

マップされる

マップされない

MAPDERIVED

いいえ

はい

マップされない

マップされる

MAPDERIVED

いいえ

いいえ

マップされない

マップされない

MAPDERIVED

いいえ

いいえ

マップされる

マップされる

NOMAPDERIVED

いいえ

いいえ

マップされる

マップされない

NOMAPDERIVED

いいえ

いいえ

マップされない

マップされる

NOMAPDERIVED

いいえ

いいえ

マップされない

マップされない

NOMAPDERIVED

いいえ

いいえ

脚注1

「マップされる」とは、MAP文に含まれていることを示しています。

次の例で、MAPDERIVEDの結果をNOMAPDERIVEDと比較して示します。表13-3では、ベース名と導出名の両方がMAPDERIVEDによって変換されるため、ターゲットでトリガーと表の両方がrptによって所有されます。

表13-3 導出オブジェクト名のデフォルト・マッピング(MAPDERIVED)

MAP文

Extractに取得されたソースDDL文

Replicatにより適用されたターゲットDDL文

MAP fin.*, TARGET rpt.*;

CREATE TRIGGER fin.act_trig ON fin.acct;

CREATE TRIGGER rpt.act_trig ON rpt.acct;

表13-4では、NOMAPDERIVEDの使用によって変換が行われないため、トリガーはfinによって所有されます。

表13-4 NOMAPDERIVEDを使用する場合の導出オブジェクト名のマッピング

MAP文

Extractに取得されたソースDDL文

Replicatにより適用されたターゲットDDL文

MAP fin.*, TARGET rpt.*;

CREATE TRIGGER fin.act_trig ON fin.acct;

CREATE TRIGGER fin.act_trig ON rpt.acct;

注意:

RENAME文の場合、新しい表名はベース表の名前とみなされ、古い表名は導出表の名前とみなされます。

13.11 DDL文字列置換の使用

Oracle GoldenGateによって処理される際、DDL操作内で文字列を置換できます。この機能によって、ディレクトリ名、コメントおよびデータ構造と直接関係ないその他の文字列の変更とマッピングに対する利便性が増します。たとえば、ある表領域名を別のものに置換したり、コメント内の文字列を置換できます。文字列置換は、DDLSUBSTパラメータで制御します。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

注意:

DDLSUBSTパラメータ文を作成する前に、この章の「処理でDDLが評価される仕組み」を参照することをお薦めします。

13.12 様々なトポロジをサポートするためのDDLの伝播の制御

双方向およびカスケード・レプリケーション構成をサポートするには、Oracle GoldenGateおよびローカル・ビジネス・アプリケーションなどのアプリケーションによって実行されたDDLを、Extractが識別できることが重要です。デプロイする構成によっては、ローカル・システム上のこれらのDDLのソースのいずれかまたは両方をキャプチャすることが適当な場合もあります。

注意:

Oracle GoldenGate DDLは、ログ・グループを作成するためにExtractによって実行されるALTER TABLE文、およびソースDDLの変更をレプリケートするためにReplicatによって実行されるDDLで構成されます。

DDLOPTIONSパラメータの次のオプションは、Oracle GoldenGate DDLサポートが構成され有効になっていることを前提として、ローカル・システム上のDDLがExtractによってキャプチャされ、リモート・システムに送信されるかどうかを制御します。

- GETREPLICATESおよびIGNOREREPLICATESオプションは、Oracle GoldenGateで生成されたDDLがExtractによってキャプチャされるか無視されるかを制御します。デフォルトはIGNOREREPLICATESで、Oracle GoldenGateで生成されたDDLは伝播されません。Oracle GoldenGateで実行されたDDL操作を識別するために、各Extract文とReplicat DDL文に次のコメントが含まれています。

/* GOLDENGATE_DDL_REPLICATION */

- GETAPPLOPSおよびIGNOREAPPLOPSオプションは、Oracle GoldenGate以外のアプリケーションで生成されたDDLがExtractによってキャプチャされるか無視されるかを制御します。デフォルトはGETAPPLOPSで、DDLはローカル・アプリケーション(Oracle GoldenGate以外の)から伝播されます。

これらのデフォルト設定では、DDLがソースに戻されないように、独自のDDLおよびローカルReplicatによってローカル・データベースに適用されるDDLはExtractで無視されます。また、レプリケーション用に構成されているその他のDDLはすべてキャプチャされます。デフォルトのDDLOPTIONS構成は次のとおりです。

DDLOPTIONS GETAPPLOPS, IGNOREREPLICATES

この動作は変更できます。次の項を参照してください。

- アクティブ/アクティブ(双方向)構成でのDDLの伝播

- カスケード構成でのDDLの伝播

13.12.1 アクティブ/アクティブ(双方向)構成でのDDLの伝播

Oracle GoldenGateでは、2つのシステム間のアクティブ/アクティブDDLレプリケーションがサポートされます。アクティブ/アクティブ双方向レプリケーションの場合、Oracle GoldenGateプロセスで次のように構成される必要があります。

1. 一方のシステムでビジネス・アプリケーションによって実行されるDDLを他方のシステムにレプリケートし、同期を保つ必要があります。この要件を満たすには、両方のシステムのExtractパラメータ・ファイルでDDLOPTIONS文にGETAPPLOPSオプションを含めます。

2. 一方のシステムでReplicatによって適用されるDDLは、ローカルのExtractによってキャプチャされ、他方のシステムに戻される必要があります。この要件を満たすには、両方のシステムのExtractパラメータ・ファイルでDDLOPTIONS文にGETREPLICATESオプションを使用します。

注意:

ループバックが起こらないよう、内部的なOracle GoldenGateトークンによって、実際のReplicatのDDL文自体は無視されます。ReplicatのDDLを元のシステムに戻す目的は、着信DMLの受信に備えて、そのシステムのReplicatがオブジェクト・メタデータ・キャッシュを更新し、新しいメタデータを持つことです。図13-1を参照してください。

3. 各Replicatは、キャプチャされたReplicat DDL文がリモートExtractから届いたら、そのオブジェクト・メタデータ・キャッシュを更新するように構成する必要があります。この要件を満たすには、両方のシステムのReplicatパラメータ・ファイルでDDLOPTIONS文にUPDATEMETADATAオプションを使用します。

その結果、DDLOPTIONS文は次のようになります。

Extract(プライマリおよびセカンダリ)

DDLOPTIONS GETREPLICATES, GETAPPLOPS

Replicat(プライマリおよびセカンダリ)

DDLOPTIONS UPDATEMETADATA

警告:

元のDDLと同じオブジェクトに対してDDLまたはDMLを発行する前に、元のDDLがリモート・システムにレプリケートされ、そのシステムのExtractによって再度キャプチャされる時間を考慮します。これによって、各操作が元のシステムのReplicatに正しい順序で届くことを保証し、メタデータの非一貫性によってDMLエラーが発生することを防止します。詳細は、図13-1を参照してください。

図13-1 Replicatオブジェクト・メタデータ・キャッシュが更新されるDDLのラウンドトリップ・パス

DDLOPTIONSの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

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

13.12.2 カスケード構成でのDDLの伝播

カスケード構成では、各中間システムのExtractパラメータ・ファイルでDDLOPTIONSに次の設定を使用します。この構成では、Extractで中間システムのReplicatからDDLが強制的にキャプチャされ、次のシステム・ダウンストリームにカスケードされます。

DDLOPTIONS GETREPLICATES, IGNOREAPPLOPS

DDLOPTIONSの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください

カスケード構成の構成方法の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

13.13 サプリメンタル・ログ・グループの自動追加

ADDTRANDATAオプションを指定してDDLOPTIONSパラメータを使用し、次のことを行います。

- CREATE TABLEで作成された新規表に対してOracleのサプリメンタル・ロギングを自動的に有効化します。

- ALTER TABLEの対象の表のOracleのサプリメンタル・ロギングを更新し、列を追加または削除します。

- 名前が変更された表のOracleのサプリメンタル・ロギングを更新します。

- 一意キーまたは主キーが追加または削除された表のOracleのサプリメンタル・ロギングを更新します。

DDLOPTIONS ADDSCHEMATRANDATAを使用するには、ADD SCHEMATRANDATAコマンドをGGSCIで発行してスキーマレベルのサプリメンタル・ロギングを有効にする必要があります。

デフォルトでは、サプリメンタル・ロギングを追加するALTER TABLEは、GETREPLICATESパラメータが使用されていないかぎり、ターゲットにレプリケートされません。

マルチテナント・コンテナ・データベースでは、DDLOPTIONS ADDTRANDATAはサポートされません。

詳細は、「ロギング・プロパティの構成」を参照してください。

13.14 レプリケートされたDDLからのコメントの削除

DDLOPTIONSパラメータにREMOVECOMMENTS BEFOREおよびREMOVECOMMENTS AFTERオプションを使用し、ソースDDLに使用されたコメントがターゲットDDLに含まれないようにします。デフォルトでは、コメントは削除されず、文字列の置換に使用できます。

DDLOPTIONSの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

13.15 IDENTIFIED BYパスワードのレプリケート

DEFAULTUSERPASSWORDALIASおよびREPLICATEPASSWORD | NOREPLICATEPASSWORDオプションを指定してDDLOPTIONSパラメータを使用し、レプリケートされた{CREATE | ALTER} USER name IDENTIFIED BY password文のパスワードの処理方法を制御します。これらのオプションは一緒に使用する必要があります。

ReplicatがOracle 10gまたは11gデータベースに対して動作する際のパスワード・ベリファイアの指定に関する重要な情報については、DDLOPTIONSのUSEPASSWORDVERIFIERLEVELオプションを参照してください。

DDLOPTIONSの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

注意:
CREATE | ALTER PROFILEのレプリケーションは、プロファイル/パスワード検証機能がSYSスキーマに存在する必要があるため、失敗します。このようなDDLを正常にレプリケートするには、SYSスキーマに対するDDLが除外されるため、ソースとターゲットの両方でパスワード検証機能を手動で作成する必要があります。

13.16 処理でDDLが評価される仕組み

次に、Oracle GoldenGateによるソースおよびターゲット・システムでのDDL文の処理方法について説明します。Oracle GoldenGateパラメータの異なる基準が処理される順序を示し、ExtractとReplicatがそれぞれDDLを処理する方法の違いについて説明します。

Extract

1. Extractは、DDL文をキャプチャします。

2. Extractは、コメントがあれば、メインの文から分離します。

3. Extractにより、DDLパラメータが検索されます。(この例では、存在するものとします。)

4. Extractは、IGNOREREPLICATESパラメータを検索します。これがあり、ReplicatがこのシステムでこのDDLを生成した場合、ExtractはそのDDL文を無視します。(この例では、このシステムではReplicat操作がないものとします。)

5. Extractは、DDL文がRENAMEかどうかを判断します。そうである場合、名前変更に内部的にフラグが付けられます。

6. Extractにより、ベース・オブジェクト名と導出オブジェクト名(存在する場合)が取得されます。

7. 文がRENAMEの場合、ExtractはこれをALTER TABLE RENAMEに変更します。

8. Extractは、DDLOPTIONS REMOVECOMMENTS BEFOREパラメータを検索します。これがある場合、ExtractはDDL文からコメントを削除しますが、INSTRまたはINSTRCOMMENTSを使用するDDL INCLUDEまたはDDL EXCLUDEに備えてコメントを格納します。

9. ExtractはDDLのスコープ(MAPPED、UNMAPPEDまたはOTHER)を判断します。

- 操作とオブジェクト・タイプがマッピングに対してサポートされており、ベース・オブジェクト名や導出オブジェクト名(RENAMEの場合)がTABLEパラメータに含まれている場合、MAPPEDです。

- 操作とオブジェクト・タイプがマッピングに対してサポートされておらず、ベース・オブジェクト名や導出オブジェクト名(RENAMEの場合)がTABLEパラメータに含まれていない場合、UNMAPPEDです。

- それ以外の場合、操作はOTHERと識別されます。

10. Extractにより、INCLUDEおよびEXCLUDE句のDDLパラメータが確認され、それらの句のDDLパラメータ基準が評価されます。INCLUDEまたはEXCLUDEがTRUEに評価されるには、すべてのオプションがTRUEに評価される必要があります。次のようになります。

- EXCLUDE句がTRUEと評価される場合、ExtractはDDL文を破棄し、別のDDL文を評価します。この場合、処理の手順が最初から始まります。

- INCLUDE句がTRUEと評価される場合、またはDDLパラメータにINCLUDE句もEXCLUDE句も含まれていない場合、ExtractはDDL操作を含めて、処理ロジックが続けられます。

11. ExtractによりDDLSUBSTパラメータが検索され、INCLUDEおよびEXCLUDE句が評価されます。これらの句の基準がTRUEになると、Extractにより、文字列置換が実行されます。Extractは、パラメータ・ファイル内の各DDLSUBSTパラメータに対してDDL文を評価します。すべてのtrueのDDLSUBST指定について、DDLSUBSTパラメータがファイル内にリストされている順に、Extractによって文字列の置換が行われます。

12. DDLSUBTが処理されたため、ExtractはREMOVECOMMENTS AFTERパラメータを検索します。これがある場合、ExtractはDDL文からコメントを削除します。

13. Extractは、DDLOPTIONS ADDTRANDATAを検索します。これがある場合、操作がCREATE TABLEであれば、ExtractはALTER TABLE name ADD SUPPLEMENTAL LOG GROUPコマンドを表に対して発行します。

14. Extractにより、DDL文が証跡に書き込まれます。

Replicat

1. Replicatは、DDL文を証跡から読み取ります。

2. Replicatは、コメントがあれば、メインの文から分離します。

3. Replicatは、DDLOPTIONS REMOVECOMMENTS BEFOREを検索します。これがある場合、ReplicatはDDL文からコメントを削除します。

4. Replicatは、DDL同期スコープを評価し、DDLが名前のマッピングに適しているかを判断します。その他はOTHERスコープになります。

5. Replicatにより、パラメータ・ファイルのMAP文が評価されます。(証跡から読み取る際に)このDDLのソースのベース・オブジェクト名がいずれかのMAP文に含まれている場合、その操作のスコープはMAPPEDとマークされます。それ以外の場合、スコープはUNMAPPEDとマークされます。

6. Replicatにより、ソースのベース・オブジェクト名が、MAP文のTARGET句に指定されたベース・オブジェクト名で置換されます。

7. 導出オブジェクトがある場合、ReplicatはDDLOPTIONS MAPDERIVEDを検索します。存在する場合は、Replicatにより、ソースの導出名がMAP文のターゲットの導出名で置換されます。

8. Replicatにより、INCLUDEおよびEXCLUDE句のDDLパラメータが確認され、それらに含まれるDDLパラメータ基準が評価されます。INCLUDEまたはEXCLUDEがTRUEに評価されるには、すべてのオプションがTRUEに評価される必要があります。次のようになります。

- EXCLUDE句がTRUEと評価される場合、ReplicatはDDL文を破棄し、別のDDL文の評価を始めます。この場合、処理の手順が最初から始まります。

- INCLUDE句がTRUEと評価される場合、またはDDLパラメータにINCLUDE句もEXCLUDE句も含まれていない場合、ReplicatはDDL操作を含めて、処理ロジックが続けられます。

9. Replicatは、DDLSUBSTパラメータを検索し、INCLUDE句およびEXCLUDE句を評価します。これらの句のオプションがTRUEになると、Replicatにより、文字列置換が実行されます。Replicatは、パラメータ・ファイル内の各DDLSUBSTパラメータに対してDDL文を評価します。すべてのtrueのDDLSUBST指定について、DDLSUBSTパラメータがファイル内にリストされている順に、Replicatによって文字列の置換が行われます。

10. DDLSUBTが処理されたため、ReplicatはREMOVECOMMENTS AFTERパラメータを検索します。これがある場合、ReplicatはDDL文からコメントを削除します。

11. Replicatは、ターゲット・データベースでDDL操作を実行します。

12. エラーがない場合は、Replicatにより次のDDL文が処理されます。エラーがある場合は、Replicatにより次の手順が実行されます。

13. Replicatは、Replicat DDLERRORパラメータのINCLUDEルールとEXCLUDEルールを、パラメータ・ファイルに出現する順に分析します。Replicatによりエラー・コードのルールが検出された場合は、指定のエラー処理が適用されますが、それ以外の場合はDEFAULTの処理が適用されます。

14. エラー処理によってDDL文が正常完了とならない場合、Replicatは、ルールでの指定に応じて異常終了、操作の無視、または操作の破棄のいずれかを実行します。

注意:

MAP文に同じソースに対する複数のターゲットが存在する場合は、それぞれに対して処理ロジックが実行されます。

13.17 DDL処理エラーの処理

Extractにより検出された、メタデータのないオブジェクトのエラー、およびDDLがターゲット・データベースに適用される際に発生するReplicatのエラーを処理するには、DDLERRORパラメータを使用します。DDLERRORオプションを使用して、ほとんどのエラーをデフォルトの方法(処理の停止など)で処理し、他のエラーを特定の方法で処理できます。予見されるすべてのエラーが処理されるよう、同一のパラメータ・ファイルに複数のDDLERRORインスタンスを使用できます。

オプションと使用方法については、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

13.18 DDLレポート情報の表示

Oracle GoldenGateでは、ExtractおよびReplicatのレポートの最後に、DDLに関する基本的な統計がデフォルトで表示されます。拡張DDLレポートを有効化するには、DDLOPTIONSパラメータにREPORTオプションを指定して使用します。拡張レポートには、DDL処理に関する次の情報が含まれます。

- Oracle GoldenGateにより処理されたDDL操作に関する順を追った履歴。

- 使用されているDDLのフィルタリング・パラメータおよび処理パラメータ。

拡張DDLレポート情報によって、レポート・ファイルのサイズは大きくなりますが、トラブルシューティングやサプリメンタル・ロギングを追加するADDTRANDATAがいつ適用されたかを確認する場合などの特定の状況で役立ちます。

レポートを表示するには、GGSCIでVIEW REPORTコマンドを使用します。

VIEW REPORT group

13.18.1 ReplicatでのDDLレポートの表示

Replicatレポートには、次がリストされます。

- Replicatが証跡から処理した各DDL操作の構文全体とソースのOracle GoldenGate SCN。ソースSCNは、特にバックアップからのリストアが存在し、Replicatが証跡の過去の時点に移動される場合に追跡目的で使用できます。

- 操作のスコープ(MAPPED、UNMAPPED、OTHER)およびターゲットDDL文でオブジェクト名がどのようにマップされたか(該当する場合)を示す後続のエントリ。

- 処理基準がどのように適用されたかを示す別のエントリ。

- 操作が成功したか失敗したか、およびReplicatによりエラー処理ルールが適用されたかどうかを示す追加のエントリ。

Replicatレポートの一部である次の例は、一連の処理およびエラー処理を示しています。

2011-01-20 15:11:45  GGS INFO     2104  DDL found, operation [drop table myTableTemp ], Source SCN [1186713.0].
2011-01-20 15:11:45  GGS INFO     2100  DDL is of mapped scope, after mapping new operation [drop table "QATEST2"."MYTABLETEMP" ].
2011-01-20 15:11:45  GGS INFO     2100  DDL operation included [include objname myTable*], optype [DROP], objtype [TABLE], objname [QATEST2.MYTABLETEMP].
2011-01-20 15:11:45  GGS INFO     2100  Executing DDL operation.
2011-01-20 15:11:48  GGS INFO     2105  DDL error ignored for next retry: error code [942], filter [include objname myTableTemp], error text [ORA-00942: table or view does not exist], retry [1].
2011-01-20 15:11:48  GGS INFO     2100  Executing DDL operation , trying again due to RETRYOP parameter.
2011-01-20 15:11:51  GGS INFO     2105  DDL error ignored for next retry: error code [942], filter [include objname myTableTemp], error text [ORA-00942: table or view does not exist], retry [2].
2011-01-20 15:11:51  GGS INFO     2100  Executing DDL operation, trying again due to RETRYOP parameter.
2011-01-20 15:11:54  GGS INFO     2105  DDL error ignored for next retry: error code [942], filter [include objname myTableTemp], error text [ORA-00942: table or view does not exist], retry [3].
2011-01-20 15:11:54  GGS INFO     2100  Executing DDL operation, trying again due to RETRYOP parameter.
2011-01-20 15:11:54  GGS INFO     2105  DDL error ignored: error code [942], filter [include objname myTableTemp], error text [ORA-00942: table or view does not exist].

13.18.2 ExtractでのDDLレポートの表示

Extractレポートには、次がリストされます。

- キャプチャされた各DDL操作の構文全体、開始と終了のSCN、Oracleインスタンス、DDL順序番号(履歴表のSEQNO列)および操作のサイズ(バイト)。

- 文字列置換やINCLUDEとEXCLUDEのフィルタリングなど、操作に処理基準がどのように適用されたかを示す後続のエントリ。

- 操作が証跡に書き込まれたか除外されたかを示す別のエントリ。

Extractレポートから取得された次の例は、含まれた操作と除外された操作を示しています。含まれた操作にはレポート・メッセージがありますが、除外された操作にはありません。

2011-01-20 15:11:41  GGS INFO     2100  DDL found, operation [create table myTable (
myId number (10) not null,
myNumber number,
myString varchar2(100),
myDate date,
primary key (myId)
) ], start SCN [1186754], commit SCN [1186772] instance [test11g (1)], DDL seqno [4134].

2011-01-20 15:11:41  GGS INFO     2100  DDL operation included [INCLUDE OBJNAME myTable*], optype [CREATE], objtype [TABLE], objname [QATEST1.MYTABLE].

2011-01-20 15:11:41  GGS INFO     2100  DDL operation written to extract trail file.

2011-01-20 15:11:42  GGS INFO     2100  Successfully added TRAN DATA for table with the key, table [QATEST1.MYTABLE], operation [ALTER TABLE "QATEST1"."MYTABLE" ADD SUPPLEMENTAL LOG GROUP "GGS_MYTABLE_53475" (MYID) ALWAYS  /* GOLDENGATE_DDL_REPLICATION */ ].

2011-01-20 15:11:43  GGS INFO     2100  DDL found, operation [create table myTableTemp (
vid varchar2(100),
someDate date,
primary key (vid)
) ], start SCN [1186777], commit SCN [1186795] instance [test11g (1)], DDL seqno [4137].

2011-01-20 15:11:43  GGS INFO     2100  DDL operation excluded [EXCLUDE OBJNAME myTableTemp OPTYPE CREATE], optype [CREATE], objtype [TABLE], objname [QATEST1.MYTABLETEMP].

13.18.3 プロセス・レポートの統計

GGSCIでSENDコマンドを使用すると、ExtractやReplicatのレポートにDDL処理に関する現在の統計を送信できます。

SEND {EXTRACT | REPLICAT} group REPORT

統計には、次の総数が表示されます。

- すべてのDDL操作

- スコープがMAPPEDの操作

- スコープがUNMAPPEDの操作

- スコープがOTHERの操作

- 除外された操作(操作数から含まれる操作を引いた数)

- エラー(Replicatのみ)

- 再試行されたエラー(Replicatのみ)

- 破棄されたエラー(Replicatのみ)

- 無視された操作(Replicatのみ)

13.19 DDL処理のトレース

Oracle GoldenGateテクニカル・サポートでサポート・ケースを開く場合、トレースを有効化するよう求められることがあります。TRACEおよびTRACE2は、DDLトレースを制御します。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

13.20 トリガーベースのDDLキャプチャをサポートするツールの使用

この項では、トリガーベースのキャプチャをサポートするために使用できる、その他のツールについて説明します。

13.20.1 DDLトリガーのトレース

Oracle GoldenGate DDLトリガーのアクティビティをトレースするには、次のツールを使用します。

- ggs_ddl_trace.logトレース・ファイル: Oracle GoldenGateでは、OracleのUSER_DUMP_DESTディレクトリにトレース・ファイルを作成します。RACでは、各ノードにそのノードのDDLトレースをキャプチャする独自のトレース・ファイルが存在します。トレース・ファイルは、次のように問い合せることができます。

select value from sys.v_$parameter where name = 'user_dump_dest';

- ddl_tracelevelスクリプト: このスクリプトを編集して実行し、トレース・レベルを設定します。値Noneでは、致命的エラーとインストール・ログ以外、DDLトレースは生成されません。デフォルト値の0では、最小限のトレース情報が生成されます。値1または2では、トレース・ファイルに多くの情報が生成されます。サポート・ケースの一環としてOracle GoldenGateテクニカル・サポートのアナリストから求められないかぎり、1または2は使用しないでください。

- ddl_cleartraceスクリプト: このスクリプトを定期的に実行して、トレース・ファイルの増大によりディスク領域が過度に使用されることを防止します。ファイルは削除されますが、Oracle GoldenGateによって別のファイルが作成されます。DDLトリガーは、Oracleディレクトリの領域が少なくなるとトレース・ファイルへの書込みを停止し、領域が再度使用可能になると書込みを再開します。このスクリプトは、Oracle GoldenGateディレクトリにあります。スクリプトを実行する前に、トレース・ファイルをバックアップします。

13.20.2 DDL履歴表のメタデータの表示

GGSCIでDUMPDDLコマンドを使用して、DDL履歴表に含まれている情報を表示します。この情報は、独自の形式で格納されていますが、判読可能な形式で画面に出力したり、問合せ可能な一連のSQL表にエクスポートすることができます。DDL履歴表の情報は、Extractプロセスによって使用されるものと同じです。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

13.20.3 DDLトリガー・エラーの処理

params.sql非実行可能スクリプトで、ソースDDLの失敗または成功に関連するOracle GoldenGate DDLトリガーの失敗を処理します。params.sqlスクリプトは、ルートのOracle GoldenGateディレクトリにあります。使用するパラメータは次のとおりです。

- ddl_fire_error_in_trigger: TRUEに設定されている場合、Oracle GoldenGate DDLトリガーの失敗は、Oracle GoldenGateエラー・メッセージおよびデータベース・エラー・メッセージとともにソースのエンドユーザー・アプリケーションに示されます。ソースの処理は失敗します。
FALSEに設定されている場合、エラーは発生せず、メッセージは、Oracle GoldenGateディレクトリのトリガー・トレース・ファイルに書き込まれます。ソースの処理は成功しますが、DDLはレプリケートされません。後続のデータ変更が古いターゲット・オブジェクトの構造に適合しない場合、ターゲット・アプリケーション最終的には失敗します。デフォルトはFALSEです。

- ddl_cause_error: TRUEに設定されている場合、故意にエラーを発生させ、トリガーのエラー・レスポンスをテストします。エラーを生成するために、Oracle GoldenGateで、例外処理を使用せずに0(ゼロ)行をSELECTしようとします。テストが終了したら、このフラグをデフォルトのFALSEに戻します。

13.21 エディションベース再定義の使用

Oracle GoldenGateは、エディションベース再定義(EBR)の使用をサポートしており、アプリケーションのデータベース・コンポーネントの使用中でも、Oracle Databaseでそれらのコンポーネントをアップグレードできるため、ダウンタイムをゼロまたは最小限に抑えることができます。

エディションは、エディション付きオブジェクトが属する非スキーマ・オブジェクトです。エディションは、エディション付きオブジェクトを所有している、またはネームスペースと考えることができます。すべてのデータベースは、ORA$BASEという名前の1つのエディションから始まり、これには、アップグレードされたデータベースが含まれます。データベースには複数のエディションが存在することができますが、それぞれの子は1つのみです。たとえば、edition1、edition2、edition3の3つのエディションを連続して作成した場合、edition1はedition2の親になり、edition2はedition3の親になります。これは、それらを作成するユーザーまたはデータベース・セッションに関係なく、新しいエディションが作成された際に、どのエディションが最新であるかにも関係ありません。エディションを作成すると、その親のすべてのエディション付きオブジェクトを継承します。Oracle GoldenGateでエディションを使用するには、それらを作成する必要があります。エディションの作成および管理の詳細は、次を参照してください。

オブジェクトがエディション化可能なタイプの場合、エディション付きとみなされ、EDITIONABLE属性で作成され、スキーマは、そのオブジェクト・タイプのエディション化に有効です。エディション付きオブジェクトを作成、変更または削除すると、それが属するエディションの名前がREDOログに記録されます。コンテナ・データベースでは、エディションはコンテナに属し、各コンテナには、独自のデフォルト・エディションが含まれます。

CREATE | DROP EDITION DDLは、すべてのExtract構成でキャプチャされます。これらはOTHERカテゴリに分類され、EDITIONのOBJTYPEオプション値が割り当てられます。OBJTYPEオプションは、次のようなフィルタリングに使用できます。

DDL EXCLUDE OBJTYPE EDITION
DDL EXCLUDE OBJTYPE EDITION OPTYPE CREATE
DDL EXCLUDE OBJTYPE EDITION OPTYPE DROP
DDL EXCLUDE OBJTYPE EDITION OPTYPE DROP ALLOWEMPTYOWNER OBJNAME edition_name

ExtractまたはReplicatからエディションを除外するには、次の構文を使用する必要があります。

EXCLUDE OBJTYPE EDITION, ALLOWEMPTYOWNER OBJNAME edition_name

エディションは、OTHERカテゴリに分類されるため、エディション名でマッピングは実行されません。適用されると、USE権限がReplicatユーザーに自動的に付与されます。Replicatは、元の作成ユーザーがターゲット・データベースに存在する場合、そのユーザーに対してgrant use on edition name with grant optionも実行します。エディションはマップ可能な操作ではないため、所有者は含まれず、このため標準のEXCLUDE文が機能しません。

エディションの作成または変更に使用されるDDLは、実際にはエディションのユーザーを有効にせず、エディションのスキーマを有効にします。DDLをエディション付きオブジェクトに適用するために、Replicatユーザーを有効にする必要はないため、この区別は重要です。ReplicatがCREATE EDITION DDLを適用すると、元のユーザーがターゲット・データベースに存在する場合は、ユーザー作成の元の権限がUSEに付与されます。レプリケートされていないCREATE EDITION文の場合は、USE WITH GRANT OPTIONを発行して、Replicatユーザーに付与する必要があります。

エディション化可能なオブジェクトがエディション付きになるかどうかは、適用されるスキーマによって制御されます。エディション名の属性が証跡ファイルに存在し、空でない場合に、Replicatは、DDLを適用する前に、その現在のセッション・エディションを切り替えます。

コンテナ・データベース環境は、ExtractおよびReplicatの両方でサポートされます。追加の構成は必要ありません。Replicatユーザーのスキーマは、共通ユーザーの場合エディションに対して有効にすることはできません。DDLを他のスキーマのエディション付きオブジェクトに適用するときに、Replicatユーザーのスキーマをエディションに対して有効にする必要はありません。

注意:

EBRサポートは統合ディクショナリに制限されます。DDLトリガーの使用時にはサポートされません。

14 プロセス・グループの作成

この章では、変更同期プロセスと総称されるOracle GoldenGateプロセス・グループを作成する手順について説明します。少なくとも、1つのプライマリExtract、1つのデータ・ポンプおよび1つのReplicatプロセス・グループを作成します。Oracle GoldenGateプロセス・グループの詳細は、次を参照してください。

この章の内容は次のとおりです。

- これらの手順の前提条件

- Extractのマイニング・データベースでの登録

- プライマリExtractの追加

- ローカル証跡の追加

- データ・ポンプExtractグループの追加

- リモート証跡の追加

- Replicatグループの追加

14.1 これらの手順の前提条件

この章では、Oracle GoldenGateプロセス・グループの構成に進む前に、Oracle GoldenGateがインストールされ、使用可能な様々な処理オプションについてユーザーが理解し、事前に必要な次の構成手順が実行されていることを前提としています。

Oracle GoldenGate資格証明の確立

Oracle GoldenGateのためのデータベースの準備

統合モードでのキャプチャの構成

クラシック・モードでのキャプチャの構成

Oracle GoldenGateの適用の構成

DDLサポートの構成(DDLサポートを使用するため)

14.2 Extractのマイニング・データベースでの登録

Extractを統合モードで使用する場合は、REDOデータをキャプチャするためにデータベース・ログマイニング・サーバーを作成する必要があります。これは、プライマリExtractプロセスをマイニング・データベースに登録することで、GGSCIインタフェースから行います。ログマイニング・サーバーの作成によって、ソース・データベースのスナップショットをソース・データベースのREDOストリームに抽出します。ソース・マルチテナント・コンテナ・データベースで、キャプチャに含める各プラガブル・データベースにExtractを登録します。

警告:

Extractが処理を開始するログ・ストリームの最初のSCNを確認してください。Extractの開始SCN値を、REGISTER EXTRACTコマンドで基礎となるデータベース・キャプチャ・プロセスが作成されたときに指定された最初のSCNより小さい値にすることはできません。SCNオプションを使用できます。

1. マイニング・データベースにログインし、環境に適切なコマンドを使用します。DBLOGINを使用すると、常にソース・データベースを参照します。

ソース・データベースのデプロイ用のコマンド:

DBLOGIN USERIDALIAS alias

ダウンストリーム・マイニング・データベースのデプロイ用のコマンド:

DBLOGIN USERIDALIAS alias
MININGDBLOGIN USERIDALIAS alias2

aliasでは、Extractに割り当てられているデータベース・ログイン資格証明のエイリアスを指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGate資格証明の確立」を参照してください。DBLOGINの詳細は、『Oracle GoldenGateリファレンスfor Windows and UNIX』を参照してください。MININGDBLOGINの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

2. Extractプロセスをマイニング・データベースに登録します。

REGISTER EXTRACT group DATABASE [CONTAINER (container[, ...])] [SCN system_change_number]

説明:

- groupは、Extractグループの名前です。

- CONTAINER (container[, ...])では、マルチテナント・コンテナ・データベース内のプラガブル・データベース(PDB)またはカンマで区切られたPDBのリストを指定します。REGISTERコマンドを実行する前に、指定されたPDBが存在している必要があります。Extractは、このコマンドでリストされるPDBからのみキャプチャします。たとえば、次のコマンドにより、PDB mypdb1およびmypdb4が登録されます。Oracle GoldenGateでは、マルチテナント・コンテナ・データベース内の他のPDBからの変更は無視されます。

REGISTER EXTRACT myextract DATABASE CONTAINER (mypdb1, mypdb4, mydb5)

Extractを停止し、DBLOGINコマンドを発行した後に、DATABASEの{ADD | DROP} CONTAINERオプションを指定してREGISTER EXTRACTを発行することで、プラガブル・データベースを後から追加または削除できます。REGISTER EXTRACTの詳細は、『Oracle GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIX』を参照してください。

注意:

既存のExtractの特定のSCNでCONTAINERを追加することはサポートされていません。

- 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';

3. 追加のExtractを同じソース・データベースのダウンストリーム・データベースに登録するには、このREGISTERコマンドを発行します。

ソース・データベースごとに複数のExtractが必要な場合は、REGISTER EXTRACTを指定してSHAREを使用することで、パフォーマンスとメタデータの管理を向上できます。指定したSCNは、アーカイブ・ログでマイニングが開始されるSCNに対応している必要があります。

REGISTER EXTRACT group DATABASE [CONTAINER (container[, ...])] [SCN system_change_number] SHARE

注意:

REGISTERコマンドがすぐに復帰した場合でも、プロセスの登録は、完了に数分かかる場合があります。

14.3 プライマリExtractの追加

次の手順では、変更データをキャプチャするプライマリExtractを追加します。

1. ダウンストリーム・キャプチャおよび統合モードのExtractを使用する場合は、RMANアーカイブ・ログ削除ポリシーを次の値に設定します。

CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY

これは、プライマリExtractを追加する前に行う必要があります。

2. GGSCIを実行します。

3. 統合キャプチャを使用する場合は、DBLOGINコマンドを発行します。

DBLOGIN USERIDALIAS alias

aliasでは、Extractに割り当てられているデータベース・ログイン資格証明のエイリアスを指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGate資格証明の確立」を参照してください

4. ADD EXTRACTコマンドを発行して、プライマリExtractグループを追加します。

ADD EXTRACT group name
{, TRANLOG | , INTEGRATED TRANLOG}
{, BEGIN {NOW | yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]} | SCN value}
[, THREADS n]

説明:

- group nameは、Extractグループの名前です。

- TRANLOGでは、トランザクション・ログをデータ・ソースとして指定します(クラシック・キャプチャの場合のみ)。例14-1を参照してください。

- INTEGRATED TRANLOGでは、Extractがデータベース・ログマイニング・サーバーを介して論理変更レコードを受信することを指定します(統合キャプチャの場合のみ)。例14-2を参照してください。このオプションを指定してADD EXTRACTを発行する前に、DBLOGINコマンドを使用してデータベースにログインしたこと、およびこのExtractをデータベースに登録したことを確認します。詳細は、「Extractのマイニング・データベースでの登録」を参照してください。

- BEGINでは、特定の時間にデータのキャプチャを開始することを指定します。

- NOWでは、ADD EXTRACTの発行と同じ時間をタイムスタンプとする最初のレコードから開始します。

- yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]では、明示されたタイムスタンプから開始します。このタイムスタンプからログが使用可能になります。統合モードのExtractの場合、タイムスタンプの値は、Extractがデータベースに登録されたときのタイムスタンプよりも大きい値である必要があります。

- SCN valueでは、指定したOracleシステム変更番号(SCN)を持つREDOログ内のトランザクションでExtractを開始します。統合モードのExtractでは、SCN値はExtractがデータベースに登録された時点のSCNよりも大きい必要があります。詳細は、「Extractのマイニング・データベースでの登録」を参照してください。

- THREADS nは、Oracle Real Application Cluster (RAC)に対するクラシック・キャプチャ・モードに必要で、クラスタによって使用されるREDOログ・スレッドの数を指定します。Extractで各スレッドを読み取って調整し、トランザクションの整合性を保ちます。統合キャプチャには必要ありません。

注意:

その他のオプションも使用可能です。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

例14-1 タイムスタンプ開始点を指定したクラシック・キャプチャ

ADD EXTRACT finance, TRANLOG, BEGIN 2011-01-01 12:00:00.000000

例14-2 タイムスタンプ開始点を指定した統合キャプチャ

DBLOGIN USERIDALIAS myalias
ADD EXTRACT finance, INTEGRATED TRANLOG, BEGIN NOW

14.4 ローカル証跡の追加

次の手順では、プライマリExtractによってキャプチャされたデータが書き込まれるローカル証跡を追加します。

ソース・システムのGGSCIで、ADD EXTTRAILコマンドを発行します。

ADD EXTTRAIL pathname, EXTRACT group name

説明:

- EXTTRAILでは、証跡がローカル・システムに作成されるよう指定します。

- pathnameは、2文字の名前を含めた、証跡の相対名または完全修飾名です。

- EXTRACT group nameは、プライマリExtractグループの名前です。

注意:

Oracle GoldenGateでは、この証跡が処理中に自動的に作成されます。

例14-3

ADD EXTTRAIL /ggs/dirdat/lt, EXTRACT finance

14.5 データ・ポンプExtractグループの追加

次の手順では、ローカル証跡を読み取り、データをターゲットに送信するデータ・ポンプを追加します。

ソース・システムのGGSCIで、ADD EXTRACTコマンドを発行します。

ADD EXTRACT group name, EXTTRAILSOURCE trail name

説明:

- group nameは、Extractグループの名前です。

- EXTTRAILSOURCE trail nameは、ローカル証跡の相対名または完全修飾名です。

例14-4

ADD EXTRACT financep, EXTTRAILSOURCE c:\ggs\dirdat\lt

14.6 リモート証跡の追加

次の手順では、リモート証跡を追加します。Replicatによって準備されますが、この証跡はデータ・ポンプと関連付けられる必要があるため、ターゲットではなく、ソース・システムで追加される必要があります。

ソース・システムのGGSCIで、次のコマンドを発行します。

ADD RMTTRAIL pathname, EXTRACT group name

説明:

- RMTTRAILでは、証跡がターゲット・システムに作成されるよう指定します。

- pathnameは、2文字の名前を含めた、証跡の相対名または完全修飾名です。

- EXTRACT group nameは、データ・ポンプExtractグループの名前です。

注意:

Oracle GoldenGateでは、この証跡が処理中に自動的に作成されます。

例14-5

ADD RMTTRAIL /ggs/dirdat/rt, EXTRACT financep

14.7 Replicatグループの追加

次の手順では、リモート証跡を読み取り、データ変更をターゲットOracle Databaseに適用するReplicatグループを追加します。

1. ターゲット・システムでGGSCIを実行します。

2. 統合Replicatを使用する場合は、DBLOGINコマンドを発行して、GGSCIからデータベースにログインします。

DBLOGIN USERIDALIAS alias

aliasでは、Replicatに割り当てられているデータベース・ログイン資格証明のエイリアスを指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGate資格証明の確立」を参照してください

3. 次の構文を使用して、ADD REPLICATコマンドを発行します。

ADD REPLICAT group name, [INTEGRATED,] EXTTRAIL pathname

説明:

- group nameは、Replicatグループの名前です。

- INTEGRATEDでは、統合Replicatグループが作成されます。

- EXTTRAIL pathnameは、2文字の名前を含めた、リモート証跡の相対名または完全修飾名です。
詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

例14-6 非統合Replicatの追加

ADD REPLICAT financer, EXTTRAIL c:\ggs\dirdat\rt

例14-7 統合Replicatの追加

ADD REPLICAT financer, INTEGRATED, EXTTRAIL c:\ggs\dirdat\rt

15 Oracle GoldenGateレプリケーションのインスタンス化

この章では、レプリケーション環境のインスタンス化を構成および実行し、複数のデータベース間で同期状態を確立し、維持する方法について説明します。同期状態では、データをターゲット・オブジェクトに適用する前にデータで変換が実行されたかどうかによって、ソースおよびターゲット・オブジェクトに同じ値またはほぼ一致する値が含まれます。

この章の内容は次のとおりです。

- インスタンス化プロセスの概要

- インスタンス化の前提条件

- 初期ロードの構成

- ターゲットのインスタンス化の実行

- インスタンス化後の処理の監視および制御

- 同期の確認

- Oracle GoldenGate環境のバックアップ

15.1 インスタンス化プロセスの概要

インスタンス化手順では、ソース・データのコピーを作成し、そのコピーをターゲット・データベースにロードします。初期ロードではデータのポイントインタイム・スナップショットがキャプチャされます。Oracle GoldenGateでは、静的データのロード時に発生したトランザクション変更が適用され、その整合性が保たれます。インスタンス化の完了後、Oracle GoldenGateでは進行中のトランザクション変更の間、同期状態が保持されます。

Oracle GoldenGate処理をインスタンス化する場合、本番マシンにライブをデプロイする前にまずテスト環境でテストすることをお薦めします。これは、信頼できるソースのデータがレプリケーション・プロセスからアクセスされる可能性のあるアクティブ/アクティブまたは高可用性の構成で特に重要です。テストによって、ターゲットでの再ロードや他のトラブルシューティング・アクティビティのためにユーザー・アクティビティを中断することなく、構成の誤りやデータの問題を検出して解決できます。テストによって、インスタンス化プロセスが適切に構成されたことも保証されます。テストに成功した後、パラメータ・ファイルを本番装置にコピーし、本番データを使用して予測可能なインスタンス化を実行できます。

15.2 インスタンス化の前提条件

Oracle GoldenGateプロセスまたはネイティブ・データベース・ロード・プロセスを起動する前に、次の手順を実行する必要があります。

- 変更同期グループの構成および追加

- DDL処理の無効化

- コリジョン処理の追加

- ターゲット表の準備

15.2.1 変更同期グループの構成および追加

ターゲット・データベースおよびレプリケーション環境のインスタンス化を実行するには、オンライン変更キャプチャおよび適用グループが存在し、適切に構成されている必要があります。次を参照してください。

統合モードでのキャプチャの構成

クラシック・モードでのキャプチャの構成

Oracle GoldenGateの適用の構成

プロセス・グループの作成

15.2.2 DDL処理の無効化

インスタンス化を実行する前に、DDLアクティビティを無効化する必要があります。インスタンス化の終了後、DDLを再開できます。手順は、「DDL処理の一時的な無効化」を参照してください。

15.2.3 コリジョン処理の追加

この前提条件は、次のインスタンス化方法に適用されます。

- SQL*Loaderへダイレクト・バルク・ロードするための構成

- 入力ファイルからSQL*Loaderへのロードの構成

この前提条件は、「Oracle Data Pumpを使用したロードの構成」に説明されているインスタンス化方法には適用されません。

ソース・データベースがいずれかの初期ロード方式でアクティブな場合、Replicatパラメータ・ファイルにコリジョン処理ロジックを追加する必要があります。このロジックでは、静的データのターゲット表へのロードと、Oracle GoldenGateによるターゲット表へのトランザクション変更のレプリケートが同時に行われるために発生する競合が処理されます。

次のコリジョンを処理するには、HANDLECOLLISIONSパラメータをReplicatパラメータに追加して解決します。

- すでに存在する行のINSERT操作

- 存在しない行のUPDATEおよびDELETE操作

インスタンス化手順の最後に(手順で尋ねられたときに)、ReplicatパラメータからHANDLECOLLISIONSを削除する必要があります。HANDLECOLLISIONSの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

HANDLECOLLISIONS関数を使用して、ロードによる増分データ変更を調整するには、各ターゲット表に主キーと一意キーがある必要があります。アプリケーションでキーを作成できない場合、TABLEおよびMAPパラメータのKEYCOLSオプションを使用し、Oracle GoldenGateで使用する代替キーとなる列を指定します。キーを作成できない場合、影響を受けるロードのソース表を停止する必要があります。KEYCOLSの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

15.2.4 ターゲット表の準備

ロードを高速に行い、エラーが起こらないようにするための推奨事項は、次のとおりです。

- データ: ターゲット表が空であることを確認します。そうでない場合、行の重複エラーや既存の行とロードされる行との間に競合が発生することがあります。

- 索引: ターゲット表から索引を削除します。索引は、初期ロード・プロセスによって実行される挿入には不要で、速度を低下させます。ロードの完了後、索引を再度追加できます。

15.3 初期ロードの構成

Oracle GoldenGateでは、Oracle専用の次のロード方式がサポートされます。

- Oracle Data Pumpを使用したロードの構成

- SQL*Loaderへダイレクト・バルク・ロードするための構成

- 入力ファイルからSQL*Loaderへのロードの構成

方法を選択してその構成手順に従い、ロード・プロセスとパラメータ・ファイルを作成します。

変更同期パラメータ・ファイルで使用するパラメータの一部は、初期ロードのExtractおよびReplicatパラメータ・ファイルにも必要です。共通性を利用するには、次の方法を使用します。

- 共通のパラメータを一方のパラメータ・ファイルから他方にコピーします。

- 共通のパラメータを中央のファイルに格納し、各パラメータ・ファイルでOBEYパラメータを使用して取得します。

- 共通のパラメータに対するOracle GoldenGateマクロを作成し、MACROパラメータを使用して各パラメータ・ファイルからマクロをコールします。

パラメータ・ファイルの使用の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

15.3.1 Oracle Data Pumpを使用したロードの構成

図15-1 Oracle Data Pumpを使用したロードの構成

この方法では、Oracle Data Pumpユーティリティを使用して、ターゲット・データを構築します。コピーが停止したときのSCNで、Extract、データ・ポンプおよびReplicatを起動します。コピーに含まれているトランザクションは、整合性違反によるコリジョンを回避するためにスキップされます。プロセスの開始地点から、Oracle GoldenGateはデータ同期を維持します。

この方法では、初期ロードOracle GoldenGateプロセスは不要です。

15.3.2 SQL*Loaderへダイレクト・バルク・ロードするための構成

図15-2に、SQL*Loaderへダイレクト・バルク・ロードするための構成を示します。

図15-2 SQL*Loaderへダイレクト・バルク・ロードするための構成

この方法では、Oracle GoldenGate初期ロードExtractを構成して実行し、全ソース・レコードを抽出して初期ロードReplicatタスクに直接送信します。初期ロードReplicatタスクはSQL*Loaderと通信し、ダイレクトパス・バルク・ロードでデータをロードします。データ・マッピングと変換は、初期ロードExtractまたは初期ロードReplicat、あるいはその両方で行えます。ロード時、「統合モードでのキャプチャの構成」または「クラシック・モードでのキャプチャの構成」および「Oracle GoldenGateの適用の構成」で構成した変更同期グループによって増分変更がレプリケートされ、ロードの結果に反映されます。

制限:

- この方法では、LOBまたはLONGのデータの抽出はサポートされません。かわりの方法については、「入力ファイルからSQL*Loaderへのインスタンス化の実行」を参照してください。

- この方法では、サイズに関係なく、LOBを含むマテリアライズド・ビューはサポートされません。データの暗号化もサポートされません。

SQL*Loaderへダイレクト・バルク・ロードするための構成手順

1. LOCK ANY TABLEをターゲットOracle DatabaseのReplicatデータベース・ユーザーに付与します。

2. ソースおよびターゲット・システムでGGSCIを実行します。

3. 両方のシステムでManagerを起動します。

START MANAGER

4. ソース・システムで、初期ロードExtractを作成します。

ADD EXTRACT initial-load_Extract, SOURCEISTABLE

説明:

- initial-load_Extractは、8文字以内の初期ロードExtractの名前です。

- SOURCEISTABLEでは、Extractに全レコードをソース表から直接読み取るように指示します。

5. ソース・システムで、初期ロードExtractパラメータ・ファイルを作成します。

EDIT PARAMS initial-load_Extract

6. 次に示す順序で初期ロードExtractパラメータを入力します。パラメータ文ごとに新しい行を開始します。次の例は、マルチテナント・コンテナ・データベースに関連付けられている3つの部分からなる表名を示しています。詳細は、表15-1を参照してください。

EXTRACT initext
USERIDALIAS tiger1
RMTHOST fin1, MGRPORT 7809 ENCRYPT AES192, KEYNAME securekey2
RMTTASK replicat, GROUP initrep
TABLE hq.hr.*;

表15-1 SQL*Loaderへダイレクト・バルク・ロードするための初期ロードExtractパラメータ

パラメータ

説明

EXTRACT initial-load_Extract

ADD EXTRACTで指定した初期ロードExtractの名前を指定します。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

USERIDALIAS alias

Extractに割り当てられているデータベース・ログイン資格証明のエイリアスを指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGate資格証明の確立」を参照してください

RMTHOST hostname, MGRPORT portnumber[, ENCRYPT algorithm KEYNAME keyname]

ターゲット・システム、Managerが稼働しているポート、およびTCP/IP経由でのデータ暗号化(オプション)を指定します。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

RMTTASK REPLICAT, GROUP initial-load_Replicat

プロセス・タイプ(REPLICAT)と初期ロードReplicatの名前を指定します。ターゲット・システムのManagerに、初期ロードReplicatを1回かぎりのタスクとして動的に起動するように指示します。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

TABLE [container.]schema.table;

キャプチャする表を指定します。

- マルチテナント・コンテナ・データベースの場合、containerはプラガブル・データベースの名前です。3つの部分からなる名前を使用するかわりに、SOURCECATALOGパラメータを使用してデフォルトのプラガブル・データベースを指定できます。

- schemaは、スキーマ名です。

- tableは、表名です。

オブジェクト名の指定に関する重要情報は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

7. ファイルを保存して閉じます。

8. ターゲット・システムで、初期ロードReplicatを作成します。

ADD REPLICAT initial-load Replicat, SPECIALRUN

説明:

- initial-load Replicatは、初期ロードReplicatタスクの名前です。

- SPECIALRUNでは、初期ロードReplicatを、継続的プロセスではなく、ワンタイム・タスクとして識別します。

9. ターゲット・システムで、初期ロードReplicatパラメータ・ファイルを作成します。

EDIT PARAMS initial-load Replicat

10. 次に示す順序で初期ロードReplicatパラメータを入力します。パラメータ文ごとに新しい行を開始します。次の例は、マルチテナント・コンテナ・データベースに関連付けられている3つの部分からなるソース表名を示しています。説明については、表15-2を参照してください。

REPLICAT initrep
USERIDALIAS tiger2
BULKLOAD
ASSUMETARGETDEFS
MAP hq.hr.*, TARGET hr2.*;

表15-2 SQL*Loaderへダイレクト・バルク・ロードするための初期ロードReplicatパラメータ

パラメータ

説明

REPLICAT initial-load Replicat

ADD REPLICATで指定した初期ロードReplicatタスクの名前を指定します。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

USERIDALIAS alias

Replicatに割り当てられているデータベース・ログイン資格証明のエイリアスを指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGate資格証明の確立」を参照してください

BULKLOAD

Oracle SQL*Loaderインタフェースと直接対話するようReplicatに指示します。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください

ASSUMETARGETDEFS

ソースとターゲットの表が、セマンティクスを含めて同一であるものとします。ソースとターゲットの定義が異なる場合、変更同期と初期ロードの両方のプロセスが使用するソース定義ファイルを作成して指定する必要があります。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

データ定義ファイルの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

MAP [container.]schema.table, TARGET schema.table;

ソース表とターゲット表の関係を指定します。

- ソースがマルチテナント・コンテナ・データベースの場合、containerはこのMAP 文で指定されたソース・オブジェクトを含むプラガブル・データベースの名前です。3つの部分からなる名前を使用するかわりに、SOURCECATALOGパラメータを使用してデフォルトのソース・プラガブル・データベースを指定できます。

- schemaは、スキーマ名です。

- tableは、表名です。

オブジェクト名の指定に関する重要情報は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

15.3.3 入力ファイルからSQL*Loaderへのロードの構成

図15-3 入力ファイルからSQL*Loaderへのロードの構成

この方法では、初期ロードExtractはソース表からソース・レコードを抽出し、抽出ファイルに外部ASCII形式で書き込みます。ファイルはSQL*Loaderによって読み取られます。ロード時、第4章で構成した変更同期グループによって増分変更がレプリケートされ、ロードの結果に反映されます。ロード処理の一環として、Oracle GoldenGateで初期ロードReplicatを使用して、データベース・ユーティリティに必要な実行ファイルと制御ファイルを作成します。制御ファイルは動的に生成され、変換ルールで事前構成できないため、すべてのデータ変換はソース・システムで初期ロードExtractによって実行される必要があります。

ファイルからSQL*Loaderへのロードを構成する手順

1. ソースおよびターゲット・システムでGGSCIを実行します。

2. 両方のシステムでManagerを起動します。

START MANAGER

3. ソース・システムで、初期ロードExtractパラメータ・ファイルを作成します。

EDIT PARAMS initial-load Extract

4. 次に示す順序で初期ロードExtractパラメータを入力します。パラメータ文ごとに新しい行を開始します。次の例は、マルチテナント・コンテナ・データベースに関連付けられている3つの部分からなる表名を示しています。詳細は、表15-3を参照してください。

SOURCEISTABLE
USERIDALIAS tiger1
RMTHOST fin1, MGRPORT 7809 ENCRYPT AES192, KEYNAME securekey2
ENCRYPTTRAIL AES192
FORMATASCII, SQLLOADER
RMTFILE /ggs/dirdat/ie
TABLE hq.hr.*;

表15-3 ファイルからSQL*Loaderへロードするための初期ロードExtractパラメータ

パラメータ

説明

SOURCEISTABLE

Extractを、ソース表から直接レコードを抽出する初期ロード・プロセスとして指定します。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

USERIDALIAS alias

Extractに割り当てられているデータベース・ログイン資格証明のエイリアスを指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGate資格証明の確立」を参照してください

RMTHOST hostname, MGRPORT portnumber[, ENCRYPT algorithm KEYNAME keyname]

ターゲット・システム、Managerが稼働しているポート、およびTCP/IP経由でのデータ暗号化(オプション)を指定します。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

ENCRYPTTRAIL algorithm

リモート・ファイルでデータを暗号化します。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

FORMATASCII, SQLLOADER

SQL*Loaderに対応した、固定長でASCII形式のリモート・ファイルを作成します。このパラメータは、RMTFILEの前にリストする必要があります。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

RMTFILE path

Extractによって作成され、ロード・データが書き込まれる抽出ファイルの絶対パスまたはフルパス名を指定します。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

TABLE [container.]schema.table;

キャプチャする表を指定します。

- マルチテナント・コンテナ・データベースの場合、containerはプラガブル・データベースの名前です。3つの部分からなる名前を使用するかわりに、SOURCECATALOGパラメータを使用してデフォルトのプラガブル・データベースを指定できます。

- schemaは、スキーマ名です。

- tableは、表名です。

オブジェクト名の指定に関する重要情報は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

5. パラメータ・ファイルを保存して閉じます。

6. ターゲット・システムで、初期ロードReplicatパラメータ・ファイルを作成します。

EDIT PARAMS initial-load Replicat

7. 次に示す順序で初期ロードReplicatパラメータを入力します。パラメータ文ごとに新しい行を開始します。次の例は、マルチテナント・コンテナ・データベースに関連付けられている3つの部分からなるソース表名を示しています。説明については、表15-4を参照してください。

GENLOADFILES sqlldr.tpl
USERIDALIAS tiger2
EXTFILE /ggs/dirdat/ie
ASSUMETARGETDEFS
MAP hq.hr.*, TARGET hr2.*;

表15-4 ファイルからSQL*Loaderへロードするための初期ロードReplicatパラメータ

パラメータ

説明

GENLOADFILES template

データベース・ユーティリティの実行ファイルと制御ファイルを生成します。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

USERIDALIAS alias

Replicatに割り当てられているユーザーのデータベース・ログイン資格証明のエイリアスを指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGate資格証明の確立」を参照してください

EXTFILE path

ExtractパラメータRMTFILEで指定した抽出ファイルを指定します。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

ASSUMETARGETDEFS

ソースとターゲットの表が、セマンティクスを含めて同一であるものとします。ソースとターゲットの定義が異なる場合、変更同期と初期ロードの両方のプロセスが使用するソース定義ファイルを作成して指定する必要があります。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

データ定義ファイルの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

MAP [container.]schema.table, TARGET schema.table;

ソース表とターゲット表の関係を指定します。

- ソースがマルチテナント・コンテナ・データベースの場合、containerはこのMAP 文で指定されたソース・オブジェクトを含むプラガブル・データベースの名前です。3つの部分からなる名前を使用するかわりに、SOURCECATALOGパラメータを使用してデフォルトのソース・プラガブル・データベースを指定できます。

- schemaは、スキーマ名です。

- tableは、表名です。

オブジェクト名の指定に関する重要情報は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

8. パラメータ・ファイルを保存して閉じます。

15.4 ターゲットのインスタンス化の実行

この手順では、ターゲット表のインスタンス化の間にOracle GoldenGateでソースの進行中のトランザクション変更をキャプチャし、ターゲットに適用されるまで格納します。ターゲット表のインスタンス化を実行するまでに、Oracle GoldenGate環境全体が変更のキャプチャと配信用に構成されている必要があります。Oracle GoldenGateを初期ロード・ユーティリティとして使用する場合は初期ロード・プロセスも同様です。

注意:

Extractが新しいOracle GoldenGate構成で初めて起動されたとき、開いているソース・トランザクションはスキップされます。Extractの起動後に開始されたトランザクションのみキャプチャされます。

15.4.1 Oracle Data Pumpを使用したインスタンス化の実行

Oracle Data Pumpでインスタンス化を実行するには、My Oracle Supportドキュメント1276058.1を参照してください。このドキュメントを入手するには、次のようにします。

1. http://support.oracle.comに移動します。

2. 「Sign In」の下部から言語を選択し、Oracleシングル・サインオン(SSO)でログインします。

3. 「Dashboard」で、見出し「Knowledge Base」を展開します。

4. 「Enter search terms」の下の箇所で、ドキュメントID「1276058.1」を貼り付けるか入力し、「Search」をクリックします。

5. 検索結果で「Oracle GoldenGate Best Practices: Instantiation from an Oracle Source Database [Article ID 1276058.1]」を選択します。

6. 「Attachments」の下のリンクをクリックして、記事を開きます。

15.4.2 SQL*Loaderへのダイレクト・バルク・ロードを使用する場合のインスタンス化の実行

1. ソース・システムで、GGSCIを実行します。

2. プライマリ変更キャプチャExtractグループを起動します。

START EXTRACT group

3. データ・ポンプExtractグループを起動します。

START EXTRACT data_pump

4. 順序値をレプリケートする場合、次のようにします。

- update.Sequenceに対してEXECUTE権限を持つ資格証明ストア内のユーザーのエイリアスで、DBLOGINコマンドを発行します。

DBLOGIN USERIDALIAS alias

- 次のコマンドを発行して、各ソース順序を更新し、REDOを生成します。このREDOから、Replicatがターゲット上の順序の初期同期を実行します。このコマンドの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

FLUSH SEQUENCE [container.]schema.sequence

5. 初期ロードExtractを起動します。

START EXTRACT initial-load_Extract

警告:

初期ロードReplicatは起動しないでください。Managerプロセスで自動的に起動し、ロードの完了時に終了します。

6. ターゲット・システムでGGSCIを実行します。

7. VIEW REPORTコマンドを発行し、SQL*Loaderへの初期ロードがいつ完了したかを確認します。

VIEW REPORT initial-load_Extract

8. ロードが完了したら、変更データReplicatグループを起動します。

START REPLICAT group

9. INFO REPLICATコマンドを発行します。初期ロード中に生成された変更データをReplicatですべて適用したと表示されるまで、コマンドの発行を続けます。たとえば、初期ロードExtractが12:05に停止した場合、Replicatがその時間までのデータを適用したことを確認します。

INFO REPLICAT group

10. 変更配信ReplicatのHANDLECOLLISIONSをオフにし、初期ロードのエラー処理を無効にします。

SEND REPLICAT group, NOHANDLECOLLISIONS

11. 変更配信Replicatパラメータ・ファイルを編集し、HANDLECOLLISIONSパラメータを削除します。

EDIT PARAMS group

12. パラメータ・ファイルを保存して閉じます。

これ以降、Oracle GoldenGateでデータ変更の同期が続けられます。

15.4.3 入力ファイルからSQL*Loaderへのインスタンス化の実行

注意:

データにマルチバイト文字がある場合、特にオペレーティング・システムのキャラクタ・セットがデータベースのキャラクタ・セットと異なる場合、SQL*Loader方法は推奨されません。

1. ソース・システムで、GGSCIを実行します。

2. プライマリ変更キャプチャExtractグループを起動します。

START EXTRACT group

3. データ・ポンプExtractグループを起動します。

START EXTRACT data_pump

4. 順序値をレプリケートする場合、次のようにします。

- update.Sequenceに対してEXECUTE権限を持つ資格証明ストア内のユーザーのエイリアスで、DBLOGINコマンドを発行します。

DBLOGIN USERIDALIAS alias

- 次のコマンドを発行して、各ソース順序を更新し、REDOを生成します。このREDOから、Replicatがターゲット上の順序の初期同期を実行します。このコマンドの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

FLUSH SEQUENCE [container.]schema.sequence

5. ソース・システムのOracle GoldenGateのインストール・ディレクトリで、オペレーティング・システムのコマンドライン(GGSCIではない)から初期ロードExtractを起動します。

UNIXおよびLinux:

$ /OGG_directory/extract paramfile dirprm/initial-load_Extract.prm reportfile path

Windows:

C:\> OGG_directory\extract paramfile dirprm\initial-load_Extract.prm reportfile path

説明: initial-load_Extractは、初期ロードExtractの名前で、pathは、Extractレポート・ファイルが作成される場所の相対パスまたは完全修飾パスです。

6. ソースからの初期抽出が完了するまで待ちます。コマンドラインからExtractレポート・ファイルを表示し、進捗と結果を確認します。

7. ターゲット・システムで、初期ロードReplicatを起動します。

UNIXおよびLinux:

$ /OGG directory/replicat paramfile dirprm/initial-load_Replicat name.prm reportfile path

Windows:

C:\> OGG directory\replicat paramfile dirprm\initial-load_Replicat.prm reportfile path

説明: initial-load Extractは、初期ロードReplicatの名前で、pathは、Replicatレポート・ファイルが作成される場所の相対パスまたは完全修飾パスです。

8. 初期ロードReplicatが停止したら、コマンドラインからReplicatレポート・ファイルを表示し、結果を確認します。

9. ASCII形式のファイルおよび初期ロードReplicatが作成した実行ファイルと制御ファイルを使用し、SQL*Loaderを介してデータをロードします。

10. ロードが完了したら、変更配信Replicatグループを起動します。

START REPLICAT group

11. INFO REPLICATコマンドを発行します。初期ロード中に生成された変更データをReplicatですべて適用したと表示されるまで、コマンドの発行を続けます。たとえば、初期ロードExtractが12:05に停止した場合、Replicatがその時間までのデータを適用したことを確認します。

INFO REPLICAT group

12. 変更配信ReplicatのHANDLECOLLISIONSをオフにし、初期ロードのエラー処理を無効にします。

SEND REPLICAT group, NOHANDLECOLLISIONS

13. 変更配信Replicatパラメータ・ファイルを編集し、HANDLECOLLISIONSパラメータを削除します。

EDIT PARAMS group

14. パラメータ・ファイルを保存して閉じます。

これ以降、Oracle GoldenGateでデータ変更の同期が続けられます。

15.5 インスタンス化後の処理の監視および制御

ターゲットをインスタンス化し、レプリケーションが有効になったら、プロセスを制御し、レプリケーション環境の全体的な正常性を確認することができます。

- プロセスを制御するには、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

- すべてのプロセスが正常に実行され、エラーがエラー処理ルールに従って処理されることを確認するには、Oracle GoldenGateの管理for Windows and UNIXを参照してください。Oracle GoldenGateには、プロセスのステータス、ラグ、警告およびその他の情報を表示するコマンドやログが用意されています。

また、Replicatを統合モードで構成した場合は、STATS REPLICATコマンドを使用し、直接適用モードで適用されたトランザクション数と比較した、統合モードで適用されたトランザクション数に関する統計を確認できます。

STATS REPLICAT group

このコマンドの出力によって、適用されたトランザクションの数、直接適用にリダイレクトされたトランザクションの数、直接トランザクション比率などの統計が示されます。この統計値により、統合Replicatが意図したとおりに実行されているかどうかを判断できます。環境に問題がなく、直接適用操作率が高い場合は、非統合Replicatの使用を検討します。統合Replicatで並列度を構成できます。

注意:

統計値を現実的なものにするために、適用統計を表示するのは、Oracle GoldenGate環境が適切に確立され、構成エラーが解決され、予期された処理エラーが適切に処理されたことが確認された後にしてください。

インバウンド・サーバー・コンポーネントごとに、V$ビューで統合Replicatの実行時統計を確認することもできます。詳細は、『Oracle Databaseリファレンス』を参照してください。

- リーダー統計はV$GG_APPLY_READERに記録され、読込みメッセージ数、使用されたメモリー、依存性カウントに関する統計が含められます。

- 適用コーディネータ統計はV$GG_APPLY_COORDINATORに記録され、トランザクションレベルで統計値が記録されます。

- 適用サーバー統計は、V$GG_APPLY_SERVERに記録されます。このビューでは、適用サーバーの各プロセスの情報(parallelismおよびmax_parallelismパラメータで制御された)が別個の行に記録されます。各適用サーバーの統計は、SERVER_ID列で識別されます。0のSERVER_IDが存在する場合、ワークロードが引き下げられたために適用サーバーの集計が終了したことを示します。

- データベースがReplicatから受信したメッセージ数に関する統計は、V$GG_APPLY_RECEIVER表に記録されます。

また、次のビューを問い合せることができます。このビューの詳細は、『Oracle Databaseリファレンス』を参照してください。

- V$GOLDENGATE_TABLE_STATS: インバウンド・サーバーで処理された、レプリケートされた各表で発生したDMLおよびコリジョンの統計を確認する場合。

- V$GOLDENGATE_TRANSACTION: Oracle GoldenGateインバウンド・サーバーで処理されたトランザクションに関する情報を確認する場合。

15.6 同期の確認

ソース・データとターゲット・データが同期されていることを確認するために、Oracle GoldenGate Veridata製品または独自のスクリプトを使用し、ソース・データとターゲット・データを選択して比較できます。

15.7 Oracle GoldenGate環境のバックアップ

Oracle GoldenGateの処理を開始したら、障害に備えて処理の状態を残しておく上で、効果的なバックアップ・ルーチンが不可欠です。Oracle GoldenGateの作業ファイルをリストアできない場合、レプリケーション環境全体を再インスタンス化し、初期ロードを新たに完了する必要があります。

ベスト・プラクティスとして、バックアップ・ルーチンにOracle GoldenGateホーム・インストール全体を含めます。ディレクトリのルートに重要なサブディレクトリ、ファイルおよびプログラムが非常に多くあり、個別に追跡することは困難です。いずれにしても、最も重要なファイルがバックアップ領域の大半を占めるため、単純にインストール・ディレクトリ全体をバックアップすることは、高速で簡単なリカバリのためには理にかなっています。

16 DDLレプリケーション環境の管理

この章では、DDLレプリケーションをサポートするためにOracle GoldenGate DDLトリガーが使用されている場合に、データベース環境またはOracle GoldenGate環境を変更する手順について説明します。DDLオブジェクトの詳細は、「トリガーベースのDDLキャプチャのインストール」を参照してください。

この章の内容は次のとおりです。

- DDL処理の一時的な無効化

- DDLトリガーの有効化と無効化

- DDLマーカー表の保持

- DDLマーカー表の削除

- DDL履歴表の保持

- DDL履歴表の削除

- DDLトレース・ファイルのパージ

- DDLサポートが有効である場合のデータベースのパッチおよびアップグレードの適用

- DDLサポートが有効である場合のOracle GoldenGateのパッチおよびアップグレードの適用

- 既存のDDL環境のクリーン状態への復元

- システムからのDDLオブジェクトの削除

Oracle GoldenGateのDDLサポートを構成する手順については、「DDLサポートの構成」を参照してください。

注意:

この章は、トリガーベースのDDLキャプチャが使用されているクラシック・キャプチャ・モードまたは統合キャプチャ・モードにのみ関係があります。

16.1 DDL処理の一時的な無効化

指定されている場合、インスタンス化タスクまたはその他のタスクを実行する前に、DDLアクティビティを無効化する必要があります。タスクの終了後、DDL処理を再開できます。

1. ソース・データベースでユーザーのDDL操作を無効化します。

2. 以前のDDLレプリケーション・プロセスがまだアクティブな場合は、これらのプロセスを停止する前に、最後に実行したDDL操作がターゲットに適用されたことを確認して、ロード・データが正しいメタデータを持つオブジェクトに適用されるようにします。

3. 新しいOracle GoldenGate環境用に構成したExtractおよびReplicatパラメータ・ファイルで、DDLパラメータをコメント・アウトします。DDLをサポートするその他のパラメータをすべて、コメント・アウトします。

4. Oracle GoldenGate DDLトリガーが使用されている場合、無効化します。「DDLトリガーの有効化と無効化」を参照してください。

16.2 DDLトリガーの有効化と無効化

Oracle GoldenGate内で構成を変更せずにDDL操作をキャプチャするトリガーを有効および無効にすることができます。次のスクリプトによって、DDLトリガーが制御されます。

- ddl_disable: トリガーを無効にします。トリガーを無効にした後、DDL操作はこれ以上キャプチャまたはレプリケートされません。

- ddl_enable: トリガーを有効にします。トリガーを有効にすると、Oracle GoldenGateによって現在のDDL変更がキャプチャされますが、トリガーを無効にしている間に生成されたDDLはキャプチャされません。

これらのスクリプトを実行する前に、Oracle GoldenGateのプロセス、SQL*Plus、ビジネス・アプリケーションおよびOracleを使用するその他のソフトウェアのセッションなど、これまでDDLを発行したすべてのセッションを無効にします。それを行わない場合、データベースでORA-04021エラーが生成される可能性があります。ソース・システムおよびターゲット・システムでDDLの一貫性を維持する場合には、これらのスクリプトを使用しないでください。

16.3 DDLマーカー表の保持

マーカー表から行をいつでもパージできます。DDL履歴は保持されません。マーカー表をパージするには、ManagerパラメータPURGEMARKERHISTORYを使用します。Managerによって、次のいずれかからマーカー表の名前が取得されます。

1. GLOBALSファイルのMARKERTABLEパラメータで指定した名前(指定した場合)

2. デフォルト名であるGGS_MARKER

PURGEMARKERHISTORYによって、最終変更日に基づいて行を保持する時間の最大時間と最小時間を指定するオプションが提供されます。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

16.4 DDLマーカー表の削除

DDLの同期を中止する場合を除き、DDLマーカー表を削除しないでください。マーカー表とDDLトリガーは互いに依存します。DDLトリガーが有効である場合にマーカー表をドロップすると失敗します。これは、トリガーが無効になり、DDL操作が見つからないことを回避するための安全対策です。マーカー表を削除すると、次のエラーが生成されます。

ORA-04098: trigger 'SYS.GGS_DDL_TRIGGER_BEFORE' is invalid and failed re-validation

Oracle GoldenGateのDDLオブジェクトを削除する正しい方法は、残りのDDL環境をどうするかによって異なります。正しい手順を選択するには、次のいずれかを参照してください。

- 既存のDDL環境のクリーン状態への復元

- システムからのDDLオブジェクトの削除

16.5 DDL履歴表の保持

DDL履歴表をパージしてそのサイズを制御できますが、これは慎重に実行してください。DDL履歴表によって、DDL同期環境の整合性が維持されます。この表へのパージは、Oracle GoldenGateのインタフェースを介してリカバリすることはできません。

1. DDLの履歴を損失するあらゆる可能性を回避するには、定期的に履歴表の完全バックアップを作成します。

2. パージされたDDLを確実にリカバリできるようにするには、履歴テーブルに対してOracle Flashbackを有効にします。フラッシュバック保存時間は、それが必要になる可能性がある時点を大幅にさかのぼって設定します。たとえば、完全バックアップが最大1週間分である場合は、2週間分のフラッシュバックを保持します。Oracle GoldenGateを過去にさかのぼってフラッシュバックに配置し、再処理することが可能です。

3. 可能な場合、DDL履歴表を手動でパージして、必須の行が誤ってパージされることがないようにします。自動パージ・メカニズムが必要な場合、Managerパラメータ・ファイルでPURGEDDLHISTORYパラメータを使用します。行を保持する最大時間および最小時間を指定できます。詳細は、『Oracle GoldenGate for Windows and UNIXリファレンス』を参照してください。

注意:

パフォーマンスを向上させるためにOracle GoldenGateによって作成される一時表は、同じルールに従ってDDL履歴表と同時にパージされる場合があります。これらの表の名前は履歴表の名前から取得され、それらのパージがManagerレポート・ファイルで報告されます。これは正常な動作です。

16.6 DDL履歴表の削除

DDLの同期を中止する場合を除き、DDL履歴表を削除しないでください。履歴表には、発行されたDDL操作のレコードが含まれています。ソース・データベースのREDO互換性が11.2.0.4以上になる場合と同様に、ExtractがDDLトリガーを使用するから、トリガーを使用しないに切り替えると、ただちにではありませんが、これらのデータベースを削除できます。互換性変更の前に生成されたREDOのすべてのマイニングを完了し、このREDOの再マイニングが不要になるようにする必要があります。

履歴表とDDLトリガーは互いに依存します。DDLトリガーが有効である場合に履歴表をドロップすると失敗します。これは、トリガーが無効になり、DDL操作が見つからないことを回避するための安全対策です。履歴表を削除すると、次のエラーが生成されます。

ORA-04098: trigger 'SYS.GGS_DDL_TRIGGER_BEFORE' is invalid and failed re-validation

Oracle GoldenGateのDDLオブジェクトを削除する正しい方法は、残りのDDL環境をどうするかによって異なります。正しい手順を選択するには、次のいずれかを参照してください。

- 既存のDDL環境のクリーン状態への復元

- システムからのDDLオブジェクトの削除

16.7 DDLトレース・ファイルのパージ

DDLトレース・ファイルでディスクの空き容量を必要以上に消費しないようにするには、定期的にddl_cleartraceスクリプトを実行します。このスクリプトによってトレース・ファイルが削除されますが、Oracle GoldenGateによってそれが再作成されます。

DDLトレース・ファイルのデフォルト名はggs_ddl_trace.logです。それはOracleのUSER_DUMP_DESTディレクトリにあります。ddl_cleartraceスクリプトは、Oracle GoldenGateディレクトリにあります。

16.8 DDLサポートが有効である場合のデータベースのパッチおよびアップグレードの適用

通常、データベースのパッチおよびアップグレードによってOracle GoldenGateのDDLトリガーとOracle GoldenGateのその他のDDLオブジェクトが無効化されます。データベースのパッチを適用する前に、次の手順を実行します。

1. SYSDBA権限を持つユーザーとしてSQL*Plusにログインします。

2. SQL*Plusでddl_disableスクリプトを実行して、Oracle GoldenGateのDDLトリガーを無効にします。

3. パッチを適用します。

4. SQL*Plusでddl_enableスクリプトを実行して、DDLトリガーを有効にします。

注意:

通常、データベースのアップグレードおよびパッチはOracleのオブジェクトに対して動作します。Oracle GoldenGateによってそれらのオブジェクトが自動的にフィルタ処理で除外されるため、それらの手順のDDLはレプリケーションの再開時にレプリケートされません。

パッチまたはアップグレード後の再コンパイル・エラー(処理の前にトリガーを無効にしていない場合に発生)を回避するには、スクリプト内の適切な場所に@ddl_disableおよび@ddl_enableのコールを追加することを検討してください。

16.9 DDLサポートが有効である場合のOracle GoldenGateのパッチおよびアップグレードの適用

この項では、DDLサポートが有効である場合に、Oracle GoldenGateのパッチおよびアップグレードを適用する方法について説明します。

注意:

ご使用のOracle GoldenGateリリースのリリース・ノートまたはアップグレード・ドキュメントにこの項に示す手順と同様の手順が記載されている場合は、この項の手順ではなくそれらの手順に従ってください。30Kよりも大きいDDL文をサポートしていないOracle GoldenGateのバージョン(バージョン10.4以前)からのアップグレードにこの手順を使用しないでください。その場合にアップグレードするには、「既存のDDL環境のクリーン状態への復元」の手順を実行します。

パッチまたはアップグレードをDDLオブジェクトに適用するには、次の手順を実行します。この手順では、新しいビルドにクリーン・インストールが必要であるかどうかに応じて、現在のDDL同期構成が保持される、あるいは保持されない場合があります。

1. GGSCIを実行します。この手順の間、セッションを開いたままにしてください。

2. DDLキャプチャを停止するためにExtractを停止します。

STOP EXTRACT group

3. DDLレプリケーションを停止するためにReplicatを停止します。

STOP REPLICAT group

4. Oracle GoldenGateによって提供される指示に従って、パッチまたはアップグレードのファイルをダウンロードあるいは抽出します。

5. ディレクトリをOracle GoldenGateのインストール・ディレクトリに変更します。

6. SYSDBA権限を持つユーザーとしてSQL*Plusにログインします。

7. Oracle GoldenGateのプロセス、SQL*Plus、ビジネス・アプリケーションおよびOracleを使用するその他のソフトウェアのセッションなど、これまでDDLを発行したすべてのセッションを切断します。それを行わない場合、データベースでORA-04021エラーが生成される可能性があります。

8. ddl_disableスクリプトを実行してDDLトリガーを無効にします。

9. ddl_setupスクリプトを実行します。Oracle GoldenGate DDLのスキーマ名の入力が求められます。スキーマ名を変更した場合、新しい名前を使用してください。

10. ddl_enable.sqlスクリプトを実行してDDLトリガーを有効にします。

11. GGSCIでExtractを開始してDDLキャプチャを再開します。

START EXTRACT group

12. DDLレプリケーションを開始するためにReplicatを開始します。

START REPLICAT group

16.10 既存のDDL環境のクリーン状態への復元

Oracle GoldenGateのDDLオブジェクトを完全に削除してから再インストールするには、次の手順を実行します。この手順によって新しいDDL環境が作成されますが、現在のDDL履歴は削除されます。

注意:

この手順では、オブジェクトの相互依存性のため、すべてのオブジェクトを削除して再インストールする必要があります。

1. Oracle GoldenGateの新しいバージョンのインストールと同時にこの手順を実行する場合、Oracle GoldenGateのファイルをダウンロードしてインストールし、必要に応じてプロセス・グループとパラメータ・ファイルを作成または更新します。

2. (オプション)ソースおよびターゲットの構造の連続性を維持するには、DDLアクティビティを停止してからReplicatによって証跡内のDDLとDMLデータの処理が完了されていることを確認します。Replicatの終了時間を判断するには、処理するデータがこれ以上存在しないことを示すメッセージが表示されるまで次のコマンドを発行します。

INFO REPLICAT group

注意:

INFO REPLICATを使用するかわりに、TABLEおよびMAPのEVENTACTIONSオプションを使用して、DDLとDMLの処理後にExtractおよびReplicatのプロセスを停止できます。

3. GGSCIを実行します。

4. DDLキャプチャを停止するためにExtractを停止します。

STOP EXTRACT group

5. DDLレプリケーションを停止するためにReplicatを停止します。

STOP REPLICAT group

6. ディレクトリをOracle GoldenGateのインストール・ディレクトリに変更します。

7. SYSDBA権限を持つユーザーとしてSQL*Plusにログインします。

8. Oracle GoldenGateのプロセス、SQL*Plus、ビジネス・アプリケーションおよびOracleを使用するその他のソフトウェアのセッションなど、これまでDDLを発行したすべてのセッションを切断します。それを行わない場合、データベースでORA-04021エラーが生成される可能性があります。

9. ddl_disableスクリプトを実行してDDLトリガーを無効にします。

10. ddl_removeスクリプトを実行して、Oracle GoldenGate DDLトリガー、DDL履歴とマーカー表、およびその他の関連オブジェクトを削除します。デバッグで必要となる場合に備え、このスクリプトにより、スクリプト出力を記録するddl_remove_spool.txtファイルと、環境設定を記録するddl_remove_set.txtファイルが作成されます。

11. marker_removeスクリプトを実行して、Oracle GoldenGateマーカー・サポート・システムを削除します。デバッグで必要となる場合に備え、このスクリプトにより、スクリプト出力を記録するmarker_remove_spool.txtファイルと、環境設定を記録するmarker_remove_set.txtファイルが作成されます。

12. このインストール用のDDLスキーマを変更する場合、次の権限をOracle GoldenGateスキーマに付与します。

GRANT EXECUTE ON utl_file TO schema;

13. このインストール用のDDLスキーマを変更する場合、スキーマのデフォルト表領域をそのスキーマ専用にする必要があります。他のスキーマと共有することはできません。この表領域に対してAUTOEXTENDをONに設定し、表領域のサイズをGGS_DDL_HIST表およびGGS_MARKER表の拡張に対応できるサイズに設定する必要があります。特に、GGS_DDL_HIST表はDDLアクティビティ全体に比例して増加します。

注意:

DDL表領域が一杯になると、ExtractはDDLのキャプチャを停止します。その場合にユーザーDDLアクティビティが失敗するようにするには、params.sqlスクリプトを編集してddl_fire_error_in_triggerパラメータをTRUEに設定します。ユーザーDDLを停止することで表領域のサイズを拡張する時間ができ、DDLキャプチャが失われることを防ぎます。ただし、表領域のサイズをこのように管理する場合、ビジネスの混乱を防ぐためにビジネス・アプリケーションとExtractを絶えず監視する必要があります。かわりに、表領域を適切なサイズに設定し、表領域が一杯にならないようにAUTOEXTENDをONに設定することをお薦めします。

警告:

記載された手順に従ってオブジェクト名を変更する必要がある場合以外、params.sqlの他のパラメータを編集しないでください。

14. このインストール用のDDLスキーマを変更する場合、GLOBALSファイルを編集し、次のパラメータに新規スキーマ名を指定します。

GGSCHEMA schema_name

15. marker_setupスクリプトを実行して、Oracle GoldenGateマーカー・サポート・システムを再インストールします。Oracle GoldenGateスキーマの名前を入力するよう求められます。

16. ddl_setupスクリプトを実行します。Oracle GoldenGate DDLのスキーマ名の入力が求められます。

17. role_setupスクリプトを実行して、Oracle GoldenGate DDLロールを再作成します。

18. ロールを、Oracle GoldenGateプロセス(Extract、Replicat、GGSCIおよびManager)を実行するすべてのOracle GoldenGateユーザーに付与します。プロセスに異なるユーザー名がある場合、複数の付与が必要になることがあります。

19. ddl_enable.sqlスクリプトを実行してDDLトリガーを有効にします。

16.11 システムからのDDLオブジェクトの削除

この手順によって、DDL環境が削除され、ソースとターゲットのDDL操作間で連続性を維持する履歴が削除されます。

注意:

オブジェクトの相互依存性のため、すべてのオブジェクトを削除する必要があります。

1. GGSCIを実行します。

2. DDLキャプチャを停止するためにExtractを停止します。

STOP EXTRACT group

3. DDLレプリケーションを停止するためにReplicatを停止します。

STOP REPLICAT group

4. ディレクトリをOracle GoldenGateのインストール・ディレクトリに変更します。

5. SQL*Plusを実行し、SYSDBA権限を持つユーザーでログインします。

6. Oracle GoldenGateのプロセス、SQL*Plus、ビジネス・アプリケーションおよびOracleを使用するその他のソフトウェアのセッションなど、これまでDDLを発行したすべてのセッションを切断します。それを行わない場合、データベースでORA-04021エラーが生成される可能性があります。

7. ddl_disableスクリプトを実行してDDLトリガーを無効にします。

8. ddl_removeスクリプトを実行して、Oracle GoldenGate DDLトリガー、DDL履歴とマーカー表、および関連オブジェクトを削除します。デバッグで必要となる場合に備え、このスクリプトにより、スクリプト出力を記録するddl_remove_spool.txtファイルと、現在のユーザー環境設定を記録するddl_remove_set.txtファイルが作成されます。

9. marker_removeスクリプトを実行して、Oracle GoldenGateマーカー・サポート・システムを削除します。デバッグで必要となる場合に備え、このスクリプトにより、スクリプト出力を記録するmarker_remove_spool.txtファイルと、環境設定を記録するmarker_remove_set.txtファイルが作成されます。

17 Oracle GoldenGateのアンインストール

この章では、Oracle GoldenGateのプロセスおよびファイルをローカル・システムから削除する手順について説明します。

この章の内容は次のとおりです。

- プロセスの停止

- DDL環境の削除

- データベース・オブジェクトの削除

- Oracle Universal Installerを使用したOracle GoldenGateのアンインストール

- 手動によるOracle GoldenGateのアンインストール

この手順は、Oracle GoldenGate証跡のデータが必要なくなり、現在のOracle GoldenGate環境を保持する必要がなくなった場合を前提としています。現在の環境およびデータを保持するには、手順を開始する前にOracle GoldenGateディレクトリおよび全サブディレクトリのバックアップをとってください。

注意:

以降の項を記載の順に実行します。

17.1 プロセスの停止

この手順では、ExtractおよびReplicationプロセスを停止します。停止の指示があるまで、Managerは実行したままにします。

すべてのシステム:

1. コマンド・シェルを実行します。

2. システム管理者として、またはOracle GoldenGateコマンドを発行する権限とオペレーティング・システムからファイルおよびディレクトリを削除する権限を持つユーザーとしてログオンします。

3. ディレクトリをOracle GoldenGateのインストール・ディレクトリに変更します。

4. GGSCIを実行します。

5. すべてのOracle GoldenGateプロセスを停止します。

STOP ER *

6. Managerプロセスを停止します。

STOP MANAGER

17.2 DDL環境の削除

(DDLレプリケーションをサポートするためにDDLトリガーが使用されている場合に有効です。)この手順では、ソース・システムのDDLスキーマからすべてのOracle GoldenGate DDLオブジェクトを削除します。

1. システム管理者として、またはOracle GoldenGateコマンドを発行する権限とオペレーティング・システムからファイルおよびディレクトリを削除する権限を持つユーザーとしてログオンします。

2. Oracle GoldenGateディレクトリからGGSCIを実行します。

3. すべてのOracle GoldenGateプロセスを停止します。

STOP ER *

4. SYSDBA権限を持つユーザーとしてSQL*Plusにログインします。

5. Oracle GoldenGateのプロセス、SQL*Plus、ビジネス・アプリケーションおよびOracleを使用するその他のソフトウェアのセッションなど、これまでDDLを発行したすべてのセッションを切断します。それを行わない場合、データベースでORA-04021エラーが生成される可能性があります。

6. ddl_disableスクリプトを実行してDDLトリガーを無効にします。

7. ddl_removeスクリプトを実行して、Oracle GoldenGate DDLトリガー、DDL履歴とマーカー表、およびその他の関連オブジェクトを削除します。デバッグで必要となる場合に備え、このスクリプトにより、スクリプト出力を記録するddl_remove_spool.txtファイルと、環境設定を記録するddl_remove_set.txtファイルが作成されます。

8. marker_removeスクリプトを実行して、Oracle GoldenGateマーカー・サポート・システムを削除します。デバッグで必要となる場合に備え、このスクリプトにより、スクリプト出力を記録するmarker_remove_spool.txtファイルと、環境設定を記録するmarker_remove_set.txtファイルが作成されます。

17.3 データベース・オブジェクトの削除

次の手順に従って、Oracle Database内に構成されているOracle GoldenGateオブジェクトを削除します。構成によっては、特定のステップやコマンドが該当しない場合もあります。

ソース・システムで:

1. システム管理者として、またはOracle GoldenGateコマンドを発行する権限とオペレーティング・システムからファイルおよびディレクトリを削除する権限を持つユーザーとしてログオンします。

2. Oracle GoldenGateディレクトリからGGSCIを実行します。

3. すべてのOracle GoldenGateプロセスを停止します。

STOP ER *

4. Managerプロセスを停止します。

STOP MANAGER

5. GGSCIで、DBLOGIN(ダウンストリーム・マイニング・データベースからデータベース・ログマイニング・サーバーを削除する必要がある場合はMININGDBLOGINコマンド)を使用してデータベースにログインします。[MINING]DBLOGINには、dbms_goldengate_auth.grant_admin_privilegeプロシージャで付与される権限が必要です。

[MINING]DBLOGIN USERIDALIAS alias

6. GGSCIで、構成に応じて次のコマンドのいずれか、またはすべてを実行します。Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

- スキーマレベルのサプリメンタル・ロギングを無効にします(ワイルドカードは使用できません)。

DELETE SCHEMATRANDATA schema [NOSCHEDULINGCOLS | ALLCOLS]

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

DELETE TRANDATA [container.]schema.table  [NOSCHEDULINGCOLS | ALLCOLS]

- (双方向構成)Oracleトレース表を削除します。

DELETE TRACETABLE [container.]schema.table

- (クラシック・キャプチャ構成)ログ保存を無効にし、基になるOracle Streamsキャプチャ・プロセスを削除します。DBLOGINには、表11-3に示す権限が必要です。

UNREGISTER EXTRACT group LOGRETENTION

- (統合キャプチャ構成)Oracleマイニング・データベースから、ログマイニング・サーバーを削除します。

DELETE EXTRACT group
UNREGISTER EXTRACT group DATABASE

7. 次のOracleプロシージャを実行し、クラシックと統合の両方のプロセスについて、Oracle GoldenGate管理ユーザーから権限を削除します。

dbms_goldengate_auth.revoke_admin_privilege('ggadm')

ターゲット・システムで:

1. Replicatを停止します。

STOP REPLICAT group

2. DBLOGINコマンドを使用してデータベースにログインします。

DBLOGIN USERIDALIAS alias

3. (統合Replicat) Replicatグループを削除します。このコマンドにより、ターゲット・データベースからインバウンド・サーバーも削除されます。

DELETE REPLICAT group

4. (非統合Replicat)DELETE CHECKPOINTTABLEコマンドを実行して、Replicatチェックポイント表を削除します。

DELETE CHECKPOINTTABLE [container.]schema.table

17.4 Oracle Universal Installerを使用したOracle GoldenGateのアンインストール

次の手順に従って、Oracle Universal Installer (OUI)の対話型セッションを介してOracle GoldenGateをアンインストールします。

警告:

OUIを使用してOracle GoldenGateを削除する前に、「DDL環境の削除」(トリガーベースのDDLキャプチャを使用している場合)および「データベース・オブジェクトの削除」の手順に従ってください。これらの手順では、OUIアンインストーラで削除されるOracle GoldenGateのコマンドおよびスクリプトを使用する必要があります。

このプロセスでは、次のアイテムが削除されます。

- Oracle中央インベントリ内のOracle GoldenGateホーム・ディレクトリ。

- Oracle GoldenGateインストール・ディレクトリ。

- Oracle GoldenGate Managerサービス(Windowsにインストールされた場合)。

- Oracle GoldenGate Windowsレジストリ・エントリ

システムからOracle GoldenGateを削除する手順:

1. システム管理者として、またはOracle GoldenGateコマンドを発行する権限とオペレーティング・システムからファイルおよびディレクトリを削除する権限を持つユーザーとしてログオンします。

2. Oracle GoldenGateディレクトリからGGSCIを実行します。

3. すべてのOracle GoldenGateプロセスを停止します。

STOP ER *

4. Managerプロセスを停止します。

STOP MANAGER

5. Oracle GoldenGateインストール・ディレクトリから次のスクリプトを実行します。

UNIXおよびLinux:

OGG_home/deinstall/deinstall.sh

Windows:

OGG_home/deinstall/deinstall.bat

17.5 手動によるOracle GoldenGateのアンインストール

オペレーティング・システムを介してシステムから手動でOracle GoldenGate環境を削除するには、次の手順に従います。

17.5.1 手動によるOracle GoldenGate Windowsコンポーネントの削除

(Windowsインストールに有効)この手順では、Windowsクラスタ・リソースであるOracle GoldenGateをソースまたはターゲットのWindowsシステムから削除し、Oracle GoldenGateイベントがWindowsイベント・マネージャにレポートされないようにして、Managerサービスを削除します。ソース・システムおよびターゲット・システムで、次の手順を実行します。

1. システム管理者として、またはOracle GoldenGateコマンドを発行する権限とオペレーティング・システムからファイルおよびディレクトリを削除する権限を持つユーザーとしてログオンします。

2. (クラスタ)Managerリソースが含まれているクラスタ・グループを所有するクラスタのノードからGGSCIを実行し、すべてのExtractおよびReplicatのプロセスが停止していることを確認します。稼働しているものがあれば停止します。

STATUS ER *
STOP ER *

3. (クラスタ)クラスタ・アドミニストレータ・ツールを使用してManagerリソースをオフラインにします。

4. (クラスタ)そのリソースを右クリックし、「削除」を選択して削除します。

5. 「スタート」、「ファイル名を指定して実行」の順にクリックし、「ファイル名を指定して実行」ダイアログ・ボックスにcmdと入力してコマンド・コンソールを開きます。

6. ディレクトリをOracle GoldenGateのインストール・ディレクトリに変更します。

7. 次の構文を使用して、INSTALLユーティリティを実行します。

install deleteevents deleteservice

8. (クラスタ)クラスタ・グループをクラスタの次のノードに移動し、手順5から繰り返します。

17.5.2 Oracle GoldenGateファイルの手動削除

次の手順をすべてのシステムで実行して、Oracle GoldenGateインストール・ディレクトリを削除します。

1. GGSCIで、すべてのプロセスが停止していることを確認します。稼働しているものがあれば停止します。

STATUS MANAGER
STATUS ER *
STOP MANAGER
STOP ER *

2. GGSCIを終了します。

EXIT

3. Oracle GoldenGateインストール・ディレクトリを削除します。

A 統合モード用のオプションのパラメータ

この付録では、Extractが統合キャプチャ・モードで動作する場合、またはReplicatが統合Replicatモードで動作する場合に必要となる、オプションのパラメータについて説明します。

この付録の内容は次のとおりです。

- 統合キャプチャ用のその他のパラメータ・オプション

- 統合Replicat用のその他のパラメータ・オプション

A.1 統合キャプチャ用のその他のパラメータ・オプション

この項では、Extract構成に必要なその他のパラメータについて説明します。

統合キャプチャでは、ソース・データベースのREDOストリームのマイニングに、マイニング・データベースのデータベース・ログマイニング・サーバーを使用します。Extractパラメータ・ファイルでINTEGRATEDPARAMSオプションを指定してTRANLOGOPTIONSパラメータを使用することで、ログマイニング・サーバーに固有のパラメータを設定できます。

注意:

これらのパラメータの詳細情報および使用方法は、DBMS_CAPTURE_ADMに関する項を参照してください。

INTEGRATEDPARAMSとともに設定できるパラメータは、次のとおりです。

- CAPTURE_IDKEY_OBJECTS: FETCHでサポートされるオブジェクトのキャプチャを制御します。Oracle GoldenGateのデフォルトはYです(キャプチャIDキーの論理変更レコード)。

- DOWNSTREAM_REAL_TIME_MINE: ログマイニング・サーバーが、リアルタイムのダウンストリーム・キャプチャ・プロセスとして動作するか、アーカイブ・ログのダウンストリーム・キャプチャ・プロセスとして動作するかを制御します。デフォルトはNです(アーカイブ・ログ・モード)。ダウンストリーム・ログマイニング・サーバー構成でリアルタイム・キャプチャを使用するには、このパラメータを指定します。ダウンストリーム・マイニング構成の設定の詳細は、「ダウンストリーム・マイニング・データベースの構成」を参照してください。

- INLINE_LOB_OPTIMIZATION: LOBチャンクLCRを送信するかわりに、インラインで処理できるLOB (小さいLOBなど)をLCRに直接含めるかどうかを制御します。Oracle GoldenGateのデフォルトはYです(はい)。

- MAX_SGA_SIZE: ログマイニング・サーバーで使用される共有メモリーの量を制御します。共有メモリーはSGAのStreamsプールから取得されます。デフォルトは1GBです。

- PARALLELISM: ログマイニング・サーバーで使用されるプロセスの数を制御します。デフォルトは2です。Oracle Standard Editionの場合は、1に設定する必要があります。

- TRACE_LEVEL: Extractログマイニング・サーバーのトレース・レベルを制御します。Oracleサポートの指示を受ける場合のみ使用します。Oracle GoldenGateのデフォルトは0です(トレースなし)。

- WRITE_ALERT_LOG: Extractログマイニング・サーバーがOracleアラート・ログにメッセージを書き込むかどうかを制御します。Oracle GoldenGateのデフォルトはYです(はい)。

「サーバー・リソースの管理」を参照してください。

A.2 統合Replicat用のその他のパラメータ・オプション

「Oracle GoldenGateの適用の構成」に記載されているデフォルトのReplicat構成でも十分です。しかし、必要な場合は、特定の要件をサポートする次のインバウンド・サーバー・パラメータを設定できます。これらのパラメータを設定するには、INTEGRATEDPARAMSオプションを指定してDBOPTIONSパラメータを使用するか、GGSCIでINTEGRATEDPARAMSオプションを指定してSEND REPLICATコマンドを発行して動的に設定します。

注意:

これらのパラメータの詳細情報および使用方法は、DBMS_APPLY_ADMに関する項を参照してください。

DBOPTIONSパラメータの詳細は、Oracle GoldenGateリファレンスfor Windows and UNIXを参照してください。

- COMMIT_SERIALIZATION: 適用されたトランザクションがコミットされる順序を制御し、DEPENDENT_TRANSACTIONSとFULLの2つのモードがあります。Oracle GoldenGateのデフォルト・モードはDEPENDENT_TRANSACTIONSです(依存するトランザクションは、ソース・コミット順では必ずしも適用されませんが、正しい順序で適用されます)。FULLモードの場合、トランザクションの適用時にソース・コミット順序が適用されます。

- BATCHSQL_MODE: 保留中の依存性を含む、バッチ実行スケジュール・モードを制御します。保留中の依存性は、すでにスケジュールされたが、完全に実行されていない別のトランザクションの依存性です。デフォルトはDEPENDENTです。次の3つのモードを使用できます。

DEPENDENT

初期開始なしの依存性対応スケジュール。バッチ処理されたトランザクションは、保留中の依存性がない場合にスケジュールされます。

DEPENDENT_EAGER

初期開始ありの依存性対応バッチ処理。バッチ処理されたトランザクションは、保留中の依存性に関係なくスケジュールされます。

SEQUENTIAL

順次バッチ処理。トランザクションは、元のコミット順序に基づいてトランザクションを順にグループ化することでバッチ処理されます。

- DISABLE_ON_ERROR: 未解決エラー時に適用サーバーが無効化されるか続行されるかを決定します。Oracle GoldenGateのデフォルトはNです(エラー時も続行)。デフォルト設定により、ReplicatはREPERRORパラメータまたは競合検出および解決(CDR)パラメータに基づいて(使用されている場合)、エラー処理を実行できます。

- EAGER_SIZE: コミット・レコードを受信する前にOracle GoldenGateがデータの適用を開始するまでの、トランザクションのサイズ(LCRの数)のしきい値を設定します。Oracle GoldenGateのデフォルトは15100です。

- ENABLE_XSTREAM_TABLE_STATS: 適用されたトランザクションの統計をV$GOLDENGATE_TABLE_STATSビューに記録するか、まったく収集しないかを制御します。Oracle GoldenGateのデフォルトはYです(統計を収集)。

- MAX_PARALLELISM: 負荷が重い場合に使用可能な適用サーバーの数を制限します。ワークロードが正常に戻ったら、この数は再び引き下げられます。適用サーバーの数の自動調整は、PARALLELISMが1より大きく、MAX_PARALLELISMがPARALLELISMより大きい場合にのみ有効です。PARALLELISMとMAX_PARALLELISMが等しい場合、適用サーバーの数はワークロードで一定のままになります。Oracle GoldenGateのデフォルトは50です。

- MAX_SGA_SIZE: インバウンド・サーバーで使用される共有メモリーの量を制御します。共有メモリーはSGAのStreamsプールから取得されます。Oracle GoldenGateのデフォルトはINFINITEです。

- MESSAGE_TRACKING_FREQUENCY: 適用プロセスにより、LCRが高レベルLCRトレースとマークされる頻度を制御します。デフォルト値は2000000で、2ミリ秒ごとにLCRがトレースされます。値をゼロ(0)にすると、LCRトレースが無効になります。

- PARALLELISM: 通常の状況下で使用できる適用サーバーの最小数を設定します。PARALLELISMを1に設定すると、並列度の適用が無効になり、トランザクションは単一の適用サーバー・プロセスで適用されます。Oracle GoldenGateのデフォルトは4です。Oracle Standard Editionの場合は、1に設定する必要があります。

- PARALLELISM_INTERVAL: 現在のワークロード・アクティビティを計算する間隔を秒単位で設定します。Replicatは5 X PARALLELISM_INTERVAL秒ごとに、平均スループットを計算します。それぞれの計算後に、適用コンポーネントは適用サーバーの数を増減して、スループットを改善できます。スループットが改善された場合、適用コンポーネントはその新しい適用サーバー数を維持します。並列度間隔が使用されるのは、PARALLELISMが1より大きい値に設定され、MAX_PARALLELISM値がPARALLELISM値よりも大きい値に設定されている場合のみです。デフォルトは5秒です。

- PRESERVE_ENCRYPTION: 透過的データ暗号化を使用して暗号化された列の暗号化を保持するかどうかを制御します。Oracle GoldenGateのデフォルトはNです(暗号化形式のデータを適用しない)。

- OPTIMIZE_PROGRESS_TABLE: 統合配信では、この表を使用して、適用されているトランザクションを追跡します。これは、障害または再起動の発生時の重複の回避に使用されます。N (デフォルト)に設定されている場合、レプリケートされたトランザクションの適用ごとに進捗表が同期的に更新されます。Yに設定されている場合、進捗表に同期的に移入するのではなく、マーカーがREDOストリームにドロップされるため、適用プロセスが開始されると、これらのマーカーのREDOログがマイニングされ、適用済のトランザクションに対して進捗表が更新されます。

- TRACE_LEVEL: Replicatインバウンド・サーバーのトレース・レベルを制御します。Oracleサポートの指示を受ける場合のみ使用します。Oracle GoldenGateのデフォルトは0です(トレースなし)。

- WRITE_ALERT_LOG: Replicatインバウンド・サーバーがOracleアラート・ログにメッセージを書き込むかどうかを制御します。Oracle GoldenGateのデフォルトはYです(はい)。

B ダウンストリーム・マイニング・データベースの構成

この付録では、統合キャプチャ・モードのExtractをサポートするようダウンストリームOracleマイニング・データベースを準備する手順について説明します。

この付録の内容は次のとおりです。

- ダウンストリーム・デプロイ用のキャプチャ・オプションの評価

- ダウンストリーム・デプロイ用のソース・データベースの準備

- ダウンストリーム・マイニング・データベースの準備

これらの手順で使用されるパラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

統合キャプチャの詳細は、「使用するキャプチャ方法の決定」を参照してください。

ダウンストリーム・マイニング構成の例は、「ダウンストリーム・マイニング構成の例」を参照してください。

B.1 ダウンストリーム・デプロイ用のキャプチャ・オプションの評価

ダウンストリーム・デプロイによってソース・データベースの負荷を軽減できます。ソース・データベースはREDOログをダウンストリーム・データベースに送り、Extractはダウンストリーム・データベースでログマイニング・サーバーを使用してREDOログをマイニングします。ダウンストリーム・マイニング・データベースでは、アーカイブ・ログとオンラインREDOログの両方をソース・データベースから受け入れることができます。

複数のソース・データベースのREDOデータを1つのダウンストリーム・データベースに送信できます。ただし、ダウンストリーム・マイニング・データベースは、それらのソース・データベースの1つからのみオンラインREDOログを受け入れることができます。残りのソース・データベースはアーカイブ・ログを送る必要があります。

オンライン・ログがダウンストリーム・データベースに送られると、Extractによるリアルタイム・キャプチャが可能です。Extractでソース・ログからの読取りと同様に変更がキャプチャされます。オンラインREDOログをソース・データベースから受け入れるには、ダウンストリーム・マイニング・データベースにスタンバイREDOログが構成されている必要があります。

ダウンストリーム・マイニング構成を使用する場合、ソース・データベースとマイニング・データベースは同じプラットフォームのものである必要があります。たとえば、ソース・データベースがLinux 64ビットで稼働している場合、ダウンストリーム・データベースのプラットフォームもLinux 64ビットである必要があります。

B.2 ダウンストリーム・デプロイ用のソース・データベースの準備

この項では、次のプロセスについて説明します。

- ソース・ユーザー・アカウントの作成

- ソースからダウンストリーム・マイニング・データベースへのREDO転送の構成

B.2.1 ソース・ユーザー・アカウントの作成

ソース・データベースにExtractユーザーが必要です。Extractではこのユーザーの資格証明を使用してメタデータ問合せを行い、必要に応じてソース・データベースから列値をフェッチします。ソース・ユーザーはUSERIDALIASパラメータによって指定されます。

必要な権限を割り当てるには、「Oracle GoldenGate資格証明の確立」の手順に従います

B.2.2 ソースからダウンストリーム・マイニング・データベースへのREDO転送の構成

次の手順を実行して、ソース・データベースからダウンストリーム・マイニング・データベースへのREDOログ・ファイルの転送を設定し、ダウンストリーム・マイニング・データベースでこれらのREDOログ・ファイルを受け入れる準備をします。

注意:

ソース・データベースから送られたアーカイブ・ログは、外部アーカイブ・ログと呼ばれます。外部アーカイブ・ログの格納にダウンストリーム・マイニング・データベースのリカバリ領域を使用することはできません。そのような構成は、統合キャプチャでサポートされません。

これらの手順では、必要に応じて複数のソースからREDOを転送するための要件が考慮されています。ソースごとにExtractプロセスを構成します。複数のソースから1つのダウンストリーム・マイニング・データベースへのREDOの送信をサポートするためのルールを次に要約します。

- オンラインREDOログをダウンストリーム・マイニング・データベースのスタンバイREDOログに送信するよう構成できるのは、1つのソース・データベースのみです。このソース・データベースのlog_archive_dest_n設定にTEMPLATE句を含めることはできません。

- オンラインREDOログをダウンストリーム・マイニング・データベースのスタンバイREDOログに送信しないソース・データベースには、log_archive_dest_nパラメータにTEMPLATE句を指定する必要があります。

- REDOをダウンストリーム・マイニング・データベースに送信する各ソース・データベースは一意のDBIDを持つ必要があります。これらのソース・データベースのv$databaseビューからDBID列を選択し、DBIDが一意であることを確認します。

REDO転送を構成する手順

1. 各ソース・データベースがマイニング・データベースと通信できるようOracle Netを構成します。手順は、次を参照してください。

2. REDOデータの転送をサポートするよう、各ソース・データベースとダウンストリーム・マイニング・データベースで認証を構成します。REDO転送セッションは、Secure Sockets Layer(SSL)プロトコルまたはリモート・ログイン・パスワード・ファイルを使用して認証されます。ソース・データベースにリモート・ログイン・パスワード・ファイルがある場合、マイニング・データベース・システムの適切なディレクトリにコピーします。パスワード・ファイルは、すべてのソース・データベースとマイニング・データベースで同じである必要があります。REDO転送の認証要件の詳細は、スタンバイ・データベースを作成するためのプライマリ・データベースの準備に関する項を参照してください。

3. 各ソース・データベースで、REDOデータをダウンストリーム・マイニング・データベースに転送するためにLOG_ARCHIVE_DEST_n初期化パラメータを1つ構成します。リアルタイム・キャプチャ・モードを使用するか、アーカイブログのみキャプチャ・モードを使用するかに応じて、次の例のいずれかのようにこのパラメータの属性を設定します。

- ソース・データベースがオンラインREDOログをダウンストリーム・データベースに送信する場合のダウンストリーム・マイニング・サーバーでのリアルタイム・キャプチャの例:

ALTER SYSTEM
SET LOG_ARCHIVE_DEST_2='SERVICE=DBMSCAP.EXAMPLE.COM ASYNC NOREGISTER
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=dbmscap'

- ダウンストリーム・ログマイニング・サーバーでのアーカイブログのみキャプチャの例:

ALTER SYSTEM SET
LOG_ARCHIVE_DEST_2='SERVICE=DMBSCAP.EXAMPLE.COM ASYNC NOREGISTER
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
TEMPLATE=/usr/oracle/log_for_dbms1/dbms1_arch_%t_%s_%r.log
DB_UNIQUE_NAME=dbmscap'

注意:

アーカイブ・ログのみのダウンストリーム・マイニング・データベースを使用する場合、TEMPLATE属性の値を指定する必要があります。ソース・データベースでTEMPLATE句を使用して、すべてのリモート・ソース・データベースのログ・ファイルが、ローカル・データベース・ログ・ファイルと分けて保管され、ログ・ファイル同士が分けて保管されるようにすることをお薦めします。

4. ソース・データベースで、次の例に示すように、ダウンストリーム・マイニング・データベースの宛先に相当するLOG_ARCHIVE_DEST_nパラメータに対応するLOG_ARCHIVE_DEST_STATE_n初期化パラメータに値ENABLEを設定します。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE

5. ソース・データベースとダウンストリーム・マイニング・データベースで、次の例に示すように、ソース・データベースとダウンストリーム・データベースのDB_UNIQUE_NAMEを含むようLOG_ARCHIVE_CONFIG初期化パラメータのDG_CONFIG属性を設定します。

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(dbms1,dbmscap)'

B.3 ダウンストリーム・マイニング・データベースの準備

次の項で、ダウンストリーム・マイニング・データベースを準備する方法について説明します。

- ダウンストリーム・マイニング・ユーザー・アカウントの作成

- ローカルREDOログ・ファイルをアーカイブするためのマイニング・データベースの構成

- リアルタイム・キャプチャ用のダウンストリーム・マイニング・データベースの準備

B.3.1 ダウンストリーム・マイニング・ユーザー・アカウントの作成

ダウンストリーム・マイニング構成を使用する場合、ダウンストリーム・データベースにExtractマイニング・ユーザーが必要です。マイニングExtractプロセスはこのユーザーの資格証明を使用して、ダウンストリーム・ログマイニング・サーバーと対話します。ダウンストリーム・マイニング・ユーザーは、MININGUSERALIASオプションを使用したTRANLOGOPTIONSパラメータで指定します。ご使用のデータベース・バージョン用の正しい資格証明を割り当てるには、「Oracle GoldenGate資格証明の確立」を参照してください。

B.3.2 ローカルREDOログ・ファイルをアーカイブするためのマイニング・データベースの構成

この手順では、REDOデータをオンラインREDOログにアーカイブするようダウンストリーム・マイニング・データベースを構成します。これらは、ダウンストリーム・マイニング・データベースで生成されるREDOログです。

Extractをリアルタイム統合キャプチャ・モードで実行する場合、ダウンストリーム・マイニング・データベースでアーカイブを有効にする必要がありますが、これはアーカイブ・ログのみキャプチャの場合も推奨されます。統合キャプチャ・モードのExtractはデータベースの状態情報を書き込みます。ダウンストリーム・マイニング・データベースでディスクの障害や破損があった場合、アーカイブと通常のバックアップによって、この状態情報をリカバリできます。

ローカルREDOログ・ファイルをアーカイブする手順

1. ダウンストリーム・マイニング・データベースをアーカイブ・ログ・モードに変更します。これは、次のDDLコマンドを発行して行います。

STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

2. ダウンストリーム・マイニング・データベースで、次の例に示すように、1つ目のアーカイブ・ログの宛先をLOG_ARCHIVE_DEST_n初期化パラメータに設定します。

ALTER SYSTEM SET
LOG_ARCHIVE_DEST_1='LOCATION=/home/arc_dest/local
VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE)'

あるいは、次の例のようなコマンドを使用します。

ALTER SYSTEM SET
LOG_ARCHIVE_DEST_1='LOCATION='USE_DB_RECOVERY_FILE_DEST' valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE)'

注意:

ダウンストリーム・マイニング・データベースによって生成されるオンラインREDOログはリカバリ領域にアーカイブできます。ただし、外部アーカイブ・ログのステージングやスタンバイREDOログのアーカイブにダウンストリーム・マイニング・データベースのリカバリ領域は使用できません。高速リカバリ領域の構成の詳細は、次を参照してください。

3. ローカル・アーカイブの宛先を有効にします。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE

これらの初期化パラメータの詳細は、次を参照してください。

B.3.3 リアルタイム・キャプチャ用のダウンストリーム・マイニング・データベースの準備

この手順は、ダウンストリーム・マイニング・データベースでリアルタイム・キャプチャを使用する場合にのみ必要です。アーカイブ・ログのみキャプチャ・モードを使用する場合は必要ありません。リアルタイム・キャプチャを使用する場合、「ローカルREDOログ・ファイルをアーカイブするためのマイニング・データベースの構成」に示すようにローカルREDOデータをアーカイブするようダウンストリーム・データベースがすでに構成されているものとします。

B.3.3.1 スタンバイREDOログ・ファイルの作成

次の手順では、スタンバイREDOログ・ファイルをダウンストリーム・マイニング・データベースに追加する手順を概説します。スタンバイREDOログの作成ルールを次に要約します。

- 各スタンバイREDOログ・ファイルのサイズは、少なくともREDOソース・データベースの最大REDOログ・ファイルと同程度である必要があります。管理を簡単にするために、ソース・データベースのすべてのREDOログ・ファイルとダウンストリーム・マイニング・データベースのスタンバイREDOログ・ファイルを同じサイズにすることをお薦めします。

- スタンバイREDOログは、ソース・データベースのREDOスレッドごとにソース・データベースのREDOログより1つ以上多い数のREDOログ・グループを持つ必要があります。

スタンバイREDOログ・ファイルの追加に必要な特定の手順やSQL文は、環境によって異なります。スタンバイREDOログ・ファイルのデータベースへの追加の詳細は、『Oracle Data Guard概要および管理11gリリース2 (11.2)』を参照してください。

注意:

1つのダウンストリーム・マイニング・データベースにREDOを送信するソース・データベースが複数ある場合、それらのソースのうち1つのみがマイニング・データベースのスタンバイREDOログにREDOを送信できます。このソース・データベースからのREDOをマイニングするExtractプロセスはリアルタイム・モードで実行できます。他のソース・データベースはすべてアーカイブ・ログのみをダウンストリーム・マイニング・データベースに送信し、このデータを読み取るExtractはアーカイブ・ログのみモードで実行されるよう構成される必要があります。

スタンバイREDOログ・ファイルを作成する手順

1. SQL*Plusで、管理ユーザーとしてソース・データベースに接続します。

2. ソース・ログ・ファイルのサイズを確認します。結果を控えておきます。

SELECT BYTES FROM V$LOG;

3. ソース・データベースに構成されているオンライン・ログ・ファイル・グループの数を確認します。結果を控えておきます。

SELECT COUNT(GROUP#) FROM V$LOG;

4. 管理ユーザーとしてダウンストリーム・マイニング・データベースに接続します。

5. スタンバイ・ログ・ファイル・グループをマイニング・データベースに追加します。スタンバイ・ログ・ファイルのサイズは、ソース・ログ・ファイルのサイズ以上である必要があります。スタンバイ・ログ・ファイル・グループの数は、ソース・オンライン・ログ・ファイル・グループの数より1つ以上多い数である必要があります。これは、RACインストールの各インスタンス(スレッド)に適用されます。ソース・データベースに"n"個のスレッドがあり、それぞれ"m"個のREDOログ・グループがある場合、n*(m+1)個のREDOログ・グループをダウンストリーム・マイニング・データベースで構成する必要があります。

次の例は、3つのスタンバイ・ログ・グループを示しています。

ALTER DATABASE ADD STANDBY LOGFILE GROUP 3
('/oracle/dbs/slog3a.rdo', '/oracle/dbs/slog3b.rdo') SIZE 500M;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 4
('/oracle/dbs/slog4.rdo', '/oracle/dbs/slog4b.rdo') SIZE 500M;
ALTER DATABASE ADD STANDBY LOGFILE GROUP 5
('/oracle/dbs/slog5.rdo', '/oracle/dbs/slog5b.rdo') SIZE 500M;

6. スタンバイ・ログ・ファイル・グループが正常に追加されたことを確認します。

SELECT GROUP#, THREAD#, SEQUENCE#, ARCHIVED, STATUS
FROM V$STANDBY_LOG;

結果は次のようになります。

GROUP#     THREAD#    SEQUENCE#  ARC STATUS
---------- ---------- ---------- --- ----------
3          0          0 YES UNASSIGNED
4          0          0 YES UNASSIGNED
5          0          0 YES UNASSIGNED

7. ソース・データベースのログ・ファイルが、設定したローカルのLOG_ARCHIVE_DEST_nのLOCATION属性で指定した場所にあることを確認します。ディレクトリ内のファイルを確認するために、ソース・データベースでログ・ファイルの切り替えが必要な場合があります。

B.3.3.2 スタンバイREDOログ・ファイルをローカルにアーカイブするためのデータベースの構成

この手順では、ソース・データベースのオンラインREDOログからREDOデータを受信するスタンバイREDOログをアーカイブするようダウンストリーム・マイニング・データベースを構成します。外部アーカイブ・ログは、ダウンストリーム・マイニング・データベースのリカバリ領域にアーカイブできないことに注意してください。

スタンバイREDOログをローカルでアーカイブする手順

1. ダウンストリーム・マイニング・データベースで、次の例に示すように、2つ目のアーカイブ・ログの宛先をLOG_ARCHIVE_DEST_n初期化パラメータに設定します。

ALTER SYSTEM SET
LOG_ARCHIVE_DEST_2='LOCATION=/home/arc_dest/srl_dbms1
VALID_FOR=(STANDBY_LOGFILE,PRIMARY_ROLE)'

外部アーカイブ・ログ(リモート・ソース・データベースからのログ)はローカル・マイニング・データベース・ログ・ファイルと分けて保管し、ログ・ファイル同士も分けて保管することをお薦めします。外部アーカイブ・ログのステージングにダウンストリーム・マイニング・データベースのリカバリ領域を使用することはできません。高速リカバリ領域の構成の詳細は、次を参照してください。

注意:

別のデータベースによって生成されたREDOをダウンストリーム・マイニング・データベースのスタンバイREDOログで受け入れる場合、前述のとおりスタンバイREDOログ用にlog_archive_dest_2を構成する必要があります。

2. 前のステップで設定したLOG_ARCHIVE_DEST_2パラメータを次の例に示すように有効にします。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE

これらの初期化パラメータの詳細は、次を参照してください。

C ダウンストリーム・マイニング構成の例

この付録では、統合キャプチャ・モードのExtractをサポートするようダウンストリームOracleマイニング・データベースを準備する場合の例を示します。

この付録の内容は次のとおりです。

- 例1: リアルタイム・モードでの1つのソース・データベースからのキャプチャ

- 例2: アーカイブログのみモードでの複数のソースからのキャプチャ

- 例3: リアルタイム・モードとアーカイブログのみモードが混在する複数ソースからのキャプチャ

ダウンストリーム・マイニング・データベースの構成の詳細は、「ダウンストリーム・マイニング・データベースの構成」を参照してください。

C.1 例1: リアルタイム・モードでの1つのソース・データベースからのキャプチャ

注意:

この例では、必要なスタンバイREDOログ・ファイルを「ダウンストリーム・マイニング・データベースの構成」に記載されているように作成してあるものとします。

この例では、統合キャプチャ・セッションをダウンストリーム・マイニング・データベースDBMSCAPにデプロイし、ソース・データベースDBMS1から変更をキャプチャします。次のユーザーが存在するものとします。

- DBMS1にユーザーGGADM1。Extractはこの資格証明を使用して、DBMS1からデータとメタデータをフェッチします。このユーザーはOracle GoldenGate資格証明ストアにggadm1のエイリアスを持っており、ggadm1@dbms1としてログインします。DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE()プロシージャをコールして、ソース・データベースで適切な権限がこのユーザーに付与されているものとします。

- DBMSCAPにユーザーGGADMCAP。Extractはこの資格証明を使用して、論理変更レコードをダウンストリーム・マイニング・データベースDBMSCAPのログマイニング・サーバーから取得します。このユーザーはOracle GoldenGate資格証明ストアにggadmcapのエイリアスを持っており、ggadmcap@dbmscapとしてログインします。DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE()プロシージャをコールして、マイニング・データベースで適切な権限がこのユーザーに付与されているものとします。

C.1.1 ローカルREDOをアーカイブするためのマイニング・データベースの準備

ローカルREDOをアーカイブするためにマイニング・データベースを準備する手順:

1. ダウンストリーム・マイニング・データベースはアーカイブ・ログ・モードである必要があります。これは、次のDDLコマンドを発行して行います。

STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

2. ダウンストリーム・マイニング・データベースでlog_archive_dest_1をアーカイブ・ローカルREDOに設定します。

ALTER SYSTEM SETLOG_ARCHIVE_DEST_1='LOCATION=/home/arc_dest/localVALID_FOR=(ONLINE_LOGFILE, PRIMARY_ROLE)'

3. log_archive_dest_1を有効にします。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE

C.1.2 ソース・データベースから受信したREDOをスタンバイREDOログにアーカイブするためのマイニング・データベースの準備

ソース・データベースから受信したREDOをスタンバイREDOログにアーカイブするためにマイニング・データベースを準備する手順:

1. ダウンストリーム・マイニング・データベースで、次の例に示すようにlog_archive_dest_2を設定します。

ALTER SYSTEM SET
LOG_ARCHIVE_DEST_2='LOCATION=/home/arc_dest/srl_dbms1
VALID_FOR=(STANDBY_LOGFILE,PRIMARY_ROLE)'

2. 次の例に示すようにlog_archive_dest_2を有効にします。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE

3. ダウンストリーム・マイニング・データベースでDG_CONFIGを設定します。

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(dbms1,dbmscap)'

C.1.3 REDOをマイニング・データベースに送信するためのソース・データベースの準備

REDOをマイニング・データベースに送信するためのソース・データベースを準備する手順:

1. ソース・データベースが、必要とされる互換性で稼働していることを確認します。

select name, value from v$parameter where name = 'compatible';

NAME            VALUE
---------       ---------------------
compatible      11.1.0.7.0

統合キャプチャに必要な最低限の互換性設定は、11.1.0.0.0です。

2. ソース・データベースでDG_CONFIGを設定します。

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(dbms1,dbmscap)';

3. ソース・データベースでREDO転送を設定します。

ALTER SYSTEM
SET LOG_ARCHIVE_DEST_2='SERVICE=DBMSCAP.EXAMPLE.COM ASYNC OPTIONAL NOREGISTER
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=dbmscap';

4. ダウンストリームの宛先を有効にします。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

C.1.4 DBMSCAPでの統合キャプチャ(ext1)の設定

DBMSCAPで統合キャプチャ(ext1)を設定する手順:

1. Extractをダウンストリーム・マイニング・データベースに登録します。資格証明ストアでは、ggadm1のエイリアス名はggadm1@dbms1のユーザー接続文字列にリンクされています。ggadmcapのエイリアス名はggadmcap@dbmscapのユーザー接続文字列にリンクされています。

GGSCI> DBLOGIN USERIDALIAS ggadm1
GGSCI> MININGDBLOGIN USERIDALIAS ggadmcap
GGSCI> REGISTER EXTRACT ext1 DATABASE

2. Extractをダウンストリーム・マイニング・データベースで作成します。

GGSCI> ADD EXTRACT ext1 INTEGRATED TRANLOG BEGIN NOW

3. Extractパラメータ・ファイルext1.prmを編集します。リアルタイム・キャプチャを使用するには、次の行が必要です。資格証明ストアでは、ggadm1のエイリアス名はggadm1@dbms1のユーザー接続文字列にリンクされています。ggadmcapのエイリアス名はggadmcap@dbmscapのユーザー接続文字列にリンクされています。

USERIDALIAS ggadm1
TRANLOGOPTIONS MININGUSERALIAS ggadmcap
TRANLOGOPTIONS INTEGRATEDPARAMS (downstream_real_time_mine Y)

4. Extractを起動します。

GGSCI> START EXTRACT ext1

注意:

同一のソース・データベースからデータをキャプチャする(前述の例でデータベースDBMS1の変更をキャプチャするなど)かぎり、リアルタイム統合キャプチャ・モードで実行されるExtractをダウンストリーム・マイニング・データベースに複数作成できます。

C.2 例2: アーカイブログのみモードでの複数のソースからのキャプチャ

次の例では、統合キャプチャ・セッションをダウンストリーム・マイニング・データベースDBMSCAPにデプロイし、データベースDBMS1およびDBMS2から変更をキャプチャします。次のユーザーが存在するものとします。

- DBMS1にユーザーGGADM1。Extractはこの資格証明を使用して、DBMS1からデータとメタデータをフェッチします。DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE()プロシージャをコールして、DBMS1で適切な権限がこのユーザーに付与されているものとします。

- DBMS2にユーザーGGADM2。Extractはこの資格証明を使用して、DBMS2からデータとメタデータをフェッチします。DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE()プロシージャをコールして、DBMS2で適切な権限がこのユーザーに付与されているものとします。

- DBMSCAPにユーザーGGADMCAP。Extractはこの資格証明を使用して、論理変更レコードをダウンストリーム・マイニング・データベースのログマイニング・サーバーから取得します。DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE()プロシージャをコールして、ダウンストリーム・マイニング・データベースDBMSCAPで適切な権限がこのユーザーに付与されているものとします。

この手順では、ダウンストリーム・マイニング・データベースがアーカイブ・ログ・モードで構成されていることも前提とします。

C.2.1 ローカルREDOをアーカイブするためのマイニング・データベースの準備

ローカルREDOをアーカイブするためにマイニング・データベースを準備する手順:

1. ダウンストリーム・マイニング・データベースはアーカイブ・ログ・モードである必要があります。これは、次のDDLコマンドを発行して行います。

STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

2. ダウンストリーム・マイニング・データベースでlog_archive_dest_1をアーカイブ・ローカルREDOに設定します。

ALTER SYSTEM SET
LOG_ARCHIVE_DEST_1='LOCATION=/home/arc_dest/local
VALID_FOR=(ONLINE_LOGFILE, PRIMARY_ROLE)'

3. log_archive_dest_1を有効にします。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE

C.2.2 ソース・データベースからのREDOをアーカイブするためのマイニング・データベースの準備

ダウンストリーム・マイニング・データベースでDG_CONFIGを設定します。

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(dbms1,dbms2, dbmscap)'

C.2.3 REDOをマイニング・データベースに送信するための最初のソース・データベースの準備

REDOをマイニング・データベースに送信するための最初のソース・データベースを準備する手順:

1. DBMS1ソース・データベースが、必要とされる互換性で稼働していることを確認します。

select name, value from v$parameter where name = 'compatible';

NAME            VALUE
---------       ---------------------
compatible      11.1.0.7.0

統合キャプチャに必要な最低限の互換性設定は、11.1.0.0.0です。

2. DBMS1ソース・データベースでDG_CONFIGを設定します。

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(dbms1, dbmscap)';

3. DBMS1ソース・データベースでREDO転送を設定します。REDOデータをダウンストリーム・マイニング・データベースの外部アーカイブ・ログに直接送信する場合、TEMPLATE句は必須です。

ALTER SYSTEM
SET LOG_ARCHIVE_DEST_2='SERVICE=DBMSCAP.EXAMPLE.COM ASYNC OPTIONAL NOREGISTER
TEMPLATE='/usr/orcl/arc_dest/dbms1/dbms1_arch_%t_%s_%r.log VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=dbmscap';

4. ダウンストリームの宛先を有効にします。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

C.2.4 REDOをマイニング・データベースに送信するための2番目のソース・データベースの準備

REDOをマイニング・データベースに送信するための2番目のソース・データベースを準備する手順:

1. DBMS2ソース・データベースが、必要とされる互換性で稼働していることを確認します。

select name, value from v$parameter where name = 'compatible';

NAME            VALUE
---------      ---------------------
compatible     11.1.0.0.0

統合キャプチャに必要な最低限の互換性設定は、11.1.0.0.0です。

2. DBMS2ソース・データベースでDG_CONFIGを設定します。

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(dbms2, dbmscap)';

3. DBMS2ソース・データベースでREDO転送を設定します。REDOデータをダウンストリーム・マイニング・データベースの外部アーカイブ・ログに直接送信する場合、TEMPLATE句は必須です。

ALTER SYSTEM
SET LOG_ARCHIVE_DEST_2='SERVICE=DBMSCAP.EXAMPLE.COM ASYNC OPTIONAL NOREGISTER
TEMPLATE='/usr/orcl/arc_dest/dbms2/dbms2_arch_%t_%s_%r.log VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=dbmscap';

4. ダウンストリームの宛先を有効にします。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

C.2.5 ダウンストリーム・マイニング・データベースでのExtractの設定

次の手順では、DBMS1およびDBMS2によって送信されたアーカイブ・ログからキャプチャするようダウンストリーム・データベースでExtractを設定します。

C.2.5.1 DBMS1によって送信されたアーカイブ・ログから変更をキャプチャするためのExtract (ext1)の設定

DBMSCAPダウンストリーム・マイニング・データベースで次の手順を実行します。

1. DBMS1ソース・データベース用にDBMSCAPにExtractを登録します。資格証明ストアでは、ggadm1のエイリアス名はggadm1@dbms1のユーザー接続文字列にリンクされています。ggadmcapのエイリアス名はggadmcap@dbmscapのユーザー接続文字列にリンクされています。

GGSCI> DBLOGIN USERIDALIAS ggadm1
GGSCI> MININGDBLOGIN USERIDALIAS ggadmcap
GGSCI> REGISTER EXTRACT ext1 DATABASE

2. Extractをマイニング・データベースDBMSCAPで追加します。

GGSCI> ADD EXTRACT ext1 INTEGRATED TRANLOG BEGIN NOW

3. Extractパラメータ・ファイルext1.prmを編集します。資格証明ストアでは、ggadm1のエイリアス名はggadm1@dbms1のユーザー接続文字列にリンクされています。ggadmcapのエイリアス名はggadmcap@dbmscapのユーザー接続文字列にリンクされています。

USERIDALIAS ggadm1
TRANLOGOPTIONS MININGUSERALIAS ggadmcap
TRANLOGOPTIONS INTEGRATEDPARAMS (downstream_real_time_mine N)

4. Extractを起動します。

GGSCI> START EXTRACT ext1

C.2.5.2 DBMS2によって送信されたアーカイブ・ログから変更をキャプチャするためのExtract (ext2)の設定

ダウンストリームDBMSCAPマイニング・データベースで次の手順を実行します。

1. ソース・データベースDBMS2用にマイニング・データベースにExtractを登録します。資格証明ストアでは、ggadm2のエイリアス名はggadm2@dbms2のユーザー接続文字列にリンクされています。ggadmcapのエイリアス名はggadmcap@dbmscapのユーザー接続文字列にリンクされています。

GGSCI> DBLOGIN USERIDALIAS ggadm2
GGSCI> MININGDBLOGIN USERIDALIAS ggadmcap
GGSCI> REGISTER EXTRACT ext2 DATABASE

2. Extractをマイニング・データベースで作成します。

GGSCI> ADD EXTRACT ext2 INTEGRATED TRANLOG, BEGIN NOW

3. Extractパラメータ・ファイルext2.prmを編集します。資格証明ストアでは、ggadm2のエイリアス名はggadm2@dbms2のユーザー接続文字列にリンクされています。ggadmcapのエイリアス名はggadmcap@dbmscapのユーザー接続文字列にリンクされています。

USERIDALIAS ggadm2
TRANLOGOPTIONS MININGUSERALIAS ggadmcap
TRANLOGOPTIONS INTEGRATEDPARAMS (downstream_real_time_mine N)

4. Extractを起動します。

GGSCI> START EXTRACT ext2

注意:

ダウンストリーム・マイニング・データベースでアーカイブログのみモードで実行されている場合、同一のソース・データベースからデータをキャプチャするExtractを複数作成できます。この例の場合、データベースDBMS1およびDBMS2の変更をキャプチャする他のExtractをダウンストリーム・マイニング・データベースに作成できます。

C.3 例3: リアルタイム・モードとアーカイブログのみモードが混在する複数ソースからのキャプチャ

注意:

この例では、必要なスタンバイREDOログ・ファイルを「ダウンストリーム・マイニング・データベースの構成」に記載されているように作成してあるものとします。

次の例では、統合キャプチャ・セッションをダウンストリーム・マイニング・データベースDBMSCAPにデプロイし、データベースDBMS1、DBMS2およびDBMS3から変更をキャプチャします。次のユーザーが存在するものとします。

- DBMS1にユーザーGGADM1。Extractはこの資格証明を使用して、DBMS1からデータとメタデータをフェッチします。DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE()プロシージャをコールして、DBMS1で適切な権限がこのユーザーに付与されているものとします。

- DBMS2にユーザーGGADM2。Extractはこの資格証明を使用して、DBMS2からデータとメタデータをフェッチします。DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE()プロシージャをコールして、DBMS2で適切な権限がこのユーザーに付与されているものとします。

- DBMS3にユーザーGGADM3。Extractはこの資格証明を使用して、DBMS3からデータとメタデータをフェッチします。DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE()プロシージャをコールして、DBMS3で適切な権限がこのユーザーに付与されているものとします。

- DBMSCAPにユーザーGGADMCAP。Extractはこの資格証明を使用して、論理変更レコードをダウンストリーム・マイニング・データベースのログマイニング・サーバーから取得します。DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE()プロシージャをコールして、ダウンストリーム・マイニング・データベースDBMSCAPで適切な権限がこのユーザーに付与されているものとします。

この手順では、ダウンストリーム・マイニング・データベースがアーカイブ・ログ・モードで構成されていることも前提とします。

この例では、DBMS3によって送信されるREDOデータはリアルタイム・モードでマイニングされ、DBMS1およびDBMS2から送信されるREDOデータはアーカイブログのみモードでマイニングされます。

C.3.1 ローカルREDOをアーカイブするためのマイニング・データベースの準備

ローカルREDOをアーカイブするためにマイニング・データベースを準備する手順:

1. ダウンストリーム・マイニング・データベースはアーカイブ・ログ・モードである必要があります。これは、次のDDLコマンドを発行して行います。

STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

2. ダウンストリーム・マイニング・データベースでlog_archive_dest_1をアーカイブ・ローカルREDOに設定します。

ALTER SYSTEM SET
LOG_ARCHIVE_DEST_1='LOCATION=/home/arc_dest/local
VALID_FOR=(ONLINE_LOGFILE, PRIMARY_ROLE)'

3. log_archive_dest_1を有効にします。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE

C.3.2 ソース・データベースからREDOを受け入れるためのマイニング・データベースの準備

REDOデータは、ダウンストリーム・マイニング・データベースのスタンバイREDOログに受け入れられるため、正しいサイズに設定されたスタンバイREDOログが適切な数存在する必要があります。スタンバイ・ログを構成していない場合は、「ダウンストリーム・マイニング・データベースの構成」を参照してください。

1. ダウンストリーム・マイニング・データベースで、次の例に示すように、2つ目のアーカイブ・ログの宛先をLOG_ARCHIVE_DEST_n初期化パラメータに設定します。これは、アーカイブ・スタンバイREDOログを処理するために必要です。

ALTER SYSTEM SET
LOG_ARCHIVE_DEST_2='LOCATION=/home/arc_dest/srl_dbms3
VALID_FOR=(STANDBY_LOGFILE,PRIMARY_ROLE)'

2. 次の例に示すように、LOG_ARCHIVE_DEST_2パラメータに対応するLOG_ARCHIVE_DEST_STATE_2初期化パラメータを有効にします。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE

3. ダウンストリーム・マイニング・データベースですべてのソース・データベースからREDOデータを受け入れるようDG_CONFIGを設定します。

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(dbms1, dbms2, dbms3, dbmscap)'

C.3.3 REDOをマイニング・データベースに送信するための最初のソース・データベースの準備

REDOをマイニング・データベースに送信するための最初のソース・データベースを準備する手順:

1. DBMS1ソース・データベースが、必要とされる互換性で稼働していることを確認します。

select name, value from v$parameter where name = 'compatible';

NAME            VALUE
---------       ---------------------
compatible      11.1.0.0.0

統合キャプチャに必要な最低限の互換性設定は、11.1.0.0.0です。

2. DBMS1ソース・データベースでDG_CONFIGを設定します。

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(dbms1, dbmscap)';

3. DBMS1ソース・データベースでREDO転送を設定します。REDOデータをダウンストリーム・マイニング・データベースの外部アーカイブ・ログに直接送信する場合、TEMPLATE句は必須です。

ALTER SYSTEM
SET LOG_ARCHIVE_DEST_2='SERVICE=DBMSCAP.EXAMPLE.COM ASYNC OPTIONAL NOREGISTER
TEMPLATE='/usr/orcl/arc_dest/dbms1/dbms1_arch_%t_%s_%r.log VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=dbmscap';

4. ダウンストリームの宛先を有効にします。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

C.3.4 REDOをマイニング・データベースに送信するための2番目のソース・データベースの準備

REDOをマイニング・データベースに送信するための2番目のソース・データベースを準備する手順:

1. DBMS2ソース・データベースが、必要とされる互換性で稼働していることを確認します。

select name, value from v$parameter where name = 'compatible';

NAME                    VALUE
---------               ---------------------
compatible              11.1.0.0.0

統合キャプチャに必要な最低限の互換性設定は、11.1.0.0.0です。

2. DBMS2ソース・データベースでDG_CONFIGを設定します。

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(dbms2, dbmscap)';

3. DBMS2ソース・データベースでREDO転送を設定します。REDOデータをダウンストリーム・マイニング・データベースの外部アーカイブ・ログに直接送信する場合、TEMPLATE句は必須です。

ALTER SYSTEM
SET LOG_ARCHIVE_DEST_2='SERVICE=DBMSCAP.EXAMPLE.COM ASYNC OPTIONAL NOREGISTER
TEMPLATE='/usr/orcl/arc_dest/dbms2/dbms2_arch_%t_%s_%r.log VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=dbmscap';

4. ダウンストリームの宛先を有効にします。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

C.3.5 REDOをマイニング・データベースに送信するための3番目のソース・データベースの準備

REDOをマイニング・データベースに送信するための3番目のソース・データベースを準備する手順:

1. DBMS3ソース・データベースが、必要とされる互換性で稼働していることを確認します。

select name, value from v$parameter where name = 'compatible';

NAME                    VALUE
---------               ---------------------
compatible              11.1.0.0.0

統合キャプチャに必要な最低限の互換性設定は、11.1.0.0.0です。

2. DBMS3ソース・データベースでDG_CONFIGを設定します。

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(dbms3, dbmscap)';

3. DBMS3ソース・データベースでREDO転送を設定します。DBMS3はオンラインREDOログをダウンストリーム・マイニング・データベースのスタンバイREDOログに送信するソースであるため、TEMPLATE句は指定しないでください。

ALTER SYSTEM
SET LOG_ARCHIVE_DEST_2='SERVICE=DBMSCAP.EXAMPLE.COM ASYNC OPTIONAL NOREGISTER
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=dbmscap';

4. ダウンストリームの宛先を有効にします。

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

C.3.6 ダウンストリーム・マイニング・データベースでのExtractの設定

この手順では、DBMS1およびDBMS2によって送信されたアーカイブ・ログからキャプチャするようダウンストリーム・データベースでExtractを設定します。

C.3.6.1 DBMS1によって送信されたアーカイブ・ログから変更をキャプチャするためのExtract (ext1)の設定

DBMSCAPダウンストリーム・マイニング・データベースで次の手順を実行します。

1. DBMS1ソース・データベース用にDBMSCAPにExtractを登録します。資格証明ストアでは、ggadm1のエイリアス名はggadm1@dbms1のユーザー接続文字列にリンクされています。ggadmcapのエイリアス名はggadmcap@dbmscapのユーザー接続文字列にリンクされています。

GGSCI> DBLOGIN USERIDALIAS ggadm1
GGSCI> MININGDBLOGIN USERIDALIAS ggadmcap
GGSCI> REGISTER EXTRACT ext1 DATABASE

2. Extractをマイニング・データベースDBMSCAPで追加します。

GGSCI> ADD EXTRACT ext1 INTEGRATED TRANLOG BEGIN NOW

3. Extractパラメータ・ファイルext1.prmを編集します。資格証明ストアでは、ggadm1のエイリアス名はggadm1@dbms1のユーザー接続文字列にリンクされています。ggadmcapのエイリアス名はggadmcap@dbmscapのユーザー接続文字列にリンクされています。

USERIDALIAS ggadm1
TRANLOGOPTIONS MININGUSERALIAS ggadmcap
TRANLOGOPTIONS INTEGRATEDPARAMS (downstream_real_time_mine N)

4. Extractを起動します。

GGSCI> START EXTRACT ext1

C.3.6.2 DBMS2によって送信されたアーカイブ・ログから変更をキャプチャするためのExtract (ext2)の設定

DBMSCAPダウンストリーム・マイニング・データベースで次の手順を実行します。

1. ソース・データベースDBMS2用にマイニング・データベースにExtractを登録します。資格証明ストアでは、ggadm2のエイリアス名はggadm2@dbms2のユーザー接続文字列にリンクされています。ggadmcapのエイリアス名はggadmcap@dbmscapのユーザー接続文字列にリンクされています。

GGSCI> DBLOGIN USERIDALIAS ggadm2
GGSCI> MININGDBLOGIN USERIDALIAS ggadmcap
GGSCI> REGISTER EXTRACT ext2 DATABASE

2. Extractをマイニング・データベースで作成します。

GGSCI> ADD EXTRACT ext2 INTEGRATED TRANLOG, BEGIN NOW

3. Extractパラメータ・ファイルext2.prmを編集します。資格証明ストアでは、ggadm2のエイリアス名はggadm2@dbms2のユーザー接続文字列にリンクされています。ggadmcapのエイリアス名はggadmcap@dbmscapのユーザー接続文字列にリンクされています。

USERIDALIAS ggadm2
TRANLOGOPTIONS MININGUSERALIAS ggadmcap
TRANLOGOPTIONS INTEGRATEDPARAMS (downstream_real_time_mine N)

4. Extractを起動します。

GGSCI> START EXTRACT ext2

C.3.6.3 DBMS3によって送信されたオンライン・ログからリアルタイム・モードで変更をキャプチャするためのExtract (ext3)の設定

DBMSCAPダウンストリーム・マイニング・データベースで次の手順を実行します。

1. ソース・データベースDBMS3用にマイニング・データベースにExtractを登録します。資格証明ストアでは、ggadm3のエイリアス名はggadm3@dbms3のユーザー接続文字列にリンクされています。ggadmcapのエイリアス名はggadmcap@dbmscapのユーザー接続文字列にリンクされています。

GGSCI> DBLOGIN USERID ggadm3
GGSCI> MININGDBLOGIN USERID ggadmcap
GGSCI> REGISTER EXTRACT ext3 DATABASE

2. Extractをマイニング・データベースで作成します。

GGSCI> ADD EXTRACT ext3 INTEGRATED TRANLOG, BEGIN NOW

3. Extractパラメータ・ファイルext3.prmを編集します。リアルタイム・マイニングを有効にするには、downstream_real_time_mineを指定する必要があります。資格証明ストアでは、ggadm3のエイリアス名はggadm3@dbms3のユーザー接続文字列にリンクされています。ggadmcapのエイリアス名はggadmcap@dbmscapのユーザー接続文字列にリンクされています。

USERIDALIAS ggadm3
TRANLOGOPTIONS MININGUSERALIAS ggadmcap
TRANLOGOPTIONS INTEGRATEDPARAMS (downstream_real_time_mine Y)

4. Extractを起動します。

GGSCI> START EXTRACT ext3

注意:

同一のソース・データベースからデータをキャプチャする(前述の例でデータベースDBMS3の変更をキャプチャするなど)かぎり、リアルタイム統合キャプチャ・モードで実行されるExtractをダウンストリーム・マイニング・データベースに複数作成できます。

D トリガーベースのDDLキャプチャのインストール

この付録では、トリガーベースのOracle GoldenGate DDLサポート方法をサポートするオブジェクトのインストール手順について説明します。

この付録の内容は次のとおりです。

- トリガーベースのDDLキャプチャを使用する場合

- トリガーベースのDDLキャプチャをサポートするオブジェクトの概要

- DDLオブジェクトのインストール

DDLをキャプチャしてレプリケートするようにOracle GoldenGateを構成する場合、「DDLサポートの構成」を参照してください。

注意:

順序のDDLサポート(CREATE、ALTER、DROP、RENAME)は順序値自体のレプリケートと互換性がありますが、順序値をレプリケートするために必須ではありません。順序値のレプリケートのみを行う場合、Oracle GoldenGateのDDLサポート環境をインストールする必要はありません。Extract構成でSEQUENCEパラメータを使用するのみです。

D.1 トリガーベースのDDLキャプチャを使用する場合

Extractが次の構成で動作する場合は、トリガーベースのDDLキャプチャを使用する必要があります。

- 任意のバージョンのOracle Databaseに対して、Extractがクラシック・キャプチャ・モードで動作する場合。

- バージョン11.2.0.3以前のOracle Databaseに対して、Extractが統合モードで動作する場合。

Oracle Databaseバージョン11.2.0.4以降に対してExtractが統合モードで実行される場合、DDLトリガーは不要です。デフォルトでは、DDLキャプチャはデータベース・ログマイニング・サーバーを介して透過的に処理されます。

Extractがマルチテナント・コンテナ・データベースからキャプチャする場合は、ネイティブDDLキャプチャ・モードで統合キャプチャ・モードを使用する必要があります。

キャプチャ・モードの詳細は、「キャプチャおよび適用モードの選択」を参照してください。

DDLサポートの詳細は、「DDLサポートの構成」を参照してください。

D.2 トリガーベースのDDLキャプチャをサポートするオブジェクトの概要

Oracle GoldenGateのトリガーベースのDDL環境をインストールするには、表D-1に示すデータベース・オブジェクトをインストールします。

表D-1 DDL同期オブジェクト

オブジェクト

目的

デフォルト名

DDLマーカー表

DDL情報を保存します。この表では挿入のみを受信します。

GGS_MARKER

マーカー表での順序

マーカー表の列に使用します。

GGS_DDL_SEQ

DDL履歴表

オブジェクト・メタデータ履歴を保存します。この表では挿入、更新、削除を受信します。

GGS_DDL_HIST

オブジェクトID履歴表

構成されたオブジェクトのオブジェクトIDが含まれます。

GGS_DDL_HIST_ALT

DDLトリガー

DDL操作を実行します。操作に関する情報をマーカー表および履歴表に書き込みます。トリガーとともにいくつかのパッケージがインストールされます。

GGS_DDL_TRIGGER_BEFORE

DDLスキーマ

DDL同期オブジェクトが含まれます。

なし。インストール時およびGLOBALSファイルで指定する必要があります。

ユーザー・ロール

DDL操作の実行に必要なロールを確立します。

GGS_GGSUSER_ROLE

内部設定表

内部でのみ使用できるデータベース表。

GGS_SETUP

ddl_pin

パフォーマンスを改善するためにDDLトレース、DDLパッケージおよびDDLトリガーをピン留めします。

ddl_pin

ddl_cleartrace.sql

DDLトレース・ファイルを削除します。

ddl_cleartrace.sql

ddl_status.sql

Oracle GoldenGateのDDLオブジェクトがインストールされていることを確認します。

ddl_status.sql

marker_status.sql

マーカー表がインストールされていることを確認します。

marker_status.sql

ddl_tracelevel.sql

DDLトレースのレベルを設定します。

ddl_tracelevel.sql

window.name='GUID-E17CDDA0-B79E-40E2-B4EC-213F7F1C8B7F' function footdisplay(footnum,footnote) { var msg = window.open('', 'NewWindow' + footnum, 'directories=no,height=120,location=no,menubar=no,resizable=yes,' + 'scrollbars=yes,status=no,toolbar=no,width=598'); msg.document.open('text/html'); }
D.3 DDLオブジェクトのインストール

次の手順に従って、Oracle GoldenGate DDLキャプチャをサポートするデータベース・オブジェクトをインストールします。

注意:

Active Data Guard環境で、Extractをクラシック・モードで使用してキャプチャする場合、DDLオブジェクトがスタンバイではなくソース・データベースにインストールされている必要があります。

1. Oracle GoldenGate DDLオブジェクトを含めるスキーマを選択します。このスキーマは大文字と小文字を区別しません。

2. Oracle GoldenGateスキーマに次の権限を付与します。

GRANT EXECUTE ON utl_file TO schema;

3. Oracle GoldenGate DDLスキーマに対するデフォルト表領域を作成します。この表領域は、DDLスキーマ専用である必要があります。他のスキーマと共有できません。

4. DDL表領域に対してAUTOEXTENDをONに設定し、そのサイズをGGS_DDL_HIST表およびGGS_MARKER表の拡張に対応できるサイズに設定する必要があります。特に、GGS_DDL_HIST表はDDLアクティビティ全体に比例して増加します。

5. (オプション)DDL表領域が一杯になった場合にユーザーDDLアクティビティが失敗するようにするには、params.sqlスクリプトを編集してddl_fire_error_in_triggerパラメータをTRUEに設定します。DDL表領域が一杯になった場合、ExtractはDDLをキャプチャできないため、DDLを停止することで表領域のサイズを拡張する時間ができ、DDLキャプチャが失われることを防ぎます。ただし、表領域のサイズをこのように管理する場合、ビジネスの混乱を防ぐためにビジネス・アプリケーションとExtractを絶えず監視する必要があります。ベスト・プラクティスは、まず第一に表領域を適切なサイズに設定し、表領域が一杯にならないようにAUTOEXTENDをONに設定することです。

警告:

編集する前にparams.sqlスクリプトのバックアップをとり、元の状態を保持してください。

6. GLOBALSファイルを作成します(あるいは、既存のものを編集します)。

EDIT PARAMS ./GLOBALS

注意:

EDIT PARAMSで、単純なテキスト・ファイルが作成されます。EDIT PARAMS後にファイルを保存すると、Oracle GoldenGateディレクトリのルートに拡張子なしのGLOBALS(大文字)という名前で保存されます。ファイルの名前や場所を変更しないでください。

7. GLOBALSファイルで、次のパラメータをGLOBALSファイルに追加することで、DDLスキーマ名を指定します。

GGSCHEMA schema_name

8. (オプション)表D-1に示すその他のオブジェクトの名前を変更するには、残りのインストールを進める前に変更する必要があります。そうしない場合、Oracle GoldenGateのDDL処理を停止してDDLオブジェクトを再インストールする必要があります。データベース・オブジェクトのデフォルト名を受け入れることをお薦めします。表D-1に示す名前(スキーマを除く)を変更するには、次のいずれか、または両方を実行します。

- params.sqlスクリプトにすべての名前の変更を記録します。このスクリプトを編集して適切なパラメータを変更します。このスクリプトを実行しないでください。

- 表D-2に記載されている名前をGLOBALSファイルにリストします。使用する正しいパラメータは、表の「パラメータ」列に示されます。

表D-2 DDLオブジェクト名を変更するためのGLOBALSパラメータ

オブジェクト

パラメータ

マーカー表

MARKERTABLE new_table_name脚注 1

履歴表

DDLTABLE new_table_name

脚注1

これらの表の名前は修飾しないでください。これらの表のスキーマ名は、GGSCHEMAで指定されたスキーマ、またはGLOBALSでGGSCHEMAを指定していない場合は現在のユーザーのスキーマです。

9. トリガーベースのDDLレプリケーションでOracleの不可視索引を一意の識別子として認識できるようにするには、params.sqlスクリプトで次のパラメータをTRUEに設定します。

define allow_invisible_index_keys = 'TRUE'

10. GLOBALSファイルとparams.sqlファイルを保存して閉じます。

11. ディレクトリをOracle GoldenGateのインストール・ディレクトリに変更します。

12. SQL*Plusのセッション、ビジネス・アプリケーションのセッション、Oracle GoldenGateのプロセスのセッションおよびOracleを使用するその他のソフトウェアのセッションなどのすべてのOracleセッションを終了します。新しいセッションの開始を回避します。

13. SQL*Plusを実行し、SYSDBA権限を持つユーザーでログインします。この権限は、Oracleに必要なSYSスキーマへのDDLトリガーのインストールに必要です。他のすべてのDDLオブジェクトは、手順1で作成したスキーマにインストールされます。

14. marker_setup.sqlスクリプトを実行します。プロンプトが表示されたらOracle GoldenGateスキーマの名前を入力し、[Enter]を押してスクリプトを実行します。このスクリプトによって、Oracle GoldenGate DDLマーカー・システムのサポートがインストールされます。

@marker_setup.sql

15. ddl_setup.sqlスクリプトを実行します。手順1で構成したDDLスキーマの名前を指定するよう求められます。(注意: このスキーマの表領域が他のユーザーと共有されている場合、ddl_setup.sqlは失敗します。ただし、デフォルト表領域のAUTOEXTENDがONに設定(推奨設定)されていない場合、失敗しません。)

@ddl_setup.sql

16. role_setup.sqlスクリプトを実行します。プロンプトが表示されたら、DDLスキーマ名を入力します。このスクリプトによって、DDL同期に必要なロールが削除および作成され、Oracle GoldenGate DDLオブジェクトに対するDML権限が付与されます。

@role_setup.sql

17. 作成されたロール(デフォルト名はGGS_GGSUSER_ROLE)をすべてのOracle GoldenGate Extractのユーザーに付与します。プロセスに異なるユーザー名がある場合、複数の付与が必要になることがあります。

GRANT role TO user;

18. ddl_enable.sqlスクリプトを実行してDDLトリガーを有効にします。

@ddl_enable.sql

オプションのパフォーマンス・ツールをインストールして使用する手順

DDLトリガーのパフォーマンスを改善するには、ddl_pinスクリプトをデータベースの起動の一部にします。次のように、Oracle GoldenGateのDDLユーザー名を指定してそれを起動する必要があります。

@ddl_pin DDL_user

このスクリプトによって、トリガーで使用されるPL/SQLパッケージがメモリーにピン留めされます。SQL*Plusからこのスクリプトを実行する場合、Oracle GoldenGateインストール・ディレクトリからSYSDBAとして接続します。このスクリプトはOracleのdmbs_shared_poolシステム・パッケージに依存するため、ddl_pinを使用する前にそのパッケージをインストールしてください。

E XMLスキーマの変更のサポート

この付録では、XMLスキーマの変更をサポートするための手順について説明します。クラシック・キャプチャと統合キャプチャの両方のモードとも、XMLスキーマへの変更のキャプチャはサポートしません。

この付録の内容は次のとおりです。

- RegisterSchemaのサポート

- DeleteSchemaのサポート:

- CopyEvolveのサポート

E.1 RegisterSchemaのサポート

RegisterSchemaは、XMLスキーマを参照する表を作成する前に、ソースとターゲットの両方のデータベースでスキーマ定義を登録することで処理されます。

E.2 DeleteSchemaのサポート:

まず、ソース・データベースでDeleteSchemaを発行します。Replicatでソース・データベースの変更が処理されたら、ターゲット・データベースでDeleteSchemaコールを発行します。

E.3 CopyEvolveのサポート

CopyEvolveプロシージャではスキーマを展開(変更)し、列を追加または削除することで表を変更できます。XMLドキュメントが有効かどうかの変更にも使用できます。CopyEvolveの処理には、調整が必要です。ソース・データベースでCopyEvolveを発行する場合、次の手順を使用します。

1. ソース・データベースで独立した表への変更を停止します。

2. プライマリまたはソースのデータベースでCopyEvolveを実行します。

3. Replicatがそれらの表からのデータをすべてターゲット・データベースに適用し終えるのを待ちます。

4. Replicatを停止します。

5. ターゲット・データベースでCopyEvolveを適用します。

6. Replicatを再起動します。

F アクティブ/アクティブ構成のためのDBFSの準備

この付録では、Oracle Database File System (DBFS)が両方(またはすべて)のシステムで使用されているアクティブ/アクティブの双方向環境または多方向環境内で機能するよう、Oracle GoldenGateを構成する手順について説明します。

この付録の内容は次のとおりです。

- サポートされている操作および前提条件

- 必要なパッチの適用

- これらのプロシージャで使用されている例

- DBFS順序番号のパーティション化

- DBFSファイル・システムの構成

- ローカル・ピアとリモート・ピアの正しいマップ

F.1 サポートされている操作および前提条件

Oracle GoldenGateではDBFS向けに次のものがサポートされています。

- DBFSオブジェクトに対する、CREATE文以外のサポートされているDDL(TRUNCATE、ALTERなど)。DBFSに対するCREATEは、作成されたDBFSオブジェクトを保持するすべてのスキーマ同様、構成から除外される必要があります。CREATEを除外するのは、DBFSのメタデータがSYSディクショナリ表(それ自体がデフォルトでOracle GoldenGateキャプチャから除外される)に正しく移入される必要があるためです。

- DBFSファイル・システムの基礎となる表でのDMLのキャプチャおよびレプリケーション。

後続の手順では、Oracle GoldenGateがアクティブ/アクティブ構成をサポートするよう、正しく構成されていることを前提とします。つまり、次のように設定されている必要があります。

- このガイド内の指示に従ってインストールされています。

- 『Oracle GoldenGate Windows and UNIX管理者ガイド』の指示に従って構成されています。

F.2 必要なパッチの適用

両方のデータベースにOracle Bug#9651229用のOracle DBFSパッチを適用します。パッチがインストールされているかどうかを判断するには、次の問合せを実行します。

connect / as sysdba
select  procedure_name
from    dba_procedures
where   object_name = 'DBMS_DBFS_SFS_ADMIN'
and procedure_name = 'PARTITION_SEQUENCE';

問合せでは1行が返されます。それ以外の場合は、パッチが適用された適切なバージョンのDBFSがデータベースに存在しないことを示します。

F.3 これらのプロシージャで使用されている例

次のプロシージャでは、2つのシステムがあると仮定し、両方のシステムのDBFSユーザーが、Oracle GoldenGateとの同期が維持されている同一のDBFSファイル、ディレクトリおよびコンテンツを参照できるように環境を構成します。これらの概念を、3つ以上のピア・システムのサポートに適用することも可能です。

F.4 DBFS順序番号のパーティション化

DBFSでは内部順序番号ジェネレータを使用して、一意の名前と一意のIDが作成されます。これらの手順では、データベース間で競合することがないように順序が識別可能な範囲にパーティション化されます。これが実行された後は、DMLの伝播中に名前、主キーまたはIDが競合することなく、他のDBFS操作(新しいファイル・システムと後続のファイル・システム操作の両方)を実行できます。

1. 各データベースにsysdbaとして接続します。

次の問合せを各データベースで発行します。

select last_number
from dba_sequences
where sequence_owner = 'SYS'
and sequence_name = 'DBFS_SFS_$FSSEQ'

2. この問合せから、両方のシステム間でLAST_NUMBERの最大値を選択するか、いずれかのシステム上にある順序の現在値よりも大幅に大きい値を選択します。

3. 次のプロシージャの両方で、この値(ここではプレースホルダとして"maxval"を使用)を置換します。これらのプロシージャでは、各システムはmyid=0およびmyid=1として論理的に索引付けされます。

Node1

declare
begin
dbms_dbfs_sfs_admin.partition_sequence(nodes => 2, myid => 0, newstart => :maxval);
commit;
end;
/

ノード2

declare
begin
dbms_dbfs_sfs_admin.partition_sequence( nodes => 2, myid => 1, newstart => :maxval);
commit;
end;
/

注意:

myidパラメータに指定された値の違いに注意してください。これが索引値の違いです。

3つ以上のデータベース間での多方向構成の場合は、次のように変更できます。

- maxvalに設定されている最大値を適切に増加して調整し、すべてのノードでその値を使用します。

- プロシージャ内のmyidの値として、最初のノードには0、2番目のノードには1、3番目には2、などというように異なる値を設定します。

4. (推奨) DBFS順序ジェネレータがパーティション化された後(された後でのみ)、各システム上に新しいDBFSファイル・システムを作成し、Oracle GoldenGateを使用したDML伝播にこれらのファイル・システムのみを使用します。「DBFSファイル・システムの構成」を参照してください。

注意:

Oracle Bug#9651229のパッチが適用される前、またはDBFS順序番号が調整される前に作成されたDBFSファイル・システムを伝播用に構成できますが、このドキュメントで説明されていない追加の手順が必要になります。古いファイル・システムを保持する必要がある場合は、Oracleサポートでサービス・リクエストをオープンしてください。

F.5 DBFSファイル・システムの構成

DBFSファイル・システム操作をレプリケートするには、DML用の標準の双方向構成と同様の構成を使用します。

- 構造が同一である表の組合せを使用します。

- 各データベースが組合せのもう一方の表に対する書込み権限を持つように設定し、もう一方を読取り専用に設定します。次に例を示します。

- ノード1がローカル表t1に書き込み、これらの変更がノード2のt1にレプリケートされます。

- ノード2がローカル表t2に書き込み、これらの変更がノード1のt2にレプリケートされます。

- ノード1では、t2は読取り専用です。ノード2では、t1は読取り専用です。

DBFSファイル・システムでこのような表の組合せを簡単に行える理由は、次のとおりです。

- DBFSファイル・システムの基礎となる表が同じ構造である。

- これらの表は、高レベルのファイル・システム操作中に、従来型の単純なDMLにより変更される。

- DBFS ContentAPIにより、読取り/書込みまたは読取り専用として修飾可能なマウント・ポイントを使用して、個別のDBFSストアのネームスペースを統一する方法が提供される。

次の手順では、2つのDBFSファイル・システム(この場合はFS1およびFS2という名前)を作成し、必要に応じてそれらを読取り/書込みまたは読取りに設定します。

1. 次のプロシージャを実行して、2つのファイル・システムを作成します。(FS1およびFS2をご使用のストア名に置換します。)

2. 次のプロシージャを実行し、各ファイル・システムに適切なアクセス権限を付与します。(FS1およびFS2をご使用のストア名に置換します。)

この例において、ノード1ではストアFS1は読取り/書込み、ストアFS2は読取り専用であるのに対し、ノード2ではストアFS1が読取り専用、ストアFS2が読取り/書込みというように逆になる点に注意してください。

また、読取り/書込みストアはローカルとしてマウントされ、読取り専用ストアはリモートとしてマウントされる点にも注意してください。これにより、読取り操作と書込み操作に対して、同一のネームスペースおよび同一のセマンティクスが各システム上のユーザーに提供されます。ローカルのパス名は変更できますが、リモートのパス名は変更できません。

例F-1

declare
dbms_dbfs_sfs.createfile system('FS1');
dbms_dbfs_sfs.createfile system('FS2');

dbms_dbfs_content.registerStore('FS1',
'posix', 'DBMS_DBFS_SFS');
dbms_dbfs_content.registerStore('FS2',
'posix', 'DBMS_DBFS_SFS');
commit;
end;
/

例F-2 ノード1

declare
dbms_dbfs_content.mountStore('FS1', 'local');
dbms_dbfs_content.mountStore('FS2', 'remote',
read_only => true);
commit;
end;
/

例F-3 ノード2

declare
dbms_dbfs_content.mountStore('FS1', 'remote',
read_only => true);
dbms_dbfs_content.mountStore('FS2', 'local');
commit;
end;
/

F.6 ローカル・ピアとリモート・ピアの正しいマップ

DBFSファイル・システムの基礎となる表の名前は内部的および動的に生成されます。前の例に引き続き、次のものがあるとします。

- 2つのノード(この例ではノード1とノード2)。

- 各ノードに2つずつ、4つのストア(この例ではFS1とFS2)。

- 各ストアに2つずつ(tableとptable)、基礎となる8つの表。これらの表は、ExtractのTABLE文で識別、指定され、ReplicatのMAP文でマップされる必要があります。

1. 各ファイル・システムの基礎となる表の名前を識別するには、次の問合せを発行します。(FS1およびFS2をご使用のストア名に置換します。)

出力は次の例のようになります。

2. Extractパラメータ・ファイルで次のTABLE文を作成することにより、Extractに対してローカルで読取り/書込みである表を識別します。(必要に応じて、ご使用のプラガブル・データベース名、スキーマ名および表名に置き換えます。)

3. Replicatパラメータ・ファイルに次のMAP文を作成することにより、各リモート・ファイル・システム上の変更を対応するローカル・ファイル・システムにリンク付けします。(ご使用のプラガブル・データベース名、スキーマ名および表名に置き換えます。)

このマッピングにより、ローカルの読取り/書込みソース表がキャプチャされ、リモートの読取り専用のピア表にレプリケートされます。

- ノード1のFS1に行われたファイル・システムの変更は、ノード2のFS1に伝播されます。

- ノード2のFS2に行われたファイル・システムの変更は、ノード1のFS2に伝播されます。

ファイル・システムへの変更は、データベースのDBFS ContentAPI (パッケージDBMS_DBFS_CONTENT)またはdbfs_clientマウントおよび従来のファイル・システム・ツールを使用して行うことができます。

すべての変更は両方のディレクトリに伝播されます。

- 各システム上のDBFSネームスペースの仮想ルートで、ユーザーは同一の内容を確認できます。

- 可変操作の場合は、各システム上の/localサブディレクトリを使用します。

- 読取り操作の場合は、ローカル・コンテンツとリモート・コンテンツのどちらを確認するかに応じて、/localか/remoteのいずれかのサブディレクトリを使用できます。

例F-4

select fs.store_name, tb.table_name, tb.ptable_name
from table(dbms_dbfs_sfs.listTables) tb,
table(dbms_dbfs_sfs.listfile systems) fs
where   fs.schema_name = tb.schema_name
and fs.table_name = tb.table_name
and fs.store_name in ('FS1', 'FS2')
;

例F-5 出力例: ノード1(実際の表名は異なります。)

STORE NAME     TABLE_NAME     PTABLE_NAME
-------------  -------------  -------------
FS1            SFS$_FST_100   SFS$_FSTP_100
FS2            SFS$_FST_118   SFS$_FSTP_118

例F-6 出力例: ノード2(実際の表名は異なります。)

STORE NAME     TABLE_NAME     PTABLE_NAME
-------------  -------------  -------------
FS1            SFS$_FST_101   SFS$_FSTP_101
FS2            SFS$_FST_119   SFS$_FSTP_119

例F-7 ノード1

TABLE [container.]schema.SFS$_FST_100
TABLE [container.]schema.SFS$_FSTP_100;

例F-8 ノード2

TABLE [container.]schema.SFS$_FST_119
TABLE [container.]schema.SFS$_FSTP_119;

例F-9 ノード1

MAP [container.]schema.SFS$_FST_119, TARGET [container.]schema.SFS$_FST_118;
MAP [container.]schema.SFS$_FSTP_119, TARGET [container.]schema.SFS$_FSTP_118

例F-10 ノード2

MAP [container.]schema.SFS$_FST_100, TARGET [container.]schema.SFS$_FST_101;MAP [container.]schema.SFS$_FSTP_100, TARGET [container.]schema.SFS$_FSTP_101;

G インストールされるOracle GoldenGateコンポーネント

この付録では、Oracle GoldenGateソフトウェアによってOracle GoldenGateインストール・ディレクトリで作成または使用されるプログラム、ディレクトリ、および他のコンポーネントについて説明します。

この付録の内容は次のとおりです。

- Oracle Goldengateのプログラムおよびユーティリティ

- Oracle GoldenGateのサブディレクトリ

- その他のOracle GoldenGateのファイル

- Oracle GoldenGateのチェックポイント表

G.1 Oracle GoldenGateのプログラムとユーティリティ

この項では、Oracle GoldenGateのルート・インストール・ディレクトリにインストールされるプログラムについて説明します。

注意:

これらのプログラムがすべてのインストールに存在するとはかぎりません。たとえば、ご使用のプラットフォームでキャプチャまたは配信のみがOracle GoldenGateによってサポートされる場合には、extractプログラムまたはreplicatプログラムはそれぞれインストールされません。同様に、特定のデータベースをサポートするために特有のファイルがインストールされることがあります。

表G-1 インストールされるOracle Goldengateプログラムとユーティリティ

プログラム

説明

convchk

チェックポイント・ファイルを新しいバージョンに変換します。

convprm

引用符で囲まれた名前およびリテラルにSQL-92ルールを使用しないパラメータ・ファイルを、SQL-92ルールを使用する更新されたパラメータ・ファイルに変換します。引用符で囲まれたオブジェクト名およびリテラル用のSQL-92形式は、Oracle GoldenGateのバージョン12cでデフォルトとして導入されています。

defgen

データ定義が生成され、この定義は、ソース表とターゲット表の定義が異なる場合にOracle GoldenGateのプロセスによって参照されます。

emsclnt

WindowsシステムまたはUNIXシステム上のCollectorおよびReplicatによって作成されるイベント・メッセージをNonStopシステム上のEMSに送信します。

extract

データベース表またはトランザクション・ログからキャプチャを実行するか、ベンダーのアクセス・モジュールからトランザクション・データを受信します。

ggmxinstall

SQL/MXデータベース用のOracle GoldenGateインストール・スクリプト。

ggcmd

ggsciのプログラムに関連付けられています。Oracle GoldenGate MonitorのJAGENTなどの外部アプリケーションを起動して監視します。これらのアプリケーションをGGSCI環境に統合します。

ggsci

コマンドの発行やパラメータ・ファイルの管理に使用するOracle GoldenGateへのユーザー・インタフェース。

ggsmgr.jcl

ggsmgr.proc

ggsmgrst.jcl

ggsmgrst.proc

バッチ・ジョブまたはz/OSシステム上のオペレータ・コンソールからOracle GoldenGateのManagerプロセスを開始します。DB2 z/OSデータベースをサポートするためにインストールされます。

install

Oracle GoldenGateをWindowsサービスとしてインストールし、Windowsベースのその他のサービス・オプションを提供します。

keygen

データ暗号化鍵を生成します。

logdump

抽出証跡または抽出ファイルに格納される情報を表示および保存するためのユーティリティ。

mgr

リソース管理、Oracle GoldenGateのプロセスの制御と監視、レポートおよびGGSCIインタフェース経由のリクエストのルーティングに使用する(Manager)制御プロセス。

oggerr

Oracle GoldenGateのエラー・メッセージを管理します。

replicat

データをターゲット・データベースの表に適用します。

reverse

トランザクション操作の順序を保持するユーティリティ。これによって、Replicatを使用してターゲット表の変更を取り消し、それらの表を前の状態に復元できるようになります。

server

Collectorプロセス。これは、データをリモート証跡に書き込むExtract TCP/IPサーバー・コントローラです。

vamserv

TMF対応のアプリケーションにより生成されるTMF監査証跡を読み取るため、Extractによって起動されます。これは、SQL/MXデータベースをサポートするためにインストールされます。

G.2 Oracle GoldenGateのサブディレクトリ

この項では、Oracle GoldenGateインストール・ディレクトリのサブディレクトリとその内容について説明します。

注意:

これらのディレクトリがすべてのインストールに存在するとはかぎりません。

表G-2 インストールされるOracle GoldenGateサブディレクトリ

ディレクトリ

説明

br

制限付きのリカバリ機能用のチェックポイント・ファイルが含まれます。

cfg

Oracle GoldenGate Monitorの構成に使用されるプロパティおよびXMLファイルを格納します。

dirdb

Oracle GoldenGate MonitorアプリケーションまたはOracle Enterprise Manager内で使用するためにOracle GoldenGateインスタンスから収集された情報の永続化に使用されるデータ・ストアを格納します。

dirchk

ExtractプロセスおよびReplicatプロセスによって作成されるチェックポイント・ファイルを格納します。これらのファイルには、データの正確さとフォルト・トレランスを確保するために現在の読み書き位置が保存されます。Oracle GoldenGateの内部形式で書き込まれます。

ファイル名の形式はgroup_name+sequence_number.extです。sequence_numberは古いファイルに追加される連続した番号です。extは、 Extractチェックポイント・ファイルの場合はcpe、Replicatチェックポイント・ファイルの場合はcprです。

これらのファイルは編集しないでください。

例:

ext1.cpe

rep1.cpr

dircrd

資格証明ストア・ファイルを格納します。

dirdat

Replicatプロセスまたは別のアプリケーションやユーティリティによる追加処理に抽出されたデータを保存するためにExtractプロセスによって作成される、Oracle GoldenGateの証跡ファイルおよび抽出ファイルのデフォルトの場所です。Oracle GoldenGateの内部形式で書き込まれます。

ファイル名形式は、ユーザー定義の2文字の接頭辞とそれに続く6桁の順序番号(証跡ファイル)または関連付けられたExtractプロセス・グループ(抽出ファイル)です。

これらのファイルは編集しないでください。

例:

rt000001

finance

dirdef

DEFGENユーティリティで作成される、異機種同期環境で使用されるソースまたはターゲットのデータ定義を保持するデータ定義ファイルのデフォルトの場所。外部ASCIIで書き込まれます。ファイル名の形式は、DEFGENパラメータ・ファイルで指定されたユーザー定義の名前です。

これらのファイルを編集して、新たに作成された表の定義を追加できます。定義ファイルの編集方法がわからない場合には、Oracle GoldenGateのテクニカル・サポートに問い合せてください。

例:

defs.dat

dirdmp

内部アクティビティ・ロギング・メカニズムをサポートするトレースまたはダンプ、ファイルを格納します。

dirjar

Oracle GoldenGate MonitorをサポートするJava実行可能ファイルが含まれます。

dirpcs

ステータス・ファイルのデフォルトの場所です。ファイル名の形式は、group.extensionで、groupはグループの名前、extensionはpce (Extract)、pcr (Replicat)またはpcm (Manager)のいずれかです。

これらのファイルが作成されるのは、プロセスを実行している間だけです。ファイルの内容はプログラム名、プロセス名、ポート番号およびプロセスIDです。

これらのファイルは編集しないでください。

例:

mgr.pcm

ext.pce

dirprm

Oracle GoldenGateのプロセスのグループまたはユーティリティのランタイム・パラメータを保存するためにOracle GoldenGateによって作成される、Oracle GoldenGateパラメータ・ファイルのデフォルトの場所。外部ASCII形式で書き込まれます。ファイル名形式は、group name/user-defined name.prmまたはmgr.prmです。

プロセスの停止後、Oracle GoldenGateパラメータの値を変更するために、これらのファイルを編集できます。テキスト・エディタで直接編集することも、GGSCIのEDIT PARAMSコマンドを使用することもできます。

例:

defgen.prm

finance.prm

dirrec

Oracle GoldenGateでは使用しません。

dirrpt

処理実行に関連する統計情報をレポートするためにExtract、ReplicatおよびManagerの各プロセスによって作成されるプロセス・レポート・ファイルの既定の場所です。外部ASCII形式で書き込まれます。

ファイル名形式は、group name+sequence number.rptです。sequence numberは古いファイルに追加されるシーケンス番号です。

これらのファイルは編集しないでください。

例:

fin2.rpt

mgr4.rpt

dirsql

Oracle GoldenGateをサポートするトレーニング・スクリプトおよびユーザー作成のSQLスクリプトを格納します。

dirtmp

キャッシュ・マネージャに割り当てられたメモリー・サイズを上回る場合に、トランザクション・データを保存するデフォルトの場所です。これらのファイルは編集しないでください。

dirwlt

Oracle GoldenGateウォレット・ファイルを格納します。

UserExitExamples

ユーザー・イグジットの作成を支援するサンプル・ファイルが含まれます。

G.3 その他のOracle GoldenGateのファイル

この項では、ルートのOracle GoldenGateインストール・ディレクトリに作成またはインストールされる、その他のファイル、テンプレートおよびオブジェクトについて説明します。

注意:

一部のファイルは、データベースおよびOSプラットフォームに応じてご使用の環境にインストールされない場合があります。

表G-3 インストールされるその他のOracle GoldenGateのファイル

コンポーネント

説明

bcpfmt.tpl

Microsoft BCP/DTS一括ロード・ユーティリティに実行ファイルを作成する際にReplicatで使用するテンプレート。

bcrypt.txt

Blowfish暗号化ソフトウェアのライセンス契約。

cagent.dll

Oracle GoldenGate Monitor Cサブエージェント用のWindowsダイナミック・リンク・ライブラリが含まれます。

category.dll

INSTALLユーティリティによって使用されるWindowsのダイナミック・リンク・ライブラリ。

chkpt_db_create.sql

ローカル・データベースにチェックポイント表を作成するスクリプト。データベース・タイプごとに異なるスクリプトがインストールされます。

db2cntl.tpl

IBM LOADUTIL一括ロード・ユーティリティに制御ファイルを作成する際にReplicatで使用するテンプレート。

ddl_cleartrace.sql

DDLトレース・ファイルを削除するスクリプト。(Oracleインストール)

ddl_ddl2file.sql

マーカー表からファイルにDDLを保存するスクリプト。

ddl_disable.sql

Oracle GoldenGateのDDLトリガーを無効にするスクリプト。(Oracleインストール)

ddl_enable.sql

Oracle GoldenGateのDDLトリガーを有効にするスクリプト。(Oracleインストール)

ddl_filter.sql

Oracle GoldenGateによるDDLのフィルタリングをサポートするスクリプト。このスクリプトはプログラムで実行されるため、手動で実行しないでください。

ddl_nopurgeRecyclebin.sql

Oracle GoldenGateのサポート・スタッフが使用する空のスクリプト・ファイル。

ddl_ora11.sql

ddl_ora12.sql

Oracle GoldenGateのDDLサポートの一環としてプログラムで実行されるスクリプトのため、これらのスクリプトは実行しないでください。

ddl_pin.sql

パフォーマンスを改善するためにDDLトレース、DDLパッケージおよびDDLトリガーを固定するスクリプト。(Oracleインストール)

ddl_purgeRecyclebin.sql

DDLのレプリケーション機能のサポートでOracleのごみ箱をパージするスクリプト。

ddl_remove.sql

DDL抽出トリガーおよびパッケージを削除するスクリプト。(Oracleインストール)

ddl_session.sql

ddl_session1.sql

OracleのDDLオブジェクトのインストールをサポートします。このスクリプトはプログラムで実行されるため、手動で実行しないでください。

ddl_setup.sql

Oracle GoldenGateのDDL抽出オブジェクトおよびレプリケーション・オブジェクトをインストールするスクリプト。(Oracleインストール)

ddl_status.sql

Oracle GoldenGateのDDLサポート機能によって作成される各オブジェクトが存在し、正しく機能するかどうかを確認するスクリプト。(Oracleインストール)

ddl_staymetadata_off.sql

ddl_staymetadata_on.sql

OracleのDDLトリガーでメタデータを収集するかどうかを制御するスクリプト。このスクリプトはプログラムで実行されるため、手動で実行しないでください。

ddl_trace_off.sql

ddl_trace_on.sql

DDLのトレースをオンにするかオフにするかを制御するスクリプト。

ddl_tracelevel.sql

DDLサポート機能のトレース・レベルを設定するスクリプト。(Oracleインストール)

debug files

トレースがオンになった場合に存在する可能性があるデバッグ・テキスト・ファイル。

demo_db_scriptname.sql

demo_more_db_scriptname.sql

チュートリアルや基本のテストで使用するデモンストレーション表を作成および移入するスクリプト。

.dmp files

Oracle GoldenGateプロセスにより、トレース目的で作成されるダンプ・ファイル。

ENCKEYS

暗号化キーを保存する、ユーザーが作成したファイル。外部ASCII形式で書き込まれます。

exitdemo.c

ユーザー・イグジットの例。

exitdemo_utf16.c

ユーザー・イグジットとプロセスの間で交換される情報用のコールバック構造で、UTF16エンコード・データを使用する方法を示すユーザー・イグジットの例。

freeBSD.txt

FreeBSDのライセンス契約。

ggmessage.dat

Oracle GoldenGateのプロセスによって返されるエラー、情報および警告のメッセージが含まれるデータ・ファイル。このファイルのバージョンは、プロセスの起動時にチェックされ、プロセスを動作させるためにはプロセスのバージョンと同一である必要があります。

ggserr.log

Oracle GoldenGateによって生成される処理のイベント、メッセージ、エラーおよび警告を記録するファイル。

ggsmsg.dll

installプログラムで使用されるWindows動的リンク・ライブラリ。

GLOBALS

Oracle GoldenGateのインスタンス全体に適用するパラメータを保存する、ユーザーが作成したファイル。

help.txt

GGSCIコマンド・インタフェースのヘルプ・ファイル。

icudtxx.dll

icuinxx.dll

icuucxx.dll

International Components for UnicodeのWindows共有ライブラリ(xxは現在使用中のバージョン)。

jagent.bat

Oracle GoldenGate MonitorのJavaエージェント用のWindowsバッチ・ファイル。

jagent.log

jagentjni.log

Oracle GoldenGate Monitorエージェントのログ・ファイル。

jagent.sh

Oracle GoldenGate MonitorのJavaエージェントのUNIXシェル・スクリプト。

LGPL.txt

Lesser General Public Licenseステートメント。これは、Free Software Foundationのフリー・ライブラリに適用されます。

libodbc.so

UNIX上のIngres 2.6用ODBCファイル。

libodbc.txt

libodbc.soのライセンス契約。

libxml2.dll

Oracle GoldenGate XMLプロシージャのXMLライブラリを含むWindowsのダイナミック・リンク・ライブラリ。

libxml2.txt

libxml2.dllのライセンス契約。

marker.hist

NonStopソース・システムからマーカーが渡された場合にReplicatによって作成されるファイル。

marker_remove.sql

DDLマーカー・ファイルを削除するスクリプト。(Oracleインストール)

marker_setup.sql

Oracle GoldenGateのDDLマーカー表をインストールするスクリプト。(Oracleインストール)

marker_status.sql

DDLマーカー表が正常にインストールされたことを確認するスクリプト。(Oracleインストール)

notices.txt

サード・パーティ・ソフトウェアのライセンス・ファイル。

odbcinst.ini

UNIX上のIngres 2.6のODBC構成ファイル。

params.sql

DDLサポートの構成可能なパラメータを含むスクリプト。(Oracleインストール)

pthread-win32.txt

pthread-VC.dllのためのライセンス契約。

pthread-VC.dll

Microsoft WindowsのPOSIXスレッド・ライブラリ。

prvtclkm.plb

Oracle暗号化データのレプリケーションをサポートします。

pw_agent_util.bat

pw_agent_util.sh

Oracle GoldenGate Monitorエージェントをサポートするスクリプト・ファイル。

role_setup.sql

Oracle GoldenGateのDDLサポートに必要なデータベース・ロールを作成するスクリプト。(Oracleインストール)

sampleodbc.ini

UNIX上のIngres 2.6用サンプルODBCファイル。

sqlldr.tpl

Oracle SQL*Loader一括ロード・ユーティリティに制御ファイルを作成する際にReplicatで使用するテンプレート。

start.prm

stop.prm

Managerプロセスを起動および停止するz/OS paramlibメンバー。

startmgr

stopmgr

GGSCIからManagerプロセスを起動するためのz/OS UNIXシステム・サービス・スクリプト。

startmgrcom

stopmgrcom

Managerプロセス用のz/OSシステム入力コマンド。

tcperrs

TCP/IPエラーに対応するユーザー定義の指示を含むファイル。

usrdecs.h

ユーザー・イグジットAPI。

xerces-c_2_8.dll

Apache XMLのパーサー・ライブラリ。

zlib.txt

zlib圧縮ライブラリのためのライセンス契約。

G.4 Oracle GoldenGateのチェックポイント表

データベース・チェックポイントを使用する場合、ADD CHECKPOINTTABLEコマンドを実行すると、データベースのユーザー定義名を使用してOracle GoldenGateによりチェックポイント表が作成されます。または、ユーザーがchkpt_db_create.sqlスクリプトを使用して表を作成することもできます。ここでdbは、スクリプトでサポートされるデータベース・タイプの略称です。このテーブルの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

オラクルの法律上の注意点について

コピーライトについて

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を参照してください。