MySQL主从之延时复制

MySQL主从之延时复制 一、延时复制 延时从库只做备份,不提供任何对外服务,正常情况下我们是不会有刻意延迟从库的需求的,因为正常的线上业务自然是延迟越低越好。 但是针对测试场景,业务上偶尔需要测试延迟场景下业务是否…

	MySQL主从之延时复制[数据库教程]

目录
  • 一、延时复制
    • 1.配置延时复制(已经有主从)
    • 2.配置延时复制(没有主从)
    • 3.关闭延时从库
    • 实例

一、延时复制

延时从库只做备份,不提供任何对外服务,正常情况下我们是不会有刻意延迟从库的需求的,因为正常的线上业务自然是延迟越低越好。
但是针对测试场景,业务上偶尔需要测试延迟场景下业务是否能正常运行。

# 延时复制流程:
和异步复制类似,同样是将主库的binlog日志通过dump线程发送给从库的中继日志中,但是当执行SQL的线程时,
会根据配置的延时复制时长,sql线程等到了延迟时间之后再执行中继日志中的sql语句了。

# 注意:
延时从库恢复数据时不要关闭主库的binlog,实际上从库还是会执行主库执行错的语句,只不过又执行了重建语句

代码100分

1.配置延时复制(已经有主从)

代码100分1.停止主从
mysql> stop slave;
Query OK, 0 rows affected (0.03 sec)

2.配置延时时间
mysql> change master to master_delay=180;
Query OK, 0 rows affected (0.01 sec)

3.开启主从
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

2.配置延时复制(没有主从)

1.搭建出一台mysql
2.配置主从
mysql> change master to
    -> master_host=‘172.16.1.51‘,
    -> master_user=‘rep‘,
    -> master_password=‘123‘,
    -> master_log_file=‘mysql-bin.000001‘,
    -> master_log_pos=424,
    -> master_delay=180;
Query OK, 0 rows affected, 2 warnings (0.02 sec)
3.开启线程
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

3.关闭延时从库

代码100分mysql> stop slave;
Query OK, 0 rows affected (0.01 sec)

mysql> change master to master_delay=0;
Query OK, 0 rows affected (0.01 sec)

mysql> start slave;
Query OK, 0 rows affected (0.02 sec)

实例

#关于延时复制如何恢复思考问题:
总数据量级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 relay log events in ‘db01-relay-bin.000001‘;


#处理的思路:
1)停止SQL线程
mysql> stop slave sql_thread;

2)截取relaylog到误删除之前点
relay-log.info 获取到上次运行到的位置点,作为恢复起点
分析relay-log的文件内容,获取到误删除之前position
模拟故障处:

1)关闭延时
mysql -S /data/3308/mysql.sock
mysql> stop slave;
mysql> CHANGE MASTER TO MASTER_DELAY = 0;
mysql> start slave;

2)模拟数据
mysql -S /data/3307/mysql.sock
source  /root/world.sql
use world;
create table c1 select * from city;
create table c2 select * from city;

3)开启从库延时5分钟
mysql -S /data/3308/mysql.sock
show slave status G
mysql>stop slave;
mysql>CHANGE MASTER TO MASTER_DELAY = 300;
mysql>start slave;
mysql -S /data/3307/mysql.sock
use world;
create table c3 select * from city;
create table c4 select * from city;

4)破坏,模拟删库故障。(以下步骤在5分钟内操作完成。)
mysql -S /data/3307/mysql.sock
drop database world;

5)从库,关闭SQL线程
mysql -S /data/3308/mysql.sock
stop slave sql_thread;

6)截取relay-log
起点:
cd /data/3308/data/
cat relay-log.info
./db01-relay-bin.000002
283
终点:
mysql -S /data/3308/mysql.sock
show relaylog events in ‘db01-relay-bin.000002‘
db01-relay-bin.000002 | 268047 
mysqlbinlog --start-position=283  --stop-position=268047 /data/3308/data/db01-relay-bin.000002 >/tmp/relay.sql 
恢复relay.sql

1)取消从库身份
mysql> stop slave;
mysql> reset slave all;

2)恢复数据
mysql> set sql_log_bin=0;
mysql> source /tmp/relay.sql
mysql> use world
mysql> show tables;

MySQL主从之延时复制

原文地址:https://www.cnblogs.com/tcy1/p/13377994.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7085.html

(0)
上一篇 2023-03-27 15:30
下一篇 2023-03-27

相关推荐

  • 今日头条在消息服务平台和容灾体系建设方面的实践与思考

    今日头条在消息服务平台和容灾体系建设方面的实践与思考本篇文章整理自今日头条的沈辉在 RocketMQ 开发者沙龙中的演讲,主要和大家分享一下,RocketMQ 在微服务架构下的实践和容灾体系建设。沈辉是今日头条的架构师,主要负责 RocketMQ 在…

    2022-12-18
    137
  • mysql 设置用户密码过期策略是什么_设置强制修改密码策略

    mysql 设置用户密码过期策略是什么_设置强制修改密码策略#全局设定mysql>SETGLOBALdefault_password_lifetime=90;单个用户设定为每个具体的用户账户单独设置特定的值ALTERUSER‘test’@‘localhost…

    2023-03-26
    142
  • Python Assert:优化代码调试与测试

    Python Assert:优化代码调试与测试Python Assert是Python中的一种断言语句,用于在代码中进行自动化测试。通过在代码中插入assert语句,可以对代码做出各种前置条件的检查,以确保代码的正确性。当assert语句的条件返回False时,程序将会中止并抛出异常,以提醒开发人员代码存在问题。

    2024-03-15
    69
  • 利用Python urlopen实现网页爬取

    利用Python urlopen实现网页爬取越来越多的人们开始了解和使用网络爬虫。Python 作为一门优秀的编程语言,其对于网络爬虫的支持也格外强大。在Python中,可以使用很多工具和库来实现网络爬虫,其中之一就是Python标准库中的urllib。

    2024-05-13
    60
  • 有关条形码打印太浅或太深的原因及解决方法[通俗易懂]

    有关条形码打印太浅或太深的原因及解决方法[通俗易懂]近来有客户咨询,在条码生成软件生成条形码之后,连接打印机进行打印的时候,打印出来的条形码不是太深就是太浅,咨询这是怎么回事,该怎么解决?首先这里跟大家说下,出现这种情况,跟条码生成软件没有关系,你可…

    2023-04-04
    180
  • Python字典遍历

    Python字典遍历Python是一种解释型、面向对象、动态数据类型的高级编程语言,与其他编程语言相比,Python的优势在于语法简洁、易读易写。Python内建了字典(Dictionary)数据类型,字典是一种可变的键值对集合,每个键与其相应值之间是一一对应的关系。

    2024-04-14
    73
  • sql注入相关知识整理图片_sql注入入门

    sql注入相关知识整理图片_sql注入入门 SQL注入相关知识整理 SQL注入 什么是SQL注入 SQL注入(Sql Injection ) 是一种将SQL语句插入或添加到应用(用户)的输入参数中的攻击 这些参数传递给后台的SQL数据…

    2023-03-22
    144
  • Oracle重命名sys或system操作记录[通俗易懂]

    Oracle重命名sys或system操作记录[通俗易懂]oracle等保中有条要求:应重命名或删除默认账户,修改默认账户的默认口令。给的建议是修改sys,system默认账户名称,避免使用常见用户名称;以下记录了两种方法来实现上面的要求:Oracle重命…

    2023-04-05
    155

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注