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

相关推荐

  • 使用PyCharm进行代码格式化

    使用PyCharm进行代码格式化随着程序员走向更加注重代码规范化和可读性的时代,代码格式化成了一项非常重要的工作。在这一点上,PyCharm这款Python编辑器为我们提供了一些非常方便易用的功能。在本文中,我将讲解如何使用PyCharm进行代码格式化。无论您所处于何种编码环境,只要使用PyCharm,就能方便地进行代码格式化。

    2024-06-28
    46
  • Python中float的使用方法

    Python中float的使用方法在计算机科学和编程中,浮点数是一种十进制或科学计数法表示的实数,其中小数点位置可以浮动。Python中提供了浮点数数据类型,用于处理实数的计算和问题。

    2024-08-29
    24
  • python绘图进阶(Python编程绘图)

    python绘图进阶(Python编程绘图)泰勒图绘制的核心思想是设计一个只有第一象限的极坐标,并将方差,相关系数进行捆绑,通过转化为极坐标系坐标进行绘制。为了实现泰勒图的绘制,我设计了两个函数:

    2023-11-25
    134
  • QSqlDatabase错误

    QSqlDatabase错误QSqlDatabasePrivate::database: requested database does not belong to the calling thread. (针对多个数据操作连…

    2023-03-11
    175
  • Python创建中心列表

    Python创建中心列表Python是一种简单、易学、功能强大的编程语言,它在数据处理、科学计算、Web开发等领域都有广泛的应用。在Python中,可以通过创建列表来存储一组有序的数据,这使得Python具有处理数据的优秀能力。

    2024-04-21
    73
  • MySQL实战45讲 1,2[通俗易懂]

    MySQL实战45讲 1,2[通俗易懂]MySQL实战45讲 1-2讲总结

    2023-05-27
    146
  • binlog查看原始sql_MySQL binlog

    binlog查看原始sql_MySQL binlog本文关键字:大事务、binlog、Linux 问题 我们并不喜欢 MySQL 中出现大事务(更新很多数据的事务),大事务往往带来很多维护的问题。 我们在维护 MySQL 时,需要关注于是否出现了较大…

    2023-03-19
    191
  • 北京哪里可以开五金材料发票-中国-新闻网「建议收藏」

    北京哪里可以开五金材料发票-中国-新闻网「建议收藏」北京哪里可以开五金材料发票【152 * 9б 28 * 21 б9】陈生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridge,是Andro…

    2023-02-01
    151

发表回复

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