码迷,mamicode.com
首页 > 数据库 > 详细

mysql主从同步注意事项

时间:2019-06-13 13:47:14      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:data   lis   pass   上启   change   cli   ast   完成   before   

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主从同步注意事项

标签:data   lis   pass   上启   change   cli   ast   完成   before   

原文地址:https://www.cnblogs.com/lonuve/p/11015851.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!