匯入 DMP 檔案

本頁說明如何使用 customdirectory 格式,將 pg_dump 工具建立的 DMP 檔案匯入 AlloyDB 資料庫。

如要匯入使用 plain 格式透過 pg_dump 工具建立的檔案,請參閱「匯入 SQL 檔案」。

匯入程序包含下列工作:

  1. 將 DMP 檔案上傳至 Cloud Storage bucket。

  2. 準備用戶端主機,執行匯入作業。

  3. 將 DMP 檔案匯入資料庫。

  4. 清除為執行程序建立的資源

事前準備

  • 您必須在使用的 Google Cloud 專案 Google Cloud 中,具備擁有者 (roles/owner) 或編輯者 (roles/editor) 基本 IAM 角色,或是具備下列預先定義的 IAM 角色:
    • AlloyDB 管理員 (roles/alloydb.admin) 或 AlloyDB 檢視者 (roles/alloydb.viewer)
    • 儲存空間管理員 (roles/storage.admin)
    • Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1)

上傳 DMP 檔案

如要上傳 DMP 檔案,請先建立 Cloud Storage bucket,再將 DMP 檔案上傳至該 bucket。

  1. 在 AlloyDB 資料庫所在的專案和區域,建立 Standard Storage Regional Storage bucket

  2. 將 DMP 檔案上傳至您建立的 Storage bucket。

準備用戶端主機

如要準備用戶端主機執行匯入作業,請建立可連線至 AlloyDB 主要執行個體的 Compute Engine VM (資料庫位於該執行個體),並在該 VM 上安裝 pg_restore 工具和 Google Cloud CLI。

  1. 請按照「將 psql 用戶端連線至執行個體」一文中的操作說明,建立具備適當連線能力並安裝 pg_restore 工具的 Compute Engine VM。按照這些操作說明操作時,請務必為 Compute Engine VM 分配足夠的本機儲存空間,以容納您要匯入的 DMP 檔案。

  2. 安裝 gcloud CLI,以便透過指令列存取 Cloud Storage bucket 中的 DMP 檔案。

匯入 DMP 檔案

如要匯入 DMP 檔案,請先取得資料庫所在 AlloyDB 主要執行個體的 IP 位址,然後使用 pg_restore 工具將檔案匯入資料庫。

  1. 查看詳細資料,取得資料庫所在 AlloyDB 主要執行個體的 IP 位址。
  2. 透過 SSH 連線至 Compute Engine VM。

    控制台

    1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

      前往 VM 執行個體

    2. 在虛擬機器執行個體清單中,找到您建立的執行個體,然後在該列中按一下「SSH」SSH

      執行個體名稱旁邊的 SSH 按鈕。

    gcloud

    使用 gcloud compute ssh 指令連線至您建立的執行個體。

    gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

    更改下列內容:

    • PROJECT_ID:包含執行個體的專案 ID。
    • ZONE:執行個體所在的可用區名稱。
    • VM_NAME:執行個體的名稱。
  3. 將 DMP 檔案複製到用戶端主機的本機檔案系統:
    gcloud storage cp gs://BUCKET_NAME/DMP_FILE_NAME .
  4. 執行下列指令,建立註解掉所有 EXTENSION 陳述式的 TOC 檔案:
    pg_restore \
    -l DMP_FILE_NAME | sed -E 's/(.* EXTENSION )/; \1/g' > TOC_FILE_NAME
    • DMP_FILE_NAME:本機檔案系統中的 DMP 檔案。
    • TOC_FILE_NAME:提供要在本機檔案系統中建立的目錄檔案名稱。
  5. 匯入 DMP 檔案:
    pg_restore -h IP_ADDRESS -U postgres \
      -d DB_NAME \
      -L TOC_FILE_NAME \
      DMP_FILE_NAME
    
    • IP_ADDRESS:主要執行個體的 IP 位址。
    • DB_NAME:要匯入的資料庫名稱。
    • TOC_FILE_NAME:您在上一個步驟建立的 TOC 檔案。
    • DMP_FILE_NAME:DMP 檔案。

    pg_restore 指令提供多個額外選項,可控制資料匯入作業。

清除所用資源

成功匯入 DMP 檔案後,您可以刪除 Cloud Storage 值區,以及在匯入程序中使用的 Compute Engine VM