在Ubuntu上進行PostgreSQL數據遷移,常用方法包括使用命令行工具和圖形化工具,以下是具體步驟及注意事項:
pg_dump 和 pg_restore(推薦)導出數據
pg_dump -U 用戶名 -h 主機地址 -p 端口 -F c -b -v -f /路徑/備份文件.dump 數據庫名
-F c:自定義格式(支持壓縮和并行恢復)。-b:包含大對象(如二進制數據)。pg_dump -U postgres -h localhost -p 5432 -F c -b -v -f /backup/db.dump mydb。導入數據
pg_restore -U 用戶名 -h 主機地址 -d 目標數據庫名 -v /路徑/備份文件.dump
-C 參數自動創建。pg_restore -U postgres -d newdb -v /backup/db.dump。psql 導入SQL腳本導出為SQL文件
pg_dump -U 用戶名 -h 主機地址 -p 端口 -F p -b -v -f /路徑/備份文件.sql 數據庫名
-F p:生成純文本SQL腳本。導入SQL文件
psql -U 用戶名 -h 主機地址 -d 目標數據庫名 -f /路徑/備份文件.sql
COPY 命令(適合單表或結構化數據)COPY 表名 TO '/路徑/文件.csv' WITH CSV HEADER;
COPY 表名 FROM '/路徑/文件.csv' WITH CSV HEADER;
pg_restore -j 并行恢復或分階段處理。scp)。pg_dump 的 -t 參數指定表名。| 場景 | 命令示例 |
|---|---|
| 備份整個數據庫 | pg_dump -U postgres -h localhost -F c -b -v -f /backup/db.dump mydb |
| 恢復整個數據庫 | pg_restore -U postgres -d newdb -v /backup/db.dump |
| 備份單表 | pg_dump -U postgres -h localhost -t users -F c -b -v -f /backup/users.dump mydb |
| 從SQL文件導入 | psql -U postgres -d newdb -f /backup/schema.sql |
更多細節可參考官方文檔:PostgreSQL pg_dump/pg_restore。