適用於:SQL Server
Azure SQL 受控執行個體
如果訂閱在指定 「保留期限」內未執行同步處理,則可以停用訂閱或使訂閱過期。 發生的動作依複寫類型及超過的保留期限而定。
若要設定保留期限,請參閱設定訂閱的到期期限、設定交易式發行集的散發保留期限 (SQL Server Management Studio) 和設定發行與散發。
交易複製
異動複寫會使用散發保留期限上限 (sp_adddistributiondb (Transact-SQL) 的 @max_distretention 參數) 和發行集保留期限 (sp_addpublication (Transact-SQL) 的 @retention 參數):
如果訂閱未在最大分配保留期限(預設為 72 小時)內同步,且分配資料庫中有變動未送達訂閱者,則該訂閱會被執行在發行商上的 「過期訂閱清理 工作」標記為停用。 你必須重新初始化訂閱。
如果訂閱未在發行集保留期限內同步(預設為 336 小時),該訂閱就會到期,並由在 Publisher 上執行的 已到期訂閱清理 作業刪除。 (在 KB4014798 修正之前,該作業名為 發佈清除。)您必須重建並同步訂閱。
如果推送訂閱過期,該訂閱會被完全刪除,但拉取訂閱則不會。 您必須在訂閱者端清理提取式訂閱。 如需詳細資訊,請參閱 Delete a Pull Subscription。
合併式複寫
合併式複寫會使用發行集保留期限(即 sp_addmergepublication (Transact-SQL) 的 @retention 和 @retention_period_unit 參數)。 當訂閱到期時,你必須重新初始化它,因為這個過程會移除訂閱的元資料。 在 Publisher 上執行的過期訂閱清理工作會移除未重新初始化的訂閱。 預設情況下,這個工作每天都會執行。 它會移除所有無法同步的推送訂閱,且保留期限是出版期限的兩倍。 例如:
若出版物的保留期為14天,若未在14天內同步,訂閱可能會失效。
如果 Publisher 運行的是 SQL Server 2005(9.x)或更新版本,且訂閱代理程式來自 SQL Server 2005(9.x)或更新版本,則只有當該訂閱分割區的資料有變更時,訂閱才會失效。 例如,假設某訂閱者只會收到位於德國的客戶資料。 若保留期限設為 14 天,則訂閱僅在第 14 天到期,前提是德國客戶資料在過去 14 天內有變動。
在上次同步後 14 天到 27 天內,你可以重新初始化訂閱。
在最後一次同步後的第 28 天,Expired subscription clean up 作業會移除該訂閱。 如果推送訂閱過期,該訂閱會被完全移除,但拉取訂閱則不會被完全移除。 您必須在訂閱者端清理提取式訂閱。 如需詳細資訊,請參閱 Delete a Pull Subscription。
設定合併出版品出版保留期限的考量
設定合併式發行集的保留期限時,請記住以下考量:
合併出版物的保留期包含24小時寬限期,以適應不同時區的訂戶需求。 例如,如果你設定保留期限為一天,實際保留期是48小時。
合併複製的元資料清理取決於發佈保留期間:
複寫無法清除發行集和訂閱資料庫中的中繼資料,直到保留期間結束。 在指定保留期的高值時請謹慎,因為這可能會負面影響複製效能。 如果你能可靠預測所有訂閱者在這段時間內都會定期同步,建議使用較低的設定。
你可以指定訂閱永不過期(將
@retention設為 0),但請勿使用此值,因為無法清理中繼資料。
將任一再出版商的保留期設為等於或低於原始 Publisher 設定的保留期。 此外,請對所有出版商及其替代同步夥伴使用相同的出版保留值。 使用不同數值可能導致不收斂。 若您需要變更發行集保留值,請重新初始化訂閱者,以避免資料無法聚合。
如果你在清理後延長出版保留期,且訂閱嘗試與已刪除元資料的 Publisher 合併,訂閱不會因保留價值增加而失效。 然而,Publisher 沒有足夠的元資料來下載變更到訂閱者,導致不融合。