原生 PostgreSQL 客户端应用程序 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

原生 PostgreSQL 客户端应用程序

你可以使用原生 PostgreSQL 客户端应用程序进行离线迁移,包括 pg_dumppg_dump all 和 pg_restor e。pg_dump 实用程序用于备份 PostgreSQL 数据库。您可以使用 pg_dump 进行一致的备份并备份单个数据库。要备份集群中所有数据库通用的全局对象(例如角色和表空间),请使用 pg_dumpall。我们建议您以超级用户身份运行 pg_dump 实用程序,因为只有超级用户才能执行完整的转储。pg_dump 实用程序还提供优化备份过程的选项,包括在备份时使用作业选项(用于parallel 运行转储)和目录格式。有关更多信息,请参阅 PostgreSQL 文档中的 pg_dump 页面的 “选项” 部分。

pg_restore 实用程序用于从 pg_dump 创建的档案中恢复 PostgreSQL 数据库。如果您以自定义或目录格式使用 pg_dump,则可以在parallel 模式下运行 pg_restore 实用程序。要提高 pg_restore 的性能,可以调整以下参数:

  • 设置shared_buffers为与您的要求保持一致,并增加maintenance_work_mem以加快索引创建速度。

  • 关闭大量日志记录、autovacuum 守护程序和full_page_writes

  • (可选)备份和恢复架构,并使用仅限数据的转储和恢复。如果您使用此方法,则可以使用该disable-triggers选项来提高性能。

您可以从目标 EC2 实例运行 pg_dump 和 pg_restore。我们建议您使用 AWS Direct Connect 以获得更好的速度和性能。最后,请确保您具有足够的存储空间来存储备份。

架构

下图显示了使用原生 PostgreSQL 客户端应用程序将本地 PostgreSQL 数据库迁移到 AWS 云的架构。

原生 PostgreSQL 客户端应用程序架构

该图表显示以下工作流程:

  1. 使用 pg_dump 进行备份。

  2. 创建 EC2 实例并在该实例上安装 PostgreSQL。

  3. 将转储文件复制到 Amazon EC2。

  4. 使用 pg_restore 恢复备份文件。

限制

开始迁移之前,我们建议您考虑以下使用原生 PostgreSQL 客户端应用程序的限制:

  • 对于较大的数据库(即大于 300 GB 的数据库),转储和恢复可能很耗时。

  • 此选项需要完全停机数据库。

  • 服务器上需要大量的磁盘空间来进行备份,然后将备份复制到 Amazon EC2。