雖然事務型出版物的訂閱通常是使用快照初始化,但可以使用複寫儲存程序從備份初始化訂閱。 如需詳細資訊,請參閱 初始化不使用快照集的交易式訂閱。
從備份初始化交易訂閱者
對於現有的發行集,請確定該發行集支援在發行者端的發行集資料庫上執行 sp_helppublication(Transact-SQL),以便能夠從備份初始化。 請注意結果集中 allow_initialize_from_backup 的值。
如果值為 1,則發行集支援這項功能。
如果值為 0,請在發行集資料庫的發行者端執行 sp_changepublication (Transact-SQL )。 針對 @property 指定 allow_initialize_from_backup 值,並針對 @value 指定 值
true。
對於新的出版物,請在出版資料庫的發行者端執行 sp_addpublication (Transact-SQL)。 請為 allow_initialize_from_backup 指定一個值
true。 如需詳細資訊,請參閱建立出版物。警告
若要避免遺漏訂閱者數據,請在搭配
@allow_initialize_from_backup = N'true'使用 sp_addpublication 時,一律使用@immediate_sync = N'true'。使用 BACKUP (Transact-SQL) 語句建立發行集資料庫的備份。
使用 RESTORE (Transact-SQL) 語句還原訂閱者上的備份。
在發行集資料庫的發行者上,執行預存程式 sp_addsubscription (Transact-SQL) 。 指定下列參數:
@sync_type - 使用備份初始化的值。
@backupdevicetype - 備份裝置的類型: 邏輯 (預設)、 磁碟或 磁帶。
@backupdevicename - 要用於還原的邏輯或實體備份裝置。
針對邏輯裝置,指定使用 sp_addumpdevice 建立裝置時所指定的備份裝置名稱。
針對實體裝置,指定完整的路徑和檔名,例如
DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL12.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。