mysql延时几秒_mysql 延时从库

延时从库

普通的主从复制可能存在不足

1)逻辑损坏怎么办?

2)不能保证主库的操作,从库一定能做

3)高可用?自动failover?

4)过滤复制

企业中一般会延时3-6小时

延时从库配置方法

#停止主从

mysql>stop slave;

#设置延时为180秒

mysql>CHANGE MASTER TO MASTER_DELAY = 180;

#开启主从

mysql>start slave;

#查看状态

mysql> show slave status \G

SQL_Delay: 60

3.延时从库停止方法

#停止主从

mysql> stop slave;

#设置延时为0

mysql> CHANGE MASTER TO MASTER_DELAY = 0;

#开启主从

mysql> start slave;

延时从库恢复数据案例

0.思考

#延时从库到底在哪里延时的?

当配置了延时从库,延时从库是在sql线程进行的延时,主库执行完sql语句,

IO线程已经将binlog拿到了从库的relay-log,只不过sql线程没有执行,需要等待设置的延时时间归0后执行语句

1.场景

总数据量级500G,正常备份去恢复需要1.5-2小时

1.配置延时3600秒

mysql> CHANGE MASTER TO MASTER_DELAY = 3600;

2.主库

drop database db;

3.怎么利用延时从库,恢复数据?

提示:

1.从库relaylog存放在datadir目录下

2.mysqlbinlog 可以截取relaylog内容

3.show relaylog events in 'db01-relay-bin.000001';

2.环境准备

1.日常备份

[root@db01 ~]# mysqldump -uroot -p123 -A -R --triggers --single-transaction --master-data=2 > /tmp/full$(date +%F).sql

2.设置延时从库

mysql> stop slave;

mysql> change master to master_delay=3600;

mysql> start slave;

3.插入新数据

mysql> use master;

mysql> insert test values(100),(200);

3.模拟删除数据库

mysql> drop database master;

4.使用延时从库恢复数据

1.停止从库的sql线程

mysql> stop slave sql_thread;

2.查看状态

mysql> show slave status\G

Slave_IO_Running: Yes

Slave_SQL_Running: No

3.导出从库相应的库

[root@db02 ~]# mysqldump -uroot -p123 -B master > /tmp/master.sql

4.截取relay-log位置点

1)确认起始位置点

[root@db02 ~]# cat /usr/local/mysql/data/relay-log.info

./db02-relay-bin.000002

283

2)确认结束位置点

[root@db02 ~]# mysqlbinlog /usr/local/mysql/data/db02-relay-bin.000002

COMMIT/*!*/;

# at 504

3)截取数据

[root@db02 ~]# mysqlbinlog --start-position=283 --stop-position=504 /usr/local/mysql/data/db02-relay-bin.000002 > /tmp/huifu.sql

5.将sql文件推送至主库

[root@db02 ~]# scp /tmp/master.sql 172.16.1.51:/tmp

[root@db02 ~]# scp /tmp/huifu.sql 172.16.1.51:/tmp

6.恢复数据到主库

mysql> source /tmp/master.sql;

mysql> source /tmp/huifu.sql;

7.查看主库数据是否恢复

8.开启从库的sql线程

mysql> start slave sql_thread;

#注意,有时为了数据准确在主库恢复数据时我们会关闭binlog,要是使用延时从库恢复数据,主库千万不要关闭binlog

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值