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中冗余和重复索引的区别说明)
- mysqlupdate语句(MySQL将select结果执行update的实例教程)
- mysqlbinlog优缺点(MySQL Binlog 日志处理工具对比分析)
- mysql索引知识点总结(MySQL 8.0 之索引跳跃扫描Index Skip Scan)
- mysql数据库基本增删改查基本语句(MySQL表的增删改查基础教程)
- python中怎么连接mysql(python远程连接MySQL数据库)
- mysql left join索引怎么使用(详解mysql 使用left join添加where条件的问题分析)
- rabbitmq客户端内存占用(mysql-canal-rabbitmq 安装部署超详细教程)
- mysql查询时间格式化(MySQL时间格式化)
- mysql哪些配置影响性能
- mysql索引为什么是b+树(mysql 使用B+树索引有哪些优势)
- mysql子查询用法(MySQL 子查询和分组查询)
- mysqldata数据如何恢复(mysql5.7.33误删除ibdata文件找回数据的方法)
- mac版本php环境搭建(在Mac OS X中配置Apache+PHP+MySQL运行环境的详细步骤)
- mysql自定义函数怎么设置(MySQL自定义变量?学不废不收费~)
- phpmysql完全学习手册教程(Windows下搭建PHP开发环境Apache+PHP+MySQL)
- 菲律宾特产(菲律宾特产最值得买回国)
- 越南特产(越南特产首饰)
- TVB负评王连续挑战警察角色《使徒行者3》中将饰演卧底(TVB负评王连续挑战警察角色使徒行者3中将饰演卧底)
- 《精英律师》剧照首曝光,实力演员飙戏,演绎律政职场百态(精英律师剧照首曝光)
- 靳东领衔打造高精职场 新丽出品《精英律师》曝定妆照(靳东领衔打造高精职场)
- 靳东新剧《精英律师》定档,众星云集,这剧可追(靳东新剧精英律师定档)
热门推荐
- idea安装mybatis(IDEA使用mybatis-generator及配上mysql8.0.3版本遇到的bug)
- iis搭建web服务器和ftp教程(Windows实例通过IIS如何搭建多个FTP站点?)
- div左右布局自适应(如何让一个div居于页面正中间实现方法)
- html5移动app开发实战(html5启动原生APP总结)
- 管理公有云方案(ZKEYS公有云管理系统一键部署操作流程)
- dataframe数据处理教程(对dataframe数据之间求补集的实例详解)
- 浏览器内核有哪些
- SQL Server免费版的安装以及使用SQL Server Management Studio(SSMS)连接数据库的图文方法(SQL Server免费版的安装以及使用SQL Server Management StudioSSMS连接数据库的图文方法)
- jquery中return this.each的作用
- mysqlinnodb数据存储格式(MySQL InnoDB ReplicaSet副本集简单介绍)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9