使用 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
開頭的 PostgreSQL 目錄完整清單,請參閱 PostgreSQL 說明文件中的「PostgreSQL system catalogs」(PostgreSQL 系統目錄)。 - 使用者和使用者角色資訊不會遷移。
- 資訊結構定義 (
如果加密資料庫需要客戶自行管理加密金鑰才能解密,且資料庫移轉服務無法存取金鑰,則無法移轉資料庫。
不過,如果客戶資料是由
pgcrypto
擴充功能加密,則可透過資料庫移轉服務遷移資料 (因為 AlloyDB 支援該擴充功能)。資料庫遷移服務也支援從加密的 Amazon Aurora 或 Amazon RDS 資料庫遷移資料,因為這些資料庫會在服務中以透明方式處理解密作業。詳情請參閱「Encrypting Amazon Aurora resources」和「Encrypting Amazon RDS resources」。
遷移期間,目的地 AlloyDB 資料庫可供寫入,因此如有需要,可以套用 DDL 變更。請謹慎操作,不要變更資料庫設定或表格結構,否則可能會導致遷移程序中斷或影響資料完整性。
觸發條件的行為取決於設定方式。預設行為是不會觸發,但如果使用
ALTER EVENT TRIGGER
或ALTER TABLE
陳述式設定,且觸發條件狀態設為「副本」或「一律」,則會在複製期間觸發副本。AlloyDB 主要執行個體會建立具有安全定義者的函式。
alloydbexternalsync
如果由任何使用者執行,系統會以alloydbexternalsync
的權限執行,而alloydbexternalsync
具有alloydbsuperuser
和alloydbreplica
角色。建議只允許部分使用者使用安全定義者函式。為此,使用者應撤銷預設的 PUBLIC 權限,然後選擇性地授予執行權限。Private Service Connect 介面連線方法 僅支援遷移至現有目的地執行個體。 如要使用私人 IP 連線並遷移至新的目的地執行個體,請使用虛擬私有雲對等互連。
遷移至現有目的地叢集的限制
- 現有的目的地叢集必須為空白,或只包含系統設定資料。系統不支援遷移至含有使用者資料 (例如資料表) 的現有目的地叢集。
- 每個目的地叢集只能設定一項遷移工作。
- 系統不支援遷移至具有次要叢集的叢集。
- 支援遷移至含有讀取集區執行個體的叢集。
如要進一步瞭解 PostgreSQL 適用的 AlloyDB 叢集和執行個體,請參閱「AlloyDB for PostgreSQL 簡介」。
配額
- 無論何時均可存在多達 2,000 個連線設定檔和 1,000 個遷移工作。如要建立更多空間,可以刪除遷移工作 (包含已完成的工作) 和連線設定檔。