首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >还原PostgreSQL数据库时出错“无效字节序列”

还原PostgreSQL数据库时出错“无效字节序列”
EN

Stack Overflow用户
提问于 2013-07-05 11:10:13
回答 1查看 4.9K关注 0票数 2

今天早些时候,我试图使用PostgreSQL III从生产中恢复我的pgAdmin (8.1.22)数据库。但是,在恢复过程完成之后,它开始抛出以下错误:

代码语言:javascript
运行
复制
WARNING: errors ignored on restore: 4 

此外,经过调查,我发现在所有表中,有3个表没有被恢复(包含0行)。当我检查日志时,我发现了三个表附近的折叠错误:

代码语言:javascript
运行
复制
pg_restore: [archiver (db)] Error from TOC entry 5390; 0 442375 TABLE DATA tablename postgres
pg_restore: [archiver (db)] COPY failed: ERROR:  invalid byte sequence for encoding "UTF8": 0xea0942
HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
CONTEXT:  COPY tablename , line 7875

我试着在谷歌上研究我的问题,但没有结果。请帮助恢复这三个表,没有任何错误。

EN

回答 1

Stack Overflow用户

发布于 2013-07-05 11:51:54

较早版本的PostgreSQL对UTF-8遵从性没有新版本那么严格.您大概是在尝试将包含无效UTF-8的数据从这样的旧版本恢复到更新的版本。

无效的字符串必须清除。对于由于以下错误而未导入的每个表,您可以遵循该过程:

  1. 将表的内容从转储文件提取为SQL纯文本文件: pg_restore --table=tablename --数据专用的dumpfile >plaintext.sql
  2. 删除文本编辑器中的无效字符或使用iconv自动删除这些字符: -c -f UTF-8 -t UTF-8 明文-清除.UTF
  3. 导入经过消毒的数据: psql dbname <明文-清除.psql
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17487501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档