KB4039089 - 修正:當您在 SQL Server 中執行 sys.sp_MScdc_capture_job 預存程序時EXCEPTION_ACCESS_VIOLATION錯誤

Applies To
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2017 on Windows (all editions) SQL Server 2017 on Linux (all editions) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

症狀

請考慮以下案例:

  • 假設您在 Microsoft SQL Server 中有分割資料表,而且它們是 CDC) 或異動複寫Capture (變更資料的一部分。 您可以從這些資料表切換入或切換出分割區。
  • 分割區切換之後,當您執行資料操作語言 (DML) 作業時,您可能會注意到發生 EXCEPTION_ACCESS_VIOLATION 並產生記憶體傾印檔案。

注意

日期/時間 ***堆疊傾印正在傳送至 FilePath\FileName
日期/時間 SqlDumpExceptionHandler: 處理序 ProcessID 已產生嚴重例外狀況 c0000005 EXCEPTION_ACCESS_VIOLATION。 SQL Server 正在終止此程序。
日期/時間 * *******************************************************************************
日期/時間 * 
日期/時間 * 開始堆疊傾印:
日期/時間 * 
日期/時間 * 
日期/時間 *
日期/時間 * 
日期/時間 * 例外狀況位址 = 000007FEE724BD80 模組 (sqllang+00000000015BBD80)
日期/時間 * 例外狀況代碼 = c0000005 EXCEPTION_ACCESS_VIOLATION
日期/時間 * 讀取地址000000000000002A發生存取違規
日期/時間 * 輸入緩衝區:70 位元組
日期/時間 * sys.sp_MScdc_capture_job
日期/時間 *

注意

日期/時間 ***堆疊傾印正在傳送至 FilePath\FileName
日期/時間 SqlDumpExceptionHandler: 處理序 PID 產生嚴重例外狀況 c0000005 EXCEPTION_ACCESS_VIOLATION。 SQL Server 正在終止此程序。
日期/時間 * *******************************************************************************
日期/時間 *
日期/時間 * 開始堆疊傾印:
日期/時間 * Date/TimeSPID
日期/時間 *
日期/時間 *
日期/時間 * 例外狀況位址 = 000007FEE9D26640 模組 (sqllang+0000000001586640)
日期/時間 * 例外狀況代碼 = c0000005 EXCEPTION_ACCESS_VIOLATION
日期/時間 * 讀取地址000000000000002A發生存取違規
日期/時間 * 輸入緩衝區 109 位元組 -
日期/時間 * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00
日期/時間 * s p _ r e p 01 00 00 00 0b 00 73 00 70 00 5f 00 72 00 65 00 70 00
日期/時間 * l c m d s & ô 6c 00 63 00 6d 00 64 00 73 00 00 00 00 00 26 04 04 f4
日期/時間 * & & ÿ 01 00 00 00 00 26 04 04 04 00 00 00 00 00 00 26 04 04 ff
日期/時間 * ÿÿÿ ¥ & ff ff ff 00 00 a5 0a 00 00 00 00 00 26 04 04 8f 13 00
日期/時間 * & & ¡ 00 00 00 26 04 04 00 00 00 00 00 00 26 04 04 20 a1 07
日期/時間 * 00

  • 如果您針對目的資料表執行下列查詢,您可能會注意到非叢集索引的 is_replicated 資料行值會標示為「1」,這是不正確的。

select index_id, partition_number,* from sys.system_internals_partition_columns pc with(nolock)

JOIN sys.partitions p with(nolock)

ON p.partition_id = pc.partition_id

where p.object_id = object_id ('PartitionTable')

order by 2

解決方式

此問題已在下列 SQL Server 累積更新中修正:

SQL Server 2017 累積更新 1

SQL Server 2016 SP1 的累積更新 5

SQL Server 2014 SP2 的累積更新 8

關於 SQL Server 的累積更新:

SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:

適用於 SQL Server 2017 的最新累積更新

適用於 SQL Server 2016 的最新累積更新

適用於 SQL Server 2014 的最新累積更新

狀態

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

參考資料

了解 Microsoft 用來說明軟體更新的術語。