匯入 DMP 檔案

如要將二進位資料庫封存檔還原至 AlloyDB for PostgreSQL 叢集,您可以使用 custom 或 directory 格式,匯入由 pg_dump 工具建立的 DMP 檔案。

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

匯入程序包含下列工作:

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

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

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

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

事前準備

  • 您必須在使用的 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。

準備用戶端主機

如要準備用戶端主機來執行匯入作業,請建立 Compute Engine VM,並連線至資料庫所在的 AlloyDB 主要執行個體,然後在該 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:提供要在本機檔案系統上建立的 TOC 檔案名稱。
  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:您在上一個步驟中建立的目錄檔案。
    • DMP_FILE_NAME:DMP 檔案。

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

清除所用資源

成功匯入 DMP 檔案後,您可以刪除 Cloud Storage bucket,並刪除匯入程序中使用的 Compute Engine VM。