mysql point in time recovery using sql_thread SQL_Thread增量恢复binlog 要点

一、mysql point in time  recovery  using sql_thread   SQL_Thread增量恢复binlog,网上有很多类似文章,这里把我实验的要点记录下来:

二、

   1)重新初始化一个实例, 恢复全量备份文件。
    2)找到第一个binlog文件的position,和剩下所有的binlog。
    3)将binlog伪装成relaylog,通过sql thread增量恢复。

三、将relay log info的repository改到file中,并生成这个文件。


  1. SET GLOBAL relay_log_info_repository='FILE';

  2. CHANGE MASTER TO master_host='1';
    并且通过该步骤,生成 relay.info 文件。

  3. 假如不想生成relay_log.info文件可以使用如下语句:

  CHANGE MASTER TO RELAY_LOG_FILE='mysql-relay-bin.000001',   RELAY_LOG_POS=1, MASTER_HOST='dummy';
四、关闭实例,将需要增量的binlog文件伪装成relaylog。

[root@mysql1 mysql]# for i in $(ls /tmp/binlogs/*.0*)
do  
  ext=$(echo $i | cut -d'.' -f2);
 cp $i mysql-relay-bin.$ext;
done

chown mysql:mysql -R .


五、修改relay.info文件和relay-log.index文件


   如果没有生成relay_log.info文件,本步骤可以忽略

  1. 将relay.info的第二三行改成需要执行的第一个binlog(现在是relaylog)的文件名和position:


  1. /data/mysql57/relaylog/mysql - relay . 000003

  2. 1276895

第二三行对应Relay_log_name和Relay_log_pos,等同于:
mysqlbinlog mysql-relay.000003 --start-position=1276895 | mysql -u -p -S
修改该文件是为了告诉SQL_Thread从哪一个文件和哪一个position开 始执行事务

再修改relay-log.index,清空原有信息,添加以下信息,为的是告诉SQL_Thread还有哪些 relaylog是需要执行的。


  1. /data/mysql57/relaylog/mysql-relay.000003

  2. /data/mysql57/relaylog/mysql-relay.000004

  3. /data/mysql57/relaylog/mysql-relay.000005

  4. /data/mysql57/relaylog/mysql-relay.000006

  5. /data/mysql57/relaylog/mysql-relay.000007

  6. /data/mysql57/relaylog/mysql-relay.000008

  7. /data/mysql57/relaylog/mysql-relay.000009

  8. /data/mysql57/relaylog/mysql-relay.000010


六、 启动实例,开启SQL_Thread:


  1. START SLAVE  sql_thread ;

只需要开启SQL_Thread即可

mysql> CHANGE MASTER TO RELAY_LOG_FILE='mysql1-relay-bin.000001', 
       RELAY_LOG_POS=1, MASTER_HOST='dummy';
mysql> set global slave_parallel_type='LOGICAL_CLOCK';
mysql> SET GLOBAL SLAVE_PARALLEL_WORKERS=8;
mysql> START SLAVE SQL_THREAD UNTIL 
       SQL_BEFORE_GTIDS = '7766037d-4d1e-11e7-8a51-08002718d305:25076';


该测试使用的版本为 :MySQL 5.7.22
如果没有使用gtid模式,请使用如下语句:将START SLAVE sql_thread后添加一个  UNTIL RELAY_LOG_FILE = 'log_name', RELAY_LOG_POS = log_pos 即可。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30393770/viewspace-2168905/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30393770/viewspace-2168905/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值