mysql 架构篇系列 3 复制运行状态监控与选项参数说明
2018-10-29 17:46
766 查看
一. 概述
在上一篇中,搭建了一主一从的复制架构,这篇通过一些诊断方法来了解复制的运行状态和一些选项参数说明。上次mysql主从服务关机,今天在打开mysql服务,出现了错误信息。
1.首先 启动主从mysql服务
2.在从库上执行START SLAVE, 开始复制。
3.在从库上执行SHOW PROCESSLIST; slave已经连接上master, 并开始接受并执行日志。
BEGIN /*!*/; # at 1714 #181029 14:41:21 server id 1 end_log_pos 1860 CRC32 0x9fdf71e9 Query thread_id=2 exec_time=0 error_code=0 use `test`/*!*/; SET TIMESTAMP=1540795281/*!*/; -- 全部更新 update testbackup set `name`=concat(`name`,'hello123') /*!*/; # at 1860 #181029 14:41:21 server id 1 end_log_pos 1891 CRC32 0x4b7199d3 Xid = 579 COMMIT/*!*/;View Code 总结:在binlog_format格式为row时,mysql实际上在binlog是一行行记录数据的变更。当格式为statement时是按语句级记录。 row格式比statement格式更能保证从库数据的一致性(复制是记录,而不是单纯操作sql),但row格式下的binlog的日志量很可能会增大好几倍,在设置时需要考虑磁盘空间问题。
三. 刷新磁盘频率
对于支持事务引擎(如innodb)来说, 每个事务提交时都需要写binlog,对于不支持事务的引擎(例myisam)来说,每个sql语句执行完成时,都需要写binlog。 为了保证binlog安全,mysql引入了 sync_binlog 参数来控制binlog刷新到磁盘的频率。
关于sync_binlog在: mysql 开发进阶篇系列 19 MySQL Server(innodb_flush_log_at_trx_commit与sync_binlog)中有介绍。
-- 查看binlog格式 SHOW VARIABLES LIKE '%sync_binlog%'
当sync_binlog=1时,是最安全的,当主机突然断点,系统最多损失最近的一条事务的数据。但是在多个事务并发提交时,mysql不得不按顺序处理请求,同时高频率的刷新binlog对I/O影响明显,很大程度影响了mysql的性能。
所以一般线上系统mysql的sync_binlog不会设置为1, 而是2或0,在数据安全性和更高的并发之间获取一个平衡。
相关文章推荐
- ZABBIX最全MYSQL自定义监控多实例mysql与主从复制状态没有之一
- 【58沈剑架构系列】mysql并行复制优化思路
- [MySQL FAQ]系列 — MySQL复制中slave延迟监控
- 【SHELL】监控Nginx运行,Mysql主从运行,主从复制延迟
- SCSF 系列:使用 Visualizer 监控 SCSF 运行状态
- Mysql之复制选项与监控
- SQL Server自动化运维系列——监控跑批Job运行状态
- zabbix创建监控项item,触发器triger监控mysql参数特殊参数状态
- Oracle Golden Gate 系列十四 -- 监控 GG 状态 说明
- 编写脚本实现MySQL主从复制状态监控
- 07 - 如何查看镜像及MySQL各环境参数的说明(Docker系列)
- 使用Linux C开发Nagios监控插件系列——监控MySQL状态的插件开发
- MySQL架构优化实战系列2:主从复制同步与查询性能调优
- 使用Linux C开发Nagios监控插件系列——监控MySQL状态的插件开发
- Oracle Golden Gate 系列十四 -- 监控 GG 状态 说明
- zabbix自定义key监控mysql重要参数的运行情况
- Oracle Golden Gate 系列十四 -- 监控 GG 状态 说明
- Oracle Golden Gate 系列十四 -- 监控 GG 状态 说明
- Mysql DBA 高级运维学习笔记-MySQL主从复制指定不同库表参数说明
- zabbix监控nginx,Mysqld,Php状态,MySQL主从复制状态