來源 SQL Server 資料庫

本頁面提供以下資訊:

  • Datastream 處理從來源 SQL Server 資料庫拉取的資料的行為。
  • Datastream 支援的 SQL Server 資料庫版本。
  • 使用 SQL Server 資料庫做為來源的已知限制。

行為

Datastream 會使用下列任一 CDC 方法追蹤資料操縱語言 (DML) 變更:

變更表格

變更資料表 CDC 方法可讓使用者保留較短時間的記錄,因此可節省儲存空間,但相較於交易記錄方法,其支援的吞吐量較低。這個方法的限制較少,舉例來說,這項功能可避免記錄截斷導致串流永久失敗的風險,並支援加密資料表的複製作業。詳情請參閱「已知限制」。

使用這項 CDC 方法時,系統會使用專用變更資料表追蹤來源的變更。交易記錄仍會使用,但使用範圍有限,且您不需要長期保留這些記錄。當 DML 事件套用至來源資料表時,變更會複製到對應的變更資料表。變更資料表的結構與來源資料表相同,但會新增資料欄,以便納入變更的中繼資料。只有已提交的交易會加入變更資料表,並附上提交作業的記錄序號 (LSN)。

交易記錄

使用這個 CDC 方法時,Datastream 會直接從交易記錄讀取來源中的變更。這個方法需要的資源較少,可加快資料擷取速度,但限制較多

為避免資料遺失,請務必在 Datastream 讀取記錄之前,確保記錄不會遭到截斷。另一方面,如果記錄檔保留的時間過長,就會占用儲存空間,最終可能導致資料庫執行個體進入唯讀模式。

為確保 CDC 讀取器有足夠的時間讀取記錄,同時允許記錄截斷以釋出儲存空間,您需要套用額外的設定步驟,例如變更輪詢間隔和設定截斷安全防護機制。這些步驟可提供額外的保護層,確保 Datastream 即使在服務中斷期間或來源資料庫與 Datastream 之間發生連線問題時,也能讀取資料。

如需這些額外措施的詳細說明,請參閱「設定來源 SQL Server 資料庫」頁面,並選取資料庫類型。

版本

Datastream 支援下列 SQL Server 資料庫的版本和版本:

  • 自行管理 (內部部署或雲端代管),使用下列版本:
    • Enterprise:2008 年後推出的版本
    • 標準:2016 SP1 以上版本
    • 開發人員:2008 年後
  • SQL Server 適用的 Amazon RDS
  • Azure SQL Database (等級 S3 以上)。

  • SQL Server 適用的 Cloud SQL

Datastream 不支援下列 SQL Server 資料庫版本:

  • SQL Server Standard 版 (2008 到 2014 版)
  • SQL Server Express
  • SQL Server Web

已知限制

使用 SQL Server 資料庫做為來源的已知限制包括:

  • 資料流上限為 10,000 個資料表。
  • 資料表的資料列超過 5 億列時,除非符合下列條件,否則無法回填:
    1. 資料表有專屬索引。
    2. 所有索引欄都不得為空值。
    3. 資料流會納入索引的所有欄。
  • 不支援啟用延遲持久性或加速資料庫復原 (ADR) 的資料庫。
  • 系統表的變更不支援串流。
  • 不支援 Windows Active Directory (AD) 驗證。
  • 系統不支援下列資料類型,且不會複製到目的地:
    • SQL_VARIANT
    • HIERARCHYID
    • GEOMETRY
    • GEOGRAPHY
  • Datastream 會複製使用者定義的資料類型,但這是您衍生儲存在目的地中的使用者定義類型的基礎資料類型。舉例來說,如果您根據 VARCHAR(50) 資料類型定義 USERNAME 資料類型,資料就會以 VARCHAR(50) 的形式儲存在目的地中。
  • 在沒有不重複索引的資料表中,Datastream 不支援大型物件欄 (TEXTNTEXTXMLIMAGE) 和最大可變長度欄 (VARCHAR(MAX)VARBINARY(MAX)NVARCHAR(MAX)) 的變更資料擷取。

    如果資料流中不含大型物件欄,則支援 CDC。

  • 使用變更資料表 CDC 方法時,Datastream 不支援複製來源結構定義變更。下列結構定義變更可能導致資料毀損,或無法處理事件:

    • 新增資料欄:新資料欄不會複製到目的地。
    • 刪除資料欄:這些資料欄中的資料會替換為 NULL 值。
    • 修改資料類型:Datastream 會嘗試將資料插入目的地,如果資料遭到拒絕,就會擲回錯誤。
    • 重新命名資料欄:啟用 CDC 時,SQL Server 不支援此功能。
  • Datastream 不支援資料遮蓋功能。資料會在未遮罩的情況下複製。

  • Datastream 不支援使用資料層應用程式套件 (DACPAC) 套件,對資料庫套用的變更進行複製。

  • Datastream 不會複製使用 WRITETEXTUPDATETEXT 陳述式所做的變更。

  • 除非資料欄標示為 PERSISTED,否則 Datastream 不支援複製計算結果欄

  • Datastream 不支援 PAGECOLUMNSTORECOLUMNSTORE ARCHIVE 壓縮類型。

使用交易記錄方法時的其他限制

如果您使用交易記錄 CDC 方法,則適用下列額外限制:

  • 不支援透明資料加密 (TDE) 功能。
  • 不支援資料欄層級加密。這些資料欄中的資料會替換為 NULL 值。
  • Datastream 不支援 ROLLBACK TO SAVEPOINT 陳述式。系統會忽略這類復原事件,且不會複製至目的地。
  • 在下列資料表類型中,Datastream 不支援超過 8 KB 的資料列變更資料擷取:
    • 沒有不重複索引的資料表
    • 資料表僅包含一個不重複的非叢集索引,且含有一或多個可變長度資料欄 (VARCHARVARBINARYNVARCHAR)
  • Datastream 不支援下列類型的資料表中,針對大型物件欄 (TEXTNTEXTXMLIMAGE) 的變更資料擷取:

    • 沒有不重複索引的資料表
    • 資料表僅包含一個不重複的非叢集索引,且含有一或多個可變長度資料欄 (VARCHARVARBINARYNVARCHAR)

    如果資料流中未包含大型物件欄,則只有在這些資料表含有有效索引時,系統才支援變更資料擷取。

後續步驟