KB982857 - 修正:當發佈資料庫設定為 [讀取已認可快照集] 選項時,散發代理程式 會失敗並出現錯誤碼 20598

Applies To
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 Workgroup SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup

Microsoft 會以一個可供下載的檔案形式發佈 Microsoft SQL Server 2008 和 Microsoft SQL Server 2008 R2 修正程式。 由於修正程式是累積的,因此每個新版本都包含先前的 SQL Server 2008 或 SQL Server 2008 R2 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。

症狀

請考慮在 Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 中發生下列案例:

  • 您可以為資料庫設定異動複寫。
  • 資料庫是使用 read_committed_snapshot 選項進行設定。
  • 複寫設定為使用原生sync_method。 然後,會初始化複寫訂閱者,並為複寫產生快照。

在此案例中,發佈代理程式會失敗,錯誤碼為 20598。 此外,您可能會收到下列錯誤訊息:

  • 注意

    <日期時間> spid**<ID>** Replication-Replication 分佈
    子系統: 代理程式 <代理程式名稱> 失敗。 套用複寫的命令時,在訂閱者處找不到該列。

  • 注意

    <日期時間> spid**<ID>** 錯誤:14151,嚴重性:18,狀態:1。

    <日期時間> spid**<ID>** Replication-Replication 分佈

    子系統: 代理程式 <代理程式名稱> 失敗。 違反 PRIMARY KEY 限制式「<主索引鍵名稱>」。 無法在物件 '<訂閱者>中的表格' 中插入重複索引鍵。

原因

發生此問題的原因是為複寫產生快照集時遺失鎖定。

解決方式

累積更新資訊

SQL Server 2008 Service Pack 1

此問題的修正程式最初在 SQL Server 2008 Service Pack 1 的累積更新 9 中發行。

注意:由於這些組建是累積的,因此每個新發行的修正程式都包含先前的 SQL Server 2008 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。 Microsoft 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

970365 發行 SQL Server 2008 Service Pack 1 之後所發行的 SQL Server 2008 組建
Microsoft SQL Server 2008 Hotfix 是為特定 SQL Server Service Pack 而建立。 您必須將 SQL Server 2008 Service Pack 1 Hotfix 套用至 SQL Server 2008 Service Pack 1 的安裝。 預設情況下,SQL Server Service Pack 中提供的任何 Hotfix 都會包含在下一個 SQL Server Service Pack 中。

SQL Server 2008 Service Pack 2

此問題的修正程式最初在 SQL Server 2008 Service Pack 2 的累積更新 1 中發行。 如需有關此累積更新套件的詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2289254 SQL Server 2008 Service Pack 2 的累積更新 1 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些都包含在上一個 SQL Server 2008 修正程式版本中。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2402659 發行 SQL Server 2008 Service Pack 2 之後所發行的 SQL Server 2008 組建

SQL Server 2008 R2

此問題的修正程式最初在累積更新 4 中發行。 如需有關如何取得 SQL Server 2008 R2 的累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

2345451 SQL Server 2008 R2 的累積更新套件 4 注意:由於組建是累積的,因此每個新發行的修正程式都包含先前的 SQL Server 2008 R2 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

981356 在 SQL Server 2008 R2 發行之後所發行的 SQL Server 2008 R2 組建 (機器翻譯)

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

如需有關SQL Server 複寫的詳細資訊,請造訪下列 Microsoft Developer Network (MSDN) 網站:

SQL Server 複寫 如需有關快照隔離的詳細資訊,請造訪下列 MSDN 網站:

快照隔離如需有關 SQL Server 累加式服務模型的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
 

935897 來自 SQL Server 團隊之可傳遞解決回報問題的 Hotfix 的累加服務模型 (機器翻譯)

如需有關 SQL Server 更新命名架構的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
 

822499 Microsoft SQL Server 軟體更新套件的新命名架構如需有關軟體更新術語的詳細資訊,請按一下下面的文章編號,檢視「Microsoft知識庫」中的文章:

824684 描述Microsoft軟體更新所使用的標準術語說明