-
2021-01-18 19:03:59
一 简介 我们来探讨下多机房下的mysql架构
二 目的:
首先要清楚你的目的
1 实现异地机房的容灾备份
2 实现异地机房的双活
三 叙说
1 实现异地机房的容灾备份
目的 只是将数据备份到异地,当第一机房发生故障时,能最大可能的保留数据.实现冗余效果
业务 核心业务在第一机房,第二机房和第一机房都共同使用第一机房的数据源,只有当第一机房发 生故障时,核心业务才会切换到第二机房
实现难度 简易
角色 1 数据备份冗余 2 故障发生时的数据写入保留
2 实现异地机房的双活
目的 多机房状态下的多业务进行
业务 核心业务在第一机房和第二机房都开展,各自有本地的数据源,当某一机房发生故障时,核心业务会合并到正常的机房
实现难度 复杂
角色 1数据备份冗余 2 支撑异地业务和故障的业务再支持
四 针对单一业务的解决方案
数据库角度
1 单一业务 只需在异地机房搭建mysql从库即可,做好mysql从库的延迟监控,定期备份,打开读写,实现了数据库的冗余备份,不要求高实时性和数据准确性
2 采用 MGR/PXC 方案,但是还是单写方式,这样能实现异地机房的高一致性,但是记住这样的架构依赖于非常好的专线网络,否则会降低整个集群的性能
3 采用 半同步复制,只要binlog传输到异地机房则代表可以继续进行,这样至少能保证binlog的成功保存,也可以直接采用binlog_server 保存binlog
4 采用程序中间件和对数据库的二次改造 通过对异地机房程序进行数据的确认和减少binlog的传输量入手
程序角度
1 双机房程序共用第一机房的数据源,第二机房的数据源不会使用,建议采用DNS方式,当第一机房挂掉后,DNS才会转移到第二机房提供正常服务
五 针对多机房业务的解决方案
1 双机房都提供读写服务,针对DB级别进行拆分,比如DB1在第一机房读写 DB2在第二机房读写,机器在双机房进行数据同步,实现异地双活提供服务和数据冗余备份功能
2 采用MGR/PXC方案,是多写方式,这样能实现双机房数据的一致性
3 采用程序中间件和对数据库的二次改造实现
六 总结:
建造异地机房必须要考虑的几个方面
1 良好稳定的网络带宽
2 减少网络开销,压缩binlog或者WS(MGR/PXC的验证机)网络参数优化
3 按照业务优先级进行建造
4 异地数据的确认
更多相关内容 -
利用ZOOKEEPER技术 MYSQL数据库容灾切换.pdf
2020-05-19 06:19:58利用 Zookeeper技术 Mysql容灾切换 一 ZooKeeper 介绍 1. 简介 ZooKeeper 是一个为分布式应用所设计的分布的开源的协调服 务分布式的应用可以建立在同步配置管理分组和命名等服务的更 高级别的实现的基础之上 ... -
本地IDC机房数据库容灾解决方案
2021-01-18 19:13:59欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~作者介绍:李明,腾讯云数据库架构师华南区负责人,曾在某专业数据库服务商、51job任职DBA。一、概述 风险无处不在,包括自然灾害以及突发事件等,有...欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~
作者介绍:李明,腾讯云数据库架构师华南区负责人,曾在某专业数据库服务商、51job任职DBA。
一、概述
风险无处不在,包括自然灾害以及突发事件等,有时候我们无法预测到一些风险,比如天津港爆炸事件。IT领域也一样,总是有意想不到的事情,风险具有不可预测性,万全之策就是做好灾难应对的各种准备。
随着云计算如火如茶的进行,IT资源可进行快速部署,弹性扩容及超高的性价比,这对于我们创建本地IDC机房数据库容灾提供极大的便利性。如何利用云数据库做容灾成为DBA的基本功。
当前腾讯云已对外提供的腾讯云数据库(TencentDB)产品:
关系型数据库:云数据库 MySQL、云数据库 MariaDB、云数据库 SQL Server、云数据库 PostgreSQL
云数据库 Redis
云数据库 MongoDB
分布式数据库
云数据库 Memcached
云数据库 HBase
下文以腾讯云数据库 MySQL为例,介绍如何充分利用腾讯云的优势,减轻DBA的负担,轻松来搭建数据库(MySQL)的:同城同区灾备、同城不同区灾备、跨地域灾备。
二、当前TencentDB所支持的架构部署
针对业务连续服务和数据可靠性有强需求或是监管需要的场景,用户在购买云数据库 MySQL 时会默认提供灾备实例,帮助用户以较低的成本提升业务连续服务的能力,同时提升数据的可靠性。
同地域同可用区部署
云数据库 MySQL同可用区部署架构示意图
云数据库MySQL 普通实例架构(同个可用区)
同地域不同可用区部署
云数据库 MySQL 同城灾备实例架构
云数据库 MySQL 同城灾备实例架构(不同可用区)
说明:腾讯云数据库多可用区部署目前仅支持深圳金融专区,其他可用区的支持还在规划中。
跨地域部署
云数据库 MySQL 异地灾备实例架构
云数据库 MySQL 异地灾备实例架构
三、构建云上灾备环境
通过上面的介绍,我们基本了解云数据库 MySQL的架构,接下来我们来说说本地IDC的数据库怎么迁移到TencentDB上并建立同步关系。
第一步:首先确定本地IDC如何与腾讯云建立通信。
1、通过专线的方式;
2、通过vpn的方式;
第二步:拉取本地IDC数据至云上,并建立同步关系。
1、创建DTS(数据传输服务)同步任务,这里假设CDB实例已申请购买完毕。
操作步骤:
新建 DTS 数据迁移服务
登录控制台,进入数据迁移页面,单击【新建任务】,输入相关信息及本地IDC实例的信息
选择目标实例实例,点击保存
选择同步类型,这里需要选【全量+增量数据迁移】,即一直与本地IDC的数据库保持同步关系
欢迎大家前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~
海量技术实践经验,尽在云加社区!
-
MySQL容灾方案简介
2021-08-27 10:10:10方案介绍:由两台服务器上的数据库实例搭建主从架构,两个实例之间的数据同步使用MySQL半同步复制机制。主机绑定VIP,在主库故障后手动将VIP绑定至备机,将上层请求切换至备库,备库写入数据后成为新主,原主实例...容灾方案
目前有以下三种容灾方案可供参考:
- 主从半同步复制+手动切换
方案介绍:由两台服务器上的数据库实例搭建主从架构,两个实例之间的数据同步使用MySQL半同步复制机制。主机绑定VIP,在主库故障后手动将VIP绑定至备机,将上层请求切换至备库,备库写入数据后成为新主,原主实例恢复后成为新主的备库,具体架构图如下:
优点:不存在VIP漂移问题,规避因底层同步延时导致的数据不一致。
缺点:故障时需要人工介入,效率低。
- 主从半同步复制+keepalived自动切换
方案介绍:由两台服务器上的数据库实例搭建主从架构,VIP绑定在主实例上,程序通过VIP将数据写入主库。主实例由keepalived中间件通过脚本判活,如果检测失败则停止主机keepalived服务,VIP漂至从机,程序数据继续入库,具体架构图如下:
优点:实现故障自动切换,无需人工干预
缺点:如存在网络闪断等情况影响存活判断,可能会导致主从多次切换,造成潜在数据不一致问题
- 阿里云MySQL RDS使用的高可用方案如下图所示,两台数据库实例组成主从模式,正常情况下应用层通过SLB访问主库,从库不可访问;主库故障则SLB自动切换至连接从库,上层应用无感知。同时也支持手动模式进行实例切换,具体架构图如下:
优点:数据库托管给云平台,降低运维成本
缺点:费用较高
-
数据库容灾方案
2020-08-12 11:45:33也称数据库双活、数据库复制,即在本地或异地部署一个与生产库完全相同的灾备数据库,当生产库...进行数据库容灾需要考虑以下问题: 1 本地容灾还是异地容灾,异地容灾的网络带宽及稳定性。 2 灾备数据库是否需要在...也称数据库双活、数据库复制,即在本地或异地部署一个与生产库完全相同的灾备数据库,当生产库由于各种原因(错误操作、系统软件错误、病毒、硬件故障、断电、火灾、地震等)发生故障时,灾备数据库可以立刻接管原有应用,对外正常提供服务。进行数据库容灾需要考虑以下问题:
1 本地容灾还是异地容灾,异地容灾的网络带宽及稳定性。
2 灾备数据库是否需要在线查询,是否需要效验比对某些核心数据是否与生产库一致。
3 RTO(恢复时间目标,指生产库发生故障到灾备库投入运行期望的时间)、RPO(数据恢复点目标,指生产系统所能容忍的数据丢失量)。
4 备份模式选择,单向备份模式(active/standby)还是双向互备模式。其中双向互备模式又分为半双工和全双工,半双工在任一时间点依然是单向模式(active/standby),只有一个数据库接受业务请求,当主库故障时允许主备自动切换。全双工模式(active /active),用于双业务中心异地互备,两个数据库同时接受业务请求。对于全双工模式需要考虑数据是否存在主键冲突。
5 部署及维护成本,灾备库是否支持异构(不同操作系统、不同数据库版本)、是否需要在主备库安装代理程序或在数据库额外创建对象、是否需要调整表结构等。应用系统升级是否需要重新配置备份过程,是否需要人工干预等。
灵蜂数据库复制软件Beedup提供数据库(Oracle/SQL Server/DB2/MySQL/PostgreSQL)容灾功能,具备以下特点:
1 Beedup采用TCP连接主从数据库,支持本地或异地容灾。软件读取解析主库归档或在线日志,还原其中的DDL及DML操作在备库执行,通过将软件部署到主库所属网络,可以在备份时有效降低网络负载。软件提供断点机制增量读取解析日志,可以忍受苛刻的网络条件。
2 Beedup采用SQL接口向从库写入DML及DDL,从库实时在线可用。另外软件提供主从表的差异比对功能,可以随时效验主从数据一致性。
3 Beedup采用事务单元复制主库变化到从库,主库事务提交后,软件立即读取解析事务并复制变化到从库,整个过程秒级完成。当主库发生故障时,可以直接修改从库IP为主库IP接管其上业务。
4 Beedup支持active/standby和active /active备份模式,对于active /active模式的自增主键冲突,无需调整业务系统,Beedup提供自增值到目标库的重新计算并更新相关依赖信息的功能。
5 Beedup采用JDBC读写主备数据库,对数据库运行平台及版本无要求,当生产库采用高性能设备时,备份库可以选择普通商用配置。软件部署灵活,既可部署于主服务器,也可部署于备份服务器,或者部署到可以TCP连通主备服务器的其它任意机器。软件对主库不需要任何写入操作,通过读取解析主库归档或在线日志复制事务到备份库,对于表结构、视图、存储过程、触发器等DDL操作均可自动备份,无需人工干预。
-
mysql容灾及自动化切换
2013-07-29 14:56:03主主复制,切换只需修改read_only 异步复制,异常切换可能丢失数据 交易Notify,应用同步写两份 交易主库,应用记录Notify日志, 通过日志对账补偿异常切换可能丢失的数据 Semi-Sync半同步,数据零丢失 ... -
mysql数据库容灾实时备份主从
2017-05-11 19:18:57介绍: 随着互联网时代的发展数据对于一个企业来说越来越重要,各种安全策略进行备份,同步都应用而生,技术发展也逐渐走向成熟,虽然我们不能100%保证数据的安全,...一、mysql数据库备份参数及命令说明 1、server-id -
mysql数据库容灾实时备份主从架构
2021-01-19 19:46:21介绍:随着互联网时代的发展数据对于一个企业来说越来越重要,各种安全策略进行备份,同步都应用而生...一、MySQL数据库备份参数及命令说明1、server-id 服务器id (主从必须不一样)2、log-bin 存放服务执行过的sql语... -
mysql 容灾 灾备 备份
2021-01-18 19:04:01一、数据备份1、使用mysqldump命令备份mysqldump命令将数据库中的数据备份成一个文本文件。表的结构和表中的数据将存储在生成的文本文件中。mysqldump命令的工作原理很简单。它先查出需要备份的表的结构,再在文本... -
阿里云数据库容灾方案
2021-01-19 00:03:47{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行... -
838-MySQL容灾篇
2021-11-19 10:12:44容灾有几种方式? 从冷热来说,分为冷备和热备。从距离来说,分为同城和异地。 一般而言,大的维度划分就是两者的正交:同城冷备,异地冷备,同城热备,异地热备。 MySQL如果挂了怎么办呢? MySQL可以主从模式部署... -
Oracle数据库容灾相关知识
2021-11-26 19:18:37目录 冷备、热备、rman增备全备 RTO和RPO 容灾方案种类 RAC与ADG/OGG方案比较 ADG主要解决了DG时代读写不能并行的问题 OGG ADG&OGG两种不同存储架构的差异 基于ASM冗余设计架构实现的数据库双活方案,如何规划ASM 冷... -
mysql容灾及自动化切换.pdf
2021-01-20 12:58:49mysql容灾及自动化切换.pdfMySQL容灾与自劢化切换穆公(朱金清)mugong.zjq@微博: 淘穆公大纲?... MySQL数据库的主要问题– 主库单点问题? 通过业务功能的写入主库通常只能有1个? 除非应用程序自己完成... -
数据库备份方案及容灾备份(Mysql,SqlServer,Oracle)
2020-01-15 12:10:44echo "成功备份mysql数据库,当前日期为:"$time >> /home/test/mysql_dump.log else echo "备份mysql数据库失败:当前日期为:"$time>> /home/test/mysql_dump.log Fi 参数说明: [username]--数据库用户名 ... -
mysql 容灾备份
2021-09-15 17:00:47前言 ...修改mysql的配置文件/mysql/my.conf,将bind-address后面增加远程访问IP地址或者禁掉这句话就可以让远程机登陆访问了。 2.增加服务器授权用户 在服务器A上: CREATE USER 'username'@'host' -
简单闲聊 数据库容灾方案
2020-05-26 11:32:24进行数据库容灾需要考虑以下问题: 1 本地容灾还是异地容灾,异地容灾的网络带宽及稳定性。 2 灾备数据库是否需要在线查询,是否需要效验比对某些核心数据是否与生产库一致。 3 RTO(恢复时间目标,指生产库发生故障... -
利用zookeeper技术-mysql数据库容灾切换
2021-01-18 23:02:47利用zookeeper技术-mysql数据库容灾切换 利用 Zookeeper 技术Mysql 容灾切换一、 ZooKeeper 介绍1. 简介ZooKeeper 是一个为分布式应用所设计的分布的、开源的协调服务。分布式的应用可以建立在同步、配置管理、分组... -
MySQL数据库架构方案
2021-01-20 15:01:33最大的缺点是无法容灾,并且只能承受较小的压力,不管压力来自读或者写。不过在分布式数据层解决方案目不暇接的今天,单库结构可以拓展成多单库结构来平分压力。数据库可以从业务上先进行垂直拆分,将关联性较强的表... -
Azure Database for MySQL 多云容灾
2021-01-26 16:54:36大家好,今天以此小文来说一说 Azure Database for MySQL 的多云容灾。作为任何一家云的 RDS PaaS 服务所有的可用性都是用白纸黑字的 SLA 支撑的,无论是4个9还是 n 个9 都意味着有 outage 的可能性, Everything ... -
基于otter的mysql容灾方案
2021-03-28 22:55:36otter是阿里巴巴去o开发的一款基于Java且免费、开源、基于数据库增量日志解析、准实时同步到本机或异地机房的mysql/oracle数据库的解决方案 otter manager和node安装包下载地址:... -
linux实现mysql数据库每天自动备份定时备份
2020-12-16 11:27:55容灾方案建设 存储介质 光盘 磁带 硬盘 磁盘阵列 DAS:直接附加存储 NAS:网络附加存储 SAN:存储区域网络 云存储 这里主要以本地磁盘为存储介质讲一下计划任务的添加使用,基本的备份脚本,其它存储介质只是介质的... -
腾讯云:MySQL数据库的高可用性分析
2021-02-25 19:06:50MySQL数据库是目前开源应用最大的关系型数据库,有海量的应用将数据存储在MySQL数据库中。存储数据的安全性和可靠性是生产数据库的关注重点。本文分析了目前采用较多的保障MySQL可用性方案。MySQLReplication是MySQL... -
mysql 三种灾备方式
2016-12-15 15:41:351.使用mysqldump实现从逻辑角度完全备份mysql,配合二进制日志备份实现增量备份 2.使用lvm照从物理角度实现几乎热备的完全备份,配合二进制日志备份实现增量备份 3.使用percona公司的xrabackup实现完全热备份... -
35.安心技术梳理 - mysql容灾及自动化切换
2019-09-25 20:26:43背景:mysql主库单点...结合TDDL的mysql主库的容灾切换方案 共识:1.使用TDDL的业务通常将mysql配置信息放在diamond 2.TDDL group作用是读写分离 部署步骤:1.mysql实例和mysql-agent比例1:1 2.增加和修改d... -
网易云数据库容灾策略
2018-08-07 19:25:44由于同城之间网络条件相对较好,MySQL 数据库原生的复制性能一般能够满足要求,MySQL 5.7 推出的并行复制可以有效解决容灾机房日志回放慢的问题。 同城双活相对实施成本较低,对业务的侵入较少,适用于跨机房... -
MSSQL、Mysql数据库容灾灾备
2014-08-08 15:29:06这段时间,好多朋友都问我异地的应用级容灾该怎么做,并且应用和数据库都在一台服务器上。 其实这个问题很简单,首先我们要了解下异地容灾要涉及的内容有什么。 1. 首先是域名的切换,我们知道,正常情况...