首页 > 解决方案 > 来自 Azure Postgres 服务的 pg_dump,其中包含大型数据集

问题描述

在速度方面,我们面临着众所周知的 pg_dumps 效率问题。我们目前有一个 Azure 托管的 PostgreSQL,它保存了由 SmileCDR 创建/更新的资源。不知何故,三个月后,由于保存了 FHIR 对象,它变得越来越大。现在,我们想要一个全新的环境;在这种情况下,必须删除 PostgreSQL 中的持久数据,并且必须使用旧数据集启动新数据库。

请注意。

  1. pg_dump 消耗的时间相对要多得多,几乎是一天。我们如何加快备份恢复过程?
  2. 我们可以在 pg_dump 中使用和应用什么样的替代方案来实现目标?

重要笔记;

标签: postgresqlazurehl7-fhirpg-dumphapi-fhir

解决方案


由于您将自己置于数据库托管的笼子中,因此您别无选择pg_dump. 它们故意使您难以获取数据。

您可以做的最好的事情是包含许多进程的目录格式转储;将尽可能并行读取数据:

pg_dump -F d -j 6 -f backupdir -h ... -p ... -U ... dbname

在这个例子中,我指定了 6 个进程并行运行。这将加快处理速度,除非您只有一张大桌子,而其他所有桌子都很小。


推荐阅读