首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Latch导致MySQL Crash

作者:沃趣科技数据库专家 董红禹 问题概述 最近我们遇到一个MySQL的问题,分析后很有代表意义,特地写出来供大家参考。...出现问题是,数据库先是被置为只读,然后过了一段时间,MySQL直接Crash掉了,发生CrashMySQL的error日志中打印了以下内容: ?...根据上面信息我们去数据库中查看了这些select语句,发现执行计划都是全扫描。首先数据库变成了只读,最后数据库Crash了,Crash输出的信息如下: ?...3,Innodb 的Diagnostic线程检查到RW-Latch等待超过了600秒还没有返回,认为系统出现了严重问题,于是触发了MySQL服务的Crash。...修复建议 这类问题的发生多数都是因为SQL写的不好,在上面进行了大量的全扫描占用了大量的Latch,解决方案就是避免SQL长时间占用Latch: 1,修改select查询避免全扫描,避免Latch

1.7K70
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL实例crash的案例分析

【问题描述】 我们生产环境有一组集群的多台MySQL服务器(MySQL 5.6.21),不定期的会crash,但error log中只记录了重启信息,未记录crash时的堆栈: mysqld_safe...为定位crash的原因,首先开启mysql core dump的功能。...该工具的数据源是events_statements_summary_by_digest,采集程序会每一分钟采集一次这张的数据,采集完成后执行truncate操作。...暂停这组集群上DML采集程序后MySQL没有再发生crash。 进一步分析多个core file,发现最终函数的调用都发生在_lf_pinbox_real_free函数上。...后面了解到这是MySQL的一个bug,在MySQL 5.6.35版本后已修复。这个bug在应用端与数据库建立大量的连接时,更容易触发。

1.1K10

MySQL#复制 - crash-safe Replication - 上

本篇文章要讨论的是复制环境下的crash-safe,换句话说的意思就是:保证无论在master还是slave发生异常crash拉起后,整个复制结构是支持ACID特性的,也意味着仅考虑支持事务的存储引擎(...MySQL 5.6 有个重大改进,将master info和relay log info写入了表里,也就是对应mysql.slave_master_info和mysql.slave_relay_log_info...这俩张,该早期还是MyISAM,需要在5.6安装好后手动改为InnoDB。...安全配置建议 MySQL 5.5: 怎么配置都没有囊括100%的crash场景,极端情况下仍然会crash unsafe。 如果愿意牺牲性能,保证较高的安全性可以这样设置。...下篇见,直接讨论MySQL 5.7 MTS,那样的场景下将复杂一点点。

74420

MySQLcrash-safe 原理解析

对于第二点的能力,也就是本文标题所讲的crash-safe。...因为crash-safe主要体现在事务执行过程中突然奔溃,重启后能保证事务完整性,所以在讲解具体原理之前,先了解下MySQL事务执行有哪些关键阶段,后面才能依据这几个阶段来进行解析。...但由于日志可能是基于事务来记录的(如InnoDB类型),而事务是绝对不可能也不应该跨文件记录的,如果正好binlog日志文件达到了最大值但事务还没有提交则不会切换新的文件记录,而是继续增大日志,所以...同理,如果先写binlog,再写redo log,中途系统crash了,也会导致主从不一致,这里就不再详述。...七、总结 至此对MySQLcrash-safe原理细节就基本讲完了,简单回顾一下: 首先简单介绍了WAL日志先行技术,包括它的定义、流程和作用。

1.2K30

Android Crash之Java Crash分析

本系列博文主要是想跟大家分享一下在Android平台中如何进行Crash分析并解决问题并告诉大家如何通过bugly进行崩溃捕获快速定位问题。 什么是Crash?...这里我们进行一些概念上的普及: Crash就是由于代码异常而导致App非正常退出现象,也就是我们常说的『崩溃』 Android中有哪些类型Crash 通常情况下会有以下两种类型Crash: Java Crash...Native Crash 本篇先探讨Java Crash,Native Crash我们会在下一篇重点讨论。...通过Crash堆栈信息定位问题 上面就是一个很简单的Crash啦,相信很多同学在开发过程中一定遇到过这种情况,万恶的空指针啊,啊,啊。我们来看看logcat给我们输出的堆栈信息: ?...想了解更多内容,敬请关注下一篇『Android Crash之Native Crash分享』。

1.2K20

故障分析 | MySQL : slave_compressed_protocol 导致 crash

现象 MySQL版本:8.0.18 create.sql:zabbix 初始化脚本,包含建、插入数据语句,10M+大小 一个新客户,部署了一套我司的数据库管理平台,接管进来一主两从实例,其中一主一从在无锡机房...在测试环境进行复现 为方便排查,需要在可控的环境下进行复现: 与客户相同的 my.cnf 相同的 MySQL 版本 相同的复制架构 执行相同的 create.sql 确实可以稳定复现 crash,error...在测试过程中,发现一个与 crash 伴生的现象: 不停用延迟检测,会crash,但是执行sql 的效率高一些(毫秒级): mysql> source /tmp/insert.sql Query OK,...4. longblob 大对象 在前面的测试中,每次复现 crash,解析 binlog 查看最后一个事务都有一个共性:都是对同一张插入数据: ### INSERT INTO `zabbix`....,并且在 insert longblob 大对象时伴随有其他外部写入流量 但是实际上用数据库管理平台自带的标准安装的同样版本的 MySQL 环境,并不能复现 crash 问题。

86520

【面试题精讲】MySQL-crash-safe

什么是 Crash-safe? Crash-safe,顾名思义,就是系统在突发的宕机或者崩溃情况发生时,对数据的安全性进行保护。...MySQL 中有一个独立的存储引擎 InnoDB,它实现了 Crash-safe 特性,这是因为 InnoDB 使用了一种叫做 Write-Ahead Logging(预写式日志)的技术。...Crash-safe 的实现原理? 在 MySQL 的 InnoDB 存储引擎中,实现了 Crash-safe 特性,这主要归功于 Write-Ahead Logging(预写日志)策略。...=balance+100 where id=2"); stmt.executeUpdate("COMMIT"); con.close(); 在上述代码运行过程中,如果系统突然宕机,在系统恢复后,由于 MySQL...Crash-safe 的优点 数据完整性:Crash-safe 机制可以在系统突然宕机后,通过日志恢复数据,保证数据的完整性。

14730

mysql分区_MySQL分区分

mysql中有一种机制是锁定和行锁定,是为了保证数据的完整性。锁定表示你们都不能对这张进行操作,必须等我对表操作完才行。...2、MySQL是将一个大按照一定的规则分解成多张具有独立存储空间的实体表,每个都对应三个文件,MYD数据文件,.MYI索引文件,.frm结构文件。...Mysql分为垂直切分和水平切分,具体区别如下: 垂直切分是指数据表列的拆分,把一张列比较多的拆分为多张 通常我们按以下原则进行垂直拆分: 把不常用的字段单独放在一张; 把text,blob(...例: 1)创建一个完整 mysql> create database test1; mysql> use test1; mysql> create table member -> ( -> id bigint...#创建两个分结构必须和上面完整的结构一致 mysql> create table tb_member1 like member; mysql> create table tb_member2 like

9.8K20

java mysql 分区_mysql分区

对用户来说,分区是一个独立的逻辑,但是底层由多个物理子表组成。实现分区的代码实际上是对一组底层的句柄对象的封装。 mysql在创建时使用PARTITION BY子句定义每个分区存放的数据。...分区本身也有一些限制,下面是其中比较重要的几点: 1.一个最多只能有1024个分区。 2.在mysql5.1中,分区表达式必须是整数,或者是返回整数的表达式。...在mysql5.5中,某些场景中可以直接使用列进行分区。 3.如果分区字段中有主键或者唯一索引的列,那么所有主键列和唯一索引列都必须包含进来。 4.分区中无法使用外键约束。...update操作 当更新一条记录时,分区层先打开并锁住所有的底层mysql先确定需要更新的记录在哪个分区,然后取出数据并更新,再判断更新后的数据在哪个分区,最后对底层进行写入操作,并对原数据所在的底层进行删除操作...虽然每个操作都有“先打开并锁住所有的底层”,但这并不是说分区在处理过程中是锁住全的。如果存储引擎能够自己实现行级锁,例如innoDb,则会在分区层释放对应锁。

7.8K10
领券