Chat now with support
Chat with Support

SharePlex 8.6.6 - 管理ガイド

このガイドについて このガイドで使用されている表記規則 SharePlex の概要 SharePlex の実行 複数の SharePlex インスタンスの実行 sp_ctrl でのコマンドの実行 SharePlex パラメータ 複製のための Oracle 環境の準備 設定ファイルの作成 オープンターゲットのターゲットへの複製の設定 複製方法の設定 分割レプリケーションの設定 名前付きキューの設定 変更履歴ターゲットを維持するための SharePlex の設定 Oracle DDL の複製 エラー処理のセットアップ データの変換 SharePlex セキュリティ機能の設定 実稼動環境での複製のアクティベート SharePlex の監視 複製上の問題の防止および解決方法 非同期データの修復 Oracle の高可用性を維持するための手順 アクティブな複製環境の変更 Oracle アプリケーションのパッチまたはアップグレードの適用 ソースまたはターゲット上の Oracle データのバックアップ Capture プロセスのチューニング Post プロセスのチューニング 付録 A:ピアトゥピアの説明図 付録 B:SharePlex 環境変数

変更履歴ターゲットの概要

変更履歴ターゲットは、変更履歴ターゲットが、ソースデータの現在の状態のミラーを保持するのではなく、ソースオブジェクトに対して発生するすべての変更の記録を保持するという点で、複製ターゲットとは異なります。通常の複製では、現在のターゲットデータが変更データで上書きされますが、変更履歴では、変更データは新しいレコードとしてターゲットに挿入されます。古いデータは、変更の段階的な記録として保持されます。履歴データは、データマイニングや顧客の不満の解決などの目的で照会および分析できます。

SharePlex を使用してセカンダリサーバの変更履歴を保持することにより、実稼働データベースからオーバーヘッドをオフロードできます。このようなオーバーヘッドには、履歴行を追加する SQL 作業、それらの行の余分なストレージ、および履歴データに対するクエリアクティビティが含まれます。

注: ファイル、JMS、および Kafka ターゲットは、すべてのソース変更が個別の XML レコードとして書き込まれるため、デフォルトで変更履歴をサポートします。古いデータが新しいデータに上書きされることはありません。これらのターゲットでサポートされているメタデータは、Post が XML を書き込むときに自動的に含まれます。サポートされているメタデータのリストに一覧については、『SharePlex リファレンスガイド』の target コマンドを参照してください。

機能

この複製方法では以下がサポートされます。

  • 同一または異なるソースおよびターゲット名
  • 垂直分割レプリケーションの使用
  • 水平分割レプリケーションの使用
  • 名前付き export キューおよび post キューの使用
  • 同じソースオブジェクトの通常の複製と変更履歴の複製の組み合わせ

サポートされるターゲット

Oracle ターゲット

サポートされている操作

SharePlex は、これらの操作の変更履歴行の追加をサポートしています。

  • INSERT
  • UPDATE
  • DELETE
  • TRUNCATE
  • ALTER TABLE による DROP COLUMN(注: ADD COLUMN の場合、Post は列をテーブルに追加しますが、変更履歴行は作成しません)。

サポートされていない操作

  • UDT または VARRAY 列の変更
  • LOB 列の一部を変更するために使用される DBMS_LOB 操作(ターゲット上でその列に保管される値は完全な LOB 列にはなりません)。

SharePlex による変更履歴の保持方法

変更履歴の設定では、各ターゲットテーブルは、ソースデータに対して行われたすべての変更を連続した一連の行として記録する履歴テーブルとして機能します。SharePlex が挿入する新しい各変更行には、次の内容が含まれます。

  • キー列の値
  • 変更された列の後イメージ。挿入と更新の場合、後イメージは、変更された(または挿入の場合は、追加された)列の新しい値で構成されます。削除の場合、後イメージは、キー値と null に設定された他の列によって構成されます。
  • (必要に応じて)変更のコンテキストを提供する一連のメタデータ値。たとえば、変更を行ったユーザーのユーザー ID および変更が行われたソースシステムをキャプチャするメタデータがあります(変更データが、複数のデータベースから追跡される場合に役立ちます)。

SharePlex は、履歴に更新操作の前イメージを含めるように、または履歴に含まれる操作の種類を制御するように構成できます。たとえば、更新と削除のみを含めることができます。

変更履歴の設定

変更履歴を設定するには、SharePlex 設定ファイルで特別な構文を使用し、必要に応じて履歴をカスタマイズするためにフィルタルールやその他の属性を設定します。

変更履歴設定ファイルの作成

  1. SharePlex がインストールされていること、および『SharePlex インストールガイド』の指示に従ってシステムが準備されていることを確認します。
  2. 履歴を追跡するソーステーブルと同じ名前と構造を持つ Oracle ターゲット履歴テーブルを作成しますが、すべての列のすべての制約は省略します

    重要: Oracle ターゲットテーブルに、PRIMARY KEY、FOREIGN KEY、UNIQUE、NOT NULL、または CHECK 制約を入れてはいけません。また、DEFAULT 値で列を定義することもできません。これは変更の履歴であるため、行は同じキーを持つ別の行と同じイメージを持つことがあります。Post は、変更履歴ターゲットの整合性チェックを実行しません。

  3. ターゲットテーブルのトリガを無効にします。
  4. SharePlex 以外のターゲットテーブルに対して DML または DDL を実行しないでください。
  5. ソースシステムで、次の構文を使用して設定ファイルを作成します。設定ファイルの作成方法の詳細については、「設定ファイルの作成」を参照してください。

    datasource_specification
    src_owner.table !cdc:tgt_owner.table host@c.SID

    ここで、

    • Datasource:o.SID は、Oracle インスタンスの ORACLE_SID です。
    • src_owner.table は、ソースオブジェクト(owner.object)またはワイルドカード指定の完全修飾名です。
    • !cdc: は、ターゲットを変更履歴テーブルとして識別します。
    • tgt_owner.table は、ターゲット履歴テーブルまたはワイルドカード指定の完全修飾名です。
    • host は、ターゲットシステムです。
    • c.SID は、対象の Oracle インスタンスを指定します。
  6. (オプション)ターゲットテーブルで次のスクリプトを実行して、デフォルトのメタデータ列をデフォルト名で追加します。Post は、追加の設定なしで、デフォルトのメタデータ列を自動的に設定します。要件を満たすようにスクリプトをカスタマイズできます。

    product_dir/util/add_change_tracking_columns.sql

    注:

    • スクリプトはデフォルトの列のみを追加します。オプションの列を追加する、または列名を変更するには、target コマンドを使用して、Post 設定に追加します。デフォルトおよびオプションのメタデータ列の一覧については、『SharePlex リファレンスガイド』の target コマンドを参照してください。
    • デフォルトの列は、SharePlex 変更履歴の設定に追加された新しいテーブルに自動的に追加されます。

追加の変更履歴の設定オプション

このセクションでは、SharePlex の変更履歴の設定をカスタマイズする方法について説明します。

列名のカスタマイズ

colname オプションを指定した target コマンドを使用すると、ターゲットメタデータ列の名前をカスタマイズできます。手順については、『SharePlex リファレンスガイド』を参照してください。

各変更行への前イメージの追加

SP_OPO_TRACK_PREIMAGE パラメータ を U に設定すると、更新の前イメージをターゲットテーブルに含めることができます。このパラメータを使用すると、Post は、追跡対象のソーステーブルに対して行われたすべての変更について、ターゲットテーブルに 2 つの行を挿入します。1 つは後イメージ用で、もう 1 つは前イメージ用です。前イメージは、SP_OCT_USE_SUPP_KEYS パラメータが使用されていない限り、変更された列のキー値と前の値で構成されます。

前イメージが有効になると、2 つのレコードの SHAREPLEX_SOURCE_OPERATION 列の値は次のようになります。

UPDATE BEFORE

UPDATE AFTER

:redo ログには LOB の前イメージが含まれていないため、前行には LOB 列の前イメージは含まれません。

target コマンドの set cdc preimage オプションを使用すると、テーブルレベルで SP_OPO_TRACK_PREIMAGE のグローバル設定を上書きできます。

SP_OPO_TRACK_PREIMAGE とターゲットコマンドの詳細については、『SharePlex リファレンスガイド』を参照してください。

履歴に操作のすべての列を含める

変更された列だけではなく、各ターゲットの履歴レコードのすべてのテーブル列の値を含めるには、次のように設定します。

  1. 追跡対象のソーステーブルのすべての列に対して、サプリメンタルロギングをオンにします。例:

    Alter table emp ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

  2. SP_OCT_USE_SUPP_KEYS パラメータを 1 に設定します。
  3. SP_OCT_INCLUDE_UNCHANGED_COL を 1 に設定します。

:SP_OCT_USE_SUPP_KEYS と SP_OPO_TRACK_PREIMAGE の両方を有効にすると、前イメージに、変更前と同様にすべての列の値が含まれます。

操作タイプの変更履歴の無効化

DML 操作タイプの変更履歴を無効にするには、SP_OPO_TRACK_OPERATIONS パラメータに適切な値を設定します。値はスラッシュ(/)で区切ります。たとえば、挿入および更新の変更履歴のみを保持するには、パラメータを I/U に変更します。デフォルトは、すべての DML 操作タイプを履歴レコードに送信する I/U/D です。

ルールおよびフィルタの設定

target コマンドの set rule オプションを使用して、列に条件を適用して、変更をターゲット履歴テーブルに適用するかどうかを制御できます。たとえば、列 1 と列 3 が変更された場合に、その操作を適用し、他の列に適用される変更を破棄するルールを指定できます。手順については、『SharePlex リファレンスガイド』を参照してください。

コミットを含める

デフォルトでは、COMMIT レコードは履歴テーブルには含まれません。COMMIT ごとに行を挿入するように Post を設定するには、SP_OPO_TRACK_COMMITS パラメータを 1 に設定します。

Oracle DDL の複製

Oracle DDL 複製のセットアップ

この章には、SharePlex がサポートする Oracle DDL 操作を複製するために知っておくべき情報が記載されています。

コンテンツ

SharePlex でサポートされる DDL

Oracle DDL の複製 > SharePlex でサポートされる DDL

SharePlex では、Oracle データベースの DDL 複製のみがサポートされます。SharePlex は、REDO ログに書き込まれる Oracle DDL の特定の変更を複製します。REDO ログをバイパスする変更は複製されません。

SharePlex でサポートされる DDL の詳細については、『SharePlexSharePlex リリースノート』を参照してください。

カスケード設定では、DDL 複製はソースシステムから中間システムまでしかサポートされていません。中間システムからターゲットシステムまでの複製はサポートされていません。カスケードレプリケーションの詳細については、「中間システムを経由する複製の設定」を参照してください。

SharePlex ユーザーが所有するオブジェクトまたはシステムが所有するオブジェクトに対する DDL は複製されません。

注:

SharePlex 複製ではソースデータベースとターゲットデータベースのバージョンが異なっていても構わないため、ソースオブジェクトとターゲットオブジェクトが異なる場合があります。ターゲットに DDL を適用する際に、ターゲット上で操作が禁止されているのにソース上では許可されている場合、適用が失敗することがあります。

DDL がサポートされるオブジェクトのリストについては、『SharePlex リリースノート』を参照してください。

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating