下载RDS快照


71

我最近降级了EC2实例。我无法再连接到RDS。我认为可能是内部IP不同,现在登录名已附加到该特定IP。我还没弄清楚。我希望能够从快照中获取备份。有没有办法通过AWS下载它?

Answers:


68

您无法下载RDS快照。但是,您可以连接到它并导出数据库。除非您错误地设置了安全组(打开IP的端口而不是其他安全组的端口),否则降级实例不会影响连接。


我已验证EC2实例可以通过telnet连接到RDS端点上的端口3306。但是,我的登录无效。我的安全组甚至都没有指定mysql(我认为无论如何都是要入站EC2实例的)。db安全组指定了我的EC2实例也具有的EC2安全组。我相信应该是这样设置的。最初就是这样。我刚尝试使用比文件中的密码更旧的密码,它可以正常工作。一定要知道,尽管如此,您还是无法下载RDS快照。谢谢!
威廉

6
您如何连接到快照?是否可以在不将该快照恢复到数据库的情况下完成?
ScotterC

12
@ScotterC,您需要使用快照创建一个新实例。
2013年

3
@datasage的例子很好。很懒惰的答案
hmedia1

3
这似乎比应该的要复杂得多。
user2588667'2

16

接受的答案不再是最新的。您可以使用AWS控制台来代替命令行工具。

导航到RDS->快照->手动/系统->

选择快照->操作->导出到S3

在大多数生产环境中,经历S3很常见,因为您无法直接访问数据库实例。

带有导出到S3的AWS RDS控制台


这看起来确实不错,但是AWS在尝试执行此操作时只会说“ Internal Server Error”。希望他们尽快解决这些错误。
user2588667'2

1
为澄清:这只是在区域的选择列表真的,不是随处可得:aws.amazon.com/about-aws/whats-new/2020/01/...
文森特Duprez

11

除了datasage答案。

作为生产实例的一种选择,您可以在RDS中创建一个只读副本,并从该副本进行转储。您可以通过这种方式避免冻结生产数据库。

我们将这种方案用于PostgreSQL + pg_dump。希望对其他人也有帮助。


2

我用:

pg_dump -v -h RDS_URL -Fc -o -U username dbname > your_dump.sql


1
谢谢您的回答-尽管代码段/配置片段可能会提供一些有限的短期帮助,但正确的解释显示出这是解决问题的好方法,从而大大提高其长期价值,并且对解决问题更有用。未来的读者还有其他类似的问题。请编辑您的答案以添加一些解释,包括您所做的假设。
kenny_k


1

我还需要执行此操作,因此我通过登录具有访问该数据库权限的应用服务器来创建数据库(MySQL)的转储。然后,我使用scp将转储下载到本地计算机。我用了:

mysqldump -uroot -p -h<HOST> --single-transaction <DBNAME> > output.sql

这没有用,有两个原因:首先,它不能回答问题;其次,这需要与RDS实例连接; OP正是因为不能回答而问这个问题。
toon81

@ toon81实际上,他涵盖了连接问题。如果您无法从外部进行连接,则可以通过EC2进行连接(如果这是VPC问题)。
Bogdan Mart,

@BogdanMart自降级其EC2实例以来,OP无法连接,这表明他们一直在尝试从EC2实例进行连接。无论如何,这仍然没有关系,因为OP并未询问如何连接。我认为应该是,但是事实仍然是这个问题是关于其他问题。
toon81

1

听起来您的RDS处于具有安全组和ACL的专用子网内的VPC中。解决问题的唯一方法是在允许所有连接的默认VPC内创建快照并确定新的数据库实例。之后,您可以使用数据库客户端或CLI进行经典备份。

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.