MySql 主从同步复制模式(异步、半同步、全同步)

异步复制(默认)

**
** 主库在执行完客户端提交的事务后会立即将结果返给客户端,并不关心从库是否已经接受处理 客户端体验好

**

全同步复制

**
** 放主库执行完一个事物,会等待–(所有从库)–都执行了该事务才返回给客户端

**

半同步复制

**
** 介于异步和同步之间,主库在执行完客户端提交事务后不是立刻返回给客户端,而是等待–(至少一个)–从库接受到并写到relay log 中才返回给客户端

启动全同步复制模式

查看是否可以动态加载模块 //即做主又做从的主机主从模块都要启动

mysql> show variables like  "have_dynamic_loading";    YES     

主库安装的模块

mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so'; 

从库安装的模块

mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

查看系统库下的表,模块是否安装成功

mysql> 
select plugin_name,plugin_status from information_schema.plugins  where plugin_name like'%semi%';

启用半同步复制模式

查看半同步复制模式是否启用

mysql>  show  variables  like  "rpl_semi_sync_%_enabled";

主库

mysql> set global rpl_semi_sync_master_enabled = 1;

从库

mysql> set global rpl_semi_sync_slave_enabled = 1;

修改配置文件/etc/my.cnf 让安装模块和启用的模式永久生效

主库

plugin-load=rpl_semi_sync_master=semisync_master.so
rpl_semi_sync_master_enabled=1

从库

plugin-load=rpl_semi_sync_slave=semisync_slave.so
rpl_semi_sync_slave_enabled=1

既做主又做从

plugin-load ="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
rpl-semi-sync-master-enabled = 1
rpl-semi-sync-slave-enabled = 1

你可能感兴趣的:(mysql)