SQL Server 2000 Desktop Engine (MSDE 2000) でレプリケーションを使用する方法

文書翻訳 文書翻訳
文書番号: 324992 - 対象製品
この記事は、以前は次の ID で公開されていました: JP324992
すべて展開する | すべて折りたたむ

目次

概要

Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) は、SQL Server 2000 リレーショナル データベース エンジンの再配布可能なバージョンです。アプリケーション開発者は、MSDE 2000 を使用してアプリケーションおよびデータを格納するデータベースを配布できます。また、MSDE 2000 ではレプリケーションをサポートしています。レプリケーションは、アプリケーション開発者が使用できる非常に役立つ機能です。特にユーザーが中央サーバーから切断されているときに、データのローカル コピーを中央サーバーとマージしたい場合、この機能が非常に役立ちます。ただし、MSDE 2000 レプリケーションにはいくつかの制限事項および注意事項があります。この資料では、MSDE 2000 レプリケーションの注意事項について説明し、MSDE 2000 を使用してレプリケーションを管理する方法に関する情報を提供します。

通常のバージョンの SQL Server でレプリケーションを使用している場合、すべての SQL Server の機能およびレプリケーション機能を利用できます。MSDE 2000 は、すべてのバージョンの SQL Server 間でレプリケートできます。ただし、レプリケーション トポロジの一部として MSDE 2000 を使用している場合、若干の制限事項があります。それらの制限事項のいくつかは MSDE 2000 に固有の制限事項により発生するものであり、その他の制限事項は MSDE 2000 およびレプリケーションのデザイン上の制限事項です。

レプリケーション固有の制限事項と注意事項

  • MSDE 2000 はパブリッシャまたはディストリビュータとしても、サブスクライバとしても機能し、MSDE バージョンの SQL Server および通常のバージョンの SQL Server 間でレプリケートできます。また、MSDE 2000 は、トランザクション パブリケーションには使用できませんが、スナップショット レプリケーションおよびマージ レプリケーションのパブリッシャとして、また 3 種類すべてのパブリケーションのサブスクライバとして使用することができます。
  • MSDE 2000 ではリモート ディストリビュータを使用できません。MSDE 2000 パブリッシャは、ディストリビュータと同じサーバーを使用する必要があります。
  • Repldata フォルダは MSDE 2000 のセットアップ中には作成されません。そのため、デフォルトのスナップショット フォルダを使用してパブリケーションを設定しようとすると、エラーが発生します。デフォルトのスナップショットの場所を使用するには、MSSQL フォルダまたは MSSQL$InstanceName フォルダの下に Repldata フォルダを作成し、その後パブリケーションを作成します。

MSDE 2000 固有の制限事項と注意事項

  • MSDE 2000 は、データベースのサイズを 2 GB に制限しています。MSDE がレプリケーション トポロジの一部である場合、レプリケートされたデータベースのサイズは 2 GB に制限されます。MSDE 2000 がサブスクライバの場合にデータベースのサイズが 2 GB を超えると、レプリケーション エージェントでエラーが発生します。このような場合、サブスクライバを通常のバージョンの SQL Server にアップグレードすることを検討してください。 MSDE 2000 から通常の SQL Server Edition にアップグレードする方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    325023 [INFO] SQL Server Desktop Engine を SQL Server にアップサイズする
  • MSDE 2000 への接続数は、5 個に最適化されています。この設定により、MSDE 2000 がパブリッシャである場合にパブリケーションに対して多数のサブスクライバが存在しているか、または MSDE 2000 が複数のパブリケーションへのサブスクライバである場合、パフォーマンスに影響を与えることがあります。

MSDE 2000 をパブリッシャまたはディストリビュータとして使用する

MSDE 2000 がレプリケーション トポロジの一部である場合、MSDE 2000 はパブリッシャかディストリビュータのいずれか、またはサブスクライバとして機能します。MSDE 2000 をパブリッシャまたはディストリビュータとして使用している場合、以下の制限事項を考慮してください。
  • ディストリビュータとパブリッシャは、常に同じコンピュータです。パブリケーションがマージ パブリケーションの場合、パブリッシャまたはディストリビュータ側で複数のスレッドが生成され、マージ処理が行われます。パブリケーションに対して複数のサブスクライバが存在する場合、パブリッシャ側で生成されるスレッドの数は、何倍にも増加することがあります。この現象が発生した場合、MSDE 2000 固有の制限事項によりパフォーマンスの問題が発生することがあります。
  • 多数のサブスクライバが存在するレプリケーション環境では、MSDE 2000 の代わりに通常のバージョンの SQL Server をパブリッシャまたはディストリビュータとして使用することをお勧めします。

MSDE 2000 をサブスクライバとして使用する

MSDE 2000 は、主にサーバーから切断されている状況で使用されます。そのため、通常、MSDE 2000 はレプリケーション トポロジでマージ パブリケーションに対するサブスクライバとして機能します。MSDE 2000 をサブスクライバとして使用している場合に発生する典型的な問題を以下に示します。
  • サブスクライブしているデータベースのサイズが上限の 2 GB を超える。
  • 複数のサブスクライバを使用すると、MSDE 2000 に負荷がかかり、MSDE 2000 のパフォーマンスが制限されることがある。

ライセンスの問題

MSDE 2000 をスタンドアロン モードで使用する場合、ライセンスは不要です。ただし、MSDE を通常のバージョンの SQL Server が含まれるレプリケーション トポロジの一部として使用し、サーバーがプロセッサ数モードではなく接続クライアント数モードの場合は、各 MSDE 2000 サブスクライバはクライアント アクセス ライセンス (CAL) を保持している必要があります。

SQL Server のライセンスに関する詳細については、次のマイクロソフト Web サイトを参照してください。
http://www.microsoft.com/japan/sql/evaluation/license/

MSDE 2000 でレプリケーションを管理する

通常のバージョンの SQL Server では、SQL Server Enterprise Manager を使用してレプリケーションを管理します。パブリケーションおよびサブスクリプションを作成するタスクは、通常、SQL Server Enterprise Manager のレプリケーション ユーザー インターフェイスを使用して実行されます。MSDE 2000 には SQL Server Enterprise Manager が含まれていないため、カスタム プログラムを使用してレプリケーションを管理する必要があります。SQL Server Enterprise Manager を利用できるコンピュータがあり、MSDE 2000 を SQL Server Enterprise Manager に登録できる場合、SQL Server Enterprise Manager を使用してレプリケーションを管理できます。

既に説明したように、MSDE 2000 はパブリッシャまたはサブスクライバとして機能しますが、多くの場合、サブスクライバとして使用されます。次のセクションでは、MSDE 2000 サブスクリプションの作成方法および管理方法について説明します。

MSDE 2000 にサブスクリプションを作成する方法

MSDE 2000 サブスクライバにサブスクリプションを作成するには、いくつかの方法があります。以下の方法では、MSDE 2000 が SQL Server Enterprise Manager に登録されていないことを前提としています。
  • Windows 同期マネージャ
  • レプリケーション ActiveX コントロール
  • SQL-DMO レプリケーション オブジェクトを使用したレプリケーションの管理
  • OSQL コマンド ライン ユーティリティを使用したレプリケーション ジョブの追加

Windows 同期マネージャ

Windows 同期マネージャは、Microsoft Windows 2000 と、Microsoft Internet Explorer 5.0 を実行している任意のコンピュータで使用できるユーティリティです。スナップショット レプリケーション、トランザクション レプリケーション、またはマージ レプリケーションを使用している場合、Windows 同期マネージャを使用して、Microsoft SQL Server 2000 のインスタンス間でデータを同期または配布できます。Windows 同期マネージャの詳細については、SQL Server 2000 Books Online の「Windows 同期マネージャ」を参照してください。

: Windows 同期マネージャを使用すると、匿名プル サブスクリプションのみを作成できます。

サブスクリプションを作成するには、以下の手順を実行します。
  1. Windows 同期マネージャを起動します。[スタート] ボタンをクリックして、[プログラム]、[アクセサリ] を順にポイントし、[同期] をクリックします。[サブスクリプションを作成するには、これを選択し、[プロパティ] をクリックします] をクリックし、[プロパティ] をクリックします。
  2. [サブスクリプションの新規作成] ウィンドウには、以下の 3 つのオプションが表示されます (手作業でサブスクリプションを追加する場合は、3 つ目のオプションを使用します)。以下のいずれかのオプションをクリックし、[OK] をクリックします。
    • パブリケーションの Active Directory を参照して作成
    • SQL Server サブスクリプション データベースをアタッチして作成
    • パブリケーションとサブスクリプションの情報を手作業で指定して作成
  3. [匿名サブスクリプションの作成] ウィンドウで、サブスクリプションおよびパブリケーションに関する情報を入力します。
  4. [OK] をクリックします。次に Windows 同期マネージャを起動すると、[Microsoft SQL Server 2000] の下に作成したサブスクリプションが表示されます。
  5. サブスクリプションを同期するには、同期するサブスクリプションのチェック ボックスをオンにし、[同期] をクリックします。
: Active Directory にパブリケーションの一覧を保持している場合、またはパブリケーションに対してアタッチ可能なサブスクリプションを作成できる場合は、1 つ目または 2 つ目のオプションを使用します。Active Directory パブリケーションおよびアタッチ可能なサブスクリプションの詳細については、SQL Server 2000 Books Online の「Active Directory サービス」および「サブスクリプション データベースのアタッチ」を参照してください。

サブスクリプションを作成後、Windows 同期マネージャで [プロパティ] をクリックして、作成したサブスクリプションを管理できます。この操作により、サブスクリプションの再初期化と削除、およびその他の変更を実行できます。

Windows 同期マネージャの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
292442 プル サブスクライバで Windows 同期マネージャを使用する方法

レプリケーション ActiveX コントロール

多くの場合、MSDE 2000 はユーザーのコンピュータ上に配置されているアプリケーション用のサーバーとして使用されます。このような状況でレプリケーションが必要となる場合、アプリケーションでレプリケーション ActiveX コントロールを使用して MSDE 2000 サブスクライバへのレプリケーションを管理できます。

配布するアプリケーションでは、レプリケーション ActiveX オブジェクトを使用して、マージ パブリケーション、トランザクション パブリケーション、またはスナップショット パブリケーションに対してサブスクリプションを作成できます。さらに、これらのオブジェクトのメソッドおよびプロパティを使用して、これらのサブスクリプションを管理できます。たとえば、Microsoft Visual Basic アプリケーションを配置しており、SQL Server を実行している中央サーバーに対してデータをレプリケートする必要がある場合、サブスクリプションを作成するアプリケーションにコードを追加し、同期を実行できます。

レプリケーション ActiveX コントロールを使用してサブスクリプションを作成および管理し、トランザクション レプリケーションおよびスナップショット レプリケーションのマージを実行する方法を示すサンプル アプリケーションを参照するには、SQL Server 2000 Books Online の「ActiveX コントロールを使用したレプリケーション アプリケーションの開発」を参照してください。

SQL-DMO レプリケーション オブジェクトを使用したレプリケーションの管理

SQL 分散管理オブジェクト (SQL-DMO) は、Microsoft SQL Server データベースおよびレプリケーション管理をカプセル化したオブジェクトのコレクションです。Microsoft Visual C++ または Microsoft Visual Basic を使用してアプリケーションを作成し、SQL-DMO オブジェクトを使用してレプリケーションを設定および管理できます。

SQL-DMO および SQL-DMO を使用したアプリケーション開発の詳細については、SQL Server 2000 Books Online の「Developing SQL-DMO Applications」を参照してください。

OSQL コマンド ライン ユーティリティを使用したレプリケーション ジョブの追加

OSQL は MSDE 2000 のインストールに含まれるコマンド ライン ユーティリティです。このツールを使用して SQL Server に接続し、クエリおよびスクリプトを実行できます。 OSQL の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
325003 [HOWTO] Osql ユーティリティを使用した SQL Server Desktop Engine (MSDE 2000) の管理方法
また、Transact-SQL ステートメントを使用して、SQL Server のパブリケーションへのプル サブスクリプションを直接作成できます。ストアド プロシージャを使用してサブスクリプションを作成すると、ジョブがサブスクライバに作成されます。MSDE 2000 にはクライアント ツールが含まれていないので、ストアド プロシージャを使用してジョブを停止および開始する必要があります。

: この例は、サブスクリプションが匿名で、かつマージ パブリケーションに対するサブスクリプションであることを前提としています。
  1. MSDE 2000 サブスクライバから、OSQL を使用してサブスクライブしているデータベースに接続します。
  2. sp_addmergepullsubscription ストアド プロシージャを使用して、匿名サブスクリプションを追加します。
  3. sp_addmergepullsubscription_agent ストアド プロシージャを使用してマージ エージェント ジョブを追加します。
  4. sp_start_job ストアド プロシージャを使用してジョブを開始します。
sp_addmergepullsubscription @publication =  'pubs',@publisher =  'fastnfurious'  ,@publisher_db =  'pubs'  
,@subscriber_type =  'anonymous' 
 
sp_addmergepullsubscription_agent @name =  'MSDE Sub'  ,@publisher =  'fastnfurious' ,@publisher_db = 'pubs'
,@publication = 'pubs' ,@publisher_security_mode =  0,@publisher_login =  login,@publisher_password =  'strongpassword' 
,@subscriber =  'gash2ksrv'  ,@subscriber_db = 'sub'  ,@subscriber_security_mode =  0  ,@subscriber_login =  'login'  
,@subscriber_password =  'strongpassword'  ,@distributor =  'fastnfurious' 
,@distributor_security_mode =  0,@distributor_login =  'login'

sp_start_job @job_name ='MSDE Sub'
				

: このコードは、ジョブ スケジュールを管理するためのパラメータを含んでいません。また、ジョブの状態を判断するプロシージャも設定されていません。ジョブの状態をイベント ログに記録する場合は、sp_update_job ストアド プロシージャを使用してジョブを変更し、@notify_level_eventlog パラメータを設定します。

これらのストアド プロシージャの詳細については、SQL Server 2000 Books Online で以下のトピックを参照してください。
  • sp_addmergepullsubscription
  • sp_addmergepullsubscription_agent
  • sp_start_job
  • sp_update_job
この資料の前半では、MSDE 2000 サブスクリプションを管理するさまざまな方法について記述しています。これらの方法と異なりますが、MSDE 2000 サブスクライバが SQL Enterprise Manager に登録されている場合、MSDE 2000 サブスクライバ (パブリッシャ) を SQL Server のその他のインスタンスと同様に管理できます。

ディストリビュータとパブリッシャの管理

MSDE 2000 は、パブリッシャおよびディストリビュータとして機能します。

MSDE 2000 でディストリビュータおよびパブリッシャを作成する手順は、通常のバージョンの SQL Server と同様です。
  1. サーバーが SQL Enterprise Manager に登録されている場合、レプリケーション ウィザードを使用してディストリビュータおよびパブリッシャを構成できます。詳細については、SQL Server 2000 Books Online の「レプリケーション ウィザード」を参照してください。
  2. クライアント ツールを利用できない場合は、OSQL コマンド ライン ユーティリティとストアド プロシージャ、または SQL-DMO を使用してディストリビュータおよびパブリッシャを構成できます。

関連情報

更新された SQL Server 2000 Books Online をダウンロードするには、次のマイクロソフト Web サイトを参照してください。
http://www.microsoft.com/downloads/details.aspx?FamilyId=A6F79CB1-A420-445F-8A4B-BD77A7DA194B&displaylang=ja
Microsoft Visual Basic .NET でのレプリケーション ActiveX コントロールの使用方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
319648 Visual Basic .NET を使用して SQL スナップショット コントロールおよび SQL ディストリビューション コントロール プログラムを作成する方法
319647 Visual Basic .NET を使用して SQL マージ コントロール プログラムを作成する方法
MSDE 2000 の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
319930 Microsoft Desktop Engine に接続する方法
241397 Transact-SQL を使用した MSDE データベースのバックアップ方法

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 324992 (最終更新日 2004-07-01) を基に作成したものです。

この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。

プロパティ

文書番号: 324992 - 最終更新日: 2005年9月22日 - リビジョン: 2.1
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 64-bit Edition
キーワード:?
kbhowtomaster KB324992
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com