進階遷移解決方案適用於遷移大型資料庫的資料,且停機時間較短。這項功能僅適用於 AlloyDB Omni 和 PostgreSQL。
使用者必須具備專案資料庫管理員角色,才能執行下列步驟。使用 GDC 控制台或 Distributed Cloud CLI 管理遷移作業:
主控台
- 從主選單中選擇「資料庫服務」。
- 按一下「建立遷移作業」。
- 在「開始使用」對話方塊中,查看來源和連線的相關規定。
- 在「指定來源資料庫」對話方塊中,指定來源資料庫主機名稱或 IP 位址、使用者名稱、密碼、加密類型和憑證。
- 在「Configure your cluster」(設定叢集) 對話方塊中,指定目標資料庫叢集的叢集 ID、密碼、資料庫版本、CPU、記憶體和儲存容量。請確保所選記憶體大小足以容納您最大的資料表。
- 按一下「建立」,建立遷移作業和目標資料庫叢集可能需要幾分鐘的時間。
叢集準備就緒時,狀態會從
Reconciling
變更為Ready
。遷移作業設定完成後,遷移狀態會變更為Unsynced
。您可以使用下列選項管理遷移作業:- 開始:開始遷移作業,並將遷移狀態變更為
Running
。 - 停止:停止遷移作業,並將遷移狀態變更為
Stopped
。 - 升級:將目標資料庫叢集升級為獨立資料庫。
- 刪除:刪除為這項遷移作業建立的遷移作業和目標資料庫叢集。
- 開始:開始遷移作業,並將遷移狀態變更為
請按照下列步驟,定期輪替來源資料庫複製使用者密碼:
- 前往「來源資料庫」,然後按一下「編輯」。
- 進行變更,輪替複寫使用者密碼。
- 按一下 [Save] (儲存) 套用您的變更。
變更套用後,遷移後端會使用新密碼。
gdcloud
建立遷移作業:
gdcloud database connection-profiles create DB_ENGINE_TYPE SOURCE_CONNECTION_PROFILE \ --username REPLICATION_USERNAME \ --password REPLICATION_PASSWORD \ --ca-certificate CA_CERT_FILE_PATH gdcloud database migrations create MIGRATION_NAME \ --source SOURCE_CONNECTION_PROFILE \ --destination DESTINATION_DBCLUSTER gdcloud database clusters create DESTINATION_DBCLUSTER \ --database-version DB_VERSION \ --admin-password ADMIN_PASSWORD
請替換下列變數:
- ,遷移的資料庫引擎類型。
DB_ENGINE_TYPE
支援的值為:postgresql
或alloydbomni
SOURCE_CONNECTION_PROFILE
,新連線設定檔的名稱。REPLICATION_USERNAME
:來源資料庫的複製使用者名稱。REPLICATION_PASSWORD
:來源資料庫複製使用者的密碼。CA_CERT_FILE_PATH
:來源資料庫 CA 憑證的路徑。MIGRATION_NAME
:新遷移作業的名稱。DESTINATION_DBCLUSTER
:目標資料庫叢集的名稱。DB_VERSION
:新叢集的版本字串。例如:POSTGRESQL_13
。- 新叢集的管理員使用者密碼。
ADMIN_PASSWORD
- ,遷移的資料庫引擎類型。
開始遷移:
gdcloud database migrations start MIGRATION_NAME
停止遷移:
gdcloud database migrations stop MIGRATION_NAME
升級遷移作業:
gdcloud database migrations promote MIGRATION_NAME
列出現有連線設定檔:
gdcloud database connection-profiles list DB_ENGINE_TYPE
列出現有遷移作業:
gdcloud database migrations list --destination DESTINATION_DBCLUSTER
API
如果是 AlloyDB 或 PostgreSQL 來源資料庫:
建立密鑰來儲存來源資料庫 CA 憑證:
apiVersion: v1
data:
ca.crt: SOURCE_DB_CA_CERT
kind: Secret
metadata:
annotations:
propagation.gdch.gke.io/target-namespace: USER_PROJECT
name: es-crt-EXTERNAL_SERVER_NAME
namespace: USER_PROJECT
type: Opaque
建立密鑰,儲存來源資料庫遷移使用者密碼:
apiVersion: v1
data:
password: SOURCE_DB_USER_PASSWORD
kind: Secret
metadata:
annotations:
propagation.gdch.gke.io/target-namespace: USER_PROJECT
name: es-pw-EXTERNAL_SERVER_NAME
namespace: USER_PROJECT
type: Opaque
建立外部伺服器:
apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: ExternalServer
metadata:
name: EXTERNAL_SERVER_NAME
namespace: USER_PROJECT
spec:
host: SOURCE_DB_HOST
port: 5432
username: SOURCE_DB_USERNAME
password:
name: es-pw-EXTERNAL_SERVER_NAME
namespace: USER_PROJECT
certRef:
name: es-crt-EXTERNAL_SERVER_NAME
namespace: USER_PROJECT
建立遷移作業:
apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: Migration
metadata:
name: MIGRATION_NAME
namespace: USER_PROJECT
spec:
source:
reference:
apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: ExternalServer
name: EXTERNAL_SERVER_NAME
target:
reference:
apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: DBCluster
name: DBCLUSTER_NAME
control: MIGRATION_CONTROL
請替換下列變數:
EXTERNAL_SERVER_NAME
:代表來源資料庫的外部伺服器名稱。USER_PROJECT
:建立外部伺服器的使用者專案名稱。DBENGINE_NAME
:資料庫引擎的名稱。這是alloydbomni
或postgresql
。SOURCE_DB_CA_CERT
:來源資料庫的 CA 憑證。SOURCE_DB_USER_PASSWORD
:來源資料庫的遷移使用者密碼。SOURCE_DB_USERNAME
:來源資料庫的遷移使用者名稱。SOURCE_DB_HOST
:來源資料庫的遷移主機位址。MIGRATION_NAME
:遷移作業的名稱。DBCLUSTER_NAME
:遷移目標資料庫叢集的名稱。MIGRATION_CONTROL
:遷移作業的控制項。建立遷移作業時,應為start
或stop
。promote
,以升級遷移目標資料庫叢集。