代码改变世界

pg_dump后数据导入报错 -- invalid byte sequence for encoding "UTF8": 0xe5 0xb1

2021-04-14 13:44  abce  阅读(1345)  评论(0)    收藏  举报

场景描述:
node1:数据备份节点

通过securecrt登录node1,通过scp命令将备份文件传输到node2

  


node2:用于还原的节点
在node2执行数据导入

$ gunzip -c /tmp/abce.2021-04-14.sql.gz | psql -p 5432 -U abce -W abce_db

  

 

尝试导入了几次,都遇到了相同的错误。

gzip: /tmp/abce.2021-04-10.sql.gz: unexpected end of file
ERROR:  invalid byte sequence for encoding "UTF8": 0xe5 0xb1
CONTEXT:  COPY abce_t, line 823865

  



开始是怀疑是node1和node2上的pg实例的字符集有问题。检查后,二者都是使用UTF8。

 

然后查看securecrt客户端的设置,发现node1的会话设置中不是使用UTF-8;而node2的会话设置中是使用UTF-8


修改node1的securecrt会话设置为UTF-8,然后重新使用scp命令将备份文件拷贝到node2,再次执行数据导入,居然成功了。