虽然通常使用快照来初始化对事务发布的订阅,但也可以使用复制存储过程从备份初始化订阅。有关详细信息,请参阅初始化事务订阅(不使用快照)。
从备份初始化事务订阅服务器
-
对于现有的发布,请通过在发布服务器上对发布数据库执行 sp_helppublication (Transact-SQL) 来确保该发布支持从备份进行初始化操作。请注意结果集中 allow_initialize_from_backup 的值。
- 如果值为 1,则该发布支持此功能。
- 如果值为 0,则在发布服务器上对发布数据库执行 sp_changepublication
(Transact-SQL)。将 @property 的值指定为
allow_initialize_from_backup,并将 @value 的值指定为
true。
- 如果值为 1,则该发布支持此功能。
-
对于新的发布,请在发布服务器上对发布数据库执行 sp_addpublication (Transact-SQL)。将 allow_initialize_from_backup 的值指定为 true。有关详细信息,请参阅如何创建发布(复制 Transact-SQL 编程)。
-
使用 BACKUP (Transact-SQL) 语句创建发布数据库的备份。
-
使用 RESTORE (Transact-SQL) 语句还原订阅服务器上的备份。
-
在发布服务器上对发布数据库执行 sp_addsubscription (Transact-SQL)。指定下列参数:
- @sync_type - 值为 initialize with backup。
- @backupdevicetype - 备份设备的类型:logical(默认)、disk 或
tape。
- @backupdevicename - 用于还原的逻辑或物理备份设备。
对于逻辑设备,指定使用 sp_addumpdevice 创建该设备时指定的备份设备的名称。
对于物理设备,指定完整的路径和文件名,比如DISK = 'C:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERBACKUPMybackup.dat'
或TAPE = '\.TAPE0'
。
- (可选)@password - 创建备份集时提供的密码。
- (可选)@mediapassword - 对媒体集设置格式时提供的密码。
- (可选)@fileidhint - 要还原的备份集的标识符。例如,指定为 1 表示备份媒体中的第一个备份集,而指定为
2 则表示第二个备份集。
- (对于磁带设备是可选的)@unload - 如果完成还原后应从驱动器卸载磁带,则将值指定为
1(默认),如果不用卸载磁带,则将值指定为 0。
- @sync_type - 值为 initialize with backup。
-
(可选)对于请求订阅,请在订阅服务器上对订阅数据库执行 sp_addpullsubscription (Transact-SQL) 和 sp_addpullsubscription_agent (Transact-SQL)。有关详细信息,请参阅如何创建请求订阅(复制 Transact-SQL 编程)。
-
(可选)启动分发代理。有关详细信息,请参阅如何同步请求订阅(复制编程)或如何同步推送订阅(复制编程)。