AICon议程上新60%,阿里国际、360智脑、科大讯飞、蔚来汽车分享大模型探索与实践 了解详情
写点什么

如何守护数据安全? 这里有一份 RDS 灾备方案为你支招

京东智联云数据库团队

  • 2020-12-24
  • 本文字数:2936 字

    阅读完需:约 10 分钟

如何守护数据安全? 这里有一份RDS灾备方案为你支招

当今世界是一个充满着数据的互联网世界,生活的方方面面都在不断产生着数据,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。对于企业而言,数据更是重要的生产资料,关键数据的丢失可能会给企业带来致命一击。一旦客户资料、技术文件、财务账目等客户、交易、生产数据发生丢失、损坏,企业就有可能陷入困境。


云时代中,云数据库都有着高可靠、高可用的架构,保证用户的数据不会丢失。如京东智联云云数据库 RDS 就基于全球广受欢迎的 MySQL、Percona、 MariaDB、SQL Server、PostgreSQL 数据库引擎,提供稳定可靠的云数据库服务。


相比传统数据库,云数据库 RDS 易于部署方便管理扩展,默认支持主从高可用架构,提供数据备份恢复变更配置监控报警等整套数据库解决方案,彻底解决数据库使用和运维的烦恼。云数据库 RDS 通常会提供了地域级高可用切换、多 AZ 部署,但是当出现地域级故障、人为误删除等各种不同场景时,仍然需要根据业务级别设计数据恢复预案,全方位保证业务的连续性和可靠性。


在数据灾备解决方案中,RPO 和 RTO 是衡量灾备方案的两个重要指标:


  • RPO(Recovery Point Objective)即数据恢复点目标,主要指的是业务系统所能容忍的数据丢失量;

  • RTO(Recovery Time Objective)即恢复时间目标,主要指的是所能容忍的业务停止服务的最长时间,也就是从灾难发生到业务系统恢复服务功能所需要的最短时间周期。


从下图中我们可以看到云数据库 RDS 各个灾备相关功能对 RTO 和 RPO 的支持:

京东智联云数据库备份 DBS

针对灾备场景,京东智联云推出了独立的集中式数据库备份服务——数据库备份 DBS


数据库 DBS 可以实时备份数据到云端或异地机房,为数据库提供持续性、低成本的数据保护,帮助企业快速构建数据库备份中心,满足业务和监管备份合规性要求。同时,京东智联云云数据库 RDS 也提供了自动备份、手动备份、跨地域备份同步的功能,为用户系统提供完善、高性价比的灾备解决方案。



目前,数据库 DBS 提供整库备份和恢复能力,为防止删库跑路、机房容灾等灾备场景提供解决方案。


数据库备份 DBS 将备份和恢复的目标库扩展到 RDS 实例之外的其他自建数据库,并且可以快速帮助用户对自建数据库、云 RDS 实例进行异地备份,通过专线或公网将数据库实时备份到数据库备份 DBS 上。


数据库备份 DBS 优势特点

数据库备份 DBS 具有如下优势:


(1)简单易用

使用数据库备份 DBS 进行数据库备份,只需简单几步即可创建备份任务,开始数据备份;


(2)功能丰富

提供逻辑备份、增量备份等备份选择;


(3)低成本

提供冷备容灾备份方案,降低业务和存储成本;


(4)性能可靠

根据备份量和备份压力,自动扩展,适应高并发、大流量的备份场景;


(5)安全可信

支持备份可用性和完整性校验,保证备份可用性。 


数据库备份 RDS 备份方式

京东智联云云数据库提供了三种不同的备份方式:自动备份手动备份跨地域备份


1 自动备份


自动备份包括全量物理备份和 binlog 增量备份。


云数据 RDS 的自动备份默认是开启的,RDS 服务将根据备份策略定期触发对 RDS 实例的备份,您可以在备份策略窗口中选择您需要进行自动备份的时间段,系统自动会在这个时间段内的任意时间点开始执行备份操作。




当 RDS 实例中的数据量随着业务量的增长达到一定的数量级时,在指定时间周期内备份任务可能无法完成,备份任务在下一个周期内会继续进行,保证 RDS 实例能正常完成一个全量备份。


配置自动备份后, 你不再需要每天执行手动备份,RDS 服务会保证备份按时进行,并将备份文件完整地保存到指定的位置,避免因故障或异常操作导致你的重要数据丢失。


每次实例创建、删除、扩容等关键流程,都会触发自动备份,包括全量备份binlog 备份,甚至数据库配置文件错误日志都会备份,全方面保证用户数据安全。


云数据库 RDS 每 5min 进行一次 Binlog 备份。Binlog 配置是 row 格式,image = full,记录所有数据操作。综上,RDS 实例能够为业务提供分钟级 RPO,RTO 则根据实际数据量确定。


2 手动备份


你可以根据业务需要随时触发一个手动备份,手动备份完成后,备份文件不会被自动清除,需要手动执行删除备份的操作。当 RDS 实例被删除的时候,备份文件也会自动被删除。


3 跨地域备份


云数据库 RDS 实例支持跨可用区高可用部署,在单个 AZ(可用区)无法正常提供服务的情况下,仍然可以保持云数据库 RDS 实例正常提供服务。但是如果云数据库 RDS 实例所在的 Region(地域)无法正常提供服务,那么依赖于这个云数据库 RDS 实例的业务也就瘫痪了。跨地域备份同步服务,为云数据库 RDS 提供更高可用性,实现跨地域的服务容灾。


跨地域备份同步服务,通过将云数据库 RDS 实例的备份文件同步到不同 Region(地域),从而确保云数据库 RDS 实例在原 Region(地域)不可用的时候,可以迅速在同步了云数据库 RDS 备份的地域新建一个新的云数据库 RDS 实例。


云数据库 RDS 每十分钟发起一次跨地域备份任务,由于备份任务是一个异步操作,并且数据传输也是一个耗时的过程,虽然不同地域间基于专线进行数据同步,同步速度远超普通公网带宽,但跨地域备份任务的同步时延与数据量息息相关,因此实际延迟时间根据备份文件的传输时间确定。



同时,数据库备份 RDS 备份在设计时做了很多优化:


  • RDS 实例采用物理热备份的方式,在备份过程中,不影响用户访问数据库 DML 操作;

  • RDS 实例的备份在从库上进行,不会对主库有任何的影响;

  • RDS 实例备份,采用流式的方式上传到 OSS 中,备份数据不会占用实例的存储空间,按需并发高速上传数据,减少备份时间。1T 数据可以在 2-3 小时完成备份;

  • RDS 实例备份支持压缩、加密。压缩比可以到 3:1,并且保护用户备份数据的安全;

  • RDS 实例的备份文件在对象存储中保存,对象存储提供超高的数据可靠性,保证备份文件的安全。并且对象存储的 bucket 由 RDS 服务托管,您无法通过控制台查看对象存储的 bucket,但 RDS 服务提供了备份文件的下载链接,您可以直接将备份文件下载到本地。


数据恢复

在使用云数据库实例的过程中,如果软件异常或者某种突发情况导致数据库中出现脏数据,可以根据备份全量恢复或新建一个数据库实例,也可以选择恢复数据库中的一个或多个库表。


另外,如果你的业务需要进行异地容灾,可以在跨地域备份里选择一个备份文件,在指定地域恢复一个新的数据库实例。RDS 采用流式的方式将备份文件从 OSS 并发下载到本地进行数据恢复,同时支持并发加、解密的策略,进一步降低恢复时间。


目前 RDS 提供 4 种恢复策略:根据备份本地覆盖恢复、根本备份创建新实例、按时间点创建新实例和根据时间点恢复本地实例。其中按时间点创建和恢复策略时间可以精确到秒级,根据时间点恢复可以对本地数据做单库单表恢复,并且能够保留本地原库表,通过对比不同时间的同一份数据,获取数据库的具体操作,方便用户对恢复前后的数据做进一步的数据审计。


写在最后

本文围绕云数据库 RDS 对数据库的灾备方案进行介绍,除了 RDS 实例以外,完整的灾备方案还应该包含主机、LB 等部署您应用程序的所有其他资源。灾备预案需要在实际生产环境中反复测试和验证,完整的灾备方案可以让您及时发现潜在问题,更加从容地应对生产环境中的各种意外和风险及时发现潜在的问题。


后面我们还会对备份、恢复流程进一步提速,尤其是在应用 binlog 环节,最终进一步降低 RTO,给用户更好的使用体验。


目前数据库备份 DBS 已正式开放公测

欢迎大家扫描下方二维码申请公测



2020-12-24 21:393247

评论

发布
暂无评论
发现更多内容

两个指针缩小范围算法,CQRS 命令查询职责分离模式 John 易筋 ARTS 打卡 Week 09

John(易筋)

ARTS 打卡计划

架构师训练营作业 (第七周)

默默

LeetCode 565. Array Nesting

liu_liu

算法 LeetCode

MySQL 大表优化方案

Bruce Duan

MySQL优化

分布式锁用 Redis 还是 Zookeeper?

xcbeyond

redis zookeeper 分布式锁

MinIO 简介和搭建一个对象存储服务

耳东@Erdong

Minio store Object store

ARTS打卡 第8周

引花眠

ARTS 打卡计划

罪羊树——暴力也是种优雅

烫烫烫个喵啊

算法 二叉树 替罪羊 平衡二叉树

Docker容器中一定要避免的10件事

xcbeyond

Docker 避坑

什么?还没有自己的域名?

北漂码农有话说

使用HSDB 查看jvm内存

引花眠

JDK1.8新特性(五):Stream,集合操作利器,让你好用到飞起来

xcbeyond

stream 集合 新特性 JDK1.8 JDK1.8新特性

Apache BeanUtils和Spring BeanUtils剖析

Bruce Duan

BeanUtils 浅拷贝和深拷贝

性能测试

满山李子

极客大学架构师训练营

如何保证消息不丢失?处理重复消息?消息有序性?消息堆积处理?

Bruce Duan

消息队列 保证消息不丢失 处理重复消息 消息有序性 消息堆积处理

Mybatis二级缓存,你确定要用么?

xcbeyond

mybatis 二级缓存 一级缓存

IDEA 插件: EasyCode 一键生成所需代码

Bruce Duan

idea插件 easycode 生成代码

SpringBoot 使用 jasypt 对配置项进行加密

hungxy

Java springboot jasypt

JVM系列之:详解java object对象在heap中的结构

程序那些事

Java JVM GC JOL

记一次西安thoughtworks的面试经历

xcbeyond

面试 thoughtworks

应届生求职面试真的有那么难吗

xcbeyond

面试 应届生

week7 总结 性能测试

Geek_z9dmvw

LeetCode 144. Binary Tree Preorder Traversal

liu_liu

算法 LeetCode

架构师训练营 -- 第七周学习总结

花花大脸猫

MyBatis几种好用的写法

Bruce Duan

MyBatis标签

架构师训练营——请简述 CAP 原理

WW

ARTS 05 - 使用 Ecto.Migration 来做数据库迁移

jerry.mei

学习 算法 ARTS 打卡计划 函数式编程 Elixir

技术革新产业变革新动能

CECBC

写一个 web 性能压测工具

WW

JDK1.8新特性(四):函数式接口

xcbeyond

新特性 函数式编程 JDK1.8 JDK1.8新特性

自从用完Gradle后,有点嫌弃Maven了!速度贼快!

xcbeyond

maven Gradle

如何守护数据安全? 这里有一份RDS灾备方案为你支招_服务革新_InfoQ精选文章