阿里雲資料庫PostgreSQL版支援通過邏輯備份檔案將雲上資料移轉到本機資料庫。
前提條件
本地已安裝PostgreSQL,且資料庫大版本與RDS PostgreSQL相同。
說明本文所使用的備份工具pg_dump是PostgreSQL的內建工具,在本地安裝PostgreSQL的同時會自動安裝。
本機資料庫中已建立資料庫且資料庫中無資料,用於恢複資料。
本機資料庫已建立superuser使用者。
操作步驟
在本地命令列視窗執行如下命令,備份資料。
pg_dump -U <username> -h <hostname> -p <port> <databasename> -f <filename> --exclude-table=public.ha_health_check
參數說明如下:
參數
說明
username
雲資料庫高許可權帳號名。如何建立高許可權帳號,請參見建立帳號。
hostname
雲資料庫主機名稱。
port
雲資料庫連接埠號碼。
databasename
要備份的資料庫名。
filename
要產生的備份檔案名稱。
--exclude-table=public.ha_health_check
用於跳過高可用檢查表。
樣本
pg_dump -U testuser -h xxxx.pg.rds.aliyuncs.com -p 5432 testdb -f bkfile.sql --exclude-table=public.ha_health_check
執行如下命令將資料恢複到本機資料庫。
psql -U <username> -h <hostname> -d <databasename> -p <port> -f <filename.sql>
參數說明如下:
參數
說明
username
本機資料庫superuser使用者名稱。
hostname
本機資料庫地址,配置為localhost。
port
本機資料庫連接埠號碼。
databasename
目的資料庫名。
filename
備份檔案名稱。
樣本
psql -U testuser -h localhost -d testdb -p 5432 -f bkfile.sql
由於 RDS 資料庫的使用權限設定和本機資料庫不一致,在資料匯入處理程序當中可能會出現一些與許可權相關的 WARNING 或 ERROR,可以忽略,例如:
WARNING: no privileges could be revoked for "xxxxx"
ERROR: role "xxxxx" does not exist