位置: 编程技术 - 正文

在MySQL中使用GTIDs复制协议和中断协议的教程

编辑:rootadmin

推荐整理分享在MySQL中使用GTIDs复制协议和中断协议的教程,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

MySQL5.6有很多新的特性,其中很多人都感兴趣的一条就是全局事务序号功能(GTIDs)。而大家都对这一特性很感兴趣的原因也很好理解,即:本来重新连接从服务器和一个新的主服务器一直是件很麻烦的事,然而在启用GTIDs功能之后就变得简单易行。可是,GTIDs的使用不单单是用单独的标识符替换旧的二进制日志文件/位置,它也采用了新的复制协议。假如你还不太明白这些,那你可以在这篇文章里学点什么。复制协议:新的 VS 旧的

旧的协议往往简单直接即:首先从服务器上在一个特定的偏移量那里连接到一个给定的二进制日志文件,然后主服务器在从那里发送所有的事务。

新协议稍有不同:slave首先会发送它已经执行过的GTID的范围,然后master发送每一个丢失的事务. 它也确保了一个给定的GTID只可以在一个特定的slave中执行一次.

实践中,这会改变任何东西吗&#; 使得,它会改变很多东西. 想象一下下面的场景: 你想要从trx 4开始复制,但是trx2在slave上因为某种缘故丢失了.

使用老协议的话,trx 2再也不会被执行一次,而使用新协议,它就会被自动的再执行一次.

下面是两个你可以在实践中看到新协议的通用场景.

跳过事务

众所周知老的 SET GLOBAL sql_slave_skip_counter = N 在你想要跳过一个事务时不再提供支持,而GTID就可以被启用了. 换用 GTID XXX:N 来跳过事务, 你须得 注入一个空的事务:

为什么我们不能使用 sql_slave_skip_counter&#; 就是因为新的复制协议!

想象一下我们拥有如下图所示的三台服务器:

在MySQL中使用GTIDs复制协议和中断协议的教程

让我们假设 sql_slave_skip_counter 可以用并且已经被用在S2上用于跳过trx2. 如果你吧S2设置成S1的一个slave将会发生什么呢&#;

两个服务器会互相交换被执行了GTID的范围,并且S1将会意识到其必须将trx2发送给S2. 然后会发生的事情有两种可能:

如果 trx 2 仍然在S1的二进制日志中,它将会被发送给S2,而事务在也不会被跳过了. 如果 trx 2 不再存在于S1的二进制日志中,你将会得到一个复制错误.

很明显这不安全,这就是为什么 sql_slave_skip_counter 在使用GTID时是不能用的. 要想跳过一个事务,唯一安全的选择就是去执行一个虚拟的事务,而不是一个真实的事务. 错误的事务

如果你在一个slave上本地执行了一个事务 (在MySQL文档中被称为错误事务), 如果你被这个事务推送到新的master上时会发生什么呢&#;

使用老协议,基本上没啥事(准确点说,新的master和其slave之间的数据将会出现不一致,但那在稍后就可能会被修复).

使用新协议,错误的事务将会被识别成为在每个地方都丢失了,并且将会自动在容错备份上被执行,这样就将会导致打断复制的隐患.

比方说,你拥有一个master(M)和两个slave (S1 和 S2). 这里有两种将slave重连到新的master将会发生(带有不同复制错误的)失败的场景:

# 场景 1

# 场景 2

你可以这样理解,错误的事务应该借助基于GTID的服务得以避免. 如果你需要运行一个本地事务,最好的选择是针对那条特定的语句禁用二进制日志:

结论

GTIDs在让我们方便重新和其他服务器连接副本方面是个不小的进步。然而同样的在运维方面我们也因此面临新的困难和挑战。假如你打算开始使用GTIDs,那么你就得确实理解新的复制协议,否则你就会以一种想不到的方式结束复制过程。

在Docker中使用MySQL的教程 提及虚拟化技术,我可是linuxContainer(LXC)的热爱者。但随着Docker技术的声名鹊起,我想在这展示一下如何使用带有Docker的MysqlDocker是什么?实际上,Dock

MySQL数据库中的安全设置方案 随着网络的普及,基于网络的应用也越来越多。网络数据库就是其中之一。通过一台或几台服务器可以为很多客户提供服务,这种方式给人们带来了很

Mysql的语句生成后门木马的方法 咳咳,大家看看就好了,本人不负责所产生的后果SELECT*FROM`vbb_strikes`WHERE1unionselect2,3,0x3C3FDFBDDB3F3Efromvbb_strikesintooutfil

标签: 在MySQL中使用GTIDs复制协议和中断协议的教程

本文链接地址:https://www.jiuchutong.com/biancheng/347298.html 转载请保留说明!

上一篇:详细介绍基于MySQL的搜索引擎MySQL-Fullltext(mysql基于什么模型)

下一篇:在Docker中使用MySQL的教程(在docker中使用service命令)

  • 北京增值税发票勾选认证平台
  • 非盈利组织确认及所得税汇算怎么做
  • 股权转让和变更法人一样吗?
  • 土地摊销全部计入成本吗
  • 员工工资计入管理费用吗
  • 应收票据背书转让分录
  • 累计折旧空运直接计入生产成本吗
  • 跟个人租车可以到税务局开发票吗
  • 部分红冲的发票,剩余未冲红部分可以再红冲么
  • 一般纳税人购买并销售免税货物所发生的运输费用
  • 纳税人多缴税款的退还期限
  • 一般纳税人注销需要多少钱
  • 钻井勘探支出已费用化的探井
  • 股权出让需要交税吗
  • 小规模纳税人和个体工商户的税收政策
  • 差额拨款的事业单位属于预算单位吗
  • 房地产公司房屋质量排名
  • 土地出让金进项税税率
  • 自建的固定资产入账价值具体包括哪些
  • 保本型理财产品推荐
  • 普票开票开给个人怎么开
  • 发票进项和销项对不上后果
  • 替票可以写入费用报销制度吗?
  • 小规模纳税人未建账处罚
  • 轨道交通很高兴 土地税优惠来了
  • 混业经营如何缴税?
  • 股东对外投资
  • 应收账款负数可以调到哪个科目
  • 增资后工商怎么变更
  • 12月的发票可以1月付款吗
  • 印花税退款分录
  • php脚本主要用于的三个领域
  • php中cookie和session的区别
  • 辅助生产成本如何结转
  • 政府机关出租房屋要交税吗
  • 公司向个人支付劳务费
  • phpstudy配置https
  • 微信小程序开发完整项目
  • 矿产资源补偿费计入管理费用吗
  • html列表去掉点
  • pdf在线预览备注
  • promise基本使用
  • 增值税专用发票几个点
  • 销售退货和折让是收入吗?吗?
  • 赔绿化损失费的法律规定
  • 银行回单应如何打印
  • 金融资产减值包括
  • 长期股权投资的核算方法
  • 个人所得税专项扣除2023最新政策
  • 业务招待费进项税
  • 银行转账凭证可以保留多久
  • 工程的直接成本包括哪些内容
  • 税局代开专票对方隔月退回重开如何做账务处理呢?
  • 计提个人所得税会计分录怎么做账
  • 当月销售下月开票
  • 远期支票最长期限
  • 记账凭证账务处理程序的特点是直接根据每张
  • 资产处置损益的明细科目
  • 以前年度损益调整结转到哪里
  • 建筑业确认收入的条件
  • 税控盘和金税盘可以安装在一个电脑
  • 坏账准备转回是什么意思
  • winxp u盘拒绝访问
  • apple mac book
  • fedora linux安装教程
  • solaris 修改用户 主目录
  • 如何关闭windows防护
  • MSAPI.DAT,WINDNSAPI.DAT是什么文件
  • QuickBooks - QuickBooks是什么进程 有什么用
  • gnu grub卸载
  • windows8开机启动项设置
  • 零基础搭建直播室与云直播平台
  • nodejs爬虫框架crawler
  • nodejs作为后端
  • javascript中字符串
  • 国家税务总局2012年20号公告
  • 如何践行中国精神论文
  • 补充耕地指标费用能从储备中心支付吗
  • 电子税务局如何查询财务报表
  • 湖北国家税务局发票查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设