流程
过程大致如下:
- 从主库找到备份文件,放到从库服务器。
- 恢复数据到从库
- 设置MySQL还原点
- 启动从库开始主从复制
连接数据库
先连接主库
mysql -uroot -p
切换数据库(或者不切换也行)
use yourdatabase;
停止主从复制
代码语言:javascript复制stop slave;
reset slave all;
设置写入缓存大小。提高mysql导入速度。(和磁盘IO差不多就行)
set global bulk_insert_buffer_size=128*1024*1024;
恢复数据 (根据自己的备份方式恢复)
source /bakfile
找到mysql binlog 备份点 (在linux 下面执行,其他操作系统同理)
代码语言:javascript复制less /bakfile
找到
代码语言:javascript复制-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-190.000640', MASTER_LOG_POS=120;
/*获取时间binlog文件名和pos*/
注意,实际可能并不需要这样,直接在主库执行:
show master status
取得了bin-log和pos后直接修改从库,pos其实可以为0,会自动follow。
修改从库同步位置
代码语言:javascript复制CHANGE MASTER TO
MASTER_HOST='10.251.192.18',
MASTER_USER='sync',
MASTER_PASSWORD='DBect98773!_sync',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin-190.000640',
MASTER_LOG_POS=120;
修改缓存。启动复制
代码语言:javascript复制set global bulk_insert_buffer_size=8*1024*1024;
start slave ;
查看主从同步状态
show slave status G;
如果有问题。查看mysql 错误日志。
同步开始后可能会有少量的冲突出现 ,使用下面语句可以跳过一个事务并查看同步状态
代码语言:javascript复制stop slave;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 ;
start slave ;
show slave status G;