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