我在一家慈善机构工作,他们在 AWS 上提供一些服务。
几年前,他们聘请了一家代理机构来启动这些内联网和工具平台。我试图获取他们的数据库的转储,用于备份存档,并在终止这些平台之前提取一些内容。我有以下两种方法来尝试获取数据库:
- 访问 RDS 并将其转储到我的本地机器
- 访问 EC2 实例,执行 postgres 转储并 scp 文件
我没有太多运气。但是使用 AWS 控制台(浏览器中的 Web 界面),我设法连接到实例并将转储保存到 /tmp
有人能帮助我让 1 工作吗,或者 2 帮助我从命令行使用 ssh/scp,因为我没有可用于 scp 访问的 .pem 文件。
谢谢
答案1
如果数据库位于 RDS 中,并且您不需要最新数据,则应该能够创建 RDS 快照。然后使用该快照将数据库还原到新的 RDS 实例。
在新的 RDS 实例上,您应该能够更改安全组信息以及主数据库密码。虽然我从未使用 PostgreSQL 做过这件事。我不记得 RDS 是否使用密钥,但通常可以在从快照还原时分配一个新密钥。慢慢地完成这个过程并扩展所有选项,因为可能不清楚在哪里执行此操作。
我建议使用新的 RDS 实例(从快照恢复)执行此操作,因为您不会影响正在运行的系统,并且可以自由地进行更剧烈的更改。
一旦你有了新的 RDS 实例并且可以连接到它,你有几个选择。你可以尝试直接连接并转储数据,也可以尝试将数据从 RDS 导出到 S3或者您可以启动您完全控制的 EC2 实例并通过该系统执行此操作。
取出数据后,不要忘记清理您创建的 RDS 实例(和快照)。请记住,停止 RDS 实例只能持续 7 天,之后它将自行启动并产生使用费。