主从复制高级进阶

1.延时从库

1.1 介绍及配置

延时从库:主库做了某项敏感性操作,从库延时多长时间回放(SQL),可以在延时期间处理逻辑损坏。

SQL线程延时:数据已经写入relaylog中,SQL线程会“比IO线程慢执行”

一般企业建议3-6小时,具体看运维人员对故障的反应时间


延时配置:

【从库】

mysql> stop slave;

mysql> CHANGE MASTER TO MASTER_DELAY = 300;

mysql> start slave;

mysql> show slave status \G

            SQL_Delay: 300

            SQL_Remaining_Delay: 296    #如果主库未执行提交事务,会显示NULL

 

1.2 延时从库处理逻辑故障

1.2.1 恢复思路

1) 监控到数据库逻辑故障,通知服务网页挂维护页面

2)停止从库SQL线程,记录已经回放的位置点(截取日志起点,使用mysqldump)

mysql > stop slave sql_thread;

mysql > show slave status;

         Relay_Log_File: localhost-relay-bin.000002

         Relay_Log_Pos: 320

 

3)截取relaylog

  • 起点

mysql > show slave status;

            Relay_Log_File、Relay_Log_Pos

 

  • 终点

mysql > show relaylog events in 'Relay_Log_File';   

# 该文件名在数据存放目录的relaylog.info中

PS: 截取破坏数据库之前的语句,例如drop delete等敏感命令。只看POS

 

4)使用mysqlbinlog到处备份日志

mysqlbinlog --start-position='起点' --stop-postition='终点' /data/3308/data/db01-relay-bin.000002(数据存放目录下的relaylog) >/tmp/relay.sql

 

5)模拟SQL线程回访日志

【从库】

mysql > source 第四步的备份日志;

 

6)恢复业务

  • 情况一:

从库代替主库【推荐方案】

  • 情况二:

从库导出故障库,还原到主库中

 

1.2.2 故障演练

【主库】

mysql >create database delay charset utf8mb4;

mysql >use delay;

mysql >create table t1 (id int);

mysql >insert into t1 values (1),(2),(3);

mysql >commit;

mysql >drop database delay;

 

【从库】

1)停止从库SQL线程,获取relay的位置起点点

mysql > stop slave sql_thread;     #为了将主服务器的日志传输完整,所以先暂停sql线程

mysql > show slave status;   #获取位置起点和relay日志名

            Relay_Log_File: localhost-relay-bin.000002

            Relay_Log_Pos: 489

 

2)找到relay的截取终点

自建MySQL数据库主从复制——延时从库及其故障处理_mysql

自建MySQL数据库主从复制——延时从库及其故障处理_mysql_02

 

3)截取relay并采取二进制备份命令操作

[root@localhost data]# cd  /data/3308/data   #切换到从库的二进制目录,二进制日志在这目录中

[root@localhost data]# mysqlbinlog  --start-positinotallow=489 --stop-positinotallow=1162 localhost-relay-bin.000002 >/tmp/relay.sql

PS:检查/tmp/relay.sql有无包含"drop"命令;

 

4)恢复relay到从库

mysql > set sql_log_bin=0;

mysql > source /tmp/relay.sql

mysql > set sql_log_bin=1;

从库承担被主库的删除库的职能


关于奇墨ITQM

奇墨科技是全域数字资产质量管理平台及服务商,在全球创新提出了ITQM体系并自研了奇墨ITQM平台、ACS全云服务、QAPI、QTools工具等一系列数智化产品与服务,目前已帮助大量世界500强企业低成本引入全新IT治理体系,全面提升企业数字化管理能力。

旗下的奇墨ITQM平台,是业界首先成功通过中国信通院《可信云•云成本优化工具能力要求第二部分 混合多云成本优化工具》评估的IT管理平台,可为企业提供FinOps成本优化、AIOps智能运维、全云管理、数据安全等QAPI能力,并通过自上而下的数字化管理模式、自动化的运维管理流程、专业化的解决方案与服务,助力企业加速“业务-技术-组织”之间的高效连接和协同,有效降低云成本支出、提高IT资源利用率和优化数字化业务决策,全面企业提升数字化价值。

自建MySQL数据库主从复制——延时从库及其故障处理_mysql_03