全局事务标识在MySQL主从数据库备份中的应用

发表时间:2020/8/24   来源:《基层建设》2020年第12期   作者:刘金生 付婷婷
[导读] 摘要:全局事务标识(GTID)数据复制技术是MySQL数据库目前最先进的数据复制技术。
        航空工业集团公司济南特种结构研究所  山东济南  250023
        摘要:全局事务标识(GTID)数据复制技术是MySQL数据库目前最先进的数据复制技术。针对特定企业的信息系统,首次将GTID数据复制技术在MySQL主从数据库备份方面进行了多次实施,结果证明该技术可以保证主从数据库之间数据复制的一致性。GTID数据复制技术对企业数据备份的一致性具有重要的作用,同时为企业运维人员提供了一种企业级的数据容灾运维方法。
        关键词:MySQL数据库;GTID;数据备份;数据复制;
        Application of Global Transaction Identification In MySQL Master-slave Database Backup
        Liu Jinsheng,Fu Tingting
        (Research Institute of Special Structures of Aeronautical Composites, Ji′nan ,250023)
        Abstract: Global transaction identification (GTID) data replication technology is the most advanced data replication technology in MySQL database. For the information system of a specific enterprise, gtid data replication technology has been implemented for many times in MySQL master-slave database backup for the first time, the results show that it can ensure the data consistency between master-slave databases. Gtid data replication technology plays an important role in the timely backup of enterprise data, and provides an enterprise level data disaster recovery operation and maintenance method for enterprise operation and maintenance personnel.
        Keywords: MySQL database; GTID; Data backup; Data replication;
        1引言
        采用MySQL数据库的企业信息系统,在主从数据库备份方面,过去一直采用基于postion标识的异步复制技术,主数据库(主库)在事务执行时,不会考虑从数据库(从库)的数据备份同步问题,一旦主库崩溃或从库落后主库,就会造成数据的不一致[1]。此外异步复制技术在数据恢复时,需要企业运维人员手动输入合适的目标pos值,不仅对运维人员提出了更高水平的技术要求,也增加了出现错误的概率,会让系统管理员经常忙于目标pos值的搜索及错误出现后的补救工作。
        基于GTID的数据复制技术在MySQL数据库中实现数据备份的应用主要包括主从数据库两端的文件配置、同步账号的创建和同步的开启。数据复制过程中对主从数据库GTID值的一致性进行检测,可以及时发现GTID值的差异并进行更正,保证了主从数据库数据复制的一致性。系统管理员无需参与到数据复制的过程中,提升工作效率的同时,降低了人为因素带来的风险。作者在企业信息系统主从数据库的数据备份实施过程中,对以往的异步复制技术进行了改造,对基于GTID的数据复制技术的应用提出了几点心得体会。
        2GTID数据复制技术的应用
        2.1 应用环境
        特定企业的主从数据库是通过在一台服务器硬件平台上安装两台虚拟机来实现的,IP地址分别为:主库10.104.143.107、从库10.104.143.108。
        虚拟机操作系统为CentOS 7.5操作系统,数据库版本为MySQL 5.7。虚拟机是一个相对独立的环境,其应用不仅可以满足试验的要求,而且还可以很好的保证原信息系统的正常运行,不会因备份操作对实际工作造成不良影响[4]。
        2.2  具体应用及优势分析
        使用GTID数据复制技术对MySQL主数据库进行备份操作,可以分为五个步骤进行,具体如下:
        (1)主库文件配置;
        (2)从库文件配置;
        (3)创建同步账号;
        (4)备份主库;
        (5)开启同步。


        核心代码如下:
        log_bin=mysql3306-bin
        server_id=1
        #STATEMENT,ROW,MIXED
        binlog_format=ROW
        gtid_mode=on
        enforce_gtid_consistency=on
        //主库文件配置
        log_bin=mysql3306-bin
        server_id=2
        #STATEMENT,ROW,MIXED
        binlog_format=ROW
        gtid_mode=on
        enforce_gtid_consistency=on
        log_slave_updates=1//从库文件配置
        grant replication slave, replication client on *.* to repl@'10.104.143.%' identified by '123456'
        flush privileges//创建同步账号
        mysqldump-S /usr/local/mysql/mysql.sock all-databases--single-transaction user=root password=123456 >/home/all.db
        //备份主库
        source /home/hadoop/master_all.db
        CHANGE MASTER TO
        MASTER_HOST='10.104.143.107'
        MASTER_USER='repl'
        MASTER_PASSWORD='123456'
        MASTER_PORT=3306
        MASTER_AUTO_POSITION=1
        start slave//开启同步
        其中gtid_mode=on保证了GTID模式的开启与应用;enforce_gtid_consistency=on强制个体的一致性,用于保证启动GTID后事务的安全;配置完成之后重启Mysql主从数据库保证配置生效。通过本文GTID数据复制技术实现的备份操作,作者得出几点心得体会,梳理出以下几点优势:
        (1)开启方式简单
        异步复制技术是基于file和position来实现的,其中file和position是人为确定的,同时position是实时变动、难以确定的;GTID在服务器上只执行一次,数值唯一;基于GTID的数据复制技术不再使用MASTER_LOG_FILE+MASTER_LOG_POS开启复制,而是仅仅使用MASTER_AUTO_POSTION=1的方式开启复制[5]。
        (2)一致性增强
        配置主从数据库备份时,从数据库以主数据库作为复制的数据源,使用基于GTID的定位技术,通过获取从库执行的最后一个事务来开启复制操作,改变了以往异步复制技术采用binlog文件偏移量人为判定复制位置的方式。
        基于日志的复制中,系统管理员需要人为地指定主库开始进行增量复制的偏移量,指定错误就会造成数据的不一致。而基于GTID的复制中,主库仅仅根据从库已执行事务的GTID值来开启增量即可,保证了同一事务在从库中只执行一次,保证了数据复制的一致性。
        (3)安全性提高
        从数据库使用MySQL账号连接主数据库,获取master授权访问权限;账号和密码明文存放在master.info文件中,单独创建拥有相关权限的账号,减少对其他账号的危害。
        文中开启GTID模式,GTID信息会自动有序的保存在gtid_executed表中,由于该表的持久特性,即使人为误操作删除备库的binlog,仍然可以通过gtid_executed表进行数据的复制操作,gtid_executed表在binlog开启和关闭情况下都会进行实时更新[6]。
        (4)兼容性提升
        gtid_mode支持动态修改,设置off可以实现GTID模式的实例向非GTID模式的实例的复制;设置on可以实现非GTID模式的实例向GTID模式的实例的复制,此模式下可实现低版本实例的升级。文中考虑到扩展性,设置了gtid_mode=on。
        3总结
        本文针对基于MySQL数据库的企业信息系统,分析了以往异步复制技术存在的缺陷,在主从数据库的数据复制应用过程中采用了基于GTID的数据复制技术,定位方式使用GTID的定位方式替代以往人工定位方式,减小人为误操作的风险,同时对该技术的应用过程做了总结,提出了几点心得体会。后期的信息化建设工作中,基于该复制技术的信息系统与Oracle数据库的其他信息系统的融合工作,还处在研究阶段,后续还需要开展一系列调试开发工作,需要相关信息技术人员不断完善研究和应用工作。
        参考文献:
        [1] 孔祥盛.MySQL核心技术与最佳实践[TP].北京:人民邮电出版社,2014,50-60.
        [2] (美)RussellJ.T.Dyer著 李红军,李冬梅等.MySQL核心技术手册[TP].北京:机械工业出版社,2009,160-200.
        [3] 何小川. MySQL数据库主从复制的实现[J].广东通信技术,2017(10).
        [4] 卢湘江,李向荣,晏子编.MySQL高级配置和管理[TP].北京:清华大学出版社,2001,158-159.
        [5] 唐汉明,翟振兴,兰丽华,等.深入浅出MySQL数据库开发、优化与管理维护[M].北京:人民邮电出版社,2008.
        [6] 谈书才,刘青青.基于Replication和LVS的MySQL分布式数据库研究[J].中国科技信息,ChinaScience and Technology Information,2015(10).
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: