常见问题 恢复数据 Q:如果没有备份该如何恢复数据? A:通过DRS迁移数据,详见将PostgreSQL同步到PostgreSQL。 备份恢复操作 Q1:使用云数据库备份文件恢复自建数据库,数据库启动失败,报错信息“replication slot file xxx has corrupted length xxx”,如何处理? A:手动删除“pgreplslot”目录下的所有文件和文件夹,删除完成后启动数据库。 Q2:常见报错“could not locate a valid checkpoint record”的原因,以及如何处理? A:该错误通常表示数据库中的检查点记录已损坏或丢失,导致无法恢复数据库。一般情况下是wal日志没有被正常加载,建议参考6.b中的处理重新执行该命令。 RDS for PostgreSQL11版本恢复数据 Q1:RDS for PostgreSQL 11恢复到本地PostgreSQL 11时int4到text的类型转换时出现报错信息 “ERROR: internal function "int4text" is not in internal lookup table”时,如何处理? A:使用postgres用户连接本地PostgreSQL 11数据库执行如下命令删除该类型转换规则,需要super user执行。 delete from pgcast where castsource 'int4'::regtype and casttarget 'text':: regtype; Q2:RDS for PostgreSQL 11恢复到本地PostgreSQL 11时多个类型转换函数报错,如何排查和处理? A:分别在本地PostgreSQL 11和RDS for PostgreSQL 11执行如下SQL,并对比结果。 select oid, from pgcast order by 1; 对于RDS for PostgreSQL 11新增的类型转换规则,在本地PostgreSQL 11执行如下SQL全部删除。 delete from pgcast where castsource xxx and casttarget xxx;