如何更快地在同一个RDS实例上复制postgres数据库?

时间:2017-07-28 16:40:14

标签: sql postgresql amazon-web-services amazon-rds postgresql-9.6

提前谢谢你们。

我在aws上有一个60GB的Postgres RDS,并且在这个RDS实例中有databaseA,我想在同一个RDS服务器中复制databaseA databaseB

基本上我尝试的是运行CREATE DATABASE databaseB WITH TEMPLATE databaseA OWNER postgres;这个单个查询需要6个小时才能完成,这太慢了。我看到这个过程中的最大IOPS是120,甚至没有接近aws一般SSD限制10,000 IOPS的限制。我还尝试在参数组中调整work_memshared_bufferseffective_cache_size,根本没有任何改进。

我的最后一个选择是创建两个单独的RDS实例,但如果我可以在一个实例中执行此操作将会容易得多。我很感激任何建议。

(实例类为db.m4.xlarge)

1 个答案:

答案 0 :(得分:1)

正如马特所说;你有两个选择:

  1. 增加服务器大小,这将为您提供更多IOPS。
  2. 切换到预配置IOPS
  3. 由于这是一个临时要求,我将使用1,因为你可以升级到最大值。可用服务器 - >做数据库副本 - >无缝降级数据库服务器,不会花费太多时间。将SSD切换到预配置IOPS需要花费大量时间,因为它需要转换数据并因此需要更多停机时间。后来当你再次从配置的iops切换回SSD时,需要时间。

    注意1和1都是如果长期使用,2是昂贵的(如果你真的不需要它们);所以你不能保持原样。