上一篇 <<<MySQL如何性能优化面试题完美解答
下一篇 >>>MyCat实现读写分离与动态数据源切换
主从复制是MySQL本身自带的一个功能,不需要额外的第三方软件就可以实现。
可实现:数据备份、故障转移、MySQL集群、高可用、读写分离等功能
主从复制的好处
主从复制实现原理
主从复制的类型
类型 | 说明 |
---|---|
基于SQL语句的复制 【STATEMENT模式(SBR)】 |
在主服务器上执行sql语句,在从服务器上执行同样的语句。 优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能。 缺点是在某些情况下会导致master-slave中的数据不一致(如sleep()函数, last_insert_id(),以及user-defined functions(udf)等会出现问题)。 mysql默认采用基于语句的复制,执行效率高。 |
基于行的复制 【ROW模式(RBR)】 |
把改变的内容复制过去,而不是把命令在从服务器上执行一遍。 缺点是会产生大量的日志,尤其是alter table的时候会让日志暴涨。 |
混合类型的复制 【MIXED模式(MBR)】 |
默认采用基于语句的复制,一旦发现基于语句无法精确复制时,就会采用基于行的复制 |
主从复制的配置
1.主节点
vi /etc/my.cnf 新增以下内容
server_id=177 ###服务器id
log-bin=mysql-bin ###开启日志文件
2.从节点
vi /etc/my.cnf
server_id=178 ###从服务器server_id
log-bin=mysql-bin ###日志文件同步方式
binlog_do_db=test ###同步数据库(貌似没啥用处,建立其他库也会同步)
3.建立关联关系
#参数顺序:主节点IP 用户名 密码 主binLog文件名称 同步的主节点行数,后两个参数可以通过show master status;
change master to master_host='10.211.55.26',master_user='root',master_password='root', master_log_file='mysql-bin.000003',master_log_pos=120;
4.开始同步
start slave
5、从节点同步状态查询:SHOW SLAVE STATUS
推荐阅读:
<<<MyCat实现读写分离与动态数据源切换
<<<分表分库与分区的区别及拆分策略
<<<MyCat的分片查询原理
<<<Sharding-Jdbc实现读写分离
<<<Sharding-Jdbc的分片算法及分表分库
<<<Sharding-Jdbc与MyCat区别