我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL主从之延时复制

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL主从之延时复制


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

目录

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

一、延时复制

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

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

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

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

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.关闭延时从库

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL主从之延时复制

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL主从之延时复制

目录一、延时复制1.配置延时复制(已经有主从)2.配置延时复制(没有主从)3.关闭延时从库实例一、延时复制延时从库只做备份,不提供任何对外服务,正常情况下我们是不会有刻意延迟从库的需求的,因为正常的线上业务自然是延迟越低越好。但是针对测试场景,业务上偶尔需要测
MySQL主从之延时复制
2014-07-14

mysql主从复制延迟原因

造成 mysql 主从复制延迟的原因包括:网络问题、硬件限制、重复事件、慢查询、并发冲突、特定数据库引擎限制、日志文件大小、临时表、lock_timeout 变量和并行复制滞后。MySQL 主从复制延迟的原因MySQL 主从复制是指一个
mysql主从复制延迟原因
2024-08-01

Mysql主从复制之安装

此次搭的环境是Redhat7+Mysql8.0(搭建单机步骤翻前面的博文) 主从配置的简要步骤 Master 上的配置 安装数据库; 修改数据库配置文件, 指明 server_id, 开启二进制日志(log-bin); 启动数据库, 查看当前是哪个日志, po
Mysql主从复制之安装
2016-11-15

Docker实战之MySQL主从复制

前言曾几何时,看着高大上的架构和各位前辈高超的炫技,有没有怦然心动,也想一窥究竟?每当面试的时候,拿着单应用的架构,吹着分库分表的牛X,有没有心里慌的一批?其实很多时候,我们所缺少的只是对高大上的技术的演练。没有相关的业务需求,没有集群环境,然后便只是Goog
Docker实战之MySQL主从复制
2016-09-20

mysql主从复制

两台mysql版本号为5.7以上 主库配置文件设置(注意设置在[mysqld]项中)主库的ip地址为:192.168.1.1server-id=1 #唯一id,主库设置1log-bin=mysql-bin #日志记录sync-binlog=1bin

	mysql主从复制
2018-10-04

【MySQL】主从复制

纸上得来终觉浅,绝知此事要躬行。概述复制是指将主数据库的DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他
【MySQL】主从复制
2015-07-01

mysql主从复制

一.主从复制简介2015年5月28日11时,12小时后恢复,损失:平均每小时106.48W$1)高可用2)辅助备份3)分担负载复制是 MySQL 的一项功能,允许服务器将更改从一个实例复制到另一个实例。1)主服务器将所有数据和结构更改记录到二进制日志中。2)从
mysql主从复制
2019-04-07

mysql 主从复制

1, 准备二台机器或者服务器 ,保持mysq 版本一样或者版本相差不大;主机:114.215.198.39从机:116.62.234.2282    新建一个数据库 我的数据库是hlqzxm;进入主机的mysql 配置文件中修改配置; 修改完成配置文件记得重新
mysql 主从复制
2021-10-15

编程热搜

目录