主从复制高级进阶
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的截取终点
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资源利用率和优化数字化业务决策,全面企业提升数字化价值。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。