主从复制原理,简言之,就三步曲,如下:
1、 主数据库有个bin-log二进制文件,纪录了所有增删改Sql语句。(binlog线程)
2、 从数据库把主数据库的bin-log文件的sql语句复制过来。(io线程)
3、 从数据库的relay-log重做日志文件中再执行一次这些sql语句。(Sql执行线程)
上图主从复制分了五个步骤进行:
1、 主库的更新事件(update、 insert、delete)被写到binlog
2、 从库发起连接,连接到主库。
3、 此时主库创建一个binlog dump thread,把binlog的内容发送到从库。
4、 从库启动之后,创建一个I/O线程,读取主库传过来的binlog内容并写入到relay log
5、 还会创建一个SQL线程,从relay log里面读取内容,从Exec_Master_Log_Pos位置开始执行读取到的更新事件,将更新内容写入到slave的db
Was this helpful?
0 / 0