MYSQL介绍

主从架构— —概念

binlog日志

MySQL的二进制日志能够说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查问语句)语句,以事件模式记录,还蕴含语句所执行的耗费的工夫。

复制原理

  1. 主库操作保留binlog日志
  2. 从库的IO线程从主库拉取binlog日志,并生成中继日志(relay log)
  3. 从库的SQL线程解析中继日志,并在自身回放

状态查看次要通过判断IO线程和SQL线程是否处于Running判断复制是否失常,判断Seconds_Behind_Master参数代表数据同步是否提早:
mysql> show slave status\G...      
Slave_IO_Running: YesSlave_SQL_Running: YesSeconds_Behind_Master: 0... 

主从架构— —衍生各种扩大的主从架构

1. 一主多从
2. 双主复制

  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

  1. 开启可反复读事务隔离
  2. 开启事务
  3. 建设数据快照(能够了解为select  from )
  4. 完结事务

XTRABACKUP

1. 不是整体采纳备份锁,只有特定阶段。
2. indodb阶段不须要加锁,ACID的C(持续性)是通过Redo log实现,通过线程增量记录redo log实现。