次の方法で共有


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

適用対象: SQL Server

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 パブリッシャーのトラブルシューティング」の「パブリッシャーの再構成が必要になる変更」を参照してください。