前言
本环境是基于 Centos 7.8 系统构建MySQL-5.7.14
具体构建,请参考 MySQL-5.7.14 环境构建
一、延时同步
功能介绍
是我们人为配置的一种特殊从库.人为配置从库和主库延时N小时.
为什么要有延时从:
解决数据库故障的问题
物理损坏: 主从复制非常擅长解决物理损坏,比如主库rm 删除数据库数据,直接将应用切换到从库.
逻辑损坏:普通主从复制没办法解决逻辑损坏,比如主库 drop database dbname
物理故障
逻辑故障
故障恢复思路
故障恢复思路:
1主1从,从库延时5分钟,主库误删除1个库
5分钟之内 侦测到误删除操作
停从库SQL线程
截取relaylog
起点 :停止SQL线程时,relay最后应用位置
终点:误删除之前的position(GTID)
恢复截取的日志到从库
从库身份解除,替代主库工作
案例实施
从库配置延时同步
mysql> stop slave;
Query OK, 0 rows affected (0.00 sec)
mysql> change master to master_delay=300;
Query OK, 0 rows affected (0.00 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
主库创建relay数据库、relay表,并插入两条数据
mysql> create database relay;
Query OK, 1 row affected (0.00 sec)
mysql> use relay;
Database changed
mysql> create table tb1(id int);
Query OK, 0 rows affected (0.00 sec)
mysql> insert into tb1 values(1),(2);
Query OK, 2 rows affected (0.17 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from tb1;
+------+
| id |
+------+
| 1 |
| 2 |
+------+
2 rows in set (0.00 sec)
查看从库延时同步状态
查看从库数据库信息
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| db1 |
| db2 |
| mysql |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.00 sec)
从库
# 停止sql线程
mysql>