プッシュ・ベースのインクリメンタル キャッシュ用の Oracle データベースの構成

データ ソースと派生テーブルは、自動的に更新され、インクリメンタルに保持されるキャッシュとビュー サブスクリプションで使用できるように準備する必要があります。サブスクリプション関連のテーブルに対してテーブルとインデックスを動的に作成できるように、使用するキャッシング データベースに権限を設定する必要があります。

変更データ キャプチャ (change-data capture: CDC) サービスから指定されたデータ ソース トピックへの "チェンジ" メッセージングが必要です。これがないと、ビューの更新はできません。CDC サービスをTDV ソフトウェア変更管理サービスと互換性を持たせる方法については、「Oracle GoldenGate のインストールと構成」を参照してください。

プッシュ・ベースのインクリメンタル キャッシュには、対象の Oracle データベースに接続してサブスクリプション ストアとして使用するための次の権限を 付与する Oracle アカウントが必要です。

サブスクリプション関連のテーブルとインデックスを作成します。
必要なテーブルをイントロスペクトします。READSELECT アクセスの両方が必要です。
対象のデータ ソースとテーブルに対して通常の SQL クエリを実行します。
これらのテーブルに対する EXECUTE、INSERT、UPDATE、および DELETE パーミッションを付与します。
対象のデータ ソースとテーブルに対して フラッシュバック クエリを実行します。

インクリメンタル キャッシュされたビューおよび監視対象テーブルの Join を含むビューを格納するために使用される Oracle データベースは、cursor_sharing を EXACT に設定して構成する必要があります。cursor_sharing の他の設定は、パフォーマンスの低下につながります。

Oracle データ ソースを構成するには

1. SYSDBA として Oracle データベース マシンにログオンします。
2. 次のようなコマンドを使用して、データベース レベルで 補足ログを有効にします。
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER SYSTEM SWITCH LOGFILE;  

または、監視対象のテーブルのスキーマ所有者としてデータベース サーバーにログインし、個々のテーブルの補足ログ記録を変更します。

SQL> ALTER TABLE <tableName> ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
3. Oracle データベースで アーカイブ ログと フラッシュバックが有効になっていることを確認します。フラッシュバックを有効にするには、次を使用して システム変更番号 (SCN) 値を取得します。
SELECT dbms_flashback.get_system_change_number FROM dual;