適用於:SQL Server
雖然交易式發行集的訂閱通常會以快照初始化,但也可以使用複寫預存程序從備份初始化訂閱。 如需詳細資訊,請參閱不使用快照初始化交易式訂閱。
從備份中初始化交易式訂閱者
對於現有的發行集,請在發行集資料庫的發行者端執行 sp_helppublication (Transact-SQL),以確定此發行集可支援從備份初始化的功能。 請記下結果集中 allow_initialize_from_backup 的值。
如果此值是 1,表示發行集支援此功能。
如果該值為 0,請在發行集資料庫上的發行者端執行 sp_changepublication (Transact-SQL)。 將 的值設為
@property,並將 的值設為@value。
若要建立新的發行集,請在發行者上的發行集資料庫中執行 sp_addpublication (Transact-SQL)。 針對 allow_initialize_from_backup 指定 true的值。 如需詳細資訊,請參閱 建立出版物。
警告
為避免遺漏訂閱者資料,當使用 sp_addpublication 或 sp_changepublication 搭配
@allow_initialize_from_backup = N'true'時,請一律使用@immediate_sync = N'true'。請使用 BACKUP (Transact-SQL) 語句建立出版資料庫的備份。
使用 RESTORE (Transact-SQL) 語句還原訂閱者的備份。
在發行集資料庫上的發行者端,執行預存程序 sp_addsubscription (Transact-SQL)。 指定下列參數:
@sync_type- 值為 使用備份初始化。@backupdevicetype- 備份裝置的類型: logical (預設值)、 disk或 tape。@backupdevicename- 要用於還原的邏輯或實體備份裝置。如果是邏輯裝置,請指定使用 sp_addumpdevice 來建立裝置時所指定的備份裝置名稱。
如果是實體裝置,請指定完整路徑和檔案名稱,例如
DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\BACKUP\Mybackup.dat'或TAPE = '\\.\TAPE0'。(選擇性)
@password- 當建立備份組時所提供的密碼。(選擇性)
@mediapassword- 當格式化媒體集時所提供的密碼。(選擇性)
@fileidhint- 要還原之備份組的識別碼。 例如,指定 1 表示備份媒體上的第一個備份組,指定 2 則表示第二個備份組。(適用於磁帶裝置的選擇項)
@unload- 如果在完成還原之後應該從磁碟機卸載磁帶,請指定 1 (預設值) 的值;如果不應該將它卸載,請指定 0 的值。
(選擇性) 對於提取訂閱,請在訂閱資料庫上的訂閱者端執行 sp_addpullsubscription (Transact-SQL) 和 sp_addpullsubscription_agent (Transact-SQL)。 如需詳細資訊,請參閱 建立提取訂閱。
(選擇性) 啟動散發代理程式。 如需相關資訊,請參閱 Synchronize a Pull Subscription 或 Synchronize a Push Subscription。