共用方式為


修改 SQL 複寫的快照集初始化選項

本文討論如何在 使用快照集初始化訂閱時修改一些選項。

快照集格式

[發行集屬性 - < 發行集 >] 對話方塊的 [快照集] 頁面上指定快照集格式。 如需有關存取這個對話方塊的詳細資訊,請參閱< View and Modify Publication Properties>。

  1. 在 [發行集屬性 - < 發行集 >] 對話方塊的 [快照集] 頁面上,選取 [原生SQL Server -如果發行者或訂閱者未執行SQL Server所有訂閱者都必須是執行SQL Server或字元的伺服器。

    注意

    除非此發行集必須支援SQL Server Compact資料庫或非SQL Server資料庫的訂閱,否則建議選取原生格式。

  2. 按一下 [確定] 。

快照集資料夾位置

預設快照集位置

指定 [設定散發精靈] 之 [快照集資料夾] 頁面上的預設快照集位置 (SQL Server Management Studio) 指定預設快照集位置。 如需使用此精靈的詳細資訊,請參閱設定發行和散發。 如果您在未設定為「散發者」的伺服器上建立發行集,則請在「新增發行集精靈」的 [快照集資料夾] 頁面中指定預設快照集位置。 如需使用此精靈的詳細資訊,請參閱建立發行集

在 [散發者屬性 - <散發者>] 對話方塊的 [發行者] 頁面上,修改預設快照集位置。 如需詳細資訊,請參閱檢視及修改散發者和發行者屬性。 在 [發行集屬性 - <發行集>] 對話方塊中為每個發行集設定快照集資料夾。 如需詳細資訊,請參閱 View and Modify Publication Properties

修改預設快照集位置

  1. 在 [散發者屬性 - <散發者>] 對話方塊的 [發行者] 頁面上,按一下您要變更其預設快照集位置之發行者的屬性按鈕 (...)。

  2. 在 [發行者屬性 - <發行者>] 對話方塊中,輸入 [預設快照集資料夾] 屬性的值。

    注意

    快照集代理程式必須有您指定之目錄的寫入權限,而散發代理程式或合併代理程式則必須有讀取權限。 如果使用提取訂閱,您必須指定一個共用目錄做為通用命名慣例 (UNC) 路徑,例如 \\computername\snapshot。 如需詳細資訊,請參閱保護快照集資料夾

  3. 按一下 [確定] 。

替代快照集位置

在 [發行集屬性 - < 發行 >集] 對話方塊的 [快照集] 頁面上指定替代快照集位置。 如需有關存取這個對話方塊的詳細資訊,請參閱< View and Modify Publication Properties>。

指定替代快照集位置

  1. 在 [發行集屬性 - <發行集>] 對話方塊的 [快照集] 頁面上:
    1. 選取 [將檔案放在下列資料夾中] ,然後按一下 [瀏覽] 以瀏覽至目錄,或者輸入應儲存快照集檔案之目錄的路徑。

      注意

      快照集代理程式必須有您指定之目錄的寫入權限,而散發代理程式或合併代理程式則必須有讀取權限。 如果使用提取訂閱,您必須指定一個共用目錄做為通用命名慣例 (UNC) 路徑,例如 \\computername\snapshot。 如需詳細資訊,請參閱保護快照集資料夾
      a. 除非您需要將快照集檔案寫入兩個位置,否則請清除 [將檔案放在預設資料夾]
      若要壓縮快照集檔案,請選取 [壓縮這個位置中的快照集檔案] 。 壓縮通常用於低頻寬連接和抽取式媒體上的替代快照集位置,例如 CD-ROM。

  2. 按一下 [確定] 。

壓縮快照集檔案

指定應該在 [發行集屬性 - < 發行集 >] 對話方塊的 [快照集] 頁面上壓縮檔案。 如需有關存取這個對話方塊的詳細資訊,請參閱< View and Modify Publication Properties>。

  1. 在 [發行集屬性 - <發行集>] 對話方塊的 [快照集] 頁面上:

    1. 選取 [將檔案放在下列資料夾中] ,然後按一下 [瀏覽] 以瀏覽至目錄,或者輸入應儲存快照集檔案之目錄的路徑。

      注意

      快照集代理程式必須有您指定之目錄的寫入權限,而散發代理程式或合併代理程式則必須有讀取權限。 如果使用提取訂閱,您必須指定一個共用目錄做為通用命名慣例 (UNC) 路徑,例如 \\computername\snapshot。 如需詳細資訊,請參閱保護快照集資料夾

    2. 除非您需要將快照集檔案寫入兩個位置,否則請清除 [將檔案放在預設資料夾]

      注意

      如果選取這個核取方塊,則不會壓縮儲存在預設資料夾中的檔案。 壓縮的檔案只能儲存在上一個步驟中指定的其他位置。

  2. 選取 [壓縮此資料夾中的快照集檔案]

  3. 按一下 [確定] 。

在套用快照集之前及之後執行指令碼

您可以指定在套用快照集之前或之後在「訂閱者」端執行指令碼。 指令碼在很多情況下都會用到,例如在各「訂閱者」端建立登入和結構描述 (物件擁有者) 時。

為各指令碼指定檔案位置後,每次進行快照集處理時,「快照集代理程式」便會將指令碼檔案複製到目前的快照集資料夾中。 套用快照集時,「散發代理程式」或「合併代理程式」會在執行任何複寫物件指令碼之前,先執行前快照集指令碼。 並在套用所有其他複寫物件指令碼及資料之後,執行後快照集指令碼。 快照集應用程式完成且指令碼檔案成功執行之後,會從「訂閱者」的工作目錄中移除指令碼檔案。

啟動 sqlcmd 公用程式即可執行指令碼。 部署指令碼之前,請使用 sqlcmd 執行指令碼,以確保能按預期執行。 在套用快照集前後執行的指令碼內容必須能夠重複。 例如,如果在指令碼中建立資料表,應先檢查該資料表是否已存在,如果存在,再採取適當動作。 指令碼必須能夠重複,因為當您需要重新初始化已套用了指令碼的訂閱時,該指令碼便會在新快照集於重新初始化期間套用時重新被套用。

若要壓縮快照集檔案 (將其儲存為 Microsoft CAB 檔案格式),指令碼也會壓縮並儲存到 CAB 檔案中。 將壓縮的快照集檔傳送給「訂閱者」並解壓縮至「訂閱者」的工作目錄後,將執行任何指示為前快照集指令碼的指令碼。 同樣地,在套用快照集的最後一個步驟中,也會在「訂閱者」端解壓縮並執行後快照集指令碼。

在套用快照集之前或之後執行腳本

指定要在 [發行集屬性 - < 發行 >集] 對話方塊的 [快照集] 頁面上套用快照集之前或之後執行的選擇性腳本。 如需有關存取這個對話方塊的詳細資訊,請參閱< View and Modify Publication Properties>。

  1. 在 [發行集屬性 - <發行集>] 對話方塊的 [快照集] 頁面上:
    • 若要在套用快照集之前指定要執行的指令碼,請按一下 [瀏覽] 以瀏覽到指令碼,或在 [套用快照前執行此指令碼] 文字方塊中輸入指令碼的路徑。

      注意

      「散發代理程式」或「合併代理程式」必須具有指定目錄的讀取權限。 如果使用提取訂閱,則必須指定一個共用目錄做為通用命名慣例 (UNC) 路徑,例如 \\computername\scripts\myscript.sql。

    • 若要在套用快照集之後指定要執行的指令碼,請按一下 [瀏覽] 以瀏覽到指令碼,或在 [套用快照後執行此指令碼] 文字方塊中輸入指令碼的路徑。

  2. 按一下 [確定] 。