在建立發佈時,若是選擇當即初始化,會將immediate_sync屬性設置爲true。
若是immediate_sync屬性爲true時,snapshot文件和發佈事務及發佈命令將一直保留到指定的事務保持期後纔會被刪除。
事務保持期設置:html
在同一個DB上,若是有一個發佈的屬性被設置爲true,則該DB上其餘發佈產生的事務也會被保留至事務保持期
查看immediate_sync屬性爲true 的發佈
USE distribution;
GO
SELECT
p.publication,
p.publisher_db,
ser.name AS publisherServer
FROM MSpublications p
INNER JOIN sys.servers ser
ON p.publisher_id =ser.server_id
WHERE immediate_sync=1
AND publication_type =0
修改immediate_sync屬性
exec sp_changepublication
@publication = 'publicationName' ,
@property = 'allow_anonymous' ,
@value = false
exec sp_changepublication
@publication = 'publicationName' ,
@property = 'immediate_sync' ,
@value = false
某些狀況下,immediate_sync屬性被設置爲false,發佈事務仍被保留,需查看
SELECT *
FROM distribution.dbo.MSdistribution_agents
WHERE subscriber_id<0
若是存在記錄,則須要手動清理部分數據(當心使用)
SELECT *
INTO MSdistribution_agents_bak
FROM MSdistribution_agents
WHERE subscriber_id<0
--============================================
SELECT *
INTO MSdistribution_history_bak
FROM MSdistribution_history
WHERE agent_id IN
(
SELECT id
FROM MSdistribution_agents
WHERE subscriber_id<0
)
--============================================
DELETE
FROM MSdistribution_history
WHERE agent_id IN
(
SELECT id
FROM MSdistribution_agents
WHERE subscriber_id<0
)
--============================================
DELETE FROM MSdistribution_agents
WHERE subscriber_id<0
參考:http://www.cnblogs.com/stswordman/archive/2013/08/19/3267688.htmlserver