mysql日常运维(MySQL从库维护经验分享)
mysql日常运维
MySQL从库维护经验分享前言:
MySQL 主从架构应该是最常用的一组架构了。从库会实时同步主库传输来的数据,一般从库可以作为备用节点或作查询使用。其实不只是主库需要多关注,从库有时候也要经常维护,本篇文章将会分享几点从库维护经验,一起来学习吧。
1.主从复制建议采用 GTID 模式
GTID 即全局事务 ID(Global Transaction ID),GTID 实际上是由 server_uuid:transaction_id 组成的。其中 server_uuid 是一个 MySQL 实例的唯一标识, transaction_id 代表了该实例上已经提交的事务数量,并且随着事务提交单调递增,所以 GTID 能够保证每个 MySQL 实例事务的执行(不会重复执行同一个事务,并且会补全没有执行的事务)。
基于 GTID 的主从复制可以取代过去通过 binlog 文件偏移量定位复制位置的传统方式。特别是对于一主多从的架构,借助GTID,在发生主备切换的情况下,MySQL 的其它 Slave 可以自动在新主上找到正确的复制位置,这大大简化了复杂复制拓扑下集群的维护,也减少了人为设置复制位置发生误操作的风险。另外,基于 GTID 的复制可以忽略已经执行过的事务,减少了数据发生不一致的风险。
2.建议从库参数尽量和主库保持一致
为保证主从库数据一致性,建议从库版本与主库一致,相关参数尽量和主库保持一致。比如字符集、默认存储引擎、sql_mode 这类参数要设置一样。特别是一些不可动态修改的参数,建议提前写入配置文件并和主库一致。
3.备份可在从库端进行
MySQL 全量备份会对服务器造成一定压力,有时也会短暂持有全局锁。特别是数据量大,业务繁忙的数据库,全量备份可能会对业务产生影响。建议将备份脚本部署在从库服务器上,全量备份可以放在从库端进行,这样能减少备份过程中对于主库业务的影响。
4.从库建议设为只读
对于数据库读写状态,主要靠 read_only 全局参数来设定,默认情况下,数据库是用于读写操作的,所以 read_only 参数是 0 或 false 状态。这时候不论是本地用户还是远程访问数据库的用户,只要有权限都可以进行读写操作。
为避免从库发生手动更新操作,建议将从库设置为只读,即将 read_only 参数设置为1。read_only=1 只读模式,不会影响从库同步复制的功能,从库仍然会读取 master 上的日志,并且在 slave 端应用日志,保证主从数据库同步一致。从库设为只读会限制不具有 super 权限的用户进行数据修改操作,普通的应用用户进行 insert 、 update 、 delete 等会产生数据变化的 DML 操作时,都会报出数据库处于只读模式。这样能有效防止从库发生更新操作。
此外,有条件的情况下,从库可以承担部分查询工作。比如一些报表聚合分析查询或者外部服务查询都可以配置从库查询,减少对主库的压力。
5.注意从库监控及主从延迟
从库虽然不如主库那么重要,但平时也要多关注从库监控状态,不要等到需要使用从库时才发现从库早已和主库不一致了。除去一些基础监控,从库端要特别关注复制状态及延迟状态。
我们可以在从库端执行 show slave status; 来查询从库状态,其中主要关注的值有三个,分别为 Slave SQL Running , Slave IO Running 和 Seconds Behind Master 。这三个值分别代表 SQL 线程运行状态、 IO 线程运行状态、从库延迟秒数。只有当 Slave SQL Running , Slave IO Running 为 yes ,然后 Seconds Behind Master 为0的时候,我们认为从库运行正常。
总结:
本篇文章主要分享了个人关于从库维护的几点经验,若有错误,还请指正。其他同学若有相关经验或建议,也可以留言分享讨论哦。
以上就是MySQL从库维护经验分享的详细内容,更多关于MySQL从库维护经验的资料请关注开心学习网其它相关文章!
原文链接:https://cloud.tencent.com/developer/article/1750398
- mysql复合索引会包含哪些索引(MySQL查询冗余索引和未使用过的索引操作)
- mysql行级锁使用教程(浅析MySQL的lru链表)
- mysql快速创建索引(MySQL创建高性能索引的全步骤)
- mysql连接查询原理(MySQL连接查询你真的学会了吗?)
- mysql 索引表空间(MySQL如何构建数据表索引)
- mysql自增主键创建过程(深入谈谈MySQL中的自增主键)
- docker怎样安装mysql8(docker-compose安装db2数据库操作)
- 对mysql性能优化的看法(聊聊MySQL的COUNT的性能,看看怎么最快?)
- 执行mysqldump命令后数据库无反应(关于xampp启动不了mysql数据库的解决方法)
- mysql索引失效怎么办(MySQL选错索引的原因以及解决方案)
- mysql数据库基础练习(最全50个Mysql数据库查询练习题)
- mysql中timestamp类型的CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP属性
- mysql的decimal类型(MySQL数据类型DECIMAL用法详解)
- mysql深度分页问题(MySQL DDL 引发的同步延迟该如何解决)
- mysql中行列转换(mysql 行列转换的示例代码)
- mysql5.5.36版本介绍(WDCP控制面板升级mysql为5.7.11的方法)
- 泰国人妖(变性手术生殖器要割掉吗)
- 泰国美女(泰国人妖和女性如何区分)
- 泰国旅游业怎么样(泰国的旅游产业)
- 越南新娘(越南新娘婚介网站)
- 越南新娘(越南新娘骗婚套路流程)
- 菲律宾游学(菲律宾游学中介机构)
热门推荐
- css高级技巧图解(20个非常实用的CSS技巧)
- ASP.NET使用JavaScriptSerializer实现序列化与反序列化
- 进度条代码大全(多步骤进度条的实现原理及代码)
- mysql主从模式与读写分离(磁盘写满导致MySQL复制失败的解决方案)
- mysqlupdate原理(MySQL UPDATE 语句的非标准实现代码)
- rabbitmq客户端内存占用(mysql-canal-rabbitmq 安装部署超详细教程)
- discuz apache伪静态(apache中伪静态配置和使用Apache虚拟主机下Discuz伪静态)
- tomcat配置远程调试(一次tomcat源码启动控制台中文乱码的调试过程记录)
- 如何设置bootstrap轮播图的速度(bootstrap实现轮播图效果)
- python函数参数讲解(Python高级特性与几种函数的讲解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9