管理進階遷移作業

進階遷移解決方案適用於遷移大型資料庫的資料,且停機時間較短。這項功能僅適用於 AlloyDB Omni 和 PostgreSQL。

使用者必須具備專案資料庫管理員角色,才能執行下列步驟。使用 GDC 控制台或 Distributed Cloud CLI 管理遷移作業:

主控台

  1. 從主選單中選擇「資料庫服務」
  2. 按一下「建立遷移作業」
  3. 在「開始使用」對話方塊中,查看來源和連線的相關規定。
  4. 在「指定來源資料庫」對話方塊中,指定來源資料庫主機名稱或 IP 位址、使用者名稱、密碼、加密類型和憑證。
  5. 在「Configure your cluster」(設定叢集) 對話方塊中,指定目標資料庫叢集的叢集 ID、密碼、資料庫版本、CPU、記憶體和儲存容量。請確保所選記憶體大小足以容納您最大的資料表。
  6. 按一下「建立」,建立遷移作業和目標資料庫叢集可能需要幾分鐘的時間。 叢集準備就緒時,狀態會從 Reconciling 變更為 Ready。遷移作業設定完成後,遷移狀態會變更為 Unsynced。您可以使用下列選項管理遷移作業:
    1. 開始:開始遷移作業,並將遷移狀態變更為 Running
    2. 停止:停止遷移作業,並將遷移狀態變更為 Stopped
    3. 升級:將目標資料庫叢集升級為獨立資料庫。
    4. 刪除:刪除為這項遷移作業建立的遷移作業和目標資料庫叢集。

請按照下列步驟,定期輪替來源資料庫複製使用者密碼:

  1. 前往「來源資料庫」,然後按一下「編輯」
  2. 進行變更,輪替複寫使用者密碼。
  3. 按一下 [Save] (儲存) 套用您的變更。

變更套用後,遷移後端會使用新密碼。

gdcloud

  1. 使用 Distributed Cloud CLI 前,請先安裝並初始化。然後向貴機構驗證

  2. 建立遷移作業:

    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支援的值為:postgresqlalloydbomni
    • SOURCE_CONNECTION_PROFILE,新連線設定檔的名稱。
    • REPLICATION_USERNAME:來源資料庫的複製使用者名稱。
    • REPLICATION_PASSWORD:來源資料庫複製使用者的密碼。
    • CA_CERT_FILE_PATH:來源資料庫 CA 憑證的路徑。
    • MIGRATION_NAME:新遷移作業的名稱。
    • DESTINATION_DBCLUSTER:目標資料庫叢集的名稱。
    • DB_VERSION:新叢集的版本字串。例如:POSTGRESQL_13
    • 新叢集的管理員使用者密碼。ADMIN_PASSWORD
  3. 開始遷移:

    gdcloud database migrations start MIGRATION_NAME
    
  4. 停止遷移:

    gdcloud database migrations stop MIGRATION_NAME
    
  5. 升級遷移作業:

    gdcloud database migrations promote MIGRATION_NAME
    
  6. 列出現有連線設定檔:

    gdcloud database connection-profiles list DB_ENGINE_TYPE
    
  7. 列出現有遷移作業:

    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:資料庫引擎的名稱。這是 alloydbomnipostgresql
  • SOURCE_DB_CA_CERT:來源資料庫的 CA 憑證。
  • SOURCE_DB_USER_PASSWORD:來源資料庫的遷移使用者密碼。
  • SOURCE_DB_USERNAME:來源資料庫的遷移使用者名稱。
  • SOURCE_DB_HOST:來源資料庫的遷移主機位址。
  • MIGRATION_NAME:遷移作業的名稱。
  • DBCLUSTER_NAME:遷移目標資料庫叢集的名稱。
  • MIGRATION_CONTROL:遷移作業的控制項。建立遷移作業時,應為 startstoppromote,以升級遷移目標資料庫叢集。