Oracle パブリッシャの管理上の注意点

Oracle データベース システムの管理者は、Oracle パブリッシャを構成して、レプリケーションの変更追跡のメカニズムを設定した後でも、標準の Oracle データベース ユーティリティを使用したり、通常のシステム管理作業を実行したりすることができます。しかし、特定の管理作業を実行してパブリッシュされたデータへの影響については注意する必要があります。

レプリケーション用にパブリッシュされた列の削除や変更、またはレプリケーション オブジェクトの削除や変更の場合を除いて、これらの注意点はスナップショット パブリケーションには当てはまりません。

データのインポートと読み込み

Oracle 上のトランザクション パブリケーションでは、トリガを使用して変更を追跡します。パブリッシュされたテーブルに対する変更がサブスクライバにレプリケートされるのは、更新、挿入、削除の際にレプリケーション トリガが起動されたときだけです。Oracle ユーティリティの Oracle インポートおよび SQL*Loader には、レプリケートされたテーブルにこれらのユーティリティから行を挿入したときにトリガを起動するかどうかを指定するオプションがあります。

Oracle インポート

Oracle インポートでは、ignore オプションを「y」または「n」に設定できます (既定値は「n」です)。ignore を「n」に設定すると、インポート時にテーブルが削除されて再作成されます。このときレプリケーション トリガが削除され、レプリケーションが無効になります。ignore を「y」に設定すると、既存のテーブルに行が読み込まれ、レプリケーション トリガが起動されます。したがって、レプリケートされるテーブルに Import ツールでインポートする際には、ignore を「y」に設定してください。

SQL*Loader

SQL*Loader では、direct オプションを「true」または「false」に設定できます (既定値は「false」です)。direct を「false」に設定すると、通常の INSERT ステートメントを使用して行が挿入され、レプリケーション トリガが起動されます。direct を「true」に設定すると、読み込みが最適化され、トリガは起動されません。したがって、SQL*Loader ツールでレプリケートされるテーブルへの読み込みを行う際には、direct を「false」に設定してください。

パブリッシュされたオブジェクトに対する変更

以下の操作には、特別な注意は必要ありません。

  • パブリッシュされたテーブルでのインデックスの再構築

  • パブリッシュされたテーブルへのユーザー トリガの追加

以下の操作では、パブリッシュされたテーブルに対するすべての操作を停止する必要があります。

  • パブリッシュされたテーブルの移動

以下の操作では、パブリケーションを削除し、各操作を実行した後でパブリケーションを作成し直す必要があります。

  • パブリッシュされたテーブルの切り捨て

  • パブリッシュされたテーブル名の変更

  • パブリッシュされたテーブルへの列の追加

  • レプリケーション用にパブリッシュされた列の削除または変更

  • ログに記録されない操作の実行

レプリケーション オブジェクトの削除と変更

パブリッシャ レベルの追跡テーブル、トリガ、シーケンス、ストアド プロシージャを削除または変更するには、パブリッシャを削除して再構成する必要があります。このようなオブジェクトの一部を示した一覧については、「Oracle パブリッシャ上で作成されたオブジェクト」を参照してください。

パブリッシャの削除と再構成の詳細については、「Oracle パブリッシャのトラブルシューティング」の「パブリッシャの再構成が必要になる変更」を参照してください。