mysql8主从复制
2021/4/8 19:30:21
本文主要是介绍mysql8主从复制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
mysql5.7时允许多线程复制,原理是同时处于prepared的事务都是可以并行执行的,因为能进入prepared阶段的说明已经拿到了锁,既然不同的事务同时拿到了锁,那么就不可能冲突,所以可以同时执行的.
AtomicInteger globalTransactionId; thread1:{ beginTransaction(); excute("update user set age = 10"); commit(); } thread2:{ beginTransaction(); excute("update user set age = 9"); commit(); } thread3:{ beginTransaction(); excute("update book set name = `hello`"); commit(); } commit(){ prepared(); // 这一步可能多个线程一起进入,拿到相同的值,值相同的话表示该事务可以并行执行 int last_committed = globalTransactionId.get(); // 将last_committed 写入bin-log ... globalTransactionId.increase(); ... }
mysql配置
主:
sync_binlog=1 // 每执行一次事务就写入磁盘
从:
slave-parallel-type=LOGICAL_CLOCK // 事务组同时提交
slave-parallel-workers=16 // 启动多少个slave_sql_thread线程
relay_log_recovery=ON // 在从库中将relay_log_recovery设置为on,假如果碰到relay_log损坏的情形,从库会自动放弃所有未执行的relay log,重新生成一个relay log,并将从库的io线程的position重新指向新的relay log。并将sql线程的position退回到跟io线程的position保持一致,重新开始同步,这样在从库中事务不会丢失。
这篇关于mysql8主从复制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享
- 2024-02-22docker mysql 5.7
- 2024-02-18从 20 多套 MySQL 到 1 套 TiDB丨骏伯网络综合运营管理平台应用实践
- 2024-02-07mysql 外键索引入门介绍,为什么工作中很少有人使用?