背景介绍
数据库存储着企业的核心数据,在企业中占据非常重要的位置,一旦出现SQL注入,数据误删的情况,影响的不仅仅是业务,还会泄露用户的个人信息。因此,数据库的数据安全问题十分重要。
当数据库迁移到云端,其安全问题又被进一步放大,云数据库能否高效、便捷地备份数据库,当发生故障或者数据误删时,及时高效地恢复数据,成为企业用户关心的重要问题,影响着他们迁移数据库上云的信心。
近期,阿里云分布式关系型数据库服务 DRDS 数据恢复功能重磅发布,针对实例级、数据库级、表级、行级的数据丢失,分别提供备份恢复、表回收站、SQL 闪回功能,助您在不同场景下快速恢复数据,全方位保障用户数据的安全。
功能优势
- 全方位的数据守护:提供实例级、数据库级、表级、行级全方位的数据恢复能力
- 一致性备份恢复:针对 MySQL 分库分表场景,在最小化对用户业务影响的前提下,提供了保证数据的全局一致性的备份恢复方案
- SQL 级精确闪回:针对SQL误删(改)操作,无需依赖备份集,提供精确到特定 SQL 的数据闪回能力
- 操作便捷:基于 DRDS 控制台即可完成数据恢复工作,无需再次跳转至 RDS 控制台,体验便捷高效
- 价格优势:功能免费,仅需支付 RDS 备份集所占用的存储空间费用
应用场景
在实际的生产应用中,数据库的数据丢失,按照不同场景,大致可以分为实例&数据库级、数据行级、表级:
- 实例&数据库级数据丢失:整个实例或者数据库的数据丢失,通常是用户误删实例(数据库)造成。
- 数据行级丢失:数据表中的部分数据丢失,通常是用户执行了错误的 DELETE(UPDATE)SQL 或者 SQL 注入攻击,该情况最为常见。
- 数据表丢失:整张数据表的丢失,通常是用户执行错误的 DROP TABLE 操作造成。
针对以上的几种场景,DRDS 数据恢复都提供了相应的恢复能力,如下图所示:
备份恢复——实例&数据库级的恢复能力
DRDS 备份恢复提供了 OLTP 场景下必备的实例级、数据库级的备份恢复能力。备份策略上,支持自动备份与手动备份两种,用户可以按需选择,满足实际的安全需求。
备份恢复方式上,针对MySQL Sharding 场景,提供了快速备份恢复与一致性备份恢复两种。众所周知,全局一致性的备份恢复能力是金融行业以及在线核心交易类业务对数据库的核心诉求。然而面向 MySQL Sharding 场景,现有的数据库备份方案主要有两种:
- 针对每个 MySQL 实例分别进行备份。该方案只能保证单个物理分库的数据一致性,在分布式事务存在的情况下,无法保证全局的数据一致性。
- 对数据库全局禁写,之后分别针对每个 MySQL 实例进行备份。该方案保证了全局的数据一致性,但是对用户业务侵入较大,数据库在一定时间内无法提供数据写入服务。
显然以上两种备份恢复方式都无法满足实际的用户备份需求。针对这一问题,DRDS 在最小化对用户业务影响的前提下,创新性地为用户提供了全局一致性的备份恢复能力,备份过程中数据库无需禁写,仅存在亚秒级的RT 抖动。
SQL 闪回——SQL 级误操作的精确恢复能力
在实际的生产环境中,运维人员执行了错误的DELETE(UPDATE)语句,造成数据丢失,是较为常见的数据丢失场景。面对这种情况,通常的解决方案是通过备份恢复或者MySQL Binlog Flashback 工具逆向 Binlog 恢复数据:
- 备份恢复依赖备份集的存在,且这种恢复方式通常会丢失部分数据
- MySQL Binlog Flashback 工具,也只能按照时间范围及简单的过滤条件,逆向 Binlog 的数据,然后用户从中挑选数据,需要较多的人工介入
DRDS SQL 闪回针对上述数据行级的误操作场景,提供精确到特定 SQL 的数据恢复能力。用户仅需提供误操作 SQL 的相关信息,即可针对该 SQL 生成精确的回滚SQL(或原始 SQL)文件,用户下载后根据需求恢复数据。
下图给出了 SQL 闪回恢复数据的示例:
SQL 闪回的使用界面及生成的恢复文件如下图所示:
表回收站——表误删后的快速恢复能力
DRDS 表回收站针对误删表操作,提供快速的数据恢复能力。表回收站功能开启后,通过 DROP TABLE 指令删除的表,将移动至表回收站中,2 小时内皆可从回收站中快速恢复。
功能文档
关于 DRDS 数据恢复的具体功能,请参考: