如果数据库太忙,使用 pg_dump 的备份会导致服务器中断吗?

Do backups using pg_dump cause server outage if the database is too busy?

我在生产环境中有一个 Postgres 数据库,它的表中有数百万条记录。所以我想使用 pg_dump 进行备份以进行一些调查。

但是这个数据库太忙了。所以我担心如果备份操作导致任何服务器问题,如服务器速度变慢或数据库崩溃等,因为它是繁忙的数据库。

如果有风险,谁能分享一下吗?并且请提供一些关于从 Postgres 无风险备份的最佳实践的想法。

运行宁 pg_dump 不会导致服务器崩溃,但会增加一些额外的 CPU,尤其是 I/O 负载。您可以测试一下是否有问题,pg_dump随时可以取消。

在繁忙的数据库中,它还会导致 table 膨胀 ,因为必须在 pg_dump 期间保留旧行版本并且无法吸尘。

有一些选择:

  • 运行 pg_dump 针对备用服务器。

  • 使用pg_basebackup进行物理备份。可以对其进行节流以减少 I/O 负载。