在 Microsoft Fabric 中鏡像 Oracle 的局限性

本文概述了在 Microsoft Fabric 中鏡像 Oracle 資料庫時的當前限制。 隨著我們繼續改進服務,這些限制可能會改變。

備註

我們目前支援 Oracle 在內部部署資料閘道 (OPDG) 的鏡射功能。 使用版本 3000.282.5 或更高版本。

縮放限制

以下是您對資料庫規模的預期:

  • 目前,鏡像資料庫 最多支援 1000 個資料表

支援的環境

我們支援下列 Oracle Server 環境:

  • 啟用 LogMiner 的 Oracle 版本 10 及以上
  • Oracle on-premises (VM, Azure VM)
  • Oracle Cloud Infrastructure (OCI)
  • Oracle Database@Azure
  • Oracle Exadata

Oracle 的鏡像只能支援寫入模式下的資料庫。 LogMiner 無法支援讀取模式資料庫。

備註

  • LogMiner 需要在您的 Oracle 伺服器上啟用。 此工具有助於追蹤 Oracle 資料庫中的變更,以進行即時同步。

鏡像先決條件

以下是資料庫設定所需的內容:

資料類型和結構描述支援

支援下列 Oracle 資料類型:

  • VARCHAR2
  • NVARCHAR2
  • 編號
  • FLOAT
  • DATE
  • BINARY_FLOAT
  • BINARY_DOUBLE
  • RAW
  • 羅維德
  • CHAR
  • NCHAR
  • 具有當地時區的時間戳記
  • 間隔日到秒
  • 年至月間隔

對於結構描述 (DDL) 變更,我們目前支援:

  • 欄變更 (部分支援):
    • 新增行
    • 刪除欄位
    • 重新命名欄

備註

不支援資料行資料類型更新

我們也支援具有分區的鏡像資料表——如果你的來源資料表有分區,我們就能將那些資料表進行鏡像。

支援沒有主鍵(PK)的資料表——如果你的資料表中有唯一的索引,我們就能支援鏡像這些資料表。 如果您的資料表沒有主鍵(PK)或唯一索引,我們不會支援將這些資料表鏡像過來。

我們無法支援長度大於或等於 30 的表格名稱。

大型表格與重新設置

同時初始化或重新載入多個大型資料表確實會造成明顯的記憶體尖峰。 如果你錯開大型資料表,避免大量重啟同時觸發多個重種,效果會很好。

必要權限

您的同步使用者需要下列權限:

GRANT CREATE SESSION TO user;
GRANT SELECT_CATALOG_ROLE TO user;
GRANT CONNECT, RESOURCE TO user;
GRANT EXECUTE_CATALOG_ROLE TO user;
GRANT FLASHBACK ANY TABLE TO user;
GRANT SELECT ANY DICTIONARY TO user;
GRANT SELECT ANY TABLE TO user;
GRANT LOGMINING TO user;

組態需求

封存日誌設定

您的資料庫需要下列封存記錄設定:

  • 已啟用 ARCHIVELOG 模式
  • 在鏡像期間保持封存日誌模式開啟
  • 資料庫管理員啟用了還原日誌檔案歸檔功能。

在初始載入或 CDC 活動頻繁時,積極清除 Oracle 檔案日誌,會迫使重試並增加記憶體壓力。 穩定性的指引是避免在初始負荷和重度CDC期間進行排氣。 如果停機時間窗口不明確,請保留至少過去 ~24 小時的日誌檔案。

如果你遇到這個錯誤——「找不到完整的 Logminer 字典,或 ORA-01291:缺少日誌檔\nORA-06512: 在 \“SYS.DBMS_LOGMNR\.」,請依照上述關於日誌檔案保存的指引。

記錄設定

如果您的 Oracle 使用者沒有直接的 ALTER DATABASE 和 ALTER TABLE 權限,請要求您的 DBA 執行下列命令:

  1. 啟用資料庫的輔助記錄:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE) COLUMNS;
    
  2. 將您想要同步的每個資料表啟用補充記錄:

    ALTER TABLE {schemaName}.{tableName} ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
    

Oracle NUMBER 欄位的十進位精確度或刻度無效

Issue

若 Oracle 欄位定義為 NUMBER,未指定精確度與縮放(即未指定 (p,s),則鏡像至 Fabric 可能會因以下錯誤而失敗:無效的十進位精度或刻度。 精確度:38 比例:127

原因

此問題可能因本地資料閘道所使用的過時 Oracle 用戶端/ODP 驅動程式所導致,該驅動程式無法在沒有明確精確度與規模的情況下正確解讀 Oracle NUMBER 類型。

Resolution

升級閘道所使用的 Oracle 用戶端工具,並依照以下步驟重新啟動鏡像流程:

  1. 停止受影響資料庫的鏡像處理
    • 如果停止鏡像會影響下游消費者,則可直接停止本地資料閘道。
  2. 更新 Oracle 用戶端工具
  3. 重新啟動閘道服務
    • Open services.msc
    • 重新啟動本地資料閘道服務
  4. 重新啟動鏡像
    • 返回 Fabric 入口網站
    • 重新啟動鏡子

設定閘道

目前,我們僅支援使用內部部署資料閘道 (OPDG) 連線至 Oracle。 您需要在可連線至 Oracle 伺服器的機器上安裝及設定閘道。

如需安裝和註冊閘道的機器需求和設定指示,請參閱內部 部署資料閘道安裝指南。

備註

在較高並行性架構中,記憶體使用會隨時間累積,因為每個鏡像管線執行自己的程序。 更好的穩定性可透過以下方式獲得:

  • 使用較少但更強大的閘道器虛擬機,且具有足夠的餘裕,
  • 將虛擬機專門用於本地資料閘道,沒有其他 Fabric 或批次工作負載

如果你遇到這個錯誤——「無法連接到遠端伺服器......」,可能是連線嘗試失敗,因為連線方在一段時間後沒有正確回應,或是建立的連線失敗,因為連接的主機沒有回應。 Oracle Mirror Publisher 運行於內部部署資料閘道,且需要滿足閘道外出連線的權威性要求。 請參考「調整本地 資料閘道的通訊設定 」並依照該指引操作。

Oracle 鏡像之外的議題

如果你出現以下任何錯誤——

  • ORA-00604:在遞迴 SQL 層級 1 發生錯誤\nORA-01289:無法新增重複日誌檔 +DBSV6162_ARCHIVE_OBIA/CPOBIACH/ARCHIVELOG/2026_03_03/thread_1_seq_138823.582.1226964749\nORA-06512:於「SYS.DBMS_LOGMNR」第82行\nORA-06512:於第1行\nORA-06512:於第1行\nORA-06512:於「SYS.DBMS_LOGMNR」第72行\nORA-06512:於第1行
  • ORA-65040:不允許從可插拔式資料庫內部操作。

你需要聯絡 Oracle 客服團隊,或是向 Oracle 開支援單,而不是 Microsoft。 請告知 Oracle 支援團隊,用於鏡像的 Oracle 資料庫需要更新至最新修補程式。