尽管事务性出版物的订阅通常使用快照进行初始化,但也可以通过复制存储过程从备份中初始化订阅。 有关详细信息,请参阅 在不使用快照的情况下初始化事务订阅。
从备份初始化事务订阅服务器
对于现有发布,请确保该发布支持从备份进行初始化,可在发布服务器上的发布数据库中执行 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
。 有关详细信息,请参阅 “创建发布”。警告
若要避免缺少订阅者数据,在使用sp_addpublication
@allow_initialize_from_backup = N'true'
时,请始终使用@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)。 有关详细信息,请参阅 “创建请求订阅”。