摘要:
在上一篇文章《MySQL 5.7中如何定位DDL被阻塞的问题》中,对于DDL被阻塞问题的定位,我们主要是基于MySQL 5.7新引入的performance_schema.metadata_locks表。提出的定位方法,颇有种"锦上添花"的意味,而且,也只适用于MySQL 5.7开始的版本。 但在实 阅读全文
摘要:
在上篇文章《MySQL表结构变更,不可不知的Metadata Lock》中,我们介绍了MDL引入的背景,及基本概念,从“道”的层面知道了什么是MDL。下面就从“术”的层面看看如何定位MDL的相关问题。 在MySQL 5.7中,针对MDL,引入了一张新表performance_schema.metad 阅读全文
摘要:
在线上进行DDL操作时,相对于其可能带来的系统负载,其实,我们最担心的还是MDL其可能导致的阻塞问题。 一旦DDL操作因获取不到MDL被阻塞,后续其它针对该表的其它操作都会被阻塞。典型如下,如阻塞稍久的话,我们会看到Threads_running飙升,CPU告警。 mysql> show proce 阅读全文
摘要:
mysqlfrm可基于frm文件生成对应的表结构。常用于数据恢复场景。 其有两种操作模式。 1. 创建一个临时实例来解析frm文件。 2. 使用诊断模式解析frm文件。 以下表进行测试,看看, 1. mysqlfrm解析的结果与原生表结构的区别。 2. 两种操作模式解析结果的不同。 首先看看第一种操 阅读全文
摘要:
前段时间,将线上MySQL数据库升级到了5.7。考虑到可能产生的不兼容性,在升级之前,确实也是战战兢兢,虽然测试环境,开发环境早在半年前就已提前升级。 基于前期的调研和朋友的反馈,与开发相关的主要有两点: sql_mode MySQL 5.6中,其默认值为"NO_ENGINE_SU BSTITUTI 阅读全文
摘要:
一直以来,对于MySQL root密码的忘记,以为只有一种解法-skip-grant-tables。 问了下群里的大咖,第一反应也是skip-grant-tables。通过搜索引擎简单搜索了下,无论是百度,抑或Google,只要是用中文搜索,首页都是这种解法。可见这种解法在某种程度上已经占据了使用者 阅读全文
摘要:
自增主键没有持久化是个比较早的bug,这点从其在官方bug网站的id号也可看出(https://bugs.mysql.com/bug.php?id=199)。由Peter Zaitsev(现Percona CEO)于2003年提出。历史悠久且臭名昭著。 首先,直观的重现下。 虽然id为3的记录删除了 阅读全文
摘要:
MySQL 8.0终于支持降序索引了。其实,从语法上,MySQL 4就支持了,但正如官方文档所言,"they are parsed but ignored",实际创建的还是升序索引。 无图无真相,同一个建表语句,看看MySQL 5.7和8.0的区别。 create table slowtech.t1 阅读全文
摘要:
在8之前的版本中,对于全局变量的修改,其只会影响其内存值,而不会持久化到配置文件中。数据库重启,又会恢复成修改前的值。从8开始,可通过SET PERSIST命令将全局变量的修改持久化到配置文件中。 试举一例 全局变量的修改会保存在两处, 1. 数据目录下mysqld-auto.cnf文件, 注意,不 阅读全文
摘要:
背景 索引是把双刃剑,在提升查询速度的同时会减慢DML的操作。毕竟,索引的维护需要一定的成本。所以,对于索引,要加上该加的,删除无用的。前者是加法,后者是减法。但在实际工作中,大家似乎更热衷于前者,而很少进行后者。究其原因,在于后者,难。难的不是操作本身,而是如何确认一个索引是无用的。 如何确认无用 阅读全文
摘要:
pt-align的功能很简单,将其它工具的输出按列对其。 用法: pt-align [FILES] 如果没有指定文件,则默认读取标准输入的内容。 如,常用的vmstat的输出,阅读体验就不够人性化。 在这种情况下,就可以使用pt-align进行处理 阅读全文
摘要:
1. 时间类型转换为字符串类型 now := time.Now() fmt.Println(now.Format("2006-01-02 03:04:05 PM")) yesterday := time.Now().AddDate(0,0,-1).Format("2006-01-02") 2. go 阅读全文
摘要:
1. 使用supervisorctl时报“http://localhost:9001 refused connection”错误 解决方法:使用supervisorctl时指定配置文件 # supervisorctl -c /etc/supervisor.conf 2. 重启supervisord 阅读全文
摘要:
集群信息 角色 IP地址 ServerID 类型 Master 192.168.244.10 1 写入 Candicate master 192.168.244.20 2 读 Slave 192.168.244.30 3 读 Monitor host 192.168.244.40 监控集群组 MHA 阅读全文
摘要:
在日常工作中,会碰到如下的场景,如mysql数据库升级,主服务器硬件升级等,这个时候就需要将写操作切换到另外一台服务器上,那么如何进行在线切换呢?同时,要求切换过程短,对业务的影响比较小。 MHA就提供了这样一种优雅的方式,只会堵塞业务0.5~2s的时间,在这段时间内,业务无法读取和写入。 集群信息 阅读全文