介绍一下 MySQL 主从复制?
主从复制的前提(搭建主从复制)?
从库如何告诉主库复制信息?
change master to
命令,例如:mysql 代码解读复制代码CHANGE MASTER TO
MASTER_HOST='172.21.0.3',
MASTER_USER='repl',
MASTER_PASSWORD='',
MASTER_PORT=3307,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=3596,
MASTER_CONNECT_RETRY=10;
复制线程都有什么,如何开启?
start slave;
如何检查主从同步是否成功?
show slave status;
命令:主从复制涉及的文件有哪些?
主库:
从库:
主从复制涉及到的线程有哪些?
主库:
从库:
主从复制过程(原理)?
change master to
命令(主库的连接信息 + 复制的起点);master.info
文件中;start slave
命令,立马开启 IO 线程和 SQL 线程;master.info
文件里的信息,获取到 Host、Port、IP、User、Password、Binlog 的位置信息;master.info
信息。relaylog
中;relaylog.info
信息,获取上次已经应用过的 relaylog 的位置信息;relaylog
,并在此更新 relaylog.info
信息从库如何知道主库有新的 binlog 日志产生?
如何查看主从复制是否延迟?
show slave status;
命令,查看 Master_Log_File
和 Read_Master_Log_Pos
两个字段,和主库保持一致就是不延迟。主从复制出现故障一般都是什么?如何排查?如何解决?
IO 线程(主要关注从库线程):
可能出现的问题:
解决方案:
stop slave
;reset slave all
;change master to
;start slave
;SQL 线程:
主从延时可能会有哪些原因?如何解决?
主库方面:
binlog 写入不及时:
sync_binlog=1
:写入日志必写磁盘DUMP 线程:默认情况下 DUMP 线程是串行传输 binlog,在并发事务量大时,由于 DUMP 线程是串行的,导致传输数据较慢。
长事务(同上)
主库极其繁忙
从库较多
锁等待
从库方面:
主从延迟如何监控?