次の方法で共有


SQL レプリケーションのスナップショット初期化オプションの変更

この記事では、スナップショットを使用してサブスクリプションを初期化するときに、いくつかのオプション を変更する方法について説明します。

スナップショット形式

[パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [スナップショット] ページでスナップショット形式を指定します。 このダイアログ ボックスへのアクセスの詳細については、「 パブリケーションのプロパティの表示と変更」を参照してください。

  1. [パブリケーションのプロパティ - <発行>] ダイアログ ボックスの [スナップショット] ページで、パブリッシャーまたはサブスクライバーが SQL Server を実行していない場合は、[ネイティブ SQL Server - すべてのサブスクライバーが SQL Server または文字を実行しているサーバーである必要があります] を選択します。

    このパブリケーションで SQL Server Compact データベースまたは SQL Server 以外のデータベースへのサブスクリプションをサポートする必要がある場合を除き、ネイティブ形式を選択することをお勧めします。

  2. OK をクリックします。

スナップショット フォルダーの場所

既定のスナップショットの場所

既定のスナップショットの場所を指定する (SQL Server Management Studio) ディストリビューションの構成ウィザードの [ スナップショット フォルダー] ページで既定のスナップショットの場所を指定します。 このウィザードの使用方法の詳細については、「 発行と配布の構成」を参照してください。 ディストリビューターとして構成されていないサーバー上にパブリケーションを作成する場合は、パブリケーションの新規作成ウィザードの [ スナップショット フォルダー] ページで既定のスナップショットの場所を指定します。 このウィザードの使用方法の詳細については、「 パブリケーションの作成」を参照してください。

[ディストリビューターのプロパティ - <Distributor>] ダイアログ ボックスの [パブリッシャー] ページで、既定のスナップショットの場所を変更します。 詳細については、「 ディストリビューターとパブリッシャーのプロパティの表示と変更」を参照してください。 [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスで、各パブリケーションのスナップショット フォルダーを設定します。 詳細については、「 パブリケーションのプロパティの表示と変更」を参照してください。

既定のスナップショットの場所を変更する

  1. [ディストリビューターのプロパティ - <Distributor>] ダイアログ ボックスの [パブリッシャー] ページで、既定のスナップショットの場所を変更するパブリッシャーのプロパティ ボタン (...) をクリックします。

  2. [ パブリッシャーのプロパティ - <Publisher> ] ダイアログ ボックスで、[ 既定のスナップショット フォルダー] プロパティの値を入力します。

    スナップショット エージェントには、指定したディレクトリに対する書き込みアクセス許可が必要であり、ディストリビューション エージェントまたはマージ エージェントには読み取りアクセス許可が必要です。 プル サブスクリプションを使用する場合は、\\computername\snapshot などの汎用名前付け規則 (UNC) パスとして共有ディレクトリを指定する必要があります。 詳細については、「Secure the Snapshot Folder」(スナップショット フォルダーのセキュリティ保護) をご覧ください。

  3. OK をクリックします。

代替スナップショットの場所

[パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [スナップショット] ページで代替スナップショットの場所を指定します。 このダイアログ ボックスへのアクセスの詳細については、「 パブリケーションのプロパティの表示と変更」を参照してください。

代替スナップショットの場所を指定する

  1. [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [スナップショット] ページで、次の手順を実行します。
    1. [次のフォルダーにファイルを配置] を選択し、[参照] をクリックしてディレクトリに移動するか、スナップショット ファイルを格納するディレクトリへのパスを入力します。

      スナップショット エージェントには、指定したディレクトリに対する書き込みアクセス許可が必要であり、ディストリビューション エージェントまたはマージ エージェントには読み取りアクセス許可が必要です。 プル サブスクリプションを使用する場合は、\\computername\snapshot などの汎用名前付け規則 (UNC) パスとして共有ディレクトリを指定する必要があります。 詳細については、「Secure the Snapshot Folder」(スナップショット フォルダーのセキュリティ保護) をご覧ください。
      a. スナップショットファイルを両方の場所に書き込む必要がある場合を除き、[既定のフォルダーにファイルを配置する] をクリアします。
      スナップショット ファイルを圧縮するには、 この場所にある [スナップショット ファイルの圧縮] を選択します。 圧縮は通常、低帯域幅接続や、CD-ROM などのリムーバブル メディア上の代替スナップショットの場所に使用されます。

  2. OK をクリックします。

スナップショット ファイルを圧縮する

[パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [スナップショット] ページでファイルを圧縮することを指定します。 このダイアログ ボックスへのアクセスの詳細については、「 パブリケーションのプロパティの表示と変更」を参照してください。

  1. [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [スナップショット] ページで、次の手順を実行します。

    1. [次のフォルダーにファイルを配置] を選択し、[参照] をクリックしてディレクトリに移動するか、スナップショット ファイルを格納するディレクトリへのパスを入力します。

      スナップショット エージェントには、指定したディレクトリに対する書き込みアクセス許可が必要であり、ディストリビューション エージェントまたはマージ エージェントには読み取りアクセス許可が必要です。 プル サブスクリプションを使用する場合は、\\computername\snapshot などの汎用名前付け規則 (UNC) パスとして共有ディレクトリを指定する必要があります。 詳細については、「スナップショット フォルダーのセキュリティ保護」を参照してください

    2. スナップショットファイルを両方の場所に書き込む必要がある場合を除き、[既定のフォルダーにファイルを配置] の設定をクリアしてください。

      このチェック ボックスをオンにすると、既定のフォルダーに格納されているファイルは圧縮されません。 圧縮ファイルは、前の手順で指定した別の場所にのみ格納できます。

  2. [このフォルダー内のスナップショット ファイルを圧縮する] を選択します。

  3. OK をクリックします。

スナップショットが適用される前と後にスクリプトを実行する

スナップショットが適用される前または後にサブスクライバーで実行するスクリプトを指定できます。 スクリプトは、各サブスクライバーでのログインとスキーマ (オブジェクト所有者) の作成など、さまざまな理由で使用できます。

各スクリプトのファイルの場所を指定すると、スナップショット 処理が行われるたびに、スナップショット エージェントによってスクリプト ファイルが現在のスナップショット フォルダーにコピーされます。 ディストリビューション エージェントまたはマージ エージェントは、スナップショットを適用するときに、レプリケートされたオブジェクト スクリプトの前にプリスナップショット スクリプトを実行します。 ディストリビューション エージェントまたはマージ エージェントは、レプリケートされた他のすべてのオブジェクト スクリプトとデータが適用された後、スナップショット後スクリプトを実行します。 スナップショット アプリケーションが完了し、スクリプト ファイルが正常に実行されると、スクリプト ファイルはサブスクライバー上の作業ディレクトリから削除されます。

スクリプトは、 sqlcmd ユーティリティを起動することによって実行されます。 スクリプトをデプロイする前に、 sqlcmd を使用してスクリプトを実行し、期待どおりに実行されるようにします。 スナップショットが適用される前と後に実行されるスクリプトの内容は、繰り返し可能である必要があります。 たとえば、スクリプトでテーブルを作成する場合は、まずテーブルの存在を確認し、存在する場合は適切なアクションを実行する必要があります。 スクリプトが既に適用されているサブスクリプションを再初期化する必要がある場合は、再初期化中に新しいスナップショットが適用されるときにスクリプトが再び適用されるため、スクリプトは繰り返し可能である必要があります。

スナップショット ファイルを (Microsoft CAB ファイル形式で) 圧縮する場合、スクリプトも圧縮され、CAB ファイルに配置されます。 圧縮されたスナップショット ファイルがサブスクライバーに転送され、サブスクライバー上の作業ディレクトリに展開されると、事前スナップショット スクリプトとして示されたスクリプトが実行されます。 スナップショット後のスクリプトは同様に、スナップショットを適用する最後の手順としてサブスクライバーで解凍され、実行されます。

スナップショットが適用される前または後にスクリプトを実行する

[パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [スナップショット] ページで、スナップショットを適用する前または後に実行するオプションのスクリプトを指定します。 このダイアログ ボックスへのアクセスの詳細については、「 パブリケーションのプロパティの表示と変更」を参照してください。

  1. [パブリケーションのプロパティ - <Publication>] ダイアログ ボックスの [スナップショット] ページで、次の手順を実行します。
    • スナップショットが適用される前に実行するスクリプトを指定するには、[ 参照 ] をクリックしてスクリプトに移動するか、[ スナップショットを適用する前に] テキスト ボックスにスクリプトへのパスを入力します。

      ディストリビューション エージェントまたはマージ エージェントには、指定したディレクトリの読み取りアクセス許可が必要です。 プル サブスクリプションを使用する場合は、\\computername\scripts\myscript.sql などの汎用名前付け規則 (UNC) パスとして共有ディレクトリを指定する必要があります。

    • スナップショットの適用後に実行するスクリプトを指定するには、[ 参照 ] をクリックしてスクリプトに移動するか、[ スナップショットの適用後 ] ボックスにスクリプトへの UNC パスを入力します。

  2. OK をクリックします。