Oracle パブリッシャーのパフォーマンス チューニング
Oracle のパブリッシング アーキテクチャは、Microsoft SQL Server のパブリッシング アーキテクチャに似ています。したがって、「レプリケーションの全般的パフォーマンスの向上」で紹介されているチューニング全般の推奨事項に従うことが、Oracle レプリケーションのパフォーマンスをチューニングするための第一歩となります。
それに加えて、Oracle パブリッシャーには、パフォーマンスに関連するオプションが 2 つあります。
パブリッシング オプションとして、[Oracle (完全)] または [Oracle (ゲートウェイ)] のいずれか適切な方を指定します。
パブリッシャーの変更を適切な間隔で処理するようにトランザクション セット ジョブを構成します。
適切なパブリッシング オプションの指定
[Oracle (ゲートウェイ)] を選択すると、[Oracle (完全)] より高いパフォーマンスが得られますが、このオプションは、複数のトランザクション パブリケーションで同じテーブルをパブリッシュする場合は使用できません。 テーブルを表示できるのは、最大で 1 つのトランザクション パブリケーションと、任意の数のスナップショット パブリケーションになります。 複数のトランザクション パブリケーションで同じテーブルをパブリッシュする必要がある場合は、[Oracle (完全)] を選択します。 このオプションは、SQL Server ディストリビューターで Oracle パブリッシャーを識別する際に指定します。 詳細については、「Oracle データベースからのパブリケーションの作成」を参照してください。
トランザクション セット ジョブの構成
パブリッシュされた Oracle テーブルに対する変更は、トランザクション セットと呼ばれるグループで処理されます。 トランザクションの一貫性を確保するために、各トランザクション セットはディストリビューション データベースで 1 つのトランザクションとしてコミットされます。 トランザクション セットが大きくなりすぎると、1 つのトランザクションとして効率的に処理できなくなります。
既定では、トランザクション セットはログ リーダー エージェントによってのみ作成されます。 変更が頻繁に行われているときにログ リーダー エージェントが実行されていなかったり、SQL Server ディストリビューターから Oracle パブリッシャーに接続できなかったりすると、トランザクション セットが極端に大きくなる可能性があります。 この問題を防ぐには、ログ リーダー エージェントが実行されていなかったり Oracle パブリッシャーに接続できなかったりしてもトランザクション セットが定期的に作成されるようにします。
トランザクション セットは、Xactset ジョブ (レプリケーションによってインストールされる Oracle データベース ジョブ) で作成できます。Xactset ジョブは、ログ リーダー エージェントと同じメカニズムを使ってトランザクション セットを作成します。 このジョブが実行されるたびに、新しいトランザクション セットが作成されます。 次にログ リーダー エージェントが実行されたときに、それまでに作成されたトランザクション セットが処理されます。 既存のトランザクション セットがすべて処理された後にまだ保留中の変更がある場合は、ログ リーダー エージェントが 1 つ以上のトランザクション セットを追加で作成して処理します。
トランザクション セット ジョブを構成するには、「Oracle パブリッシャー用のトランザクション セット ジョブの構成 (レプリケーション Transact-SQL プログラミング)」を参照してください。