レプリケートされたデータベースのアップグレード

更新 : 2006 年 7 月 17 日

SQL Server 2005 では、レプリケートされたデータベースを以前のバージョンの SQL Server からアップグレードすることができます。ノードのアップグレード中は、その他のノードでの操作を停止する必要はありません。トポロジでサポートされるバージョンに関して、以下の規則が守られていることを確認してください。

  • SQL Server 2005 のレプリケーション トポロジに追加できるのは、SQL Server Version 7.0 Service Pack 4 (SP4) 以降です。SQL Server 2000 を使用する場合は、Service Pack (SP3) 以降が必要です。
  • ディストリビュータは、パブリッシャのバージョン以上であればどのバージョンでも使用できます (多くの場合、ディストリビュータはパブリッシャと同じインスタンスです)。
  • パブリッシャは、ディストリビュータのバージョン以下であればどのバージョンでも使用できます。
  • サブスクライバのバージョンは、次のように、パブリケーションの種類によって異なります。
    • トランザクション パブリケーションの読み取り専用サブスクライバは、2 つのパブリッシャ バージョンのうちどちらでも使用できます。たとえば、実行されている SQL Server Version 7.0 のパブリッシャは SQL Server 2005 サブスクライバを持つことができ、SQL Server 2005 パブリッシャは SQL Server Version 7.0 サブスクライバを持つことができます。
    • SQL Server 2005 トランザクション パブリケーションの更新可能なサブスクライバは、SQL Server 2000 SP3 以上であればどのバージョンでも使用できます。
    • マージ パブリケーションのサブスクライバは、パブリッシャのバージョン以下であればどのバージョンでも使用できます。
ms143699.note(ja-jp,SQL.90).gifメモ :
このトピックは、セットアップ ヘルプ ドキュメントおよび SQL Server 2005 Books Online で参照できます。セットアップ ヘルプ ドキュメントで太字で表示されているトピック リンクは、Books Online でのみ参照可能なトピックを示しています。

Standard Edition、Workgroup Edition、または Express Edition へのアップグレード

SQL Server 2005 のいずれかのエディションから別のエディションへアップグレードする前に、現在使用している機能がアップグレード先のエディションでサポートされているかどうかを確認します。詳細については、「SQL Server 2005 の各エディションがサポートする機能」の「SQL Server 2005 のレプリケーション機能」を参照してください。

新しいレプリケーション エージェントのセキュリティ モデル

以前のバージョンの SQL Server では、各エージェントは既定で SQL Server エージェント サービス アカウントのコンテキストの下で実行されました。SQL Server 2005 では、各アカウントに対して細かい単位での制御が可能になりました。この各アカウントの下でレプリケーション エージェントが実行され、データベースや他のリソースへの Windows 統合接続が作成されます。エージェントごとに異なるアカウントを指定できます。詳細については、「レプリケーションのセキュリティに関する注意点」および「レプリケーション エージェントのセキュリティ モデル」を参照してください。

トポロジ内で複数のバージョンをアップグレードおよび実行する場合、新しいセキュリティ モデルは次のように影響します。

  • SQL Server 2000 または SQL Server 7.0 で作成されたレプリケーション スクリプトは、セキュリティの機能拡張を活用するために SQL Server 2005 へアップグレードする必要があります。詳細については、「レプリケーション スクリプトをアップグレードする方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
  • 以前のバージョンの SQL Server から SQL Server 2005 へとアップグレードしたディストリビュータまたはサブスクライバは、引き続き SQL Server エージェント アカウントの下で実行されるため、必要以上に多くの特権が設定されている可能性があります。アップグレード後は、必要最小限の特権を持つ個別のアカウントをエージェントに対して指定することをお勧めします。個別のアカウントを指定するには
    1. パブリケーションおよびサブスクリプションをスクリプト化します。
    2. スクリプトの変更を行います。詳細については、「レプリケーション スクリプトをアップグレードする方法 (レプリケーション Transact-SQL プログラミング)」を参照してください。
    3. パブリケーションおよびサブスクリプションを削除します。詳細については、「データとデータベース オブジェクトのパブリッシュ」および「パブリケーションのサブスクライブ」を参照してください。
    4. 変更されたスクリプトを使用してパブリケーションおよびサブスクリプションを再作成します。
      エージェントで必要とされる特権については、「レプリケーション エージェントのセキュリティ モデル」を参照してください。ログインおよびパスワードの管理については、「レプリケーションのログインとパスワードの管理」を参照してください。アップグレード後に作成された新しいレプリケーション構成では、レプリケーション エージェントごとに特定のアカウント構成を行う必要があります。
    ms143699.note(ja-jp,SQL.90).gifメモ :
    ローカル データベース接続で SQL Server 認証を使用するよう構成されているエージェントは、すべて Windows 認証を使用するよう変更されます。ローカル接続は、エージェントと同じコンピュータ上で実行されている SQL Server のインスタンスへの接続であり、エージェントによって行われます。たとえば、マージ エージェントは、プル サブスクリプションの場合はサブスクライバで動作します。したがって、マージ エージェントがサブスクライバに対して行う接続はローカル接続です。
  • 以前のバージョンの SQL Server を実行しているレプリケーション トポロジに参加する場合、前のレプリケーション セキュリティ モデルはそのまま保持されます。次に例を示します。
    • SQL Server 2000 または SQL Server Version 7.0 を実行しているサブスクライバへのプル サブスクリプションでは、マージ エージェントまたはディストリビューションがそのサブスクライバで作成されるため、新しいセキュリティ モデルを使用しません。
    • SQL Server 2005 を実行しているディストリビュータから、SQL Server 2000 または SQL Server Version 7.0 を実行しているサブスクライバへのプッシュ サブスクリプションでは、マージ エージェントまたはディストリビューションがそのディストリビュータで作成されるため、新しいセキュリティ モデルを使用します。
    • SQL Server 2000 または SQL Server Version 7.0 を実行しているパブリッシャと、SQL Server 2005 を実行しているディストリビュータの組み合わせは、エージェントがパブリケーション データベースのコンテキストで作成されるため、新しいセキュリティ モデル (スナップショット エージェント、ログ リーダー エージェント、キュー リーダー エージェント用) を使用しません。

マージ レプリケーションに対するアップグレード後のエージェントの実行

アップグレード後は、マージ パブリケーションごとにスナップショット エージェントを実行し、サブスクリプションごとにマージ エージェントを実行して、レプリケーション メタデータを更新します。サブスクリプションを再初期化する必要がないので、新しいスナップショットを適用する必要はありません。サブスクリプション メタデータは、アップグレード後に最初にマージ エージェントを実行したときに更新されます。つまり、パブリッシャのアップグレード中、サブスクリプション データベースをオンラインのままアクティブにしておくことができます。

マージ レプリケーションでは、パブリケーション データベースおよびサブスクリプション データベース内の多数のシステム テーブルに、パブリケーション メタデータおよびサブスクリプション メタデータが格納されます。スナップショット エージェントを実行すると、パブリケーション メタデータが更新され、マージ エージェントを実行すると、サブスクリプション メタデータが更新されます。生成が必要なのはパブリケーション スナップショットのみです。パラメータ化されたフィルタがマージ パブリケーションで使用される場合は、各パーティションにもスナップショットが必要です。これらのパーティション スナップショットを更新する必要はありません (SQL Server 2000 では、パラメータ化されたフィルタ動的フィルタと呼ばれ、パーティション スナップショット動的スナップショットと呼ばれていました)。

Microsoft SQL Server Management Studio、レプリケーション モニタ、またはコマンド ラインで各エージェントを実行します。スナップショット エージェントの実行の詳細については、次のトピックを参照してください。

マージ エージェントの実行の詳細については、次のトピックを参照してください。

マージ レプリケーションを使用するトポロジで SQL Server をアップグレードした後に、新しい機能を使用する場合は、すべてのパブリケーションのパブリケーション互換性レベルを変更します。詳細については、「レプリケーション トポロジにおける複数バージョンの SQL Server の使用」を参照してください。

マージ レプリケーションの Web 同期

マージ レプリケーションの Web 同期オプションでは、SQL Server レプリケーション リスナ (replisapi.dll) を、同期に使用するインターネット インフォメーション サービス (IIS) サーバーにコピーする必要があります。Web 同期を構成すると、Web 同期の構成ウィザードにより、ファイルが仮想ディレクトリにコピーされます。IIS サーバーにインストールされた SQL Server コンポーネントをアップグレードする場合、replisapi.dll を COM ディレクトリから IIS サーバーの仮想ディレクトリへ手動でコピーする必要があります。Web 同期の構成の詳細については、「Web 同期の構成」を参照してください。

以前のバージョンからレプリケートされたデータベースの復元

以前のバージョンからレプリケートされたデータベースのバックアップを復元するときにレプリケーション設定が保持されるようにするには、バックアップが作成されたサーバーおよびデータベースと同じ名前のサーバーおよびデータベースに復元します。

参照

概念

レプリケーションの旧バージョンとの互換性
レプリケーション トポロジにおける複数バージョンの SQL Server の使用

その他の技術情報

レプリケーションの管理
レプリケーションの機能強化
バージョンとエディションのアップグレード

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 7 月 17 日

変更内容
  • パブリッシャのアップグレード中にサブスクリプション データベースをオンラインのままアクティブにしておくことができるという説明を追加しました。