>是否可以访问RDS在其备份例程中自动生成的WAL文件和备份?这将是理想的.我想下载它们的本地副本.经过初步调查,我觉得这个问题的答案是’不’.听起来RDS在S3中存储其WAL文件和备份,但它使我们无法访问它们.我很想确认.
>有没有其他方法来访问RDS实例上发生的事务(WAL文件)?我想我们应该能够在EC2上创建一个Postgres数据库,并从我们的主’实时’RDS实例创建’Feed’事务到这个EC2实例.一旦我们的EC2实例更新,我们就可以从那里提取WAL文件.但令人头疼的是:/这种设置是否可行?从我们的RDS实例“提供”到EC2实例的魔力是什么,以便它始终是最新的?
谢谢!
更新: I’ve posted about this to the AWS forums – please go chime in and ask for it there.在撰写本文时,Amazon RDS不支持RDS之外的物理复制.您可以使用rds_superuser登录向用户授予REPliCATION权限,但是您无法在pg_hba.conf中为外部IP配置复制条目.
此外,在RDS中创建数据库参数组时,会显示一些关键参数但是已锁定,例如archive_command,它被锁定到/ etc / rds / dbbin / pgscripts / rds_wal_archive%p.用于Postgresql的AWS RDS似乎没有公开这些WAL以进行外部访问(例如,通过S3),因为如果您将WAL运输复制用于外部PITR,则需要这样做.
所以在这一点上,如果你想要沃尔玛运输,不要使用RDS.它是一个易于使用的罐装数据库,但易于使用通常意味着它也是有限的,这肯定是这里的情况.正如Joe love在评论中指出的那样,它在RDS中提供WAL运输和PITR,但是您无法从RDS外部访问WAL.
因此,您需要使用RDS自己的备份工具 – 转储,快照和自己的基于WAL的PITR.
即使RDS允许您进行复制连接(用于pg_basebackup或流复制)并允许您访问存档的WAL,您也可能无法实际使用该WAL. RDS运行一个修补过的Postgresql,虽然没有人知道修补程度有多大,或者它是否显着改变了磁盘格式.它也运行在亚马逊选择的架构上,可能是x64 linux,但不容易确定.由于Postgresql的磁盘格式和复制依赖于体系结构,因此您只能复制到与Amazon RDS使用的体系结构相同的主机,并且只有在Postgresql构建与它们兼容的情况下才能复制.
除此之外,这意味着您没有任何简单的方法可以远离RDS.您必须停止对数据库的所有写入足够长的时间来获取pg_dump,还原它,并使新数据库运行.复制和故障转移(使用rsync等)的常用技巧将无法正常工作,因为您无法直接访问数据库主机.
即使RDS运行未修补的Postgresql亚马逊可能也不希望允许您使用pg_basebackup将WAL流式传输到RDS或导入到RDS中,以确保安全性. Postgresql将数据目录视为可信内容,如果您精心设计了任何能够挂钩内部功能或执行其他任何其他 *** 作的聪明的“LANGUAGE c”函数,您可能能够利用服务器获得比您应该拥有的更多的访问权限.所以亚马逊不会很快允许入境WAL.
它们可以支持出站WAL发送,但上述格式兼容性,更改自由等问题仍然适用.
相反,你应该使用像Londiste或Bucardo这样的工具.
总结以上是内存溢出为你收集整理的从AWS RDS PostgreSQL实例获取WAL文件全部内容,希望文章能够帮你解决从AWS RDS PostgreSQL实例获取WAL文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)