本发明属于数据库技术,特别涉及一种MySQL数据库主从复制技术的改进方法。

背景技术:

目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。甚至在电信行业中,由于MySQL优越的性能、稳定性、完善的功能,也越来越多的被用于电信产品中。

现有主流的MYSQL主从复制方案是通过将Mysql主节点数据操作记录复制到备节点(slaves),并重新执行数据操作记录来实现的。复制过程中主节点将数据操作记录写入二进制日志文件,并维护文件索引以跟踪日志循环,同时日志记录发往到从节点进行数据更新。

现有复制方案的主要优点是:(1)搭建灵活,方便实现读写分离。(2)对主机几乎无性能影响。(3)维护相对简单。

但也存在以下的主要缺点:主机和备机之间数据传输采用异步方式,如果主机发生灾难,存在着数据丢失的可能性。

技术实现要素:

本发明的针对现有MySQL主从复制过程中,如果主机发生灾难(例如主机宕机),备机的数据可能会与主机不同步,从而造成数据丢失的缺陷,提供一种改进的可以实现数据零丢失的MySQL数据库复制方法。

为了实现上述目的,本发明采用以下技术方案:一种基于ISER协议的MySQL数据库复制方法,主机和备机之间通过主从复制技术进行容灾保护,同时使用ISER协议,将备机的磁盘映射给主机使用,主机将自身的binlog存放在备机映射磁盘上;如果主机发生故障,系统对比备机上主机传输binlog与位映射磁盘binlog进行位移对比,如果有偏差,则会重新执行磁盘映射上的多出部分的binlog。

进一步地,主机和备机之间传输采用InfiniBand技术。

进一步地,所述方法包括以下步骤:

(1)在两台电脑上分别安装MySQL数据库;

(2)两台电脑间搭建主从复制;

(3)在主机和备机的一块磁盘或分区上分别建立共享存储系统,主机启动iscsid服务,备机启动tgtd服务,并建立主机和备机之间的ISER协议连接,在主机上建立备机所述磁盘或分区的映射;

(4)使用软raid技术使主机和备机所述磁盘或分区实现数据冗余,形成新的磁盘或分区;

(5)将形成的新的磁盘或分区格式化后挂接到某个挂载点;

(6)将主机MySQL的binlog补录设置为步骤5的挂载点;

(7)将主机MySQL的sync_binlog设为1、同时innodb_flush_log_at_trx_commit设为1。进一步地,所述步骤2的主从复制,具体步骤为:

(1)登录主机服务器的mysql,查询master的状态;

(2)配置备机服务器slave,设为master_host主机,端口为主机服务端口,用户名密码配置为主机具有全库读写权限的用户及密码,binlog文件位置为步骤1的记录log文件位置;

(3)启动服务器复制功能,并检查服务器复制功能状态直至主从服务器配置完成。

本发明通过引入InfiniBand和ISER等技术,改进了MySQL的主从复制,在不影响原有性能的同时,可以实现数据零丢失。

本发明的技术原理:主机和备机之间依然通过主流主从复制技术进行容灾保护,同时使用ISER协议,将备机的磁盘映射给主机使用。主机将自身的binlog存放在备机映射磁盘上(图1中红圈所示)。当主机发生故障时,系统会对比备机上主机传输binlog与位映射磁盘binlog进行位移对比,如果有偏差,则会重新执行磁盘映射上的多出部分的binlog,从而达到数据零丢失。

为了达到如上涉及目标,本方案引入了以下两种技术:

A、InfiniBand技术:这些年,随着InfiniBand网络技术的不断走向成熟,InfiniBand架构具有高吞吐低延时的特点,并且最近三年来InfiniBand网络稳定性大为加强。通过InfiniBand技术的引入,力图解决快速传输MYSQL binlog的基础设施环境。

B、ISER协议:有非常多种的协议支持命令和数据在网络上传输,本方法采用了近年来逐步完善的ISER协议,使用ISER协议和MySQL特有的支持binlog数据引擎相结合,达到特有数据同步复制的效果。

本发明的主机宕机时,主机将自身的binlog存放在这块由备机映射磁盘上,当主机发生故障时,这块备机磁盘保留了全部的binlog,只要系统正确的应用这些binlog文件,就一定能够保证数据不丢失。

本发明能够确保当主机发生灾难后,备机数据和主机保持一致。为金融等对数据一致性有较高要求的领域,提供了一套MySQL高可用解决方案。

附图说明

图1是本发明MySQL数据库复制方法示意图。

图2是本发明MySQL数据库复制的流程图。

图3是本发明主机发生灾难时的处理流程图。

具体实施方式

下面结合具体实施例和附图对本发明做进一步的说明。

图1是MySQL数据库复制方法示意图。图2是MySQL数据库复制的流程图。图3是主机发生灾难时的处理流程图。

硬件环境:

(1)两台X86 PC服务器通过普通以太网局域网相连接,

(2)每台X86 PC服务器至少两块以上的磁盘,

(3)两台X86 PC服务器之间通过一根InfiniBand相连接(每个PC服务器需要一块HCA卡)。

实施步骤:

步骤1、两台PC服务器正常安装MySQL数据库(过程略)。

步骤2、先搭建主从复制。

步骤2.1步骤登录主服务器的mysql,查询master的状态,并记录;

步骤2.2配置从服务器slave,设为master_host主机,端口为主机服务端口,用户名密码配置为主机具有全库读写权限的用户及密码,binlog文件位置为步骤2.1的记录log文件位置;

步骤2.3、启动服务器复制功能;

步骤2.4、检查从服务器复制功能状态:

Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。

以上操作过程,主从服务器配置完成。

步骤3、备机安装部署

步骤3.1准备一块磁盘(或者分区),假设为/dev/sdb;

步骤3.2安装scsi-target-utils系统软件包;

步骤3.3启动tgtd服务;

步骤3.4定义一个id和iqn地址;

步骤3.5编辑配置文件设置相关参数定义制定使用iser协议将主机设备信任,对外export上述/dev/sdb;

步骤3.6重启服务让配置文件生效。

步骤4、主机安装部署

步骤4.1安装iscsi-initiator-utils软件包;

步骤4.2启动iscsid服务;

步骤4.3发现指定备机的映射磁盘,并制定使用iser协议连接;

步骤4.4使用上面定义的iqn登录这个磁盘设备;

步骤4.5使用查看备机映射过来的这块磁盘;

步骤使用fdisk-l应该多出一块磁盘假设为/dev/sdc;

步骤5使用软raid技术,在主机端用本地的/dev/sdb和上面新生成的/dev/sdc做成raid1,形成新的磁盘,假设名称为/dev/dm126;

步骤6、将/dev/dm126格式化成某种文件系统,比如xfs或者ext4。

步骤7、将/dev/dm126mount到某个挂载点。

步骤8、将主机MySQL的binlog补录设置为步骤7的挂载点。

步骤9、将主机MySQL的sync_binlog设为1、同时innodb_flush_log_at_trx_commit设为1。

部署完成。

主机宕机时,主机将自身的binlog存放在这块由备机映射磁盘上,当主机发生故障时,这块备机磁盘保留了全部的binlog,只要系统正确的应用这些binlog文件,就一定能够保证数据不丢失。

以上所述,仅是本发明的较佳实例而已,并非对本发明做任何形式的限制。凡是依据本发明的技术和方法实质对以上实例所作的任何简单修改、等同变化与修饰,均仍属于本发明的技术和方法方案的范围内。

mysql 复制协议_一种基于ISER协议的MySQL数据库复制方法与流程相关推荐

  1. 服务器基线加固脚本_一种基于WebLogic的安全基线加固方法与流程

    本发明涉及一种安全基线加固方法,尤其涉及一种基于weblogic的安全基线加固方法. 背景技术: weblogic是一个基于javaee架构的中间件,用于开发.集成.部署和管理大型分布式web应用.网 ...

  2. java 下载加速_一种基于Java的大文件下载加速方法与流程

    本发明涉及java/多线程技术领域,涉及一种加速文件下载装置,具体提供一种基于java的大文件下载加速方法. 背景技术: 现有的常用下载方式是基于浏览器的单线程下载.这种单线程下载的方式,是通过htt ...

  3. dncnn图像去噪_一种基于DnCNNs改进的图像降噪方法与流程

    本发明涉及图像处理技术领域,具体涉及一种基于dncnns改进的图像降噪方法. 背景技术: 随着科技进步,新的图像技术在逐渐推广,在日常生活中人们对于图像的要求也越来越高,针对阴天或夜晚等弱光条件下拍摄 ...

  4. java 基于类路径搜索_一种基于ClassLoader的自定义类查找方法与流程

    本发明涉及IT技术领域,特别是指一种基于ClassLoader的自定义类查找方法. 背景技术: 随着信息系统的复杂性日益增大,使用反射机制设计的系统越来越多.根据不同的业务需要通过反射去获得相应的处理 ...

  5. unity 陶瓷质感_一种基于Unity3D的虚拟陶瓷设计方法与流程

    本发明涉及虚拟现实领域,特别涉及一种基于Unity3D的虚拟陶瓷设计方法. 背景技术: 陶艺工艺制作环境要求严格:不仅在拉坯成型需要利用旋转机器,在烧制过程则需要窑炉锻造,如何将陶瓷制作工艺与虚拟现实 ...

  6. 疲劳驾驶监测方案_一种基于手机的疲劳驾驶监测方法与流程

    本发明属于安全驾驶领域,具体涉及一种基于手机的疲劳驾驶监测方法. 背景技术: 疲劳驾驶是指驾驶员在长时间连续行车后,产生生理机能和心理机能的失调,从而在客观上出现的驾驶技能和反应下降的现象.若驾驶员在 ...

  7. 手机室内地磁定位软件_一种基于地磁的智能手机实时定位方法与流程

    本发明涉及室内地磁定位导航方法,具体涉及一种基于地磁的智能手机实时定位方法,属于移动计算和室内定位技术领域. 背景技术: 随着室内定位导航的日益需求,利用地磁信息作为位置指纹的室内定位导航技术显示出其 ...

  8. fft 估计载波频率程序_一种基于扫描精确估计载波频率的方法与流程

    本发明涉及信号处理技术领域,特别涉及一种基于扫描精确估计载波频率的方法. 背景技术: 信号的载波频率估计是通信.雷达.声纳以及电子对抗等领域信号处理中的一个重要问题.基于参数模型的谱估计.最大熵谱估计 ...

  9. 双目视觉焦距_一种基于可变焦相机的双目视觉测距方法与流程

    本发明属于双目视觉技术领域,具体涉及一种基于可变焦相机的双目视觉测距方法. 背景技术: 在这个计算机视觉技术发展迅速的时代,获取深度信息成为了一个热门的课题,因其所诞生的方法也各式各样,但是绝大部分的 ...

  10. rssi室内定位算法原理_一种基于RSSI测距的室内定位方法与流程

    本发明涉及室内定位领域,尤其涉及一种基于RSSI测距的室内定位方法. 背景技术: : 室内无线定位,是指利用无线网络和定位终端提供待测节点位置.速度和方向等相关信息的服务.对于一个定位算法而言,评价其 ...

最新文章

  1. iOS:转载:UIControl的使用
  2. Blend_ControlTemplate(Z)
  3. oracle 关于日期格式转换与使用
  4. @param注解_启用 parameters 编译选项简化 mybatis @Param 注解重复问题
  5. Asp.net HttpClient Proxy(Fiddler)
  6. 斗地主AI算法——第三章の数据处理
  7. oracle 使用imp,Oracle中的Imp和Expt用法
  8. 使用result配置结果视图
  9. 哈夫曼编码(Huffman coding)的那些事,(编码技术介绍和程序实现)
  10. 12864c语言程序,LCM12864 C语言驱动程序
  11. 词霸豆豆 — 互联网时代的金山词霸
  12. 按键精灵 android,按键精灵安卓版
  13. 用这个玩吃鸡:宏按键加一键恢复加自由移动视角,你想要的功能它都有
  14. 光学三原色与色的三原色
  15. 获取shell文件路径方法
  16. 软件外包交易平台排行
  17. 当我们聊策略的时候,我们在聊什么?策略 Strategy。
  18. 阿⾥云Apsara Clouder云计算专项技能认证:云服务器ECS⼊门【 个⼈所得税年度应纳税额抵扣 3600(0成本)】
  19. 订单可视化(智能制造、流程再造、企业信息化) 第七篇 经营班子掌舵,业务与开发分离,走向成功必备条件
  20. Java设计模式—模板模式(Template)

热门文章

  1. spring boot 2.0.3+spring cloud (Finchley)1、搭建服务注册和发现组件Eureka 以及构建高可用Eureka Server集群...
  2. easyUI替换非16x16的图标
  3. hdu 1561(树形DP+背包)
  4. 用Ruby读取Excel文件
  5. 冯诺依曼图熵(VNGE)Python实现及近似计算
  6. GCC图神经网络预训练概述
  7. (超详细)夜间灯光总值TNLI如何得到
  8. FFmpeg入门知识(一):FFmpeg在Windows上的安装
  9. Android studio打包遇到的问题总结
  10. Java的注解和反射