提前谢谢你们。
我在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_mem
,shared_buffers
,effective_cache_size
,根本没有任何改进。
我的最后一个选择是创建两个单独的RDS实例,但如果我可以在一个实例中执行此操作将会容易得多。我很感激任何建议。
(实例类为db.m4.xlarge)
答案 0 :(得分:1)
正如马特所说;你有两个选择:
由于这是一个临时要求,我将使用1,因为你可以升级到最大值。可用服务器 - >做数据库副本 - >无缝降级数据库服务器,不会花费太多时间。将SSD切换到预配置IOPS需要花费大量时间,因为它需要转换数据并因此需要更多停机时间。后来当你再次从配置的iops切换回SSD时,需要时间。
注意1和1都是如果长期使用,2是昂贵的(如果你真的不需要它们);所以你不能保持原样。