Share via


從備份初始化交易式訂閱 (複寫 Transact-SQL 程式設計)

雖然通常會使用快照集初始化交易式發行集的訂閱,但是可以使用複寫預存程序從備份初始化訂閱。 如需詳細資訊,請參閱<不使用快照集初始化交易式訂閱>。

從備份初始化交易式訂閱者

  1. 如果是現有的發行集,請在發行集資料庫的發行者上執行 sp_helppublication (Transact-SQL),以確定此發行集可支援從備份初始化的功能。 請記下結果集中 allow_initialize_from_backup 的值。

    • 如果此值是 1,表示發行集支援此功能。

    • 如果此值是 0,請在發行集資料庫的發行者上執行 sp_changepublication (Transact-SQL)。 針對 @property 指定 allow_initialize_from_backup 的值,並針對 @value 指定 true 的值。

  2. 如果是新的發行集,請在發行集資料庫的發行者上執行 sp_addpublication (Transact-SQL)。 針對 allow_initialize_from_backup 指定 true 的值。 如需詳細資訊,請參閱<建立發行集>。

    警告注意事項注意

    為了避免遺漏訂閱者資料,當您使用 sp_addpublication 搭配 @allow_initialize_from_backup = N'true' 時,請一律使用 @immediate_sync = N'true'。

  3. 使用 BACKUP (Transact-SQL) 陳述式建立發行集資料庫的備份。

  4. 使用 RESTORE (Transact-SQL) 陳述式還原訂閱者上的備份。

  5. 在發行集資料庫的發行者上,執行預存程序 sp_addsubscription (Transact-SQL)。 指定下列參數:

    • @sync_type - initialize with backup 的值。

    • @backupdevicetype - 備份裝置的類型:logical (預設值)、disktape

    • @backupdevicename - 要用於還原的邏輯或實體備份裝置。

      如果是邏輯裝置,請指定使用 sp_addumpdevice 來建立裝置時所指定的備份裝置名稱。

      如果是實體裝置,請指定完整路徑和檔案名稱,例如 DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\BACKUP\Mybackup.dat' 或 TAPE = '\\.\TAPE0'。

    • (選擇性) @password - 當建立備份組時所提供的密碼。

    • (選擇性) @mediapassword - 當格式化媒體集時所提供的密碼。

    • (選擇性) @fileidhint - 要還原之備份組的識別碼。 例如,指定 1 表示備份媒體上的第一個備份組,指定 2 則表示第二個備份組。

    • (適用於磁帶裝置的選擇項) @unload - 如果在完成還原之後應該從磁碟機卸載磁帶,請指定 1 (預設值) 的值;如果不應該將它卸載,請指定 0 的值。

  6. (選擇項) 如果是提取訂閱,請在訂閱資料庫的訂閱者上,執行 sp_addpullsubscription (Transact-SQL)sp_addpullsubscription_agent (Transact-SQL)。 如需詳細資訊,請參閱<建立提取訂閱>。

  7. (選擇性) 啟動散發代理程式。 如需詳細資訊,請參閱<同步處理提取訂閱>或<同步處理發送訂閱>。

請參閱

概念

使用備份與還原複製資料庫

SQL Server 資料庫的備份與還原