MySQL数据表应用容灾中的方法是什么

发布时间:2021-12-04 11:31:38 作者:iii
来源:亿速云 阅读:159

本篇内容主要讲解“MySQL数据表应用容灾中的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据表应用容灾中的方法是什么”吧!

一 背景

容灾系统的重要目标在于保证系统数据和服务的“连续性”。当系统发生故障时,容灾系统能够快速恢复服务和保证数据的有效性。为了防止天灾人祸、不可抗力,在同城或异地建立对应的IT系统,其中最核心的工作是数据同步。

本文选取应用层容灾的场景中,对于哪些数据表需要跨云同步,哪些数据表不需要跨云同步的问题进行探讨。通过一个具体的案例,帮助读者更好地梳理同步表和过滤表的方法,以满足应用层的业务容灾需求。

二 相关术语

本文探讨的场景是基于阿里云构建的应用层容灾,涉及到以下关键术语:
RDS MySQL:MySQL 版是全球最受欢迎的开源数据库之一,作为开源软件组合 LAMP(Linux + Apache + MySQL + Perl/PHP/Python) 中的重要一环,广泛应用于各类应用场景。阿里云RDS MySQL版,通过深度的内核优化和独享实例提供稳定极致的数据库性能,同时灵活的部署架构及产品形态,可满足不同场景下的数据库需求。

DTS:数据传输服务(Data Transmission Service) 支持关系型数据库(MySQL等)、NoSQL、大数据(OLAP)等数据源间的数据传输。 它是一种集数据迁移、数据订阅及数据实时同步于一体的数据传输服务。数据传输致力于在公共云、混合云场景下,解决远距离、毫秒级异步数据传输难题。 使用数据传输轻松构建安全、可扩展、高可用(容灾)的数据架构。

ASR:ASR-DR(Apsara Stack Resilience Disaster Recovery)是一款提供容灾功能的云产品,支持RDS MySQL的容灾管理。ASR是为了在灾难发生时,快速地实现容灾切换,尽可能地降低RTO,而开发的基于图形交互的切换工具。

同步表:本文特指RDS MySQL的数据库和数据表中,哪些表必须从一朵云备份到另外一朵云,即跨云同步。

过滤表:本文特指RDS MySQL的数据库和数据表中,哪些表不能或不需要,从一朵云备份到另外一朵云。

应用配置表:本文特指应用层在RDS MySQL中的数据表,这个表记录应用层的相关配置信息,比如IP、域名、定时任务的开关状态等等。

Sequence:全局唯一序列号ID,在分布式系统里面应用广泛,可用于交易流水号,用户ID等。 在搜索, 存储数据, 加快检索速度等等很多方面都有着重要的意义。这个ID常常是数据库的主键,要求全局唯一、支持高并发、容错单点故障。为了提高性能,应用层通常每次从数据库中获取一批序列号(比如1万个),存放到应用内存中使用,避免频繁访问数据库。内存中的序列号使用完成后,再次从数据库中进行获取新的一批序列号。

三 应用容灾中关于过滤表的关键技术问题

为什么需要梳理不做跨云同步的过滤表?

非容灾应用

有差异的配置表

需要双写的业务表

如何梳理不做跨云同步的数据表?

在项目中会发现,应用软件开发商更关注业务逻辑的实现,对于云产品使用的最佳实践以及容灾能力的了解程度,可能和我们的预期存在一定的差异。而梳理过滤表,主要由应用开发商来执行,在梳理过程中有几个常见的问题。

如果梳理错误,对应用层容灾演练有什么影响?

在项目中,往往受限于工期和生产系统稳定性运行的约束,应用开发商和云平台厂商即便清楚设计和开发的最佳实践,也比较难限时完成改造。因此部署和运维期的时候,梳理过滤表和准备应急预案,是容灾演练的重点工作项。

我们来分析一下,如果梳理过滤表错误,可能对应用层容灾有什么影响?
对非容灾应用的影响:

对容灾应用的影响:

四 在应用容灾中设计不同步的数据表

前面我们已经介绍了应用容灾中哪些表不同步的必要性,本节我们来探讨如何梳理和设置过滤表。以下分析是比较理想的情况,实际项目中会有一些差别。
云平台角度

如下是阿里云数据数据传输服务DTS产品公开的资料文档。

应用层角度
接下来我们从应用开发商比较关注点几个阶段,分析如何有效性地基于云容灾来交付应用软件。
1.设计阶段:

2.开发阶段:

3. 部署阶段:

4. 运维阶段:

下图为异地容灾主备架构下,同步表和过滤表的配置逻辑说明。

五 案例

下面分析一个异地容灾的项目中,由于过滤表清单梳理错误,导致业务异常问题及处理经验,便于读者对数据表是否需要跨云同步更有体感。

(1)问题描述
在阿里云容灾平台ASR-DR对某个应用执行容灾切换(RDS MySQL读写权限从Cloud A切换至Cloud B)后,业务请求在备中心(Cloud B)时,业务报错,数据库提示“主键冲突”。

(2)问题分析
我们根据问题处理的先后顺序,对问题定位过程进行分析。

1. 分析数据库报错“主键冲突”:

2. 分析业务请求路径:

问题结论:备中心应用使用了过期的交易流水号ID,导致的写数据库出现“主键冲突”。

3. 分析问题引入过程:

问题结论:管理全局唯一性序列号的数据表xx_table被错误地加入到了不做跨云同步的过滤表清单

应急措施

改进措施

改进前

MySQL数据表应用容灾中的方法是什么

改进后

MySQL数据表应用容灾中的方法是什么

到此,相信大家对“MySQL数据表应用容灾中的方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. Mysql的高可用/容灾架构的性能测试讨论
  2. 【容灾】RTO和RPO

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:GenomeStudio如何安装

下一篇:MySQL中的默认数据库分类有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》