MySQL主从说明详解MySQL主从不同步处理方案
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL主从说明详解MySQL主从不同步处理方案相关的知识,希望对你有一定的参考价值。
mysql主从说明
同步问题
mysqldump:此工具适用于10G以下数据库或几个表
percona-Xtrabackup备份工具:适用于100G-500G
LVM快照:更大的数据量,或分库分表
主从复制目的
- 读写分离,减轻主库负载或数据分析;
- 数据安全,做备份恢复;
- 主从切换,做高可用;
常见主从结构:
一主一从:一个Master,一个Slave
一主多从:一个Master,多个slave
Master节点:负责所有的【写】请求
Slave节点:负责大部分的【读】请求
主从复制步骤
- A数据更新
- A写入Bin Log
- A的io线程与B的io线程传输通信
- B将传输的信息写入Relay Log
- B检查到Relay Log有新内容后执行SQL语句
- B更新数据
MySQL主从数据不同步处理
检查
master库(也就是主服务库)
mysql>show processlist; //查看进程是否sleep太多
mysql>show master status; //查看主服务器的master数据状态
Slave库(从库)
mysql>show slave status\G //查看slave的同步状况,主要是IO与SQL
Slave_IO_Running: Yes
Slave_SQL_Running: No
这两个必须是yes状态,由此可见slave不同步状态
处理方案
方法一:忽略错误,继续同步
适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况;
Slave库修复
mysql>stop slave; //停止同步
mysql>set global sql_slave_skip_counter =1; //跳过一步错误
mysql>start slave; //开启同步
方法二:重做主从,完全同步
适用于主从库数据相差较大,或者要求数据完全统一的情况;
master库设置
mysql>flush tables with read lock; //锁定为只读,防止数据写入
mysqldump -uroot -p‘123456‘ mysql > /tmp/mysql.bak.sql //备份数据到目录
mysql> show master status; //查看master的状态,写同步配置会用到相关数据
scp /tmp/mysql.bak.sql [email protected]:/tmp/ //将mysql的备份文件传到从库机器
Slave库设置
mysql>stop slave; //停止同步
mysql>source /tmp/mysql.bak.sql //使用备份就行恢复数据,也可以使用mysqldump命令
change master to master_host = ‘192.168.128.100‘, master_user = ‘rsync‘, master_port=3306, master_password=‘‘, master_log_file = ‘mysqld-bin.000001‘, master_log_pos=3260; //设置从库同步,其中log_file与log_pos的参数来自于主服务的show master status里
mysql>start slave; //开启从同步
mysql>show slave status\G //查看同步状态
以上是关于MySQL主从说明详解MySQL主从不同步处理方案的主要内容,如果未能解决你的问题,请参考以下文章
MySQL主从(MySQL proxy Lua读写分离设置,一主多从同步配置,分库分表方案)
MySQL主从(MySQL proxy Lua读写分离设置,一主多从同步配置,分库分表方案)