次の方法で共有


SQL Server レプリケーションの非推奨機能

このトピックでは、SQL Server 2008 でまだ使用できるものの、非推奨となったレプリケーション機能について説明します。これらの機能は SQL Server の今後のリリースで削除される予定です。非推奨機能を新しいアプリケーションで使用しないでください。

あらゆる種類のレプリケーションに影響する非推奨機能

次の機能は、SQL Server 2005 または SQL Server 2008 では非推奨となっています。これらの機能はあらゆる種類のレプリケーションに適用されます。

機能

説明

アタッチ可能なサブスクリプション

この機能は多数のプル サブスクリプションを配置する際に使用でき、マージ レプリケーションでは一般的です。アタッチ可能なサブスクリプションの代わりに次の方法を使用することをお勧めします。

どちらの場合も、スクリプトで多数のサブスクリプションの作成を自動化できます。これには、サブスクリプションを 1 つ作成し、そのスクリプトを作成した後、サブスクライバごとにスクリプトを修正して適用し、それぞれのサブスクリプションを作成します。詳細については、「レプリケーションのスクリプト作成」を参照してください。

サブスクライバの登録

sp_addsubscriber ストアド プロシージャは推奨されません。パブリッシャでサブスクライバを明示的に登録する必要はありません。

SQL 分散管理オブジェクト (SQL-DMO)

既存のコードは引き続き使用できますが、SQL-DMO は SQL Server 2005 および SQL Server 2008 の新機能をサポートしていません。代わりにレプリケーション管理オブジェクト (RMO) を使用してください。詳細については、「レプリケーション管理オブジェクトの概念」を参照してください。

sp_repladdcolumn および sp_repldropcolumn を使用したスキーマ変更

ストアド プロシージャ sp_repladdcolumn および sp_repldropcolumn は非推奨となっています。代わりに、スキーマ変更レプリケーションを使用してください。詳細については、「パブリケーション データベースでのスキーマの変更」を参照してください。

SQL Server 2005 以降のバージョンで採用されたデータ型 (xml、varchar(max)、nvarchar(max)、varbinary(max)、ユーザー定義型 (UDT)、datetime2、time、datetimeoffset、hierarchyid、geometry、geography) の列を追加または削除する処理には、ストアド プロシージャを使用できません。

チェックサム検証

チェックサム検証は使用できません。バイナリ チェックサム検証を使用します。また、行数検証は、Oracle パブリッシャからパブリケーションにサブスクライブするサブスクライバを含め、すべての SQL Server サブスクライバに対して使用できます。詳細については、「レプリケートされたデータの検証」を参照してください。

Active Directory へのパブリケーションの追加

sp_addpublication または sp_addmergepublication の @add_to_active_directory パラメータを使用して Active Directory にパブリケーションを追加することは推奨されません。パブリケーションを Active Directory 内に置くことでパブリケーションにサブスクライブすることはできなくなりました。

-UseInprocLoader パラメータ

ディストリビューション エージェントおよびマージ エージェントにおけるこのパラメータは、XML データ型と互換性がないため非推奨となっています。XML データをレプリケートしない場合は、このパラメータを使用できます。詳細については、「レプリケーション ディストリビューション エージェント」および「レプリケーション マージ エージェント」を参照してください。

ディストリビューション エージェントおよびマージ エージェントの PublisherAddress、PublisherNetwork、DistributorNetwork、および DistributorAddress パラメータ¹

これらのパラメータは、パブリッシャまたはディストリビュータへの接続時に IP アドレスを指定するために使用します。レプリケーション サブシステムではサーバー名を使用して接続が検証されるため、クライアント プロトコルで別名を使用して IP アドレスをサーバー名にマップし、そのサーバー名をエージェントで使用することをお勧めします。

¹  SQL Server 2008 では非推奨。

トランザクション レプリケーションの非推奨機能

SQL Server 2005 または SQL Server 2008 では、次のトランザクション レプリケーション機能が非推奨となっています。

機能

説明

トランザクション パブリケーションに対するサブスクリプションの有効期限

sp_addpublication の @retention プロパティは非推奨となっています。ディストリビューションの最長保有期間 (sp_adddistributiondb の @max_distretention プロパティ) 内に同期しないサブスクリプションには、引き続き非アクティブのマークが付けられ、再初期化が必要となります。保有期間の詳細については、「サブスクリプションの有効期限と非アクティブ化」を参照してください。

トランザクション パブリケーションに対する "No sync" サブスクリプション

sp_addsubscription または sp_addpullsubscription の @sync_type パラメータに対して none の値が指定されている場合は、サブスクリプションが "no sync" サブスクリプションとなります。必要なスキーマとデータが既にサブスクリプション データベース内にあることを指定する場合は、代わりにこのパラメータに対して replication support only の値を指定してください。詳細については、「スナップショットを使用しないトランザクション サブスクリプションの初期化」を参照してください。

ODBC サブスクライバ

SQL Server 以外のサブスクライバに対しては、代わりに OLE-DB を使用してください。サポートされるサブスクライバについては、「SQL Server 以外のサブスクライバ」を参照してください。

変換可能なサブスクリプション

この機能はストアド プロシージャ インターフェイスから使用できますが、ユーザー インターフェイスでは、この機能のサポートは削除されています。この機能を使用するには、SQL Server 2000 データ変換サービス (DTS) がインストールされている必要があります。詳細については、「Integration Services の旧バージョンとの互換性」を参照してください。

スナップショット パブリケーションおよびトランザクション パブリケーションを使用した即時更新およびキュー更新を含む更新可能なサブスクリプション¹

代わりにピア ツー ピア トランザクション レプリケーションを使用することをお勧めします。詳細については、「ピア ツー ピア トランザクション レプリケーション」を参照してください。

ディストリビューション ActiveX コントロール

このコントロールを使用すると、アプリケーションにディストリビューション エージェントを組み込むことができますが、代わりに RMO を使用してください。詳細については、「プル サブスクリプションを同期する方法 (RMO プログラミング)」および「プッシュ サブスクリプションを同期する方法 (RMO プログラミング)」を参照してください。

レプリケーション ディストリビュータ インターフェイス

SQL Server 2000 のレプリケーション ディストリビュータ インターフェイスには、レプリケートされたトランザクションをディストリビュータのディストリビューション データベースに格納するためのインターフェイスが用意されていました。このインターフェイスを使用すると、SQL Server 以外のデータベースからデータをパブリッシュできます (パブリッシャ上で変更内容を追跡するには、追加のカスタム プログラミングが必要です)。この機能のサポートは非推奨となっていますが、SQL Server 2000 からアップグレードしたサーバー上では、既存のコードを引き続き使用できます。詳細については、SQL Server 2000 オンライン ブックの「レプリケーション ディストリビュータ インターフェイス リファレンス」を参照してください。

SQL Server 2005 および SQL Server 2008 では、カスタム プログラミングを行わなくても、Oracle データベースからパブリッシュすることができます。詳細については、「Oracle パブリッシングの概要」を参照してください。

Oracle 8 サブスクライバへのレプリケートと Oracle 8 パブリッシャからのレプリケート¹

サポートされている Oracle のバージョンについては、「Oracle パブリッシングの概要」および「Oracle サブスクライバ」を参照してください。

¹  SQL Server 2008 では非推奨。

マージ レプリケーションの非推奨機能

SQL Server 2005 または SQL Server 2008 では、次のマージ レプリケーション機能が非推奨となっています。

機能

説明

代替同期パートナー

代替同期パートナー機能を使用すると、サブスクライバが同期できる代替パブリッシャを指定できます。

SQL Server 2005 および SQL Server 2008 では、代替同期パートナーではなく、データベース ミラーリングと組み合わせてマージ レプリケーションを使用することをお勧めします。詳細については、「レプリケーションおよびデータベース ミラーリング」を参照してください。

マージ パブリケーション1 に対する "No sync" サブスクリプション

sp_addmergesubscription または sp_addmergepullsubscription の @sync_type パラメータに対して none の値が指定されている場合は、サブスクリプションが "no sync" サブスクリプションとなります。この種類のサブスクリプションはマージ レプリケーションにはお勧めできません。

マージ ActiveX コントロール

このコントロールを使用すると、アプリケーションにマージ エージェントを組み込むことができますが、代わりに RMO を使用してください。詳細については、「プル サブスクリプションを同期する方法 (RMO プログラミング)」または「プッシュ サブスクリプションを同期する方法 (RMO プログラミング)」を参照してください。

複数列の UPDATE オプション

マージ レプリケーションで更新を実行すると、1 つの UPDATE ステートメントにあるすべての変更済み列が更新され、未変更列は元の値にリセットされます。また、複数の UPDATE ステートメント (変更された列ごとに 1 つの UPDATE ステートメント) を発行することも可能です。一般に、複数列の UPDATE ステートメントの方が効率的です。

SQL Server 2005 よりも前のバージョンの SQL Server では、1 つの UPDATE ステートメントで複数列の更新を行う場合に処理効率が低下する可能性があるため、@fast_multicol_updateproc アーティクル オプションの値を false に設定することをお勧めします。

  • ほとんどの場合、更新にかかわる列の数は少数です。

  • 更新が発生すると未変更列がリセットされるため、未変更列に対するインデックスのメンテナンスが多くなります。

SQL Server のパフォーマンスが向上したため、このような場合でもこのオプションを使用する必要はありません。

-ParallelUploadDownload パラメータ¹

マージ エージェントのこのパラメータは、マージ レプリケーション セッションで変更のアップロードとダウンロードを同時に実行するために使用します。このパラメータを使用するとパフォーマンスは向上しますが、それ以上に、ネットワークで転送する必要があるメタデータの量が増加します。

sp_addmergepublication¹ の @allow_partition_realignment プロパティ

このパラメータは、行がサブスクライバのパーティションから移動された場合にサブスクライバに送信される必要がある削除操作の制御に使用します。

-ExchangeType パラメータ¹

このパラメータは、マージ エージェントの処理をアップロード フェーズにするか、ダウンロード フェーズにするか、それとも両方のフェーズにするかの制御に使用します。既定値は 3 で、アップロードおよびダウンロードの両方が実行されます。アップロードのみの場合はスキーマ変更や初期化プロセスがレプリケートされないため、アップロードのみは実行しないことをお勧めします。ダウンロードのみの機能は、アーティクルの @subscriber_upload_options を使用して実現できます。詳細については、「sp_addmergearticle (Transact-SQL)」を参照してください。

sp_addmergearticle の @delete_tracking プロパティ¹

このプロパティは、削除がパブリッシャまたはサブスクライバに送信される際の削除の追跡を停止するために使用します。これは、BusinessLogicModule の DeleteHandler を使用して実装できます。詳細については、「マージ同期中のビジネス ロジックの実行」を参照してください。

論理レコード¹

この機能は、関連する行のセットを 1 つのトランザクションで送信するために使用します。ほとんどの場合、この機能を使用するとレプリケーションのパフォーマンスのオーバーヘッドが大幅に増加します。詳細については、「論理レコードによる関連行への変更のグループ化」を参照してください。

¹  SQL Server 2008 では非推奨。