叨叨最近遇到的一些事以及见闻、思考。
1. GreatSQL编译环境Dockerfile更新了
用于构建GreatSQL编译环境的Dockerfile发现几个小瑕疵,于是更新了下。
利用Docker环境来编译GreatSQL显然更方便,一次构建即可多次使用,非常推荐这种方式。有兴趣的 戳此查看最新Dockerfile(https://gitee.com/GreatSQL/GreatSQL-Doc/tree/master/build-gs/Dockerfile)。
另外,这是自制Docker镜像参考。
欢迎留言提建议呀。
2. MGR分享直播
最近两周,分别尝试了在工作日白天和晚上直播分享MGR相关内容,测试下来发现放在晚上似乎人会更多些,可能白天大家还有手头的工作要处理,所以参加的人略少些。
相比回看录制好的视频,大家似乎更喜欢参加直播,可能录播视频给人一种反正现在不看以后还可以再看的心态,而直播则是过了就没了,所以似乎更愿意参加。
以后打算继续继在晚上做直播分享了,预计周二、四的晚上吧,我会尽量提前预告。
若有更好的建议也请留言。
3. 为什么 INSERT ... SELECT 会报告锁等待超时错误
这是因为在默认的RR(repeatable read)隔离级别下,INSERT INTO t … SELECT FROM s
事务中,对要读取的源 s表 所涉及的数据要加上 next-key lock 。因此如果此时有其他事务也正对这些数据加锁的话,是有可能导致行锁没释放,报告锁等待超时。
此时可以通过查看 performance_schema.data_lock_waits
来确认行锁等待情况。
4. MGR集群从节点可以2个以上吗
这是来自一位群友的问题,看来还是有不少群友对MGR没什么概念。虽然是基础问题,也值得回答一下。
目前在整个MGR集群中最多可支持9个节点。采用 single-primary
模式(group_replication_single_primary_mode = ON
)时,则最多可以有8个SECONDARY节点。而如果采用 multi-primary
模式(group_replication_single_primary_mode = OFF
)的话,则都是 PRIMARY 节点,不再有 SECONDARY 节点了。
5. 两个MGR集群间还可以构建传统的主从复制通道吗
答案是肯定的,可以。
在MGR集群里,只有PRIMARY节点才能作为传统主从复制的SLAVE节点,集群里的 SECONDARY 节点是不能成为传统主从复制的 SLAVE节点的(想想也能理解,否则就会造成MGR里主从节点数据不一致了)。
群友补充提问:MGR1的secondary -> MGR2的primary行不行?只能主到主?还是主到主,从到主都行?这里说的只是从节点必须是主节点吧?主节点有要求吗?
下图是在MGR里构建传统主从复制通道的详细要求:
群友再次补充提问:可以通过rooter去连接主节点吗,或者当发生了主节点切换怎么办?
首先,一个mysqlrouter实例只能连接一个MGR集群,是不能连接到多个MGR集群的。
其次,两个MGR集群间构建主从复制通道后,如果担心主节点切换时复制通道会断掉的话,可以利用MySQL 8.0.22后新增的 Async Replication Auto failover 特性,指定多个复制通道的 MASTER源,利用该特性可以应对主节点 切换的场景,详情见这两篇文章:
最后,这些内容在《实战MGR》 免费课程里已有详细介绍,欢迎加入学习。
6. 睡前看会书
最近利用晚上睡前的时间,陆陆续续把刘慈欣的几个科幻短片给看完了,印象深刻的主要有《朝闻道》、《山》、《带上她的眼睛》、《中国太阳》等几篇。刘慈欣的脑洞真的是很大,如果能把这些都拍成电影的话,想必也会挺卖座的。
发现睡前看会书这种方式还不错,晚上睡眠质量似乎也会更好些,可能是看书让人更容易静下来吧,之前的《南渡北归》也是这样陆续看完的,睡眠不好的同学可以试试这个方法。
《实战MGR》视频课程
视频已全部上线,这是免费视频,放在腾讯课堂平台上,共有500多人报名学习了。
目前是第一期内容,相信有很多不足,甚至错漏的地方,也欢迎各位不吝留言帮忙提建议、意见,帮忙改进完善,感谢。
戳此小程序即可直达
或用微信/QQ扫码
或复制链接在浏览器中打开 GreatSQL社区《实战MGR》https://ke.qq.com/course/3677969
文章推荐:
扫码加入GreatSQL/MGR交流QQ群
点击文末“阅读原文”直达老叶专栏