共计 884 个字符,预计需要花费 3 分钟才能阅读完成。
MYSQL 介绍
主从架构— —概念
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: YesSlave_SQL_Running: YesSeconds_Behind_Master: 0…
主从架构— —衍生各种扩大的主从架构
1. 一主多从
2. 双主复制
- 级联复制
- 等等
读写拆散大部分场景下,读的频率比写的频率会高很多。所以能够通过扩大多个 SLAVE 节点进步整体的使用性能。
数据备份传统的备份包含三种形式:1. lvm snapshot(LVM 快照备份)2. mysqldump3. Xtarbackup 那么要如何实现数据的一致性备份呢 (一致性备份是所有数据 / 文件 / 磁盘 须要在同一个工夫点进行备份)LVM SNAPSHOT1. 执行 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 快照.3. UNLOCK TABLES 解锁
MYSQLDUMP
- 开启可反复读事务隔离
- 开启事务
- 建设数据快照 (能够了解为 select from )
- 完结事务
XTRABACKUP
1. 不是整体采纳备份锁,只有特定阶段。
2. indodb 阶段不须要加锁,ACID 的 C(持续性) 是通过 Redo log 实现,通过线程增量记录 redo log 实现。