主从复制原理

1、配置内容:

  • 主库开启binlog日志,记录对数据库的操作。
  • 从库将主库的binlog日志内容写到自己的relay-log日志当中
  • 从库读取relay-log重做日志文件,然后将这些在执行到自己的库中

2、涉及到的三个线程

主库线程

binlog输出线程: 主库开启binlog日志,记录数据库的更改,当从库连接到主库的时,主库创建一个线程把binlog发送给从库。

从库线程

从库I/O线程(Slave_IO_Running):当START SLAVE执行时,从库创建一个I/O线程,用来连接主库,请求主库发送binlog更新记录,读取binlog发送的更新内容添加到本地文件relay log文件。
从库的SQL线程(Slave_SQL_Running):从库创建一个SQL线程,读取从库I/O线程写到relay log的更新事件并执行。

3、具体步骤:

步骤一:主库db的更新事件(update、insert、delete)被写到binlog
步骤二:从库发起连接,连接到主库
步骤三:此时主库创建一个binlog dump thread线程,把binlog的内容发送到从库
步骤四:从库启动之后,创建一个I/O线程,读取主库传过来的binlog内容并写入到relay log.
步骤五:从库创建一个SQL线程,从relay log里面读取内容,从Exec_Master_Log_Pos位置开始执行读取到的更新事件,将更新内容写入到slave的db

猜你喜欢

转载自blog.csdn.net/make_1998/article/details/109251394