【问题标题】:Should I stick only to AWS RDS Automated Backup or DB Snapshots?我应该只坚持使用 AWS RDS 自动备份还是数据库快照?
【发布时间】:2012-04-06 14:53:49
【问题描述】:

我正在使用适用于 MySQL 的 AWS RDS。说到备份,我知道亚马逊提供两种备份类型——自动备份和数据库(DB)快照。 here 解释了差异。但是,我仍然很困惑:我应该只坚持自动备份还是自动和手动(数据库快照)?

你们觉得呢?你自己的设置是什么?我从其他人那里听说,由于数据库实例崩溃时某些无法恢复的数据库,自动备份不可靠,因此数据库快照是拯救您的方法。如果我要将每日数据库快照作为与自动备份类似的设置,我会花很多钱。

希望任何人都可以启发我或建议我正确的设置。

【问题讨论】:

    标签: mysql amazon-web-services amazon-rds


    【解决方案1】:

    仅凭个人经验,昨天我不小心删除了一张表,不得不从 RDS 快照中恢复。最新的快照只有 10 分钟,非常完美。但是,Amazon RDS 花了大约 3 个小时才使快照上线,在此期间,我们网站的受影响部分完全离线。

    因此,如果您需要快速恢复,请不要依赖 RDS 备份。

    请记住,您不能下载快照以便查看数据库转储。您唯一的选择是等待它加载到新的数据库实例中。因此,如果您只想恢复单个表,RDS 备份可能会使其成为一个非常痛苦的过程。

    这不怪亚马逊——他们太棒了。但只是在计划时要记住一些事情,因为这对我们来说是一次学习经历。

    【讨论】:

    • 除了解决这个问题之外,您还使用什么来替代/?
    • 我有过类似的经历,需要长时间等待从 RDS 快照恢复,而这会恢复到不在同一个实例上的新实例。
    • 不确定这是否是一个解决方案,但您是否实施了多可用区数据库部署?
    【解决方案2】:

    根据个人经验,我建议两者都做。我将自动备份设置为 8 天,然后我还有一个脚本,该脚本将每天拍摄一次快照并删除超过 7 天的快照。原因是据我了解,在某些情况下您无法从自动备份中恢复。例如,如果您不小心删除了 RDS 实例并且没有拍摄最终快照,您将无法访问已完成的自动备份。但最好打开自动备份,因为这将为您提供时间点恢复。

    希望这会有所帮助。

    编辑

    为了回答您的评论,我在脚本创建快照时使用了某种命名约定。比如:

    autosnap-实例名称-2012-03-23

    在进行清理时,它会检索所有快照、查找该命名约定、解析日期并删除任何早于某个日期的快照。

    我认为您也可以查看快照创建日期,但这正是我最终这样做的方式。

    【讨论】:

    • 有道理。谢谢@BigJoe714。问题,您是如何在 7 天的保留期内清理旧的数据库快照的?
    • 我在答案中添加了有关如何清理快照的信息
    • 您愿意提供您用来每天进行手动快照的脚本吗?我喜欢自动备份和保留期,但我希望能够每 X 天或 X 个月存档一次数据库备份……例如,这样我就可以在不同的时间点获得数据库的快照。我在 Ubuntu 服务器上运行。谢谢
    猜你喜欢
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 2016-06-28
    相关资源
    最近更新 更多