博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 架构 ~异地容灾
阅读量:6948 次
发布时间:2019-06-27

本文共 1037 字,大约阅读时间需要 3 分钟。

一 简介 我们来探讨下多机房下的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 异地数据的确认

转载于:https://www.cnblogs.com/danhuangpai/p/9558794.html

你可能感兴趣的文章
FTP权限问题解析,553 Can't open that file: Permission denied
查看>>
阿里云服务器重置后远程链接失败的解决办法
查看>>
POJ 3159 差分约束
查看>>
初始化参数绑定——日期格式
查看>>
python 基础 10.0 nosql 简介--redis 连接池及管道
查看>>
【SP1811】 LCS - Longest Common Substring(SAM)
查看>>
Backup: Array in Perl6
查看>>
ansible常用模块
查看>>
【C++】typeinfo.h
查看>>
Asp.net使用powershell管理hyper-v
查看>>
ASP.NET(C#)图片加文字、图片水印(转)
查看>>
python 爬虫
查看>>
连接ssh反应很慢,卡,延迟
查看>>
rabbitmq基本操作
查看>>
疑问????
查看>>
Leetcode 515. Find Largest Value in Each Tree Row
查看>>
WINCE 下载地址(转)
查看>>
日期操作积累
查看>>
Linux 僵尸进程的筛选和查杀
查看>>
WP7基础学习---第十五讲
查看>>