mysql(4)-主从复制
2017-11-08 17:48
155 查看
本次配置两台数据库服务器主从
192.168.72.133作为主服务器
192.168.72.129作为从服务器
1.如果主服务器出现问题,可以快速切换到从服务器提供服务;
2.可以在从服务器执行查询操作,降低主服务器的压力;
3.可以在服务器上执行备份,以避免备份期间影响主服务器的服务性能。
一般只有更新不频繁的数据或者对实时性要求不高的数据可以通过从服务器查询,实时性要求高的数据仍要从主服务器获取。
grant
2.修改主服务器的配置文件my.cnf,开启binlog,并设置server-id的值。
log-bin=mysql-bin
server-id=1
3.在主服务器上设置读锁定有效,确保没有数据库操作,以便获得一个一致性的快照
flush tables with read lock
4.查看主服务器上当前二进制日志文件名和偏移量值
show master status
5.主服务器停止更新操作,生成主数据库的备份
6.数据库备份完毕之后,主数据库可以恢复写操作,剩下的操作只需要在从服务器上执行
unlock tables
7.把主数据库的一致性备份恢复到从数据库上,把备份的压缩包解压到相应的目录即可。
log-bin=mysql-bin开启binlog日志
server-id=1
这里还有很多的配置,如同步哪些数据等。
主服务授权从服务的用户user1(具体操作详见mysql(1)-用户授权文章)
192.168.72.129从服务
配置
log-bin=mysql-bin开启binlog日志
server-id=2每个服务独立
master-host为主服务器的ip
master-user为主服务器授权用户
master-password为主服务器授权用户的登录密码
master-port为主服务器端口号
配置完成后,重启两个mysql服务器。
show slave status\G
查看从服务器的状态
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
表示配置成功
Connect_Retry:60表示每60秒会从133服务器同步一次log日志
主服务器创建hadoop1_test1表,插入一条数据:
从服务器查看数据表,hadoop1_test1已经创建:
从服务器查看数据表数据,数据也已经同步:
主服务器刷新binlog日志,最新的日志为mysql-bin.000007
从服务器同步的binlog日志信息也会变更为mysql-bin.000007
但是从服务器自己生成的binlog日志不一定和主服务器的一致,如此处从服务器自己的binlog日志为mysql-relay-bin.000012
上面是从服务器是通过配置文件的形式进行设置的,也可以动态的去设置这些配置:
mysql>stop slave;
mysql>change master to master_host = ‘192.168.72.133’,
master_user = ‘user1’,
master_password = ‘1234’,
master_port = 3306,
master_log_file = ‘mysql-bin.000001’,
master_log_pos = 120;
mysql>start slave;
mysql>show slave status;
这样导致查看状态的时候出现问题,于是去修改/etc/my.cnf为正确的ip地址,然后重启mysql服务,查看状态,仍然显示错误的ip。当时以为是缓存问题,甚至重启了服务器,仍然无效。后来查了一些资料,发现之前的操作都不对,mysql提供了修改配置的命令:
最后搭建成功
失败乃成功之母
192.168.72.133作为主服务器
192.168.72.129作为从服务器
1.说明
mysql复制的有点包括3各方面:1.如果主服务器出现问题,可以快速切换到从服务器提供服务;
2.可以在从服务器执行查询操作,降低主服务器的压力;
3.可以在服务器上执行备份,以避免备份期间影响主服务器的服务性能。
一般只有更新不频繁的数据或者对实时性要求不高的数据可以通过从服务器查询,实时性要求高的数据仍要从主服务器获取。
2.主服务配置
1.给从服务器设置授权用户grant
2.修改主服务器的配置文件my.cnf,开启binlog,并设置server-id的值。
log-bin=mysql-bin
server-id=1
3.在主服务器上设置读锁定有效,确保没有数据库操作,以便获得一个一致性的快照
flush tables with read lock
4.查看主服务器上当前二进制日志文件名和偏移量值
show master status
5.主服务器停止更新操作,生成主数据库的备份
6.数据库备份完毕之后,主数据库可以恢复写操作,剩下的操作只需要在从服务器上执行
unlock tables
7.把主数据库的一致性备份恢复到从数据库上,把备份的压缩包解压到相应的目录即可。
3.从服务器配置
修改数据库的server-id,server-id的值必须是唯一的不能和主服务器的配置相同,如果有多个从服务器,每个从服务器必须有自己的server-id值。4.主从配置
192.168.72.133主服务/etc/my.cnf文件添加log-bin=mysql-bin开启binlog日志
server-id=1
这里还有很多的配置,如同步哪些数据等。
主服务授权从服务的用户user1(具体操作详见mysql(1)-用户授权文章)
192.168.72.129从服务
配置
log-bin=mysql-bin开启binlog日志
server-id=2每个服务独立
master-host为主服务器的ip
master-user为主服务器授权用户
master-password为主服务器授权用户的登录密码
master-port为主服务器端口号
配置完成后,重启两个mysql服务器。
5.主从演示
从服务器操作show slave status\G
查看从服务器的状态
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
表示配置成功
Connect_Retry:60表示每60秒会从133服务器同步一次log日志
主服务器创建hadoop1_test1表,插入一条数据:
从服务器查看数据表,hadoop1_test1已经创建:
从服务器查看数据表数据,数据也已经同步:
主服务器刷新binlog日志,最新的日志为mysql-bin.000007
从服务器同步的binlog日志信息也会变更为mysql-bin.000007
但是从服务器自己生成的binlog日志不一定和主服务器的一致,如此处从服务器自己的binlog日志为mysql-relay-bin.000012
上面是从服务器是通过配置文件的形式进行设置的,也可以动态的去设置这些配置:
mysql>stop slave;
mysql>change master to master_host = ‘192.168.72.133’,
master_user = ‘user1’,
master_password = ‘1234’,
master_port = 3306,
master_log_file = ‘mysql-bin.000001’,
master_log_pos = 120;
mysql>start slave;
mysql>show slave status;
6.注意问题
笔者曾经遇到一个问题,在配置从服务器配置文件的时候配置的不对,如:将192.168.72.133配置成了192.168.72.129。这样导致查看状态的时候出现问题,于是去修改/etc/my.cnf为正确的ip地址,然后重启mysql服务,查看状态,仍然显示错误的ip。当时以为是缓存问题,甚至重启了服务器,仍然无效。后来查了一些资料,发现之前的操作都不对,mysql提供了修改配置的命令:
最后搭建成功
失败乃成功之母
相关文章推荐
- MySQL主从复制与读写分离
- MySQL 用户授权和bin-log日志和主从复制、读写分离(1)
- Mysql主从复制
- mysql 主从复制配置
- Mysql主从复制的一般步骤整理说明(异步复制)
- Mysql主从复制原理与实践
- atlas+mysql实现主从复制和读写分离(一)
- Mysql之主从复制原理
- mysql快速部署主从复制
- 【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构
- mysql的主从复制
- linux下mysql主从复制搭建过程
- mysql主从复制原理,深入探讨
- amoeba实现mysql读写分离+主从复制架构
- 利用Amoeba实现MySQL主从复制和读写分离
- MySQL 主从复制与读写分离概念及架构分析
- 使用spring实现读写分离(mysql主从复制)四-优化改进切面实现,使用事务策略规则匹配
- web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份
- mysql 主从复制配置
- mysql备忘笔记一(主从复制)