- 什麼是資料庫移轉服務?
- 支援哪些來源?
- 支援哪些目的地?
- 是否支援跨版本?
- 系統會遷移哪些資料、架構和中繼資料元件?
- 持續遷移期間會複製哪些變更?
- 哪些項目不會遷移?
- 使用哪些網路方法?
- 已知限制為何?
- 什麼是資料庫移轉服務?
- 資料庫移轉服務可讓您輕鬆將資料遷移至 Google Cloud。資料庫遷移服務可協助您將 PostgreSQL 工作負載隨即轉移至 Cloud SQL。
- 支援哪些來源?
-
- 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.6 以上版本、15.2 以上版本、16、17。
- 自行管理的 PostgreSQL (位於地端部署系統或您完全控管的任何雲端 VM) 9.4、9.5、9.6、10、11、12、13、14、15、16、17。
- PostgreSQL 適用的 Cloud SQL 9.6、10、11、12、13、14、15、16、17。
- Microsoft Azure Database for PostgreSQL Flexible Server:11 以上
- 支援哪些目的地?
-
- PostgreSQL 適用的 Cloud SQL 9.6、10、11、12、13、14、15、16、17。
- 是否支援跨版本?
- 資料庫移轉服務支援 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 通道,建立從目的地到來源的連線。必須在 Google Cloud 專案中建立堡壘主機 VM,以及可連線至來源的機器 (例如網路上的筆記型電腦)。資料庫移轉服務會在遷移作業建立時收集必要資訊,並自動產生設定指令碼。 - 易於設定。
- 不需要任何自訂防火牆設定。
- 建議用於短期遷移情境 (概念驗證或小型資料庫遷移作業)。
- 您擁有並管理防禦主機 VM。
- 可能會產生額外費用。
虛擬私有雲對等互連 這個方法會設定虛擬私有雲彼此通訊。只有在來源和目的地都代管在 Google Cloud中時,才適用這個選項。建議用於長時間執行或大量遷移作業。 - Google Cloud 解決方案。
- 易於設定。
- 高頻寬
只有在來源託管在 Google Cloud時才能使用。 VPN 透過公開網際網路的安全連線,設定 IPsec VPN 通道,連結內部網路和 Google Cloud 虛擬私有雲。使用 Google Cloud VPN 或任何為內部網路設定的 VPN 解決方案。 - 強大且可擴充的連線解決方案。
- 中高頻寬。
- 內建安全防護機制。
- 以 Google Cloud 解決方案或其他第三方提供的形式提供。
- 額外費用。
- 非簡單設定 (除非已就位)。
Cloud Interconnect 在內部部署網路和 Google Cloud之間使用可用性高且延遲低的連線。 最高頻寬,非常適合長時間執行的大量遷移作業。 - 額外費用。
- 根據預設,連線不安全。
- 非簡單設定 (除非已就位)。
- 已知的限制為何?
- 請參閱「已知限制」。