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