從傾印檔案匯入

匯入資料前,請務必完成下列事項:

  1. 建立資料庫叢集,以便匯入資料。

  2. 將 dump 檔案上傳至 Storage bucket。如需操作說明,請參閱「將物件上傳至儲存空間值區」。

  3. 授予資料庫服務匯入服務帳戶 dump 檔案的讀取權限。請參閱「授予及取得儲存空間存取權」。舉例來說,您可以將 project-bucket-object-viewer 角色授予匯入服務帳戶。

    建立資料庫叢集時,資料庫服務系統會自動建立這個服務帳戶。資料庫叢集狀態包含匯入服務帳戶的名稱和命名空間。

    如要擷取匯入服務帳戶的名稱和命名空間,請執行下列指令:

    kubectl --kubeconfig=MGMT_API_KUBECONFIG \
      get dbcluster.postgresql -n PROJECT_ID DATABASE_CLUSTER_NAME \
      -o jsonpath='{.status.serviceAccounts.import}'
    

    這個指令會傳回 JSON 物件,其中包含名稱和命名空間詳細資料: {"name":"postgresql-import-DATABASE_CLUSTER_NAME","namespace":"SERVICE_ACCOUNT_NAMESPACE"}

警告:資料庫 dump 檔案必須使用 pg_dump 建立,且封存格式須與 pg_restore 相容。系統不支援純 SQL 格式轉儲 (如未指定格式選項,則為預設格式)。

您可以使用 GDC 控制台或 Distributed Cloud CLI,將 dump 檔案匯入資料庫叢集:

控制台

  1. 在 GDC 控制台中開啟「Database cluster overview」(資料庫叢集總覽) 頁面,查看要匯入的資料庫所在的叢集。

  2. 按一下「匯入」。「將資料匯入帳戶」面板隨即開啟。

  3. 在「Import data to accounts」(將資料匯入帳戶) 面板的「Source」(來源) 區段中,指定先前上傳的 SQL 資料 dump 檔案位置。

  4. 在「Destination」(目的地) 欄位中,指定現有的匯入目的地資料庫。

  5. 按一下「匯入」。GDC 控制台的橫幅會顯示匯入狀態。

gdcloud

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

  2. 執行下列指令,將 dump 檔案匯入資料庫:

    gdcloud database import sql DATABASE_CLUSTER BUCKET_NAME/sample.dmp \
        --project=PROJECT_NAME
    

    更改下列內容:

    • DATABASE_CLUSTER:要匯入資料的資料庫叢集名稱。
    • 將 BUCKET_NAME/SAMPLE.dmp 替換為 dump 檔案的位置。
    • PROJECT_NAME 替換為資料庫叢集所在專案的名稱。
  3. 執行下列指令,檢查匯入狀態:

    gdcloud database operations list --project=PROJECT_NAME --cluster=DATABASE_CLUSTER
    

API

apiVersion: postgresql.dbadmin.gdc.goog/v1
kind: Import
metadata:
  name: IMPORT_NAME
  namespace: USER_PROJECT
spec:
  dbclusterRef: DBCLUSTER_NAME
  dumpStorage:
    s3Options:
      bucket: BUCKET_NAME
      key: DUMP_FILE_PATH
    type: S3

請替換下列變數:

  • IMPORT_NAME:匯入作業的名稱。
  • USER_PROJECT:使用者專案名稱,也就是建立要匯入的資料庫叢集所在專案。
  • DBCLUSTER_NAME:資料庫叢集的名稱。
  • BUCKET_NAME:儲存匯入檔案的物件儲存庫 bucket 名稱。
  • DUMP_FILE_PATH:儲存檔案的物件儲存庫路徑名稱。