从AWS RDS PostgreSQL实例获取WAL文件


18

我们在Amazon Web Services上有一个Postgres RDS实例。我们启用了自动备份,并且每天拍摄快照。我们想生成一个RDS实例的本地“最新”备份,我们可以对其进行管理。对实例运行pg_dump是不够的,因为我们希望能够将数据库还原到任何时间点。我们希望对RDS和所有WAL文件进行本地备份,因为已进行了备份。问题:

  1. 是否可以访问RDS在其备份例程中自动生成的WAL文件和备份?这将是理想的。我想下载它们的本地副本。经过初步调查,我觉得这个问题的答案是“否”。听起来RDS正在S3中存储其WAL文件和备份,但是这使我们无法访问它们。我希望确认。

  2. 还有其他方法可以访问RDS实例上发生的事务(WAL文件)吗?我想我们应该能够在EC2上创建Postgres数据库,并将事务从主要的“实时” RDS实例“馈送”到该EC2实例中。一旦我们的EC2实例更新,我们就可以从那里拉WAL文件。但是,多么令人头疼://这种设置可行吗?从我们的RDS实例“馈送”到EC2实例以使其始终保持最新状态的魔力是什么?

谢谢!

Answers:


17

更新:我已经在AWS论坛上发布了有关此内容的信息,请进入并在那儿索要


在撰写本文时,Amazon RDS不支持RDS之外的物理复制。您可以GRANT用户REPLICATION使用正确的rds_superuser登录,但你不能配置replication在外面的IP条目pg_hba.conf

此外,当您在RDS中创建数据库参数组时,某些关键参数会显示但已锁定,例如archive_command锁定为/etc/rds/dbbin/pgscripts/rds_wal_archive %p。PostgreSQL的AWS RDS似乎没有公开这些WAL供外部访问(例如,通过S3),如果您要对外部PITR使用WAL装运复制则需要这样做。

因此,在这一点上,如果您想要沃尔玛运输,请不要使用RDS。它是一个罐装的易于使用的数据库,但是易于使用通常意味着它也很有限,在这里肯定是这种情况。正如Joe Love在评论中指出的那样,它在RDS内提供WAL运送和PITR ,但您无法从RDS 外部访问WAL 。

因此,您需要使用RDS自己的备份工具-转储,快照和它自己的基于WAL的PITR。


即使RDS确实允许您建立复制连接(用于pg_basebackup流复制或流复制)并允许您访问存档的WAL,您也可能无法实际使用该WAL。RDS运行已修补的PostgreSQL,尽管没人知道修补的程度或是否会显着改变磁盘格式。它也可以在Amazon选择的架构上运行,该架构可能是x64 Linux,但不容易确定。由于PostgreSQL的磁盘格式和复制取决于体系结构,因此仅当PostgreSQL构建与其主机兼容时,您才能复制到具有与Amazon RDS使用的体系结构相同的主机。

除其他外,这意味着您没有任何简单的方法可以从RDS迁移。您必须停止对数据库的所有写操作足够长的时间,以进行pg_dump,恢复它并运行新的DB。复制和故障转移,rsync等通常的技巧将不起作用,因为您没有直接访问数据库主机的权限。

即使RDS运行了未打补丁的PostgreSQL,pg_basebackup出于安全原因,Amazon可能也不想允许您将WAL流式传输到RDS或使用RAL导入RDS 。PostgreSQL将数据目录视为受信任的内容,如果您精心制作了一些巧妙的“ LANGUAGE c”函数来挂钩内部功能或进行了其他棘手的工作,则可能能够利用服务器获得比您应有的更大的访问权限。因此,亚马逊不会在短期内允许入站WAL。

它们可以支持出站WAL发送,但是上述格式兼容性,更改自由等问题仍然适用。


相反,您应该使用Londiste或Bucardo之类的工具。


如果RDS不支持PITR,则“恢复到某个时间点”的按钮有什么好处?
Joe Love

1
RDS 在RDS中支持PITR 。您不能 RDS 之外运送WAL 。我将进行编辑以使答案更清晰,因为我可以看到您读起来就像说RDS完全不支持PITR。
Craig Ringer 2014年


1

根据该论坛主题的回复,从2014年11月10日起现在支持使用基于触发器的系统(如Londiste和Bucardo)复制到RDS中和从RDS复制出去。

这里的公告


1
这很方便-但与此处所讨论的不一样。他们增加了对基于触发器的逻辑复制的支持,例如带有RDS的Bucardo和Londiste。这并没有增加对热备份pg_basebackup等所使用的基于“物理”日志的流的支持。由于安全方面的考虑,阻止它们真正支持物理复制,因此已经做出了最佳选择。
Craig Ringer 2015年

啊哈 并感谢您的编辑。我从另一个更笼统地要求复制选项的问题中得到了这个问题-应该注意到这个问题专门询问了WAL文件。
michel-slm

然后,也请添加指向相关问题的链接。无论如何这将是有用的。
Craig Ringer 2015年

在这里,您是-将张贴我的答案有太多:stackoverflow.com/questions/20468230/...
米歇尔- SLM
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.