跳至内容

如何对 Amazon RDS for PostgreSQL 中的恢复操作失败进行故障排除?

1 分钟阅读
0

我在 Amazon Relational Database Service (Amazon RDS) for PostgreSQL 中的恢复操作失败或出现了问题。我想解决自动快照恢复、时间点故障恢复 (PITR) 或使用 PostgreSQL 原生工具时出现的错误。

解决方法

Amazon RDS for PostgreSQL 支持以下恢复方法:

  • 自动或手动数据库快照
  • 备份保留期内的时间点故障恢复 (PITR)
  • PostgreSQL 原生工具,例如 pg_dumppg_restore,用于逻辑备份

参考以下部分来排查您的恢复问题类型。

检查 pg_restore 版本兼容性

如果您的 pg_restore 实用程序版本与用于创建备份的版本不兼容,那么您可能会收到以下错误消息之一:

"Unsupported version (1.15) in file header"

"Could not find header for file 'toc.dat' in tar archive"

如果 PostgreSQL 实用程序要求 pg_dump 备份创建工具和 pg_restore 恢复工具之间的版本一致,那么您会收到其中一条错误消息。

要解决此问题,请检查您的 pg_restore 版本。在安装了 PostgreSQL 客户端实用程序的操作系统 (os) 上运行以下命令:

pg_restore --version

确保您的 pg_restore 版本与用于创建备份的 pg_dump 版本相同或比后者更新。如果需要,请升级您的 pg_restore 实用程序,使其匹配或高于备份版本。有关更多信息,请参阅 PostgreSQL pg_dump 和 pg_restore 实用程序

解决备份格式不匹配问题

如果您将 pg_restore 与纯文本 SQL 备份文件一起使用,那么您可能会收到以下错误消息:

"Input file appears to be a text format dump.Please use psql"

要解决此问题,请使用 psql 实用程序而非 pg_restore 来导入备份文件。有关更多信息,请参阅在 Amazon RDS 上将数据导入 PostgreSQL

注意:为避免在创建后续备份时出现此问题,请在创建备份时指定正确的格式。如果您计划使用 pg_restore 进行恢复,请使用 pg_dump (-Fc) 生成自定义格式,或使用 -Ft 生成 tar 格式。

监控恢复性能

在快照恢复或 PITR 操作期间,您的数据库实例会使用延迟加载。数据块会在被访问时按需加载。在频繁访问的数据被缓存之前,您的实例的性能可能会变慢。

要监控恢复进度,请运行以下命令:

aws rds describe-db-instances --db-instance-identifier instance-id

**注意:**将 instance-id 替换为您的数据库实例标识符。

有关在恢复操作后提升性能的信息,请参阅使用 PostgreSQL 的最佳实践

管理数据库端点

如果您需要在恢复操作后保持相同的端点名称,则可以重命名数据库实例

如果您使用只读副本,请确保在恢复操作后更新其配置。

相关信息

恢复到数据库实例

将 Amazon RDS 的数据库实例恢复到指定时间

将 PostgreSQL 数据库迁移到 Amazon RDS 和 Amazon Aurora 的最佳实践

AWS 官方已更新 6 个月前