如要將二進位資料庫封存檔還原至 AlloyDB for PostgreSQL 叢集,您可以使用 custom 或 directory 格式,匯入由 pg_dump 工具建立的 DMP 檔案。
如要匯入 pg_dump 工具以 plain 格式建立的檔案,請參閱「匯入 SQL 檔案」。
匯入程序包含下列工作:
將 DMP 檔案上傳至 Cloud Storage bucket。
準備用戶端主機,以便執行匯入作業。
將 DMP 檔案匯入資料庫。
事前準備
- 您必須在使用的 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)
- AlloyDB 管理員 (
上傳 DMP 檔案
如要上傳 DMP 檔案,請先建立 Cloud Storage bucket,再將 DMP 檔案上傳至該 bucket。
在 AlloyDB 資料庫所在的專案和區域,建立 Standard Storage Regional Storage bucket。
將 DMP 檔案上傳至您建立的 Storage bucket。
準備用戶端主機
如要準備用戶端主機來執行匯入作業,請建立 Compute Engine VM,並連線至資料庫所在的 AlloyDB 主要執行個體,然後在該 VM 上安裝 pg_restore 工具和 Google Cloud CLI。
請按照「將 psql 用戶端連線至執行個體」一文的操作說明,建立具備適當連線能力且已安裝
pg_restore工具的 Compute Engine VM。按照這些操作說明操作時,請務必為 Compute Engine VM 分配足夠的本機儲存空間,以容納要匯入的 DMP 檔案。安裝 gcloud CLI,以便透過指令列存取 Cloud Storage bucket 中的 DMP 檔案。
匯入 DMP 檔案
如要匯入 DMP 檔案,請取得資料庫所在 AlloyDB 主要執行個體的 IP 位址,然後使用 pg_restore 工具將檔案匯入資料庫。
- 查看 AlloyDB 主要執行個體的詳細資料,取得資料庫所在執行個體的 IP 位址。
- 透過 SSH 連線至 Compute Engine VM。
控制台
- 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
- 在虛擬機器執行個體清單中,按一下您建立的執行個體那一列的「SSH」SSH。

gcloud
使用
gcloud compute ssh指令連線至您建立的執行個體。gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME
更改下列內容:
PROJECT_ID:執行個體 所在專案的 ID。ZONE:執行個體所在的可用區名稱。VM_NAME:執行個體名稱。
- 將 DMP 檔案複製到用戶端主機的本機檔案系統:
gcloud storage cp gs://BUCKET_NAME/DMP_FILE_NAME .
- 執行下列指令,建立會對所有
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 檔案名稱。
- 匯入 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。