- 什麼是資料庫移轉服務?
- 資料庫移轉服務可讓您輕鬆將資料遷移至 Google Cloud。資料庫移轉服務可協助您將 PostgreSQL 工作負載隨即轉移至 AlloyDB。
- 支援哪些來源?
-
- Amazon RDS 9.6.10 以上版本、10.5 以上版本、11.1 以上版本、12、13、14、15
- Amazon Aurora 10.11 以上版本、11.6 以上版本、12.4 以上版本、13.3 以上版本、14、15
- 自行管理的 PostgreSQL (位於地端部署系統或您完全控管的任何雲端 VM) 9.4、9.5、9.6、10、11、12、13、14、15
- Cloud SQL 9.6、10、11、12、13、14、15
- 支援哪些目的地?
-
- PostgreSQL 14、15、16 適用的 AlloyDB
- 是否支援跨版本?
- 資料庫移轉服務支援從任何支援的來源資料庫版本,將 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 的邏輯解碼設施不支援對大型物件進行解碼變更,因此無法複製大型物件。如果資料表含有參照大型物件的 欄類型 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 通道,建立從目的地到來源的連線。必須在 Google Cloud 專案中建立堡壘主機 VM,以及可連線至來源的機器 (例如網路上的筆記型電腦)。資料庫移轉服務會在遷移作業建立時收集必要資訊,並自動產生設定指令碼。 - 易於設定。
- 不需要任何自訂防火牆設定。
- 建議用於短期遷移情境 (概念驗證或小型資料庫遷移作業)。
- 您擁有並管理防禦主機 VM。
- 可能會產生額外費用。
透過雲端託管 VM 的 TCP Proxy 透過雲端託管 VM 的 TCP Proxy,建立從目的地到來源的連線。資料庫移轉服務會在建立遷移作業時收集必要資訊,並自動產生設定指令碼。適用於來源位於舊版網路架構的 AlloyDB 遷移作業。 - 易於設定。
- 不需要任何自訂防火牆設定。
- Bastion VM 由您擁有及管理,可能會產生額外費用。
虛擬私有雲對等互連 這個方法會設定虛擬私有雲彼此通訊。 - 原生 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-05-15 (世界標準時間)。