1

谢谢你们提前。如何更快地在同一个RDS实例上复制postgres数据库?

我有在AWS上一个60GB的Postgres RDS,并有databaseA这里面RDS情况下,我想打的databaseA重复在同一RDS服务器称为databaseB

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

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

(的实例类是db.m4.xlarge)

+0

你的RDS实例是什么类?你有没有尝试过更强大的RDS实例类? –

+0

它是'db.m4.xlarge' –

+0

对于SSD存储,您不会自动获得10,000 IOPS。最大IOPS取决于大小。尝试(a)增加存储容量,或(b)切换到预置IOPS。 –

回答

1

正如马特提到;你有两个选择:

  1. 增加你的服务器大小,这将给你更多的IOPS。
  2. 切换到配置的IOPS

由于这是一个临时的要求,我会用1去,因为ü可以升级到最大。可用服务器 - >执行数据库复制 - >无缝降级数据库服务器,并且不会花费太多时间。将SSD切换到预置IOPS将花费大量时间,因为它需要转换您的数据并因此减​​少停机时间。再后来当你再次从配置的iops切换回SSD时,需要时间。

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

相关问题