溫馨提示×

Ubuntu PostgreSQL 怎樣進行數據遷移

小樊
41
2025-09-03 00:39:27
欄目: 云計算

在Ubuntu上進行PostgreSQL數據遷移,常用方法包括使用命令行工具和圖形化工具,以下是具體步驟及注意事項:

一、命令行工具遷移

1. 使用 pg_dumppg_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。

2. 使用 psql 導入SQL腳本

  • 導出為SQL文件

    pg_dump -U 用戶名 -h 主機地址 -p 端口 -F p -b -v -f /路徑/備份文件.sql 數據庫名
    
    • -F p:生成純文本SQL腳本。
  • 導入SQL文件

    psql -U 用戶名 -h 主機地址 -d 目標數據庫名 -f /路徑/備份文件.sql
    
    • 需提前創建目標數據庫。

3. 使用 COPY 命令(適合單表或結構化數據)

  • 導出表數據到CSV
    COPY 表名 TO '/路徑/文件.csv' WITH CSV HEADER;
    
  • 導入CSV數據到表
    COPY 表名 FROM '/路徑/文件.csv' WITH CSV HEADER;
    
    • 需確保目標表結構已存在。

二、圖形化工具遷移(pgAdmin)

  1. 導出數據庫
    • 連接源數據庫 → 右鍵選擇“Backup…” → 選擇格式(SQL/自定義)→ 指定路徑 → 點擊“Backup”。
  2. 導入數據庫
    • 連接目標數據庫 → 右鍵選擇“Restore…” → 選擇備份文件 → 配置選項(如覆蓋、并行恢復)→ 點擊“Restore”。

三、注意事項

  1. 權限與版本
    • 確保源和目標服務器的PostgreSQL版本兼容,且用戶有足夠權限(如創建數據庫、訪問表)。
  2. 數據一致性
    • 遷移前建議對源數據庫進行備份,避免數據丟失。
    • 大數據量遷移時,使用 pg_restore -j 并行恢復或分階段處理。
  3. 特殊場景
    • 跨服務器遷移需確保網絡連通,可通過SSH隧道或直接文件傳輸(如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。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女