匯入資料前,請務必完成下列事項:
建立資料庫叢集,以便匯入資料。
將 dump 檔案上傳至 Storage bucket。如需操作說明,請參閱「將物件上傳至儲存空間值區」。
授予資料庫服務匯入服務帳戶 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 檔案匯入資料庫叢集:
控制台
在 GDC 控制台中開啟「Database cluster overview」(資料庫叢集總覽) 頁面,查看要匯入的資料庫所在的叢集。
按一下「匯入」。「將資料匯入帳戶」面板隨即開啟。
在「Import data to accounts」(將資料匯入帳戶) 面板的「Source」(來源) 區段中,指定先前上傳的 SQL 資料 dump 檔案位置。
在「Destination」(目的地) 欄位中,指定現有的匯入目的地資料庫。
按一下「匯入」。GDC 控制台的橫幅會顯示匯入狀態。
gdcloud
執行下列指令,將 dump 檔案匯入資料庫:
gdcloud database import sql DATABASE_CLUSTER BUCKET_NAME/sample.dmp \ --project=PROJECT_NAME更改下列內容:
- DATABASE_CLUSTER:要匯入資料的資料庫叢集名稱。
- 將 BUCKET_NAME/SAMPLE.dmp 替換為 dump 檔案的位置。
- PROJECT_NAME 替換為資料庫叢集所在專案的名稱。
執行下列指令,檢查匯入狀態:
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:儲存檔案的物件儲存庫路徑名稱。