mysql主从同步注意事项
Posted lonuve
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql主从同步注意事项相关的知识,希望对你有一定的参考价值。
master配置
slave配置
主从实现过程:
mysql同步功能由3个线程(master上1个,slave上2个)来实现
1:slave创建一个IO_THREAD连接到master,请求master发送二进制日志
2:master创建Binlog Dump线程(可以通过SHOW PROCESSLIST查看线程)发送日志内容到slave的IO_THREAD
3:slave上IO_THREAD读取master的Binlog Dump线程发送的语句,存储在中继日志(relay logs)中
4:slave上启动SQL_THREAD,读取中继日志,执行SQL完成数据同步。
注意:
1.在MySQL4.0.2以前,同步只需2个线程(master和slave各一个),即slave不使用中继日志
2.如果有多个slave,master需要为每个slave连接都创建一个线程,而每个slave始终只有2个线程
=============================================================================================
注意事项:
1:主从mysql版本要一致
2:启用同步前,要保证主从数据一致
3:把master上的数据拷贝过来的方法之一实在slave上执行如下命令
mysql>LOAD DATA FROM MASTER
LOAD DATA FROM MASTER命令的一些限制:
A.MySQL版本>=4.0.0
B.仅支持MyISAM类型表
C.slave用户必须有SUPER权限
D.master复制用户必须具备RELOAD和SUPER权限
E.LOAD数据时,将在master上将使用全局读锁
F.建议数据比较少或者master允许长时间读锁时才使用
4:双机互备则是两个mysql同时配置为master及slave
5:为了防止binlog日志撑爆服务器,建议配置binlog过期自动删除
使用命令配置
mysql>set global expire_logs_days=8;
使用配置文件my.cnf
expire_logs_days=8
查看配置结果
mysql>show variables like ‘expire_logs_days‘;
=============================================================================================
主服务器上的相关命令:
mysql>show master status\G
mysql>show master status;
mysql>show slave hosts;
mysql>show logs;
mysql>show binlog events;
mysql>show binary logs;
mysql>purge logs to ‘log_name‘;
mysql>purge logs before ‘date‘;
mysql>reset master; //老版本为 flush master
mysql>set sql_log_bin=/xxx;
从服务器上的相关命令:
mysql>slave start;
mysql>slave stop;
mysql>SLAVE STOP IO_THREAD; //此线程把master段的日志写到本地
mysql>SLAVE start IO_THREAD;
mysql>SLAVE STOP SQL_THREAD; //此线程把写到本地的日志应用于数据库
mysql>SLAVE start SQL_THREAD;
mysql>reset slave;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER;
mysql>load data from master;
mysql>show slave status; //SUPER,REPLICATION CLIENT
mysql>CHANGE MASTER TO MASTER_HOST=127.0.0.1, MASTER_PORT=3306,MASTER_USER=user, MASTER_PASSWORD=pwd; //动态改变master信息
mysql>PURGE MASTER [before ‘date‘]; 删除master端已同步过的日志
mysql>purge binary logs to ‘ablelee.000003‘; //删除ablelee.000003之前的binlog,不包含ablelee.000003
mysql>PURGE MASTER LOGS TO ‘mysql-bin.010‘;
mysql>PURGE MASTER LOGS BEFORE ‘2008-06-22 13:00:00‘;
PURGE命令语法
PURGE MASTER | BINARY LOGS TO ‘log_name‘
PURGE MASTER | BINARY LOGS BEFORE ‘date‘
以上是关于mysql主从同步注意事项的主要内容,如果未能解决你的问题,请参考以下文章