レプリケーションのスクリプト作成
トポロジ内のすべてのレプリケーション コンポーネントを、障害時の復旧計画の一環としてスクリプトに記述しておく必要があります。これらのスクリプトは繰り返し行う作業の自動化にも使用できます。スクリプトには、パブリケーションやサブスクリプションなどスクリプト化されたレプリケーション コンポーネントを実装するために必要な Transact-SQL システム ストアド プロシージャが格納されます。スクリプトはウィザード (パブリケーションの新規作成ウィザードなど) で作成することができ、コンポーネントの作成後、MicrosoftSQL Server Management Studio を使用して作成することもできます。SQL Server Management Studio または sqlcmd を使用すると、スクリプトの表示、変更、および実行を行うことができます。スクリプトをバックアップ ファイルと共に保存して、レプリケーション トポロジの再構成が必要な場合に使用できます。
プロパティが変更された場合は、コンポーネントのスクリプトを再作成する必要があります。トランザクション レプリケーションでカスタム ストアド プロシージャを使用している場合は、各プロシージャのコピーをスクリプトと共に保存しておく必要があります。プロシージャが変更された場合は、プロシージャのコピーも更新する必要があります (スキーマやアプリケーション要件が変更されると、通常、プロシージャが更新されます)。カスタム プロシージャの詳細については、「トランザクション アーティクルに変更を反映する方法の指定」を参照してください。
パラメータ化されたフィルタを使用するマージ パブリケーションの場合、パブリケーション スクリプトには、データ パーティションを作成するためのストアド プロシージャの呼び出しが含まれます。このスクリプトによって、作成されたパーティションの参照、および必要に応じて 1 つ以上のパーティションを再作成する方法を利用できます。
スクリプトによるタスクの自動化の例
たとえば、Adventure Works Cycles では、リモートの営業部門にデータを配信するマージ レプリケーションを実装しているとします。営業担当者は、プル サブスクリプションを使用して自分の販売区域内の顧客に関連するすべてのデータをダウンロードします。オフラインで作業しているときには、データを更新したり、新しい顧客や受注を入力することができます。Adventure Works Cycles には、さまざまな区域に 50 人を超える営業担当者がいるため、サブスクリプションの新規作成ウィザードを使用してサブスクライバごとにさまざまなサブスクリプションを作成するには時間がかかります。代わりに、レプリケーション管理者は次の手順を実行します。
営業担当者または販売区域に基づいたパーティションで必要なマージ パブリケーションを設定します。
1 つのサブスクライバに対して 1 つのプル サブスクリプションを作成します。
作成したプル サブスクリプションに基づいてスクリプトを生成します。
スクリプトを変更し、サブスクライバの名前などの値を変更します。
複数のサブスクライバでスクリプトを実行し、必要なプル サブスクリプションを生成します。
レプリケーションのスクリプトを作成するには
- SQL Server Management Studio: レプリケーション オブジェクトのスクリプトを作成する方法 (SQL Server Management Studio)