mysql 备库重做步骤

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hittata/article/details/46424501


1.登录slave 机器确定slave 状态,确定slave线程停止了:

show slave status\G

show processlist;

确保当前访问流量切换到其他机器;


2.登录master机器,确定其状态(如果master也是前一个机器的salve,还需要确定其状态是否ok ,一层层检查下去)

show slave status\G


3.清理slave机器:

删除数据库:

drop database xxxx;

清理binlog日志:

通过  show master status\G  找到当前binlog位置:

mysql> show master status\G
*************************** 1. row ***************************
            File: binlog.000242
        Position: 320856974
    Binlog_Do_DB: 
Binlog_Ignore_DB: 
1 row in set (0.00 sec)

purge binary logs to binlog.000242;

也可以直接  reset master;



4.导出master 数据:

#导出参数必须要仔细检查,导出数据一般较大,耗时较长,一般采用nohup后台进程执行;

#注意--master-data=2 参数:change master to也是会写到dump文件里面去的,但是这个语句是被注释的状态,需要手动找到复制点;

#不使用--master-data=1 的原因是:数据导出用户和复制用户可能不是同一个用户,手动change master 比较稳妥

#-y 不导出表空间

#-A 导出所有database

#--single-transaction 不会锁表

#--default-character-set 参数要加上

nohup mysqldump -h192.168.1.25  -udb_dump -pdb_dump -P 3306 -y --default-character-set=XXXX --master-data=2 --single-transaction -A > /data/db.sql  &

 

#查看导出文件大小:

 ls -sh

 du -ah

#查看后台进程

jobs


5.在slave上导入数据

先要:

stop slave;

reset slave;

nohup mysql -proot@‘password' --default-character-set=xxx < db.sql &

使用淘宝的开源工具  orzdba 观察插入情况:

  orzdba  -lazy -innodb_rows


6.导入完毕后,binlog 对齐

grep 'CHANGE MASTER TO MASTER_LOG_FILE'  db.sql |more 

-- CHANGE MASTER TO MASTER_LOG_FILE='binlog.000511', MASTER_LOG_POS=306834883;


change master to  master_host='ip', master_user='username', master_password='paswword', master_log_file='binlog.000511', master_log_pos=306834883,  master_port=3306;
start slave;
show slave status\G

观察主从复制情况。













阅读更多

没有更多推荐了,返回首页