postgresql 數據備份與恢復


 

最近在做數據遷移時,遇到了數據表導入時,總是提示 string  too long 或者 sequence 問題。 問題很容易定位:字符編碼。通過sql語句查看數據庫字符編碼:select datname, pg_encoding_to_char(encoding) from pg_database 。 查到一個為UTF8,另一個是SQL_ASCII,改變數據庫字符編碼即可,保持一致。  

一、首先:保持數據庫的字符編碼和用戶名一致。

二、然后再做數據轉移:

數據遷移時,通過pg_dump命令

(1) 指定庫指定表 pg_dump -d db_name -t table_name -f filename

   恢復:psql -h $host -p $port  -U $user -W $password -d $database < $backup_file 

(2) 壓縮 pg_dump -d db_name -t table_name | gzip file_name.gz

   恢復:gunzip -c filename.gz | psql dbname 或者 cat filename.gz | gunzip | psql dbname

(3)切分成小文件多線程執行  pg_dump dbname | split -b 1m - filename

   恢復:cat filename* | psql dbname

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM