云数据库 RDS-通过备份文件恢复到自建PostgreSQL数据库:常见问题

时间:2023-12-01 10:48:33

常见问题

恢复数据

Q:如果没有备份该如何恢复数据?

A:通过DRS迁移数据,详见将PostgreSQL同步到PostgreSQL

备份恢复操作

  • Q1:使用云数据库备份文件恢复自建数据库,数据库启动失败,报错信息“replication slot file xxx has corrupted length xxx”,如何处理?

    A:手动删除“pg_replslot”目录下的所有文件和文件夹,删除完成后启动数据库。

  • 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 "int4_text" is not in internal lookup table”时,如何处理?

    A:使用postgres用户连接本地PostgreSQL 11数据库执行如下命令删除该类型转换规则,需要super user执行。

    delete from pg_cast 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 pg_cast order by 1;

    对于RDS for PostgreSQL 11新增的类型转换规则,在本地PostgreSQL 11执行如下SQL全部删除。

    delete from pg_cast where castsource = xxx and casttarget = xxx;

support.huaweicloud.com/usermanual-rds/rds_pg_08_0049.html