随笔分类 - MySQL
摘要:收到告警,提示mysql挂了,此时看监控,负载已经比较高,服务器已经无法登录。看见监控此时的负载情况如下: 除了系统层面的监控还可以看到,mysql层面的监控已经断图,等负载降下来的时候mysql已经被oom,自动重启了。 从mysql错误日志看到如下信息: 2020-08-01T09:14:11.
阅读全文
摘要:几个月没有更新博客了,已经长草了,特意来除草。本次主要分享如何利用consul来实现redis以及mysql的高可用。以前的公司mysql是单机单实例,高可用MHA加vip就能搞定,新公司mysql是单机多实例,那么显然这个方案不适用,后来也实现了故障切换调用dns api来修改域名记录,但是还是没
阅读全文
摘要:突然收到告警,提示mysql宕机了,该服务器是从库。于是尝试登录服务器看看能否登录,发现可以登录,查看mysql进程也存在,尝试登录提示 最大连接数设置的3000,怎么会连接数不够了呢。于是使用gdb修改一下最大连接数: 修改以后可以登录了,于是show processlist看看是啥情况: 发现监
阅读全文
摘要:现在大多数同学在线上采取的备份策略都是xtrabackup全备+binlog备份,那么当某天某张表意外的删除那么如何从xtrabackup全备中恢复呢?从mysql 5.6版本开始,支持可移动表空间(Transportable Tablespace)那么利用这个功能就可以实现单表的恢复,同样利用这个
阅读全文
摘要:一般情况下mysql的启动错误还是很容易排查的,但是今天我们就来说一下不一般的情况。拿到一台服务器,安装完mysql后进行启动,启动错误如下: 有同学会说,哥们儿你是不是buffer pool设置太大了,设置了96G内存。这明显提示无法分配内存嘛。如果真是这样也就不在这里进行分享了,哈哈。 我的服务
阅读全文
摘要:最近一个统计系统的大表需要加字段,表的引擎是myisam,表大小在3亿,物理文件在106G。想想都蛋疼。那么这种情况下怎么把字段撸上去呢? 1. 首先想到了《高性能MySQL》提到的直接更改表结构文件(frm),但是在经过测试以后,发现提示表损坏了,需要repair,只好放弃了。 2. 使用pt-o
阅读全文
摘要:突然收到告警短信,提示有一组服务器MHA已经切换,登录服务器后查看错误日志如下(其中相关insert语句已经处理):mysql版本:5.5.24151221 16:54:26 InnoDB: Assertion failure in thread 139867452008192 in file h...
阅读全文
摘要:这两天遇到一个非常诡异的问题,打算和大家分享一下。只所以诡异估计是自己知识面不够吧。线上的MHA一直没有开启自动切换,都是手动切换的,最近开启了自动切换以后,退出securecrt窗口以后发现监控进程异常自己退出了。报错日志如下:MHA版本:0.56Checking the Status of th...
阅读全文
摘要:大多数公司的表结构都需要经过DBA进行审核,有时候你会看到存储IP地址采用varchar(15),这种方式都是传统的做法,这种方法需要占用15个字节,那么有更省空间的做法么?肯定是有的,那就是用int存储。如果采用int存储这里又有2种处理方式。1. 利用MySQL函数进行处理。可以采用INET_A...
阅读全文
摘要:今天收到报警,提示从库延时,首先当然是上去查看情况,首先查看机器负载,如下:可以看到使用cpu已经100%,io没有等待。那么查看mysql是什么情况,执行show processlist没有发现任何异常,执行show slave status查看延时,发现延时一直在增加,且卡在了某个pos点不动了...
阅读全文
摘要:DBA的日常工作中SQL优化占大半的时间,通常都是SQL语句性能问题或者schema设计有问题,最近遇到一个类型转换的问题,所以在这里分享一下,废话不多说了,直接建表进行测试。mysql> create table t1 ( id int , name char(20), key ( id) );Q...
阅读全文
摘要:今天有台数据库异常,登录服务器后执行show processlist,发现大量的unauthenticated user 状态。如下:于是第一时间想到DNS反向解析的问题,于是看看是否关闭DNS解析:mysql> show variables like '%skip_name_resolve%'; ...
阅读全文
摘要:xtrabackup相信目前使用已经非常广泛了,备份innodb表的首选工具,但是其中还是有点小坑,虽然发生的概率不大,但是我还是踩坑了。关于xtrabackup的详细参考请查阅官方文档http://www.percona.com/doc/percona-xtrabackup/2.2/intro.h...
阅读全文
摘要:正看资料看的过瘾,突然收到报警,说服务器负载太高,好吧,登录服务器看看,我擦嘞,还能不能愉快的玩耍了?下面是当时的负载情况看见mysql使用cpu已经到了2000,io没有等待。说明应该没有大的临时表,或者文件排序,但是SQL语句肯定还是有问题的,好吧,那进数据库看看到底在干嘛,执行show ful...
阅读全文
摘要:很久很久没有写博客了,工作比较忙,也没什么时间学习了,恰逢国庆放假,安心的学习一下,其实只是把之前学习过的知识再温习了一下而已。InnoDB 有众多的线程,其中非常核心的就是master thread线程,我也简单的学习了一下,下面是整个线程的工作流程。有大神觉得有问题的,我们可以简单的交流一下。伪...
阅读全文
摘要:众所周知innodb的锁是行级锁,这样说也没有问题,只是还可以细分而已。推荐阅读何登成大牛的博客http://hedengcheng.com/?p=771innodb的锁有三种算法,分别如下:Read Lock:单个记录上的锁Gap Lock:间隙锁,锁定一个范围,但不包含记录本身Next-Key ...
阅读全文
摘要:为什么我们需要恢复innodb的字典信息?当我们drop 一个表时,发现误操作,这时又没有备份,那么想恢复数据是非常困难的。所以我们想恢复被删除的表时,首先就需要恢复表结构,目前已经有了undrop-for-innodb这个工具,相比之前的工具percona-data-recovery-tool-f...
阅读全文
摘要:在生产环境中,主从复制常常会有复制延迟的现象,主要是master是并发的写,而slave是单线程的应用relay log,所以会出现复制延时,在MySQL 5.6版本中有了基于库的多线程复制。还有MariaDB的并行复制。但是我们使用MySQL 5.5的版本也比较多。如何判断复制是否延时呢?工具现在...
阅读全文
摘要:MySQL的高可用方案有很多,比如Cluster,MMM,MHA,DRBD等,这些都比较复杂,我前面的文章也有介绍。最近Oracle官方也推出了Fabric。有时我们不需要这么复杂的环境,这些方案各有优劣。有时简单的且我们能够hold住的方案才是适合我们的。比如MySQL Replication,然...
阅读全文
摘要:通常来说,MySQL性能调优是非常复杂的一件事,不是简单的修改参数就可以完成的。需要综合考虑。而且找出性能瓶颈也非易事。但是通常我们有以下的几种方法找到蛛丝马迹。通过下面的几种方法发现瓶颈以后,我们才能确定下一步应该怎么做^_^其他的可以参考我前面写的文章:MySQL常用SQL优化,Linux上跑M...
阅读全文