mysql主从复制原理介绍

一、mysql主(称master)从(称slave)复制的原理:

      (1).master将数据改变记录到二进制日志(binary log)中,也即是配置文件log-bin指定的文件(这些记录叫做二进制日志事件,binary log events)

      (2).slave将master的binary log events拷贝到它的中继日志(relay log)

      (3).slave重做中继日志中的事件,将改变反映它自己的数据(数据重演)

附简要原理图:

mysql主从复制原理介绍_第1张图片
 

二、mysql主从复制支持的类型:

    (1).基于语句的复制:在主服务器上执行的SQL语句,在从服务器上执行同样的语句.MySQL默认采用基于语句的复制,效率比较高

<div http:="" www.it165.net="" edu="" ebg="" "="" target="_blank" class="keylink" style="border-width: 0px; padding: 0px; margin: 0px; list-style: none; font-size: medium; line-height: normal; font-family: tahoma;">word-spacing: 0px">   (2).基于行的复制:把改变的内容直接复制过去,而不关心到底改变该内容是由哪条语句引发的 . 从mysql5.0开始支持

<div http:="" www.it165.net="" edu="" ebg="" "="" target="_blank" class="keylink" style="border-width: 0px; padding: 0px; margin: 0px; list-style: none; font-size: medium; line-height: normal; font-family: tahoma;">word-spacing: 0px">   (3).混合类型的复制: 默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制.

 

三、主从配置需要注意的地方:

   (1).主DB server和从DB server数据库的版本一致

   (2).主DB server和从DB server数据库数据一致[ 这里就会可以把主的备份在从上还原,也可以直接将主的数据目录拷贝到从的相应数据目录]

   (3).主DB server开启二进制日志,主DB server和从DB server的server_id都必须唯一

 

四、主从配置的简要步骤:

附简要示意图:

mysql主从复制原理介绍_第2张图片
 

1.主DB SERVER上的配置

   (1).安装数据库

   (2).修改数据库配置文件,指明server_id,开启二进制日志(log-bin)

   (3).启动数据库,查看当前是哪个日志,position号是多少

   (4).登陆数据库,授权用户[ip地址为从机IP地址,如果是双向主从,这里的还需要授权本机的IP地址(此时自己的IP地址就是从IP地址)]

   (5).备份数据库[记得加锁和解锁]

   (6).传送备份到从DB server上

   (7).启动数据库

以下步骤,为单向主从搭建成功,想搭建双向主从需要的步骤:

   (1).登陆数据库,指定主DB server的地址,用户,密码等信息[此步仅双向主从时,需要]

   (2).开启同步,查看状态

2.从DB SERVER上的配置

  (1).安装数据库

  (2).修改数据库配置文件,指明server_id[如果是搭建双向主从的话,也要开启二进制日志(log-bin)]

  (3).启动数据库,还原备份

  (4).查看当前是哪个日志,position号是多少[单向主从此步不需要,双向主从需要]

  (5).指定主DB server的地址,用户,密码等信息

  (6).开启同步,查看状态

 

五、单向主从环境[也称 mysql A/B复制]的搭建案例:

1.主DB server和从DB server都安装相应版本的数据库,我的两台DB server都已经安装好(5.6.14版本),都会是双实例,这里就不演示安装,可以参考mysql源码编译安装和mysql多实例配置两篇文章

注:两台机器的的selinux都是disable(永久关闭selinux,请修改/etc/selinux/config,将SELINUX改为disabled),防火墙可以选择关闭,开启的话也行[不行的话,添加防火墙策略]

2.修改主DB server的配置文件(/etc/my.cnf),开启日志功能,设置server_id值,保证唯一[client102为主DB server]





你可能感兴趣的:(mysql主从复制原理介绍)