mysql的高可用相关内容

31 阅读2分钟

mysql的高可用相关内容

主从复制

节点说明

  • 主节点

    • Binary Log 线程。负责将主服务器上的数据更改写入二进制日志中
  • 从节点

    • I/O 线程。负责连接主服务器,并读取主服务器发送过来的二进制日志,然后写入从服务器的中继日志中
    • SQL 线程。负责读取中继日志并重放其中的 SQL 语句

主从复制类型

  • STATEMENT
    • 基于语句的复制。在服务器上执行sql语句,在从服务器上执行同样的语句,mysql默认采用基于语句的复制,执行效率高
  • ROW
    • 基于行的复制。把改变的内容复制过去,而不是把命令在从服务器上执行一遍
  • MIXED
    • 混合类型的复制。默认采用基于语句的复制,一旦发现基于语句无法精确复制时,就会采用基于行的复制

读写分离

为什么要读写分离

  • 主从服务器负责各自的读和写,极大程度缓解了锁的争用
  • 从服务器可以使用 MyISAM,提升查询性能以及节约系统开销
  • 增加冗余,提高可用性

原理

  • 让主数据库处理事务性增、删、改操作(INSERT、DELETE、UPDATE),让主数据库处理事务性操作
  • 从数据库处理SELECT查询操作

读写分离方案

基于程序代码内部实现

代码中根据 select、insert 进行路由分类,这类方法也是目前生产环境应用最广泛的

  • 优点
    • 性能较好,因为在程序代码中实现,不需要增加额外的设备为硬件开支
  • 缺点
    • 需要开发人员来实现,运维人员无从下手

基于中间代理层实现

  • 代理一般位于客户端和服务器之间,代理服务器接到客户端请求后通过判断后转发到后端数据库
  • 常见的中间件
    • MySQL-Proxy
    • Atlas
    • Amoeba