请介绍mysql数据库的主从架构和读写分离,包括复制原理,状态检查,数据备份
1条回答
关注主从架构— —概念
binlog日志MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间。
复制原理
主库操作保留binlog日志
从库的IO线程从主库拉取binlog日志,并生成中继日志(relay log)
从库的SQL线程解析中继日志,并在本身回放
状态检查
主要通过判断IO线程和SQL线程是否处于Running判断复制是否正常,判断Seconds_Behind_Master参数代表数据同步是否延迟:
mysql> show slave status\G ... Slave_IO_Running: Yes Slave_SQL_Running: Yes Seconds_Behind_Master: 0 ...主从架构— —衍生各种扩展的主从架构
- 一主多从
- 双主复制
- 级联复制
- 等等
读写分离
大部分场景下,读的频率比写的频率会高很多。所以可以通过扩展多个SLAVE节点提高整体的使用性能。
数据备份
传统的备份包括三种方式:
lvm snapshot(LVM快照备份)
mysqldump
Xtarbackup
那么要如何实现数据的一致性备份呢(一致性备份是所有数据/文件/磁盘 需要在同一个时间点进行备份)
LVM SNAPSHOT
- 执行FTWRL(FLUSH TABLES WITH READ LOCK)
1.1上全局读锁(lock_global_read_lock)
1.2清理表缓存(close_cached_tables)
1.3上全局COMMIT锁(make_global_read_lock_block_commit)
2. 执行lvcreate 创建lv快照.- UNLOCK TABLES解锁
解决 无用评论 打赏 举报