MySQL的半同步复制和延时复制
来源:互联网 发布:易语言qq登陆器源码 编辑:程序博客网 时间:2024/06/05 07:01
半同步复制
一、半同步复制的原理
1、当Slave主机连接到Master时,能够查看其是否处于半同步复制的机制。
2、当Master上开启半同步复制的功能时,至少应该有一个Slave开启其功能。此时,一个线程在Master上提交事务将受到阻塞,直到得知一个已开启半同步复制功能的Slave已收到此事务的所有事件,或等待超时。
3、当一个事务的事件都已写入其relay-log中且已刷新到磁盘上,Slave才会告知已收到。
4、如果等待超时,也就是Master没被告知已收到,此时Master会自动转换为异步复制的机制。当至少一个半同步的Slave赶上了,Master与其Slave自动转换为半同步复制的机制。
5、半同步复制的功能要在Master,Slave都开启,半同步复制才会起作用;否则,只开启一边,它依然为异步复制。
二、同步,异步,半同步复制的对比
同步复制:Master提交事务,直到事务在所有的Slave都已提交,此时才会返回客户端,事务执行完毕。缺点:完成一个事务可能会有很大的延迟。
异步复制:当Slave准备好才会向Master请求binlog。缺点:不能保证一些事件都能够被所有的Slave所接收。
半同步复制:半同步复制工作的机制处于同步和异步之间,Master的事务提交阻塞,只要一个Slave已收到该事务的事件且已记录。它不会等待所有的Slave都告知已收到,且它只是接收,并不用等其完全执行且提交。
三、安装
1、在MySQL上安装插件需要数据库支持动态载入。检查是否支持命令如下:
mysql> show global variables like 'have_dynamic_loading';
2、Plugin目录
mysql> show global variables like 'plugin_dir';
3、在Master上执行
mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';mysql> set global rpl_semi_sync_master_enabled = 1;mysql> set global rpl_semi_sync_master_timeout = N;
4、在各个 Slave 上执行
mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';mysql> set global rpl_semi_sync_slave_enabled = 1;mysql> stop slave io_thread;mysql> start slave io_thread;
5、检查Plugin是否已正确安装
mysql> show plugins;或者mysql> select * from information_schema.plugins
备注:
rpl_semi_sync_master_enabled 控制Master是否开启半同步,开启或不开启,将其设置为ON或OFF(1 or 0)。rpl_semi_sync_master_timeout 控制Master等待多长时间被告知Slave已收到,也就是所谓的超时时间,单位是毫秒。rpl_semi_sync_slave_enabled 控制Slave是否开启半同步,开启或不开启,将其设置为ON或OFF(1 or 0)。
6、将变量写入配置文件:
Master上[mysqld]rpl_semi_sync_master_enabled = 1rpl_semi_sync_master_timeout = 1000 # 1sSlave上[mysqld]rpl_semi_sync_slave_enabled = 1
延时复制
1、应用场景
①误删除恢复②延迟测试③历史查询
2、在 Slave 上执行:
mysql> stop slave;mysql> change master to master_delay = N;mysql> start slave;
备注:N 的单位是秒
- MySQL的半同步复制和延时复制
- MySQL Replication同步复制的延时监控
- MySQL的异步复制和半同步复制
- MySQL的主从复制,半同步复制
- Mysql的半同步复制
- MySQL的半同步复制
- MySQL数据的主从复制、半同步复制和主主复制详解
- MySQL数据的主从复制、半同步复制和主主复制详解
- MySQL数据的主从复制、半同步复制和主主复制详解
- MySQL数据的主从复制、半同步复制和主主复制详解
- MySQL数据的主从复制、半同步复制和主主复制详解
- MySQL数据的主从复制、半同步复制和主主复制详解-转
- MySQL数据的主从复制、半同步复制和主主复制详解
- MySQL数据的主从复制、半同步复制和主主复制详解
- MySQL数据的主从复制、半同步复制和主主复制详解
- MySQL数据的主从复制、半同步复制和主主复制详解
- MySQL数据的主从复制、半同步复制和主主复制详解
- MySQL数据的主从复制、半同步复制和主主复制详解
- 100G及以上超高速光通信系统关键技术浅析
- 计算机编程语言分类
- 理解CSV格式规范(解析CSV必备)
- FastDFS的作者介绍的防盗链 使用FastDFS的内置防盗链功能
- java JButton数组 scriptengine解析表达式
- MySQL的半同步复制和延时复制
- mongo抛出异常:com.mongodb.MongoException: Lock not granted. Try restarting the transaction 解决方式
- 大数据架构中使用JSON-RPC好,还是RESTful API好?
- Shrio的域-————Realm,安全数据的保存地方。
- Retrofit单例封装工具类
- Android常见异常处理
- HDU-2015(偶数求和)
- 前端框架angular学习笔记(三)
- python split()