一、準備工作
在CentOS中使用pgAdmin導出導入數據前,需完成以下準備:
- 安裝pgAdmin:通過包管理器安裝(如
sudo yum install pgadmin4
),啟動服務后通過瀏覽器訪問http://localhost:5050
登錄。
- 連接數據庫:打開pgAdmin,在左側“Servers”節點右鍵選擇“Create”→“Server”,輸入源/目標數據庫的主機名、端口(默認5432)、數據庫名、用戶名(如postgres)、密碼等信息,保存后連接。
- 權限確認:確保用于連接的用戶具有足夠權限(如導出需
SELECT
權限,導入需INSERT
/CREATE
權限)。
二、數據導出步驟
1. 圖形界面導出(推薦新手)
- 選擇目標對象:在pgAdmin左側導航欄,展開已連接的源數據庫服務器,選擇要導出的數據庫(或進一步展開“Schemas”→“Tables”選擇特定表)。
- 啟動導出流程:右鍵點擊選中的數據庫/表,選擇“Export”(導出)選項。
- 配置導出參數:
- 格式選擇:根據需求選擇格式(SQL格式保留結構和數據,適合完整數據庫遷移;CSV格式適合與電子表格工具兼容,適合單表數據遷移)。
- 內容選項:勾選“Export data”(導出數據)、“Export structure”(導出結構,如表定義、索引);若只需導出部分表,可在“Tables”列表中勾選。
- 路徑設置:點擊“Browse”選擇導出文件的保存路徑(如
/home/user/mydatabase_backup.sql
),確保PostgreSQL進程對該路徑有寫入權限。
- 執行導出:點擊“Start”按鈕,等待進度條完成,導出成功后會提示“Export completed successfully”。
2. 命令行輔助導出(適合批量/自動化)
若需批量導出或集成到腳本中,可使用pg_dump
命令(pgAdmin底層依賴的工具):
pg_dump -h localhost -p 5432 -U postgres -d mydatabase -f /path/to/backup.sql
- 參數說明:
-h
指定主機名(默認localhost);-p
指定端口(默認5432);-U
指定用戶名;-d
指定數據庫名;-f
指定導出文件路徑。
- 導出單表:添加
-t
參數,如pg_dump -h localhost -p 5432 -U postgres -d mydatabase -t mytable -f /path/to/table_backup.sql
。
三、數據導入步驟
1. 圖形界面導入
- 選擇目標數據庫:在pgAdmin左側導航欄,展開目標數據庫服務器,選擇要導入數據的數據庫(需提前創建,可通過“Create”→“Database”新建)。
- 啟動導入流程:右鍵點擊目標數據庫,選擇“Import”(導入)選項。
- 選擇導入文件:點擊“Browse”按鈕,選擇之前導出的數據文件(如
/home/user/mydatabase_backup.sql
)。
- 配置導入參數:
- 格式匹配:確保導入格式與導出格式一致(如導出為SQL則選擇“SQL”格式)。
- 沖突處理:若目標數據庫中已存在同名表,可選擇“Truncate”(清空現有表數據)或“Append”(追加數據,需確保表結構一致)。
- 執行導入:點擊“Start”按鈕,等待進度條完成,導入成功后會提示“Import completed successfully”。
2. 命令行輔助導入
若需批量導入或解決圖形界面導入失敗問題,可使用psql
命令:
psql -h localhost -p 5432 -U postgres -d mydatabase -f /path/to/backup.sql
四、注意事項
- 權限問題:確保用于連接的用戶對源數據庫有讀取權限,對目標數據庫有寫入權限;導出/導入文件的路徑需對PostgreSQL進程可訪問。
- 版本兼容:源數據庫與目標數據庫的PostgreSQL版本需兼容(如高版本導出的數據可導入低版本,但部分新特性可能丟失)。
- 數據一致性:導入前建議備份目標數據庫(如使用
pg_dump
),避免數據覆蓋;若數據量較大,可分批次導入(如按表分割)。
- 格式匹配:導出與導入的格式需一致(如SQL導出需對應SQL導入,CSV導出需對應CSV導入);CSV導入時需確認分隔符(默認逗號
,
)與導出時一致。