Oracle パブリッシャーのパフォーマンス チューニング

適用対象: SQL Server

Oracle のパブリッシング アーキテクチャは、 Microsoft SQL Server のパブリッシング アーキテクチャに似ています。したがって、 「レプリケーションの全般的パフォーマンスの補正」で紹介されているチューニング全般の推奨事項に従うことが、Oracle レプリケーションのパフォーマンスをチューニングするための第一歩となります。

それに加えて、Oracle パブリッシャーには、パフォーマンスに関連するオプションが 2 つあります。

  • パブリッシング オプションとして、[Oracle (完全)] または [Oracle (ゲートウェイ)] のいずれか適切な方を指定します。

  • パブリッシャーの変更を適切な間隔で処理するようにトランザクション セット ジョブを構成します。

適切なパブリッシング オプションの指定

[Oracle (ゲートウェイ)] を選択すると、[Oracle (完全)] より高いパフォーマンスが得られますが、このオプションは、複数のトランザクション パブリケーションで同じテーブルをパブリッシュする場合は使用できません。 テーブルを表示できるのは、最大で 1 つのトランザクション パブリケーションと、任意の数のスナップショット パブリケーションになります。 複数のトランザクション パブリケーションで同じテーブルをパブリッシュする必要がある場合は、[Oracle (完全)] を選択します。 このオプションは、 SQL Server ディストリビューターで Oracle パブリッシャーを識別する際に指定します。 詳細については、「 Create a Publication from an Oracle Database」を参照してください。

トランザクション セット ジョブの構成

パブリッシュされた Oracle テーブルに対する変更は、トランザクション セットと呼ばれるグループで処理されます。 トランザクションの一貫性を確保するために、各トランザクション セットはディストリビューション データベースで 1 つのトランザクションとしてコミットされます。 トランザクション セットが大きくなりすぎると、1 つのトランザクションとして効率的に処理できなくなります。

既定では、トランザクション セットはログ リーダー エージェントによってのみ作成されます。 変更アクティビティが頻繁に行われているときにログ リーダー エージェントが実行されていなかったり、 SQL Server ディストリビューターから Oracle パブリッシャーに接続できなかったりすると、トランザクション セットが極端に大きくなる可能性があります。 この問題を防ぐには、ログ リーダー エージェントが実行されていなかったり Oracle パブリッシャーに接続できなかったりしてもトランザクション セットが定期的に作成されるようにします。

トランザクション セットは、Xactset ジョブ (レプリケーションによってインストールされる Oracle データベース ジョブ) で作成できます。Xactset ジョブは、ログ リーダー エージェントと同じメカニズムを使ってトランザクション セットを作成します。 このジョブが実行されるたびに、新しいトランザクション セットが作成されます。 次にログ リーダー エージェントが実行されたときに、それまでに作成されたトランザクション セットが処理されます。 既存のトランザクション セットがすべて処理された後にまだ保留中の変更がある場合は、ログ リーダー エージェントが 1 つ以上のトランザクション セットを追加で作成して処理します。

トランザクション セット ジョブを構成するには、「Configure the Transaction Set Job for an Oracle Publisher」(Oracle パブリッシャー用にトランザクション セット ジョブを構成する方法 (レプリケーション Transact-SQL プログラミング)) を参照してください。