共用方式為


針對適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的 Fabric 鏡像資料庫進行疑難排解

本文涵蓋鏡像適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的疑難排解步驟。

疑難排解鏡像表格選取期間的錯誤/警告訊息

當您建立新的鏡像資料庫時,在 [ 選擇資料 ] 頁面中,您可能會收到一些有關來源資料庫中特定資料表的視覺意見反應。 下表提供潛在問題的清單,包括顯示的訊息,以及如何解決問題的相關說明。

狀態碼 狀態類型 Message Description
SCHEMA_DOES_NOT_EXIST ERROR 綱目 {} 不存在 給定的結構描述不存在。 它本可以在 Fabric 提取相關表格資訊時被刪除。 重試。
TABLE_DOES_NOT_EXIST ERROR 在schema {}中,table {} 不存在。 給定的表格不存在。 它本可以在 Fabric 提取相關表格資訊時被刪除。 重試。
FORBIDDEN_CHARS_IN_COLUMN_NAME ERROR 表格 {}。{} 欄名稱中包含禁止字元 {} 給定資料行的名稱中具有不支援的字元。 1
UNSUPPORTED_DATA_TYPE ERROR 表格 {}。{} 欄中不支援的資料類型 {} 一個 (或多個) 資料表的資料行目前具有不支援的資料類型。 3
FORBIDDEN_CHARS_IN_TABLE_NAME ERROR 表格 {}。{} 名稱中包含禁止字元 表格名稱有不支援的字元。 1
NOT_REGULAR_TABLE ERROR 表 {}.{} 不是一般表 鏡映不支援表格類型。 2
HAS_PRIMARY_KEY OK 表 {}。{} 具有主索引鍵 Table 是一般表格,具有用於鏡映的有效主索引鍵。
HAS_UNIQUE_INDEX OK 表 {}.{} 具有合適的唯一索引 表格沒有主索引鍵,但具有唯一索引,該索引應用於鏡像。
NO_INDEX_FULL_IDENTITY 表 {}。{} 沒有合適的唯一索引。 使用完整身分識別 表格沒有主索引鍵或唯一索引,因此 REPLICA IDENTITY FULL 需要支援鏡像,這可能會導致效能問題。

1 不支援具有空格 (' ') 字元的物件識別碼。

2 鏡像不支援此資料表類型。 目前不支援檢視、具體化檢視、外部資料表和分割資料表。

3 如需不支援的資料類型清單,請參閱 限制。 僅支援具有下列類型的資料行:

  • bigint
  • bigserial
  • boolean
  • bytea
  • character
  • character varying
  • date
  • double precision
  • integer
  • numeric
  • real
  • serial
  • oid
  • money
  • smallint
  • smallserial
  • text
  • time without time zone
  • time with time zone (* 不作為主鍵)
  • timestamp without time zone
  • timestamp with time zone
  • uuid

在 Postgres 中,對應於完全相同時刻但位於不同時區的兩個「時區時間」值被視為不同。 例如: 06:24:00.59+0505:24:00.59+04 對應於相同的紀元時間,但Postgres對它們的處理方式不同。

Fabric 容量或工作區的變更

原因 Result 建議的解決方法
Fabric 容量已暫停/刪除 鏡像停止 1. 從 Azure 入口網站繼續或指派容量
2. 移至 Fabric 鏡像資料庫項目。 從工具列中,選取 [停止複寫]。
3. 在 Fabric 入口網站中選取鏡像項目的 [鏡像資料庫 ] 來啟動複寫。
光纖容量已恢復 鏡像將不會恢復 1. 移至 Fabric 鏡像資料庫專案。 從工具列中,選取 [停止複寫]。
2. 在 Fabric 入口網站中選取鏡像項目的 [鏡像資料庫 ] 來啟動複寫。
已刪除工作區 鏡像自動停止 如果鏡像在適用於 PostgreSQL 的 Azure 資料庫彈性伺服器上仍然作用中,請使用伺服器系統管理員進行連線,並在 PostgreSQL 伺服器上執行下列命令: select azure_cdc.list_tracked_publications();,然後使用傳回的發行集名稱並執行 select azure_cdc.stop_publication(<publication_name>);
Fabric 試用容量已過期 鏡像自動停止 請參閱 Fabric 試用容量到期
超過結構容量 鏡像暫停 等到過載狀態結束或更新您的容量。 如需進一步了解 ,請參閱您可以採取的動作,以從超載狀況中復原。 恢復容量後,鏡映會繼續進行。
任何其他資源錯誤 鏡像已停用 為了確保您的計算資源不會受到影響,並將對適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的影響降到最低,鏡像會停用任何持續性資源錯誤。
「使用者可以使用 Fabric 外部的應用程式存取儲存在 OneLake 中的資料」設定已停用 「複寫器 - 資料表無法達到複寫狀態」 啟用租用戶設定 使用者可以使用 Fabric 外部的應用程式存取儲存在 OneLake 中的資料

用於疑難排解的 SQL 查詢

如果您遇到鏡像問題,請使用系統檢視和函式執行下列伺服器層級檢查,以驗證設定。

  1. 執行下列查詢,以檢查變更是否正確流動:

    select * from azure_cdc.tracked_publications;
    

    檢查發行集是否處於作用中狀態,且已產生快照集。 您也可以透過查詢來檢查是否已產生後續變更批次:

    select * from azure_cdc.tracked_batches;
    
  2. 如果檢視未 azure_cdc.tracked_publications 顯示處理累加變更的任何進度,請執行下列 SQL 查詢,以檢查是否有任何問題回報:

    SELECT * FROM pg_stat_activity WHERE state = 'idle in transaction';
    
  3. 如果未報告任何問題,請執行下列命令,以檢閱鏡像 PostgreSQL 資料庫的目前組態。 確認它已正確啟用。

    SELECT * FROM pg_replication_slots;
    

    在這裡尋找的關鍵欄是 slot_nameactive。 除了 (true) 之外 t 的任何值都表示潛在問題。

  4. 如果需要疑難排解,請聯絡支援人員

受管理的識別

必須啟用適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的系統指派受控識別 (SAMI),而且必須是主要身分識別。 如需詳細資訊,請參閱 PostgreSQL 彈性伺服器的系統指派受控識別

啟用之後,如果稍後停用 SAMI 設定狀態,然後再次啟用,則適用於 PostgreSQL 的 Azure 資料庫彈性伺服器鏡像至 Fabric OneLake 會失敗。

使用下列查詢確認 SAMI 已啟用: show azure.service_principal_id;

SAMI 權限

請勿移除適用於 PostgreSQL 的 Azure 資料庫彈性伺服器系統指派受控識別 (SAMI) 參與者對 Fabric 鏡像資料庫專案的許可權。

如果您不小心移除 SAMI 許可權,鏡像適用於 PostgreSQL 的 Azure 資料庫彈性伺服器不會如預期般運作。 無法從來源資料庫鏡像任何新資料。

如果您移除適用於 PostgreSQL 的 Azure 資料庫彈性伺服器 SAMI 權限或權限設定不正確,請使用下列步驟。

  1. 選取鏡像資料庫項目上的省略符號選項,將 ... 彈性伺服器 SAMI 新增為使用者。
  2. 選取 [管理許可權 ] 選項。
  3. 輸入適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的名稱。 提供 讀取寫入 權限。