MySQL主从复制认识

  • MySQL主从复制作用
    1)、什么是MySQL主从复制
    MySQL主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个MySQL数据库从节点。MySQL默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库。
    2)、MySQL主从复制作用
    一、数据热备
    作为备数据库,当主数据库服务器发生故障后,可切换到从数据库继续工作,避免数据丢失。
    二、读写分离
    可支持MySQL数据库服务器支持更大的并发。数据读写操作可分配在不同的服务器间进行。如操作报表中尤其重要,由于部分报表SQL语句非常的慢,会导致锁表,影响前台服务。使用主从复制,前台使用master,负责写,报表使用slave,负责读,那么报表SQL将不会造成前台锁表,保证了前台正常运行。
    三、架构扩展
    随着业务量越来越大,I/O访问频率过高,单机可能无法满足。此时做多库的存储,如一主多从方式,以降低磁盘I/O访问,提高单个机器的I/O性能。
  • MySQL主从复制原理
    MySQL数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master节点,数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。
    MySQL主从复制认识
    总结如下:
    1)、master将操作语句记录到binlog日志中,然后授予slave远程连接的权限(master上创建授权的用户,开启binlog二进制日志功能;通常为了数据安全考虑,slave也开启binlog功能)。
    2)、slave开启两个线程:IO线程和SQL线程。IO线程负责读取master的binlog内容到中继日志relay log里;SQL线程负责从relay log日志里读出binlog内容,并更新到slave的数据库里,这样就能保证slave数据和master数据保持一致了。
    3)、Mysql主从复制至少需要两个Mysql服务,当然Mysql服务可以分布在不同的服务器上,也可以在一台服务器上启动多个MySQL服务。
    4)、Mysql主从复制最好确保master和slave服务器上的Mysql版本相同。
  • MySQL主从形式
    常见的主从形式:
    一主一从
    MySQL主从复制认识
    一主两从、一主多从
    MySQL主从复制认识
    联级复制
    MySQL主从复制认识
  • MySQL主从复制操作
    实现MySQL主从复制需要进行的配置:
    主服务器:
    开启二进制日志
    配置唯一的server-id
    获得master二进制日志文件名及位置
    创建一个用于slave和master通信的用户账号
    从服务器:
    配置唯一的server-id
    使用master分配的用户账号读取master二进制日志
    启用slave服务

猜你喜欢

转载自blog.51cto.com/10874766/2468557