mysql的主从复制及半同步复制机制剖析
2012-04-15 12:47
417 查看
mysql主从复制攻略
我们以两台两台服务器为例,一个设置为主服务器master,另一个设置为从服务器slave,两台服务器的mysql服务可以正常启动。
在master中,启用二进制日志,server-id=1,一般都已经默认了。在slave中,就可以把server-id=7只要不是1就ok了,如果一样,就会产生混乱,这是确定主从关系的,不过为了以后可能增加多台slave,留点空间,可以是11,22等,呵呵!
如果你想让其作为中间代理,则可以启动二进制日志,否则还是关了吧!但是有一项是必须要启动的,那就是relay-log。在配置文件中添加这两项:
relay-log=relay-bin
relay-log.index=relay-bin.index
然后, 就可以在master中给定一个从服务器来访问的权限了,命令如下:
mysql> grant replication slave ,replication client on *.* to repl@'172.16.%.% identified by 'password';
给予一个网段的主机,用户名是repl,在172.26网段上,可以复制数据,但是必须以某个用户并有密码才能复制。
flush privileges
show grant for repl@‘172.16.%.%';
可以查看信息
然后重启从服务器:service mysqld restart,可以查看
在从服务器中,进入mysql
然后在mysql中添加以下内容:
mysql> CHANGE MASTER TO MASTER_HOST='172.16.20.1', MASTER_USER='REPL', MASTER_PASSWRD='123'(此为例子)
mysql> start slave; 启动从服务器
show slave status\G 查看从服务器的功能属性
如果此两行:Slave_IO_Running: Yes
Slave_SOL_Running: Yes
则表示主从服务正常启动,可以在主服务器中更新数据,在从服务器中查看验证了。
mysql的半同步策略
mysql的半同步是google贡献出的一个插件,其作用是,在主从之间,网络传输可靠,可以让主服务器的数据同步到从服务器上,即为同步传输,如果在一定的时间内,没有响应,则又变成异步传输。那么怎样设置半同步呢?
首先,我们要在主从服务器上安装相应的插件,这个模块在高级版本中已经附带好了,在mysql安装路径下的lib/plugin/下,安装步骤如下:
在主服务器上:
mysql> install plugin rpl_semi_sync_master SONAME'semisync_slave.so';
mysql> show plugins;
启用并设置变量值:
mysql> set global rpl_semi_sync_master_enabled=1;
mysql> set global rpl_semi_sync_master_timeout=1000;
在从服务器上:
mysql> install plugin rpl_semi_sync_slave SONAME'semisync_slave.so';
mysql> show plugins; 可以查看模块是否装载完成。
mysql> set global rpl_semi_sync_slave_enabled=1;
重启从服务器进程:
mysql> stop slave;
mysql> start slave;
然后使用命令:
show status like 'rpl_%';
查看服务器状态是否正常开启半同步服务。
之后就可以测试了,对了,在mysql下的设置是不会永久有效的,若要永久有效,就要写到配置文件中,你懂的,嘿嘿!
另外附属:
在mysql启动的时候,从服务器是会自动启动的,很多时候我们并不想让其自动启动,那该怎么办呢?为什么会自动启动呢?
在mysql/data/路径下,有master.info ,relaylog.info这两个文件的存在,在master.info 文件中是CHANGE MASTER TO 传递的一些参数,在relaylog.info文件中,指定的是当前使用的中继日志及位置,还有主服务器的二进制日志及其位置,这俩个文件尤其重要,所以一般不要去修改它。
之所以会自动启动是因为这两个文件存在,要让其不自动启动,就要在mysql的配置文件中的[mysqld]段中添加这么一行:skip-slave-start=1就ok了!
本文出自 “刘水鹏CTO” 博客,请务必保留此出处http://string.blog.51cto.com/4375751/835021
我们以两台两台服务器为例,一个设置为主服务器master,另一个设置为从服务器slave,两台服务器的mysql服务可以正常启动。
在master中,启用二进制日志,server-id=1,一般都已经默认了。在slave中,就可以把server-id=7只要不是1就ok了,如果一样,就会产生混乱,这是确定主从关系的,不过为了以后可能增加多台slave,留点空间,可以是11,22等,呵呵!
如果你想让其作为中间代理,则可以启动二进制日志,否则还是关了吧!但是有一项是必须要启动的,那就是relay-log。在配置文件中添加这两项:
relay-log=relay-bin
relay-log.index=relay-bin.index
然后, 就可以在master中给定一个从服务器来访问的权限了,命令如下:
mysql> grant replication slave ,replication client on *.* to repl@'172.16.%.% identified by 'password';
给予一个网段的主机,用户名是repl,在172.26网段上,可以复制数据,但是必须以某个用户并有密码才能复制。
flush privileges
show grant for repl@‘172.16.%.%';
可以查看信息
然后重启从服务器:service mysqld restart,可以查看
在从服务器中,进入mysql
然后在mysql中添加以下内容:
mysql> CHANGE MASTER TO MASTER_HOST='172.16.20.1', MASTER_USER='REPL', MASTER_PASSWRD='123'(此为例子)
mysql> start slave; 启动从服务器
show slave status\G 查看从服务器的功能属性
如果此两行:Slave_IO_Running: Yes
Slave_SOL_Running: Yes
则表示主从服务正常启动,可以在主服务器中更新数据,在从服务器中查看验证了。
mysql的半同步策略
mysql的半同步是google贡献出的一个插件,其作用是,在主从之间,网络传输可靠,可以让主服务器的数据同步到从服务器上,即为同步传输,如果在一定的时间内,没有响应,则又变成异步传输。那么怎样设置半同步呢?
首先,我们要在主从服务器上安装相应的插件,这个模块在高级版本中已经附带好了,在mysql安装路径下的lib/plugin/下,安装步骤如下:
在主服务器上:
mysql> install plugin rpl_semi_sync_master SONAME'semisync_slave.so';
mysql> show plugins;
启用并设置变量值:
mysql> set global rpl_semi_sync_master_enabled=1;
mysql> set global rpl_semi_sync_master_timeout=1000;
在从服务器上:
mysql> install plugin rpl_semi_sync_slave SONAME'semisync_slave.so';
mysql> show plugins; 可以查看模块是否装载完成。
mysql> set global rpl_semi_sync_slave_enabled=1;
重启从服务器进程:
mysql> stop slave;
mysql> start slave;
然后使用命令:
show status like 'rpl_%';
查看服务器状态是否正常开启半同步服务。
之后就可以测试了,对了,在mysql下的设置是不会永久有效的,若要永久有效,就要写到配置文件中,你懂的,嘿嘿!
另外附属:
在mysql启动的时候,从服务器是会自动启动的,很多时候我们并不想让其自动启动,那该怎么办呢?为什么会自动启动呢?
在mysql/data/路径下,有master.info ,relaylog.info这两个文件的存在,在master.info 文件中是CHANGE MASTER TO 传递的一些参数,在relaylog.info文件中,指定的是当前使用的中继日志及位置,还有主服务器的二进制日志及其位置,这俩个文件尤其重要,所以一般不要去修改它。
之所以会自动启动是因为这两个文件存在,要让其不自动启动,就要在mysql的配置文件中的[mysqld]段中添加这么一行:skip-slave-start=1就ok了!
本文出自 “刘水鹏CTO” 博客,请务必保留此出处http://string.blog.51cto.com/4375751/835021
相关文章推荐
- mysql/mariadb 主从复制实现数据库同步
- ThinkPHP主从读写分离+MySQL底层配置半自动复制同步
- mysql系列之复制2----主从同步部署
- mysql半同步复制机制
- mysql主从同步复制错误解决一例
- MySQL主从复制----半同步与异步的配置
- mysql主从复制(单向同步)
- 深入解析半同步与异步的MySQL主从复制配置
- mysql并行复制降低主从同步延时的思路与启示
- MySQL数据的主从复制、半同步复制和主主复制详解
- MySQL主从复制--MySQL5.5异步、半同步配置以及复制过滤实现
- Mysql的ssl主从复制+半同步主从复制
- mysql主从复制,半同步,主主复制架构的实现
- mysql主从复制问题之主从两端binlog日志不同步解决方案
- MySQL主从同步复制 for Debian OS
- MySQL 备份和恢复策略四:使用主从复制机制(replication)实现数据库实时备份
- Mysql主从(主从不同步解决办法,常见问题及解决办法,在线对mysql做主从复制)
- rh6上mysql5.6的主从、半同步、GTID多线程、SSL认证主从复制
- centos7下mysql5.6.30配置单机多实例主从半同步复制
- 转:Mysql使用主从复制机制(replication)