,,,,
出版的属性immediate_sync控制快照文件的创建,如果属性immediate_sync设置为真,那么快照文件在快照代理每次运行的时候都会创建。如果设置为false,快照文件只在订阅创建时才会创建。
在创建快照文件之后,如果对文章进行更新,会产生未决事务,这些事务会被写入到分布数据库中。
如果immediate_sync设置为真,那么复制会保持未决事务,不会因为事务被replcated而删除,优点是快照文件和未决事务能被多个订阅重用,缺点是会导致分布数据库增长.pending事务的最大限度的保留时间是由出版的保留属性确定的,默认值是336小时,即14天。
如果immediate_sync属性设置为假,那么在将未决事务推送到订阅之后,复制将未决事务和快照文件删除。
引用《SQL Server“分布清理:”工作没有大MSRepl_commands》:
——, Check 用阅读if “immediate 同步”,is set 用1.,,,却;能够will cause transactions 用be held 拷贝MSRepl_commands ——, rather than deleted when 分布式只EXEC sp_changepublication ,,,@publication =,,,, put your publication name here ,,,@property =,‘immediate_sync’,, ,,,@value =,“假”
分布规模增长,会导致配送延迟,推荐将immediate_sync属性设置为假的。在每次新建用户数据库时,使用新的快照。
如果要将出版的,<强> immediate_sync 强>,设置为假,前提条件allow_anonymous必须是假的。
EXEC sys.sp_changepublication ,,,@publication =,,,, put your publication name here ,,,@property =,‘allow_anonymous’,, ,,,@value =,“假”
,
使用以下脚本批量更新出版
select ,,,的名字, ,,,immediate_sync, ,,,allow_anonymous, ,,,N 'exec sys.sp_changepublication , @publication =,,“+名字+”, ,,,,,@property =,,“immediate_sync”, ,,,,,@value =,,“假”,as Alter_immediate_sync,,,,, case ,,,,,,,when allow_anonymous=1, then ,,,,,,,,,,,N 'exec sys.sp_changepublication , @publication =,,“+名字+”, ,,,,,,,,,,,,,@property =,,“allow_anonymous”, ,,,,,,,,,,,,,@value =,,“假”, ,,,,,,,else “, ,,,最终获得as alter_allow_anonymousfrom dbo.syspublicationswhere immediate_sync=1
,
附录:
一、sp_addpublication重要参数
,,,,,
,,,,,,,,,,,
immediate_sync意味着什么在事务性复制
,通过保持几小时或几天的快照和事务,新用户1)可以使用旧的快照文件,和2)适用所有未决快照又是以后的更改;新用户(或reinit)不需要有一个“新鲜”快照生成。
<强> 强>
<强> 强>