レプリケーション トポロジにおける複数バージョンの SQL Server の使用
更新 : 2007 年 9 月 15 日
レプリケーションでは、複数のバージョンの Microsoft SQL Server にデータをレプリケートできます。このトピックの内容は次のとおりです。
- サポートされる SQL Server バージョン
- 以前のバージョンと SQL Server 2005 のデータ型のマッピング
- 以前のバージョンでレプリケートされたデータベースの復元
- マージ パブリケーションの互換性レベル
Microsoft SQL Server 2005 Express Edition および Microsoft SQL Server Compact Edition にデータをレプリケートする方法については、「SQL Server Express へのデータのレプリケート」および「SQL Server Compact Edition へのデータのレプリケート」を参照してください。SQL Server の各エディションでサポートされる機能については、「SQL Server 2005 の各エディションがサポートする機能」を参照してください。
メモ : |
---|
このトピックは、セットアップ ヘルプ ドキュメントおよび SQL Server 2005 Books Online で参照できます。セットアップ ヘルプ ドキュメントで太字で表示されているトピック リンクは、SQL Server 2005 Books Online でのみ参照可能なトピックを示しています。 |
サポートされる SQL Server バージョン
SQL Server 2005 のレプリケーション トポロジに追加できるのは、SQL Server Version 7.0 Service Pack 4 (SP4) 以降です。SQL Server 2000 を使用する場合は、SP3 以降が必要です。
異なるバージョンの SQL Server 間でレプリケートを行う場合は、使用している最も古いバージョンの機能しか使用できないことがあります。たとえば、ディストリビュータを SQL Server 2005 のインスタンスにアップグレードしても、SQL Server 2000 のインスタンスを実行するパブリッシャと、SQL Server 7.0 のインスタンスを実行するサブスクライバがある場合は、SQL Server 7.0 の一般的な機能とレプリケーション機能しか使用できません。
メモ : |
---|
SQL Server の 64 ビット環境と 32 ビット環境には同じディスク上ストレージ形式が使用されているため、レプリケーション トポロジには、32 ビット環境で動作するサーバー インスタンスと 64 ビット環境で動作するサーバー インスタンスを混在させることができます。 |
どのタイプのレプリケーションの場合も、ディストリビュータのバージョンがパブリッシャのバージョン以上である必要があります (多くの場合、ディストリビュータはパブリッシャと同じインスタンスです)。SQL Server 2005 は、SQL Server 2005 および SQL Server 2000 のリモート ディストリビュータとして使用することはできますが、SQL Server 7.0 のリモート ディストリビュータとして使用することはできません。次の表は、同じトポロジに追加可能な SQL Server のバージョンについての補足情報です。SQL Server の各種エディションでサポートされているレプリケーション機能の詳細については、「SQL Server 2005 の各エディションがサポートする機能」を参照してください。
トランザクション レプリケーションとスナップショット レプリケーションで読み取り専用サブスクライバを設定する場合
ディストリビュータ |
SQL Server 7.0 |
SQL Server 2000 |
SQL Server 2005 |
パブリッシャ |
SQL Server 7.0 |
SQL Server 7.0 SQL Server 2000 |
SQL Server 2000 SQL Server 2005 |
サブスクライバ |
SQL Server 7.0 SQL Server 2000 SQL Server 2005 |
SQL Server 7.0 SQL Server 2000 SQL Server 2005 |
SQL Server 7.0 SQL Server 2000 SQL Server 2005 |
上の表は、トランザクション パブリケーションの読み取り専用サブスクライバは、2 つのパブリッシャ バージョンのうちどちらでも使用できることを示しています。たとえば、SQL Server 7.0 のパブリッシャには SQL Server 2005 のサブスクライバを設定することができ、SQL Server 2005 のパブリッシャは SQL Server 7.0 のサブスクライバを設定することができます。
トランザクション レプリケーションで更新サブスクライバを設定する場合
ディストリビュータ |
SQL Server 7.0 |
SQL Server 2000 |
SQL Server 2005 |
パブリッシャ |
SQL Server 7.01 |
SQL Server 7.01 SQL Server 20002 |
SQL Server 20002 SQL Server 20053 |
サブスクライバ |
SQL Server 7.0 |
SQL Server 7.0 SQL Server 2000 SQL Server 2005 |
SQL Server 7.0 SQL Server 2000 SQL Server 2005 |
1 SQL Server 7.0 パブリッシャの場合、SQL Server 7.0 のサブスクライバのみサポートされます。
2 SQL Server 2000 パブリッシャの場合、SQL Server 7.0、SQL Server 2000、および SQL Server 2005 のサブスクライバがサポートされます。
3 SQL Server 2005 パブリッシャの場合、SQL Server 2000 および SQL Server 2005 のサブスクライバがサポートされます。
マージ レプリケーション
ディストリビュータ |
SQL Server 7.0 |
SQL Server 2000 |
SQL Server 2005 |
パブリッシャ |
SQL Server 7.0 |
SQL Server 7.0 SQL Server 2000 |
SQL Server 2000 SQL Server 2005 |
サブスクライバ |
SQL Server 7.0 |
SQL Server 7.0 SQL Server 2000 |
SQL Server 7.0 SQL Server 2000 SQL Server 2005 |
上記の表は、マージ パブリケーションのサブスクライバは、パブリッシャのバージョン以下であればどのバージョンでも使用できることを示しています。以前のバージョンに対する互換性の詳細については、このトピックの「マージ パブリケーションの互換性レベル」を参照してください。
SQL Server 7.0 と SQL Server Management Studio
SQL Server Management Studio は、SQL Server 2000 以降を実行するインスタンスに接続できます。SQL Server 7.0 を実行するサブスクライバについては、次の点に注意してください。
- サブスクリプションとパブリケーションは、SQL Server 7.0 ツール、SQL Server 2000 ツール、SQL 分散管理オブジェクト (SQL-DMO)、またはストアド プロシージャで作成できます。
- プル サブスクリプションのエージェントを Management Studio またはレプリケーション モニタから起動することはできません。エージェントは、サブスクリプションの作成スケジュールに合わせて実行するよう指定するか、コマンド プロンプトから必要に応じて実行することができます。
SQL Server 7.0 を実行するサブスクライバ用のサブスクリプションを作成すると、Management Studio とレプリケーション モニタに表示されます。サブスクリプションとパブリケーションの作成方法およびエージェントの実行方法については、SQL Server 7.0 Books Online を参照してください。
SQL Server 2005 のディストリビュータと SQL Server 2000 を実行するパブリッシャの使用
SQL Server 2005 は、SQL Server 2000 を実行するパブリッシャのリモート ディストリビュータとして使用できます。この場合、エージェント プロパティを変更するには、ディストリビュータで次のストアド プロシージャを実行します。これらのプロシージャを使用すると、SQL Server 2005 で新しく採用されたプロパティを変更できるようになります。
- sp_MSchange_snapshot_agent_properties (Transact-SQL)
- sp_MSchange_logreader_agent_properties (Transact-SQL)
- sp_MSchange_distribution_agent_properties (Transact-SQL)
- sp_MSchange_merge_agent_properties (Transact-SQL)
パブリッシャとディストリビュータが SQL Server 2000 を実行する場合は、sp_changedistpublisher と sp_changesubscriber を使用して、エージェントが接続を行う際に使用する資格情報を変更できます。ただし、ディストリビュータを SQL Server 2005 にアップグレードした場合は、これらのプロシージャを使用しても、既存のエージェント ジョブで使用されている資格情報を変更することはできません (これらのプロシージャは、プロシージャの呼び出し後に作成されるエージェント ジョブに影響します)。既存のエージェント ジョブの資格情報を変更するには、前述の 4 つのプロシージャのいずれかを呼び出します。
以前のバージョンと SQL Server 2005 のデータ型のマッピング
SQL Server 2005 では、新たに多数のデータ型が採用されています。SQL Server 2005 ディストリビュータからのプッシュ サブスクリプションを使用する場合は、これらの新しいデータ型がサブスクライバ側の互換データ型とマッピングされます。
SQL Server 2005 のデータ型 | SQL Server 2000 または SQL Server 7.0 のデータ型 |
---|---|
xml |
ntext |
CLR ユーザー定義型 (UDT) |
image |
varchar(max) |
text |
nvarchar(max) |
ntext |
varbinary(max) |
image |
SQL Server の以前のバージョンを実行するサブスクライバに varchar(max) 型、nvarchar(max) 型、varbinary(max) 型、xmlL 型、および CLR ユーザー定義型をレプリケートする場合は、これらの型が適切にマップされていることを確認する必要があります (これは、マージ レプリケーションのアーティクルでは既定で行われます)。これらのデータ型のマッピング動作は、sp_addarticle および sp_addmergearticle のスキーマ オプション 0x20、0x10000000、および 0x20000000 によって制御されます。スキーマ オプションの設定方法の詳細については、「スキーマ オプションを指定する方法 (SQL Server Management Studio)」および「スキーマ オプションを指定する方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
SQL Server 2000 では 2 種類のデータ型が採用されており、これらは SQL Server 7.0 の互換データ型とマッピングされています。SQL Server 2005 または SQL Server 2000 ディストリビュータからのプッシュ サブスクリプションを使用する場合は、これらの新しいデータ型がサブスクライバ側の互換データ型とマッピングされます。
SQL Server 2005 または SQL Server 2000 のデータ型 | SQL Server 7.0 のデータ型 |
---|---|
SQL_VARIANT |
IMAGE |
BIGINT |
DECIMAL |
以前のバージョンでレプリケートされたデータベースの復元
以前のバージョンでレプリケートされたデータベースのバックアップを復元するときは、レプリケーション設定を維持することができます。バックアップを作成したサーバーおよびデータベースと同じ名前のサーバーおよびデータベースに対してバックアップを復元する場合、または、KEEP_REPLICATION オプションを指定した場合は、レプリケーション設定が維持されます。詳細については、「RESTORE (Transact-SQL)」を参照してください。データベースを復元した後、現在の製品レベルでレプリケーションをサポートするには、sp_vupgrade_replication (Transact-SQL) を実行してスキーマとシステム データをアップグレードします。
以前のバージョンで作成したバックアップを復元した場合もレプリケーションは維持されますが、アップグレード オプションとして使用されることはまれです。製品アップグレードの一環として、レプリケートされたデータベースをアップグレードするか、データベースおよびレプリケーション構成を一連のスクリプトを使って再構築するのが一般的です。
マージ パブリケーションの互換性レベル
マージ レプリケーションでは、パブリケーションの互換性レベルを使用して、所定のデータベース内のパブリケーションで使用できる機能を判断します。この値の範囲は、70RTM (Service Pack がインストールされていない SQL Server 7.0) ~ 90RTM です。互換性レベルを指定するには、次のものを使用します。
- sp_addmergepublication の @publication_compatibility_level パラメータ。詳細については、「パブリケーションの互換性レベルの設定 (レプリケーション Transact-SQL プログラミング)」を参照してください。
- パブリケーションの新規作成ウィザードの [サブスクライバの種類] ページ。このウィザードの実行方法の詳細については、「パブリケーションを作成してアーティクルを定義する方法 (SQL Server Management Studio)」を参照してください。
- [パブリケーション プロパティ - <Publication>] ダイアログ ボックスの [全般] ページ。詳細については、「マージ パブリケーションの互換性レベルを設定する方法 (SQL Server Management Studio)」を参照してください。
次の機能では、90RTM 以上の互換性レベルが必要です。
- 論理レコード。詳細については、「論理レコードによる関連行への変更のグループ化」を参照してください。
- サブスクライバのアップロード オプション。詳細については、「ダウンロード専用アーティクルを使用したマージ レプリケーションのパフォーマンス最適化」を参照してください。
- 重複しないパーティション。詳細については、「パラメータ化された行フィルタ」を参照してください。
- ビジネス ロジック ハンドラ。詳細については、「マージ同期中のビジネス ロジックの実行」を参照してください。
- ALTER <OBJECT> ステートメントを使用したスキーマ変更。詳細については、「パブリケーション データベースでのスキーマの変更」を参照してください。
次の機能は、互換性レベルには依存しませんが、SQL Server 2005 に付属のマージ エージェントを必要とします。以前のバージョンの SQL Server 関数を実行するサブスクライバは、この機能が無効になっているかのように動作します。
- 事前計算されたパーティション。詳細については、「事前計算済みパーティションによるパラメータ化されたフィルタのパフォーマンス最適化」を参照してください。
- Web による同期。詳細については、「マージ レプリケーションの Web 同期」を参照してください。
- 並列フェーズ エージェント (マージ エージェントに対して -ParallelUploadDownload を指定)。詳細については、「レプリケーション マージ エージェント」を参照してください。
- パラメータ化フィルタを使用するパブリケーション用の新しいスナップショット機能。次のことが可能です。
- パーティション用にスナップショットが使用できない場合、サブスクライバがスナップショットを要求できる。
- 管理者がスナップショットの事前生成や生成スケジュールの設定を実行できる。
- FTP を使用して、パラメータ化されたスナップショットを配信できる。
詳細については、「パラメータ化されたフィルタを使用したマージ パブリケーションのスナップショット」および「FTP によるスナップショットの転送」を参照してください。
- レプリケーション モニタで改善された履歴のログ記録およびアーティクル レベルの統計。詳細については、「サブスクリプションの情報を表示し、タスクを実行する方法 (レプリケーション モニタ)」を参照してください。
SQL Server 2005 におけるパブリケーションの互換性レベルの動作
パブリケーションの互換性レベルの動作を理解することは重要です。
- パブリケーションの互換性レベルは、データベースの互換性レベルとは関係ありません。
- sp_addmergepublication またはレプリケーション管理オブジェクト (RMO) を使用してパブリケーションを作成する場合は、既定によりパブリケーションの互換性レベルが 80RTM に設定されます。パブリケーションの新規作成ウィザードでパブリケーションを作成する場合は、ウィザードの [サブスクライバの種類] ページで選択したオプションに基づいてパブリケーションの互換性レベルが決定されます。
- 以前のバージョンの SQL Server では、高い互換性レベルを必要とする機能を有効にすると、パブリケーションの互換性レベルが自動的に引き上げられました。SQL Server 2005 では、パブリケーションの互換性レベルを手動で 90RTM に設定してから、その互換性レベルを必要とする機能を有効にする必要があります。
SQL Server 7.0 からパブリッシャをアップグレードした後、互換性レベル 80RTM を必要とする機能を 1 つ以上選択すると、互換性レベルが自動的に引き上げられます。 - パブリケーションの互換性レベルを下げることができるのは、スナップショット エージェントが起動しておらず、かつパブリケーションへのサブスクリプションが存在しない場合のみです。
- 同一データベース内のパブリケーションはすべて、同じ互換性レベルにする必要があります。この要件により、次のような結果になります。
- 低めの互換性レベル (80RTM など) を持つパブリケーションがデータベースに 1 つ含まれていて、レベル 90RTM の別のパブリケーションを同じデータベースに追加する必要がある場合は、最初のパブリケーションのレベルを手動で引き上げてから、新しいパブリケーションを追加する必要があります。
- 低めの互換性レベルを持つパブリケーションがデータベースに 2 つ以上含まれていて、レベル 90RTM の別のパブリケーションを同じデータベースに追加する必要がある場合は、既存のパブリケーションを 1 つ残してそれ以外をすべて削除し、残ったパブリケーションのレベルを 90RTM に引き上げ、削除したパブリケーションをレベル 90RTM で再作成してから、レベル 90RTM の新しいパブリケーションを作成する必要があります。
参照
概念
レプリケーションの旧バージョンとの互換性
レプリケートされたデータベースのアップグレード
その他の技術情報
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2007 年 9 月 15 日 |
|
2006 年 4 月 14 日 |
|