共用方式為


CDC 來源

CDC 來源會從 SQL Server 2012 變更資料表中讀取變更資料的範圍,並將這些變更向下游傳遞至其他 SSIS 元件。

CDC 來源所讀取的變數資料範圍稱為 CDC 處理範圍,並且由目前資料流程啟動之前執行的 CDC 控制工作所決定。 CDC 處理範圍衍生自維護資料表群組之 CDC 處理狀態的封裝變數值。

CDC 來源會使用資料庫資料表、檢視或 SQL 陳述式,從 SQL Server 資料庫中擷取資料。

CDC 來源使用下列組態:

  • SQL Server ADO.NET 連接管理員,用以存取 SQL Server CDC 資料庫。 如需有關設定 CDC 來源連接的詳細資訊,請參閱<CDC 來源編輯器 (連接管理員頁面)>。

  • 啟用 CDC 的資料表。

  • 所選資料表的擷取執行個體名稱 (如果 more-than-one 存在)。

  • 變更處理模式。

  • 做為決定 CDC 處理範圍之依據的 CDC 狀態封裝變數名稱。 CDC 來源不會修改該變數。

CDC 來源傳回的資料與 SQL Server CDC 函數 cdc.fn_cdc_get_all_changes_<capture-instance-name>cdc.fn_cdc_get_net_changes_<capture-instance-name> (如果有) 傳回的資料相同。 唯一的選擇性附加資料行是 __$initial_processing,表示目前處理範圍是否可與資料表的初始載入重疊。 如需有關初始處理的詳細資訊,請參閱<CDC 控制工作>。

CDC 來源有一個一般輸出和一個錯誤輸出。

錯誤處理

CDC 來源有錯誤輸出。 此元件的錯誤輸出包含下列輸出資料行:

  • 錯誤碼:值一定是 -1。

  • 錯誤資料行:造成錯誤 (用於轉換錯誤) 的來源資料行。

  • 錯誤資料列資料行:造成錯誤的記錄資料。

根據錯誤行為設定,CDC 來源支援在錯誤輸出中傳回擷取程序期間發生的錯誤 (資料轉換、截斷)。 如需詳細資訊,請參閱<CDC 來源編輯器 (錯誤輸出頁面)>。

資料類型支援

Microsoft 的 CDC 來源元件支援所有 SQL Server 資料類型,這些資料類型都會對應至正確的 SSIS 資料類型。

CDC 來源的疑難排解

以下包含 CDC 來源的疑難排解資訊。

使用此指令碼來隔離問題,並在 SQL Server Management Studio 中重現問題。

CDC 來源作業是由叫用 CDC 來源之前執行的 CDC 控制工作作業所控制。 CDC 控制工作會準備 CDC 狀態封裝變數的值,以包含開始和結束 LSN。 它所執行的功能相當於下列指令碼:

use <cdc-enabled-database-name>
               declare @start_lsn binary(10), @end_lsn binary(10)
               set @start_lsn = sys.fn_cdc_increment_lsn(
                       convert(binary(10),'0x' + '<value-from-state-cs>', 1))
               set @end_lsn = 
                       convert(binary(10),'0x' + '<value-from-state-ce>', 1)
               select * from cdc.fn_cdc_get_net_changes_dbo_Table1(@start_lsn,
@end_lsn, '<mode>')

其中:

  • <cdc-enabled-database-name> 是包含變更資料表的 SQL Server 資料庫名稱。

  • <value-from-state-cs> 是在 CDC 狀態變數中顯示為 CS/<value-from-state-cs>/ 的值 (CS 代表 Current-processing-range-Start)。

  • <value-from-state-ce> 是在 CDC 狀態變數中顯示為 CE/<value-from-state-cs>/ 的值 (CE 代表 Current-processing-range-End)。

  • <mode> 是 CDC 處理模式。 處理模式有下列其中一個值:[全部][全部 (含舊值)][淨][淨 (含更新遮罩)][淨 (含合併)]

此指令碼會在 SQL Server Management Studio 中重現問題,協助您輕鬆重現及識別錯誤以隔離問題。

SQL Server 錯誤訊息

SQL Server 可能會傳回下列訊息:

提供給程序或函數 cdc.fn_cdc_get_net_changes_<..> 的引數數量不足。

此錯誤並不表示缺少引數。 它表示 CDC 狀態變數中的開始或結束 LSN 值無效。

設定 CDC 來源

您可以透過程式設計方式或 SSIS 設計師來設定 CDC 來源。

如需詳細資訊,請參閱下列其中一個主題:

[進階編輯器] 對話方塊包含可以程式設計方式設定的屬性。

若要開啟 [進階編輯器] 對話方塊:

  • 在 SQL Server 2012 Integration Services (SSIS) 專案的 [資料流程] 畫面中,以滑鼠右鍵按一下 CDC 來源,然後選取 [顯示進階編輯器]

如需有關可在 [進階編輯器] 對話方塊中設定之屬性的詳細資訊,請參閱<CDC 來源自訂屬性>。

本節內容

相關內容