- 什麼是資料庫移轉服務?
- 資料庫移轉服務可協助您輕鬆將資料遷移至 Google Cloud。資料庫移轉服務可協助您將 PostgreSQL 工作負載隨即轉移至 AlloyDB。
- 支援哪些來源?
-
- Amazon RDS 9.6.10 以上版本、10.5 以上版本、11.1 以上版本、12、13、14、15、16、17
- Amazon Aurora 10.11+、11.6+、12.4+、13.3+、14、15、16、17
- 自行管理的 PostgreSQL (地端部署或完全由您掌控的 Cloud VM) 9.4、9.5、9.6、10、11、12、13、14、15、16、17
- Cloud SQL 9.6、10、11、12、13、14、15、16、17
- 支援哪些目的地?
-
- PostgreSQL 適用的 AlloyDB 14、15、16、17
- 是否支援跨版本?
- 資料庫遷移服務支援從任何支援的來源資料庫版本,將 PostgreSQL 遷移至 AlloyDB。
- 哪些資料、結構定義和中繼資料元件會遷移?
- 資料庫移轉服務會將來源的結構定義、資料和中繼資料遷移至目的地。資料庫移轉作業會遷移下列所有資料、結構定義和中繼資料元件:
資料遷移
- 所選資料庫中的所有結構定義和資料表。
- 命名
- 主鍵
- 資料類型
- 序數位置
- 預設值
- 是否可以為空值
- 自動遞增屬性
- 次要索引
- 預存程序
- 函式
- 觸發條件
- 瀏覽次數
- 外鍵限制
- 持續遷移期間會複製哪些變更?
-
只有 DML 變更會在遷移期間自動更新。使用者有責任管理 DDL,確保來源和目的地資料庫保持相容。您可以透過兩種方式達成這個目標:
- 停止寫入來源,並在來源和目的地中執行 DDL 指令。在目的地執行 DDL 指令之前,請將
alloydbexternalsync
角色授予套用 DDL 變更的 Cloud SQL 使用者。如要啟用資料查詢或變更功能,請將alloydbexternalsync
角色授予相關的 Cloud SQL 使用者。 在相同的時間點使用
pglogical.replicate_ddl_command
,在來源和目的地中執行 DDL。執行這項指令的使用者在來源和目的地必須有相同的使用者名稱,且應為超級使用者,或是要遷移構件 (例如資料表、序列、檢視區塊或資料庫) 的擁有者。以下列舉幾個使用
pglogical.replicate_ddl_command
的範例。如要將資料欄新增至資料庫表格,請執行下列指令:
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] add column surname varchar(20)', '{default}');
如要變更資料庫表格的名稱,請執行下列指令:
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] RENAME TO [table_name]','{default}');
如要建立資料庫表格,請執行下列指令:
select pglogical.replicate_ddl_command(command := 'CREATE TABLE [schema].[table] (id INTEGER PRIMARY KEY, name VARCHAR);', replication_sets := ARRAY['default'']);
select pglogical.replication_set_add_table('default', '[schema].[table]');
- 停止寫入來源,並在來源和目的地中執行 DDL 指令。在目的地執行 DDL 指令之前,請將
- 哪些項目不會遷移?
-
如要將使用者新增至 AlloyDB 目的地執行個體,請透過 PostgreSQL 用戶端新增使用者。進一步瞭解如何建立及管理 PostgreSQL 使用者。
大型物件無法複製,因為 PostgreSQL 的邏輯解碼設施不支援解碼大型物件的變更。如果資料表有參照大型物件的 column type oid,系統仍會同步處理資料列,並複製新的資料列。不過,嘗試存取目的地資料庫中的大型物件 (使用 lo_get 讀取、使用 lo_export 匯出,或檢查指定 OID 的目錄
pg_largeobject
) 時,會失敗並顯示大型物件不存在的訊息。如果資料表沒有主鍵,資料庫移轉服務支援在變更資料擷取 (CDC) 階段遷移初始快照和
INSERT
陳述式。建議您手動遷移UPDATE
和DELETE
陳述式。資料庫移轉服務不會遷移具體化檢視區塊的資料,只會遷移檢視區塊結構定義。如要填入檢視區塊,請執行下列指令:
REFRESH MATERIALIZED VIEW view_name
。新 AlloyDB 目的地上的
SEQUENCE
狀態 (例如last_value
) 可能與來源SEQUENCE
狀態不同。 - 使用哪些網路方法?
- 如要在資料庫移轉服務中建立移轉作業,必須先在來源和 Cloud SQL 目的地執行個體之間建立連線。系統支援多種方法。請選擇最適合特定工作負載的選項。
網路方法 說明 優點 缺點 透過雲端託管 VM 的反向 SSH 通道 透過安全的反向 SSH 通道,建立從目的地到來源的連線。專案中必須有堡壘主機 VM,且機器 (例如網路上的筆電) 必須能連線至來源。 Google Cloud 資料庫移轉服務會在建立遷移作業時收集必要資訊,並自動產生設定指令碼。 - 易於設定。
- 不需要任何自訂防火牆設定。
- 建議用於短期遷移情境 (概念驗證或小型資料庫遷移)。
- 您擁有並管理防禦主機 VM。
- 可能產生額外成本。
透過雲端託管 VM 的 TCP Proxy 透過託管於雲端的 VM,建立從目的地到來源的 TCP Proxy 連線。資料庫遷移服務會在建立遷移作業時收集必要資訊,並自動產生設定指令碼。 如果來源採用舊版網路架構,這項限制會影響 AlloyDB 遷移作業。 - 易於設定。
- 不需要任何自訂防火牆設定。
- 您擁有及管理 Bastion VM,因此可能需要支付額外費用。
虛擬私有雲對等互連 這個方法會設定 VPC,讓彼此可以通訊。 - 原生 Google Cloud 解決方案。
- 易於設定。
- 高頻寬
- 建議用於長時間或大量遷移作業。
只有在來源和目的地資料庫都託管於 Google Cloud時,才適用這個選項。 VPN 設定 IPsec VPN 通道,透過公開網際網路的安全連線,將內部網路和 Google Cloud 虛擬私有雲連線。使用 Google Cloud VPN 或為內部網路設定的任何 VPN 解決方案。 - 強大且可擴充的連線解決方案。
- 中高頻寬。
- 內建安全防護機制。
- 以 Google Cloud 解決方案的形式提供,或由其他第三方提供。
- 額外費用。
- 非簡單的設定 (除非已就位)。
Cloud Interconnect 使用內部部署網路與 Google Cloud之間的高可用性低延遲連線。 頻寬最高,適合長時間執行大量遷移作業。 - 額外費用。
- 連線預設不安全。
- 非簡單的設定 (除非已就位)。
- 已知限制有哪些?
- 請參閱「已知限制」。
AlloyDB 適用的資料庫移轉服務常見問題
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-09-11 (世界標準時間)。