vlambda博客
学习文章列表

浅谈MySQL之备份复制 Master-Slave

  在我们日常的数据库开发中,由于业务产品的需要,会涉及到数据库的备份,以下将会详细分析数据库的备份原理

1:数据库的主从备份流程图

2:流程讲解

:对于javaer操作数据库而言,我们一般是使用jdbc的,在存在主从的数据库架构中,一般会有Master,Slave服务器,在使用jdbc操作数据库的时候,一般都是对Master服务器进行读写的(少数情况下会读),此时Master会生成一个binlog文件(数据库的二进制日志文件),当有slave服务器连接的时候,Master服务器会启动一个i/o线程主动的向slave服务器推送master_binlog文件,然后slave服务器会新启一个i/o线程来接受Master服务器推送过来的master_binlog,整个过程完成后,会形成ready_binlog文件,以供slave服务器新启的一个sql线程来执行这个ready_binlog文件,从而达到数据同步的目的。

3:数据库同步的三种方式

  3.1:statement (默认)

master服务器每执行一条sql语句都会写入到master_binlog中,单位是sql语句,和jdbc中的statement很像

  3.2:row

将master服务器更改过影响的行数据会写入到master_binlog中

  3.3:mix

是statement和row的混合

4:数据库的备份是基于binlog的。