场景描述:
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,再次执行数据导入,居然成功了。