【问题标题】:Point-In-TIme data restore on Amazon RDSAmazon RDS 上的时间点数据还原
【发布时间】:2016-12-27 11:37:51
【问题描述】:

我在 Amazon RDS 上托管了我的 MySql 数据库,它有最后一个自动快照。 (例如昨天午夜)。现在的情况是,我不小心从一个非常重要的表中删除了一些记录,并且想恢复它。自昨天午夜以来,我没有额外的备份。 (如前所述)。现在我应该如何在不停机的情况下恢复数据? 如何使用时间点数据恢复? 如果有人需要更多信息,请告诉我,并为我糟糕的解释感到抱歉。

【问题讨论】:

  • 从昨天午夜开始,您将恢复的任何时间点。您今天删除的那些记录将无法恢复。
  • @error2007s,如果我明白你在说什么,那么你的断言是不正确的。可以选择备份保留窗口期间的任何时间点,即使在最后一个快照之后也是如此。如果删除的行在所选时间点存在,恢复。这就是恢复到特定时间点背后的想法。
  • 我说的是昨天午夜之后创建的记录
  • 是的,但是在所选时间点之前发生的所有事情都将出现在新实例上,即使所选时间是在最近的快照之后。只有选定时间点之后的东西——不是快照时间——才会不存在。您可以在您配置的备份保留窗口的天数内将数据库恢复到任何个特定时间点,最多可以在您请求恢复之前大约 5 分钟。由于 RDS 管理日志轮换的方式,最近约 5 分钟无法选择。
  • 我知道我的印象是用户删除了昨天午夜之后创建的记录。

标签: mysql amazon-web-services restore amazon-rds data-recovery


【解决方案1】:

时间点恢复允许您创建一个附加 RDS 实例,它基于您的实例在您选择的任何特定时间点之间存在的数据最早可用的自动备份,大约 5 分钟前。您所要做的就是选择您需要的日期和时间。

您正在运行的实例没有中断或更改。

该过程创建一个新实例,您连接到该实例,收集您需要的数据以使您的生产系统恢复应有的状态,然后销毁新实例。或者,根据您遇到的问题,您也可以将应用程序切换到这个新实例并销毁旧实例,尽管这似乎不太可能是您想要做的。但你可以做任何一个。

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIT.html

自昨天午夜以来,我没有额外的备份。

时间点恢复无关紧要。 RDS 保留快照以及一个完整的时间戳日志,其中包含在快照之间 更改的所有内容。这些日志存档在您无法访问的区域中……但它们就在那里。 RDS 会自动加载早于您选择的时间点的最新快照,然后使用日志将新实例的数据及时前滚到目标时间。该过程完成后,您的新实例将完全包含您选择的时间点旧实例上存在的数据。


假设我有一个表在午夜包含 10 条记录。存在于备份/快照中。

停止思考快照中的内容。没关系。

第二天早上 10:00 时,我又添加了 5 条记录。半小时后(10 点 30 分),我之前删除了 2 条记录。

执行时间点恢复,选择 10:00 到 10:30 之间的任意点 - 记录在数据库中的时间点。

时间点恢复会创建一个新实例,其中包含与您选择的时间完全相同的所有数据。手动连接到该新实例,获取丢失的行,将它们重新插入你的 live/main/production 数据库,然后新创建的实例可以被销毁,因为它不再需要了。

不要假设这个过程很复杂或困难。

【讨论】:

  • 感谢@michael-sqlbot 回答我。我对你在说什么,虽然需要更多细节才能理解。我更详细地解释。假设我在午夜有一张表包含 10 条记录。存在于备份/快照中。第二天早上我在晚上 10:00 又添加了 5 条记录。半小时后(10 点 30 分),我之前删除了 2 条记录。现在我想要那个。我该怎么办?如果您有任何文字/视频教程,请给我发链接。谢谢。
  • 感谢@michael-sqlbot 精美地解释了 BTS。
猜你喜欢
  • 1970-01-01
  • 2014-08-08
  • 1970-01-01
  • 1970-01-01
  • 2020-10-03
  • 2014-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多