Oracle パブリッシングの概要
適用対象: SQL Server
Microsoft SQL Server 2005 (9.x) 以降では、Oracle Version 9i を始めとした、Oracle パブリッシャーをレプリケーション トポロジに含めることができます。 パブリッシング サーバーは、Oracle 対応の任意のハードウェアおよびオペレーティング システムに配置できます。 この機能は、既に確立されている SQL Server のスナップショット レプリケーションとトランザクション レプリケーションを基礎としており、同様のパフォーマンスと使い勝手が実現されています。
SQL Server は、トランザクション レプリケーションとスナップショット レプリケーションに対する次の異種シナリオをサポートします。
SQL Server 以外のサブスクライバーへの SQL Server からのデータのパブリッシュ
Oracle に対するデータのパブリッシュには次の制限があります。
シナリオ | 2016 以前 | 2017 以降 |
---|---|---|
Oracle からのレプリケーション | Oracle 10g 以前のみをサポート | Oracle 10g 以前のみをサポート |
Oracle へのレプリケーション | Oracle 12c まで | サポートされていません |
SQL Server 以外のサブスクライバーへの異種レプリケーションは非推奨とされます。 Oracle パブリッシングは非推奨とされます。 データを移動するには、変更データ キャプチャと SSIS を使用してソリューションを作成します。
Oracle のスナップショット レプリケーション
Oracle のスナップショット パブリケーションは、 SQL Server のスナップショット パブリケーションと同じような方法で実装されます。 Oracle パブリケーションに対してスナップショット エージェントが実行されると、エージェントは Oracle パブリッシャーに接続し、パブリケーションの各テーブルを処理します。 各テーブルの処理では、テーブルの行が取得され、スキーマ スクリプトが作成されます。これらは、パブリケーションのスナップショット共有に格納されます。 スナップショット エージェントが実行されるたびにデータの完全なセットが作成されるため、Oracle テーブルにはトランザクション レプリケーションのように変更追跡のトリガーは追加されません。 スナップショット レプリケーションは、パブリッシング システムへの影響を最小限に抑えながらデータを移行するのに便利です。
Oracle のトランザクション レプリケーション
Oracle のトランザクション パブリケーションは、SQL Server のトランザクション パブリッシング アーキテクチャを使用して実装されます。ただし、変更の追跡は、Oracle データベースのデータベース トリガーとログ リーダー エージェントの組み合わせによって行われます。 Oracle トランザクション パブリケーションのサブスクライバーは、スナップショット レプリケーションを使用して自動的に初期化されます。その後の変更はログ リーダー エージェントによって追跡され、変更が発生するとサブスクライバーに配信されます。
Oracle パブリケーションを作成すると、Oracle データベース内のパブリッシュされた各テーブルに対してトリガーと追跡テーブルが作成されます。 パブリッシュされたテーブルのデータが変更されると、テーブルのデータベース トリガーが起動されて、変更された各行の情報がレプリケーション追跡テーブルに挿入されます。 その後、 SQL Server ディストリビューターのログ リーダー エージェントが、そのデータ変更情報をトラッキングテーブルからディストリビューターのディストリビューション データベースへと移動します。 最後に、標準のトランザクション レプリケーションと同じように、ディストリビューション エージェントが変更をディストリビューターからサブスクライバーに移動します。