- 什麼是資料庫遷移服務?
- 系統支援哪些來源?
- 支援哪些目的地?
- 系統是否支援跨版本?
- 哪些資料、結構定義和中繼資料元件會遷移?
- 持續遷移期間會複製哪些變更?
- 哪些項目不會遷移?
- 使用哪些網路方法?
- 有哪些已知限制?
- 什麼是資料庫遷移服務?
- 資料庫遷移服務可協助您輕鬆將資料遷移至 Google Cloud。資料庫遷移服務可協助您將 PostgreSQL 工作負載隨即轉移至 Cloud SQL。
- 支援哪些來源?
-
- Amazon RDS 9.6.10+、10.5+、11.1+、12、13、14、15、16、17、18。
- Amazon Aurora 10.11+、11.6+、12.4+、13.3+、14.6+、15.2+、16、17、18。
- 自行管理的 PostgreSQL (地端部署或完全由您掌控的 Cloud VM) 9.4、9.5、9.6、10、11、12、13、14、15、16、17、18。
- PostgreSQL 適用的 Cloud SQL 9.6、10、11、12、13、14、15、16、17、18。
- Microsoft Azure Database for PostgreSQL Flexible Server:11+
- 支援哪些目的地?
-
- PostgreSQL 適用的 Cloud SQL 9.6、10、11、12、13、14、15、16、17、18。
- 是否支援跨版本?
- 資料庫遷移服務支援 PostgreSQL 至 Cloud SQL 的遷移作業,可跨任何主要版本,但目的地資料庫的版本必須與來源資料庫相同或更高。
- 哪些資料、結構定義和中繼資料元件會遷移?
- 資料庫遷移服務會將結構定義、資料和中繼資料從來源遷移至目的地。資料庫遷移作業會遷移下列所有資料、結構定義和中繼資料元件:
資料遷移
- 所選資料庫中的所有結構定義和資料表。
- 命名
- 主鍵
- 資料類型
- 序數位置
- 預設值
- 是否可以為空值
- 自動遞增屬性
- 次要索引
- 預存程序
- 函式
- 觸發條件
- 瀏覽次數
- 外鍵限制
- 持續遷移期間會複製哪些變更?
-
只有 DML 變更會在遷移期間自動更新。使用者有責任管理 DDL,確保來源和目的地資料庫保持相容。您可以透過兩種方式達成此目標:
- 停止寫入來源,並在來源和目的地中執行 DDL 指令。在目的地執行 DDL 指令之前,請將
cloudsqlexternalsync角色授予套用 DDL 變更的 Cloud SQL 使用者。如要啟用資料查詢或變更功能,請將cloudsqlexternalsync角色授予相關的 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 指令之前,請將
- 哪些項目不會遷移?
-
如要將使用者新增至 Cloud SQL 目的地執行個體,請前往該執行個體,然後從「使用者」分頁新增使用者,或從 PostgreSQL 用戶端新增使用者。進一步瞭解如何建立及管理 PostgreSQL 使用者。
大型物件無法複製,因為 PostgreSQL 的邏輯解碼功能不支援解碼大型物件的變更。如果資料表有參照大型物件的 oid 欄類型,系統仍會同步處理資料列,並複製新的資料列。不過,嘗試存取目的地資料庫中的大型物件 (使用 lo_get 讀取、使用 lo_export 匯出,或檢查指定 OID 的目錄
pg_largeobject) 時,會失敗並顯示大型物件不存在的訊息。如果資料表沒有主鍵,資料庫遷移服務支援在變更資料擷取 (CDC) 階段遷移初始快照和
INSERT陳述式。建議您手動遷移UPDATE和DELETE陳述式。資料庫遷移服務不會遷移具體化檢視區塊的資料,只會遷移檢視區塊結構定義。如要填入檢視區塊,請執行下列指令:
REFRESH MATERIALIZED VIEW view_name。新 Cloud SQL 目的地的
SEQUENCE狀態 (例如last_value) 可能與來源SEQUENCE狀態不同。 - 使用哪種網路方法?
- 如要在資料庫遷移服務中建立遷移作業,必須先在來源和 Cloud SQL 目的地執行個體之間建立連線。系統支援多種方法。
請選擇最適合特定工作負載的選項。
網路方法 說明 優點 缺點 IP 許可清單 方法是將來源資料庫伺服器設為接受來自 Cloud SQL 執行個體公開 IP 的連線。如果選擇這個方法,資料庫遷移服務會在建立遷移作業時,引導您完成設定程序。 - 易於設定。
- 建議用於短期遷移情境 (概念驗證或小型資料庫遷移)。
- 設定防火牆時,可能需要 IT 部門的協助。
- 將來源資料庫公開 IP。
- 根據預設,這類連線不會經過加密。您必須在來源資料庫中啟用 SSL,才能將連線加密。
透過雲端託管 VM 的反向 SSH 通道 透過安全的反向 SSH 通道,建立從目的地到來源的連線。專案中必須有堡壘主機 VM,以及可連線至來源的機器 (例如網路上的筆電)。 Google Cloud 資料庫遷移服務會在建立遷移作業時收集必要資訊,並自動產生設定指令碼。 - 易於設定。
- 不需要任何自訂防火牆設定。
- 建議用於短期遷移情境 (概念驗證或小型資料庫遷移)。
- 您擁有並管理 Bastion VM。
- 可能產生額外成本。
虛擬私有雲對等互連 這個方法會設定虛擬私有雲,讓兩者可以彼此通訊。只有在來源和目的地都代管於 Google Cloud時,才適用這個選項。建議用於長時間或大量遷移作業。 - Google Cloud 解決方案。
- 易於設定。
- 高頻寬
僅適用於在 Google Cloud中代管來源的情況。 VPN 設定 IPsec VPN 通道,透過公用網際網路的安全連線,將內部網路和 Google Cloud 虛擬私有雲連線。使用 Google Cloud VPN 或為內部網路設定的任何 VPN 解決方案。 - 強大且可擴充的連線解決方案。
- 中高頻寬。
- 內建安全防護機制。
- 以 Google Cloud 解決方案的形式提供,或由其他第三方提供。
- 額外費用。
- 非簡單的設定 (除非已就位)。
Cloud Interconnect 使用地端部署網路與 Google Cloud之間的高可用性低延遲連線。 頻寬最高,適合長時間執行大量遷移作業。 - 額外費用。
- 連線預設不安全。
- 非簡單的設定 (除非已就位)。
- 有哪些已知限制?
- 請參閱已知限制。