使用 PostgreSQL 資料庫做為來源時,已知限制包括:
pglogical擴充功能不支援 PostgreSQL 12 以上版本的產生資料欄複製作業。表格結構 (DDL) 的變更不會透過標準 DDL 指令複製,只會透過使用用於複製的
pglogical擴充功能執行的指令複製。包括enum型別的變更。舉例來說,
pglogical提供pglogical.replicate_ddl_command函式,可讓您在相同的時間點,於來源資料庫和副本中執行 DDL。在來源上執行這項指令的使用者必須已存在於副本中。如要複製新資料表的資料,請使用
pglogical.replication_set_add_table指令,將新資料表新增至現有的複製集。如要進一步瞭解遷移作業進行期間的 DDL 複製作業,請參閱「遷移保真度」一節。
如果資料表沒有主鍵,資料庫遷移服務支援在變更資料擷取 (CDC) 階段遷移初始快照和
INSERT陳述式。建議您手動遷移UPDATE和DELETE陳述式。資料庫遷移服務不會遷移具體化檢視區塊的資料,只會遷移檢視區塊結構定義。如要填入檢視區塊,請執行下列指令:
REFRESH MATERIALIZED VIEW view_name。新 AlloyDB 目的地的
SEQUENCE狀態 (例如last_value) 可能與來源SEQUENCE狀態不同。「
UNLOGGED」和「TEMPORARY」資料表不會也不可能複製。系統不支援 Large Object 資料類型。詳情請參閱「遷移作業準確度」一節。
只有 AlloyDB for PostgreSQL 支援的擴充功能和程序語言可以遷移。
資料庫移轉服務不支援從處於復原模式的讀取備用資源進行移轉。
資料庫遷移服務不支援套用 AWS SCT 擴充套件的 Amazon RDS 來源。
以 C 語言撰寫的使用者定義函式無法遷移,但安裝 AlloyDB 支援的擴充功能時,安裝在 PostgreSQL 資料庫中的函式除外。
如果來源資料庫中存在其他擴充功能和程序語言,或這些擴充功能和程序語言的版本不受支援,測試或啟動遷移工作時就會失敗。
遷移工作啟動後新增的資料庫不會遷移。
使用資料庫遷移服務遷移資料時,您可以選取特定資料庫。不過,您無法選取這些資料庫中的特定資料表或結構定義。 資料庫遷移服務會遷移所選資料庫中的所有資料表和結構定義,但下列項目除外:
- 資訊結構定義 (
information_schema)。 - 任何以
pg_開頭的結構定義 (例如pg_catalog、pg_toast、pgtemp*)。如要查看以pg_開頭的 PostgreSQL 目錄完整清單,請參閱 PostgreSQL 說明文件中的「PostgreSQL system catalogs」(PostgreSQL 系統目錄)。 - 使用者和使用者角色相關資訊不會遷移。
- 資訊結構定義 (
如果加密資料庫需要客戶自行管理的加密金鑰才能解密,且資料庫遷移服務無法存取金鑰,則無法移轉資料庫。
不過,如果客戶資料是由
pgcrypto擴充功能加密,則可透過資料庫遷移服務遷移資料 (因為 AlloyDB for PostgreSQL 支援該擴充功能)。資料庫移轉服務也支援從加密的 Amazon Aurora 或 Amazon RDS 資料庫遷移資料,因為這些資料庫會在服務中以透明方式處理解密作業。詳情請參閱「Encrypting Amazon Aurora resources」和「Encrypting Amazon RDS resources」。
遷移期間,目的地 AlloyDB for PostgreSQL 資料庫可供寫入,因此如有需要,可以套用 DDL 變更。請謹慎變更資料庫設定或表格結構,否則可能會導致遷移程序中斷或影響資料完整性。
觸發條件的行為取決於設定方式。預設行為是不會觸發,但如果使用
ALTER EVENT TRIGGER或ALTER TABLE陳述式設定,且觸發狀態設為 replica 或 always,則會在複製期間觸發副本。AlloyDB 主資料庫會以
alloydbexternalsync建立具有安全定義者的函式。如果由任何使用者執行,系統會以alloydbexternalsync的權限執行,而具有alloydbsuperuser和alloydbreplica角色。建議只允許部分使用者使用安全定義者函式。如要這麼做,使用者應撤銷預設的 PUBLIC 權限,然後選擇性地授予執行權限。Private Service Connect 介面連線方法 僅支援遷移至現有目的地執行個體。 如要使用私人 IP 連線並遷移至新的目的地執行個體,請使用虛擬私有雲對等互連。
遷移至現有目的地叢集的限制
- 每個目的地叢集只能設定一個運作中的遷移工作。
- 現有的目的地叢集必須為空白,或僅包含系統設定資料。不支援遷移至含有使用者資料 (例如資料表) 的現有目的地叢集。
- 支援遷移至含有讀取集區執行個體的叢集。
如要進一步瞭解 PostgreSQL 適用的 AlloyDB 叢集和執行個體,請參閱「PostgreSQL 適用的 AlloyDB 簡介」。
配額
- 無論何時均可存在多達 2,000 個連線設定檔和 1,000 個遷移工作。如要建立更多空間,可以刪除遷移工作 (包含已完成的工作) 和連線設定檔。