replication crash safe

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 什么是主从复制的replication crash safe?参数master_info_repository有两个值:FILE (对应的文件master.info),  or TABLE (对应的表mysql.

什么是主从复制的replication crash safe?

参数master_info_repository有两个值:

FILE (对应的文件master.info),  or TABLE (对应的表mysql.slave_master_info)


参数relay_log_info_repository有两个值:  

FILE (对应的文件 relaylog.info), or TABLE (对应的表mysql.slave_relay_log_info)


relay-log是sql_thread线程读取重放,然后把重放结束时候的relay-log和pos点更新记录到relay-log.info文件中;


如果sql_thread重放完毕,但是还没有把最终信息更新到relay-log.info中,从库断电或者crash,重启之后,从库读取relay-log.info发现现在不是最新的relay-log和pos点,还会把已经重放的事物重新重放,这样就会造成1032和1062错误,这么对复制来说是不安全的;


那么为了解决这个问题,mysql5.6开始出现了table这个选项,可以把更新记录放在innodb表中,利用了事物性质,即使sql_thread重放relay-log,还没有更新到mysql.slave_relay_log_info表中,当出现从库断电或者crash的情况下,重启从库之后,已经重放但是还没有同步到表中事物回滚掉,sql_thread会重新读取relay-log重放,然后更新到表中,这就是replication crash safe.


另外有两个参数sync_master_info(默认10000) ,sync_relay_log_info(默认10000)用来控制更新同步master.info 和relay-log.info文件的频率,表示在多少个事物之后做一次fdatasync( ),如果参数等于0,表示由操作系统来控制同步;还有这两个参数不要设置太小,否则磁盘IO可能受不了,可以通过iotop或者pt-ioprofile查看IO情况;


怎么启用replication crash safe功能?

master_info_repository=table

relay_log_info_repository=table


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
关系型数据库 MySQL Java
【MySQL异常解决】Operation not allowed when innodb_forced_recovery > 0 的解决办法
【MySQL异常解决】Operation not allowed when innodb_forced_recovery > 0 的解决办法
333 0
【MySQL异常解决】Operation not allowed when innodb_forced_recovery > 0 的解决办法
relay_log_recovery和slave从库crash recovery的关系
在从库中将relay_log_recovery不设置或者设置为off,如果当从库意外宕机后,同时从库的relay log也一起损坏了,从库会丢失那些没有应用的日志,主从会不一致。
186 0
|
存储 关系型数据库 MySQL
mysql 数据库无法启动(Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint .... and)
数据库机器的CPU和主板都换了,重新开机,发现mysql数据库无法启动!
424 0
|
网络协议 关系型数据库 MySQL
MySQL Aborted_clients和 Aborted_connects状态变量详解
MySQL Aborted_clients和 Aborted_connects状态变量详解
313 0
|
关系型数据库 MySQL
MySQL 的 crash-safe 原理解析
MySQL作为当下最流行的开源关系型数据库,有一个很关键和基本的能力,就是必须能够保证数据不会丢。那么在这个能力背后,MySQL是如何设计才能保证不管在什么时间奔溃,恢复后都能保证数据不会丢呢?有哪些关键技术支撑了这个能力?本文将为我们一一揭晓。
1053 0
|
关系型数据库 MySQL
深入理解MySQL 5.7 GTID系列(七)binlog_gtid_simple_recovery参数的影响总结
想了想还是专门开了一节来总结这个问题: 5.7.6以下中默认 simplified_binlog_gtid_recovery=flase 5.7.6以上中默认 binlog_gtid_simple_recovery=true 默认值就是最合理的设置。
3979 0
|
SQL JavaScript 关系型数据库
深入理解MySQL 5.7 GTID系列(四):mysql.gtid_executed&PREVIOUS GTID EVENT
之所以把MySQL.GTID_EXECUTED表的作用和PREVIOUS GTID EVENT的改变放到一起进行描述是因为它们后面文章探讨的基础。这部分使用到了我自己使用C语言写的原生BINLOG解析工具INFOBIN。
3550 0
|
SQL 关系型数据库 数据库管理