应急预案:在专有云V3环境中RDS实例的数据误删后的恢复方法

应急预案:在专有云V3环境中RDS实例的数据误删后的恢复方法

更新时间:2020-07-21 16:11:58

1. 概述

本文主要介绍在专有云V3环境中,当RDS实例误删数据后,如何进行数据恢复。

1.1. 适用范围

  • 专有云V3企业版,RDS
    说明:仅适用于专有云V3.0~V3.12环境的MySQL引擎实例。

1.2. 用户告知

  • 适用平台:x86、ARM
  • 授权级别:L2(二线技术支持工程师)
  • 临时或固化方案:固化
  • 操作复杂度:低
  • 预估执行时长:具体以实际环境中要恢复的实例大小而定
  • 业务影响:是
    说明:数据误删除具体影响范围、程度取决于用户。本方案是将误删除的表回退到误删除之前的时间点。
  • 风险等级:低
    说明:该修改操作不影响用户业务正常运行,不影响云平台正常运行。

2. 问题描述

在专有云V3环境中,由于误删除RDS实例的数据,现需要恢复数据。

3. 解决方案

3.1. 环境检查

登录RDS运维管理控制台,单击实例管理,单击目标RDS实例的实例名,然后单击备份恢复,确认存在误删数据的备份集,且状态为OK

说明:要根据现场实际环境确认删除数据时间点的前一个备份集存在。

3.2. 实施步骤

数据恢复的步骤是在专有云控制台中按照备份集或者按照时间点创建克隆实例,克隆实例为永久型,创建出来的临时备份实例(克隆实例)中存在误删除的数据,使用mysqldump工具将数据备份,然后将数据恢复到误删除数据的RDS实例中。

创建克隆实例

创建克隆实例有以下两种方法,具体操作如下:

按照时间点创建克隆实例
  1. 在专有云控制台中,选择数据库产品>云数据库,单击需要恢复的RDS实例名,进入实例的基本信息页面。
  2. 选择备份与恢复>备份列表,单击页面中的备份列表,然后单击备份列表页面右上角的创建克隆实例
  3. 选择还原方式按时间点,选择还原时间为删除数据前的时间点,规格请按实际需求进行选择,然后单击创建
  4. 然后在云数据库页面可以查看刚创建的实例,实例备注一般为“原实例备注名_Clone”。
  5. 通过该实例ID,在RDS运维管理控制台中搜索该实例,查看实例变更记录,然后单击任务日志,查看任务进度。
  6. 等待任务执行完成,则会创建出一个克隆实例。
按照备份集创建克隆实例
  1. 在专有云控制台中,选择数据库产品>云数据库,单击需要恢复的RDS实例名,进入实例的基本信息页面。
  2. 选择备份与恢复>备份列表,单击页面中的备份列表,然后单击备份列表页面右上角的创建克隆实例
  3. 选择还原方式按备份集备份集请按照实际情况选择需要恢复的备份集,规格请按实际需求进行选择,然后单击创建
  4. 然后在云数据库页面可以查看刚创建的实例,实例备注一般为“原实例备注名_Clone”。
  5. 通过该实例ID,在RDS运维管理控制台中搜索该实例,查看实例变更记录,然后单击任务日志,查看任务进度。
  6. 等待任务执行完成,则会创建出一个克隆实例。

导出克隆实例中的备数据

使用mysqldump工具导出克隆实例中误删除的数据。mysqldump工具的几种常用命令类似如下:

  • 执行以下命令,导出某个库的结构和数据。
    mysqldump -u[$User] -p[$Password] -P[$Port] [$DB_Name] > [$DB_Name].sql
    说明
    • [$User]为数据库登录用户。
    • [$Port]为数据库端口号。
    • [$Password]为数据库密码。
    • [$DB_Name]为需要备份库的名称。
  • 执行以下命令,导出某个库的结构,不包含数据。
    mysqldump -u[$User] -p[$Password] -P[$Port] -d [$DB_Name] > [$DB_Name].sql
  • 执行以下命令,导出某个库中的某张数据表,包含数据。
    mysqldump -u[$User] -p[$Password] -P[$Port] [$DB_Name] [$Table_Name] > [$Table_Name].sql
    说明:[$Table_Name]为需要备份表的名称。
  • 执行以下命令,导出某个库中的某张数据表的结构,不包含数据。
    mysqldump -u[$User] -p[$Password] -P[$Port] -d [$DB_Name] [$Table_Name] > [$Table_Name].sql

恢复数据

登录误删除数据的数据库,执行以下SQL语句,恢复数据。

source XXX.sql

说明

  • XXX.sql为备份数据中使用mysqldump工具生成的SQL文件,需要使用绝对路径。
  • 具体的SQL语句以现场实际环境为准。

3.3. 结果验证

确认误删除数据的RDS实例中数据恢复正常。

4. 回滚方案

无回滚方案。