揪出MySQL磁盘消耗迅猛的真凶

当一张单表10亿数据量的表放在你面前,你将面临着什么?

原创 推荐 点赞36 阅读10000+ 收藏12 评论13 2018-07-03

揪出MySQL延迟上千秒的元凶

引起MySQL延迟的问题有多种,本文中的案例是由于binlog格式为row引起,但如果您不清楚什么情况下MIXED会转为ROW格式,一定要看上一看

原创 推荐 点赞30 阅读10000+ 收藏13 评论12 2018-04-03

避免MySQL替换逻辑SQL的坑爹操作

replace into和insert into on duplicate key update区别是什么,有哪些坑?

原创 推荐 点赞17 阅读10000+ 收藏5 评论8 2017-12-11

MySQL危险而诡异的update操作和惊魂5分钟

MySQL危险而诡异的update操作和惊魂5分钟简介Part1:写在最前上班正忙的不可开交呢,一个消息过来,得知研发人员误操作数据库了....不带where条件,整表更新Orz,还让不让人好好活了,心中一万只XXX啊~无奈,分清事情的轻重,优先处理这起事故。在简单沟通后,了解到事故的原因是研发人员使用update忘记带where条件。这本身没什么诡异的,诡异的是在决定要不要进行恢复的时候,笔者稍

原创 推荐 点赞14 阅读10000+ 收藏4 评论13 2017-09-21

MySQL令人头疼的Aborted告警案例分析

在MySQL的error log中,我们会经常性看到一些各类的Aborted connection错误,本文中会针对这类错误进行一个初步分析,并了解一个问题产生后的基本排查思路和方法。掌握这种方法是至关重要的,而不是出现问题了,去猜,去试。数据库出现问题的时候需要DBA在短时间内快速解决问题,因此一个好与坏的DBA,区别也在于此。

原创 推荐 点赞10 阅读10000+ 收藏3 评论15 2017-06-27

SQLAdvisor美团SQL索引优化建议工具

SQLAdvisor美团SQL索引优化建议工具前言Part1:写在最前SQLAdvisor是美团开源的一款SQL索引优化建议工具,是由美团点评公司技术工程部DBA团队(北京)开发维护的一个分析SQL给出索引优化建议的工具。它基于MySQL原生态词法解析,结合分析SQL中的where条件、聚合条件、多表Join关系 给出索引优化建议。目前SQLAdvisor在美团点评内部广泛应用,公司内部对SQLA

原创 推荐 点赞2 阅读8519 收藏3 评论2 2017-03-22

OneProxy实现MySQL分库分表

OneProxy实现MySQL分库分表简介Part1:写在最前    随着网站的壮大,MySQL数据库架构一般会经历一个过程:当我们数据量比较小的时候,一台单实例数据库足矣。等我们数据量增大的时候,我们会采用一主多从的数据库架构来降低我们的读写io。当我们某张业务表达到几百万上千万甚至上亿时,就应该去进行分表处理。本文演示OneProxy对数据库实现分表处理

原创 点赞3 阅读10000+ 收藏0 评论1 2016-12-23

OneProxy实现MySQL读写分离与负载均衡

OneProxy实现MySQL读写分离与负载均衡简介Part1:写在最前    OneProxy平民软件完全自主开发的分布式数据访问层,帮助用户在MySQL/PostgreSQL集群上快速搭建支持分库分表的分布式数据库中间件,也是一款具有SQL白名单(防SQL注入)及IP白名单功能的SQL防火墙软件。采用与MySQL Proxy一致的反向协议输出模式,对应用

原创 推荐 点赞8 阅读7303 收藏5 评论9 2016-12-21

MySQL日志审计 帮你揪出内个干坏事儿的小子

MySQL日志审计 帮你揪出内个干坏事的小子简介Part1:写在最前MySQL本身并不像MariaDB和Percona一样提供审计功能,但如果我们想对数据库进行审计,去看是谁把我的数据库数据给删了,该怎么办呢?我们主要利用init-connect参数,让每个登录的用户都记录到我们的数据库中,并抓取其connection_id(),再根据binlog就能够找出谁干了那些破事儿。MariaDB如何审计

原创 推荐 点赞11 阅读10000+ 收藏10 评论6 2016-12-09

3分钟解决MySQL主从1594错误

3分钟解决MySQL主从1594错误简介Part1:写在最前1594这个错误看起来挺严重的,会提示你binlog文件或者Relay log损坏了,例如binary log is corrupted、relay log is corrupted之类的看起来很吓人是吧,多数是由于掉电引发的,这也说明了机房配备UPS的重要性。本文来自真实生产案例,感谢网友加内特提供,本人加

原创 推荐 点赞2 阅读10000+ 收藏4 评论1 2016-12-06

再谈MySQL全库备份

再谈MySQL全库备份简介Part1:写在最前在很早之前,我写过一个MySQL生产库全库备份脚本,今天有同事问我是不是要再加一个-R参数来备份存储过程,理由的话是由于mysqldump --help中 关于存储过程的默认备份是false。routines                     &n

原创 推荐 点赞5 阅读4233 收藏4 评论4 2016-12-05

1分钟利用mysqlreplicate快速搭建MySQL主从

利用mysqlreplicate快速搭建MySQL主从环境简介mysql-utilities工具集是一个集中了多种工具的合集,可以理解为是DBA的工具箱,本文介绍利用其中的mysqlreplicate工具来快速搭建MySQL主从环境。HE1:192.168.1.248 slaveHE3:192.168.1.250 master实战Part1:安装mysql-utilities[root@HE1 ~

原创 推荐 点赞11 阅读10000+ 收藏8 评论7 2016-12-01

10分钟学会MySQL基础教程

10分钟学会MySQL基础操作1分钟安装Part1:写在最前MySQL安装的方式有三种:①rpm包安装②二进制包安装③源码安装这里我们推荐二进制包安装,无论从安装速度还是用于生产库安装环境来说,都是没问题的。现在生产库一般采用MySQL5.6,测试库采用MySQL5.7。MySQL5.6安装看这里http://suifu.blog.51cto.com/9167728/1846671 MySQL5.

原创 推荐 点赞18 阅读10000+ 收藏18 评论12 2016-11-09

MySQL5.7MHA+MaxScale2.0构建高可用环境

MySQL读写分离与负载均衡--MHA与MaxScale环境介绍Part1:写在最前看了某大牛的文章,讲述了一下MaxScale比LVS的好处多多,那您倒是放出来配置文件啊~~大牛说:需要的单独找我吧,太长了配置文件……看到这我心中久久不能平静啊。。。联系不上您呐 = =,于是各种资料各种找啊~各种坑各种血崩啊!~~~由于不知道大牛的配置文件是什么样子,本文仅以随笔的形式,记录下实施过程。也欢迎您

原创 推荐 点赞17 阅读10000+ 收藏19 评论29 2016-11-04

MySQL ERROR 1878 解决办法

MySQL ERROR 1878报错解决办法错误重现Part1:大表修改字段mysql> ALTER TABLE `erp`    -> ADD COLUMN `eas_status`  tinyint(3) unsigned  NOT NULL DEFAULT 0 ' AFTER `totalprice`;ERROR 1878 (HY

原创 推荐 点赞8 阅读10000+ 收藏5 评论11 2016-10-27

MySQL5.7在线开启/关闭GTID

MySQL5.7在线开启/关闭GTID环境介绍Part1:写在最前截止本文撰写当日,MySQL5.7.16是官网的最新稳定版,本文将用MySQL5.7.16来进行演示。从MySQL5.6开始,支持了GTID复制模式,这种模式其实是把双刃剑,虽然容易搭建主从复制了,但使用不当,就容易出现一些错误,例如error 1236。在MySQL5.6如果开启GTID模式,需要在my.cnf中加入以下几个参数:

原创 推荐 点赞3 阅读10000+ 收藏3 评论4 2016-10-25

MySQL5.6.25升级MySQL5.7.15

MySQL5.6升级MySQL5.7环境介绍Part1:写在最前提到MySQL升级,网上文章数之不尽,但大多数为老的版本,诸如5.1升级到5.5、5.5升级到5.6,今天给大家介绍下MySQL5.6升级到MySQL5.7版本的方法和注意事项。Part2:升级方法升级的方法一般有两类:1.利用mysqldump来直接导出sql文件,导入到新库中,这种方法是最省事儿的,也是最保险的,缺点的话,也显而易

原创 推荐 点赞14 阅读6478 收藏11 评论9 2016-10-20

5分钟了解MySQL5.7union all用法的黑科技

MySQL5.7union all用法的黑科技union all在MySQL5.6下的表现Part1:MySQL5.6.25[root@HE1 ~]# mysql -uroot -p Enter password:  Welcome to the MySQL monitor.  

原创 推荐 点赞10 阅读10000+ 收藏6 评论9 2016-10-11

5分钟了解MySQL5.7对in用法有什么黑科技

MySQL5.7对in用法有什么黑科技构建测试环境Part1:创建测试数据库[root@HE1 ~]# mysql -uroot -p Enter password:  Welcome to the MySQL monitor.  Commands end w

原创 推荐 点赞12 阅读10000+ 收藏6 评论17 2016-10-10

一个参数引起的mysql从库宕机血案

一个参数引起的MySQL从库宕机血案Part1:max_binlog_cache_sizemax_binlog_cache_size 表示的是binlog 能够使用的最大cache 内存大小当我们执行多语句事务的时候 所有session的使用的内存超过max_binlog_cache_size的值时就会报错:“Multi-statement transaction required more th

原创 推荐 点赞31 阅读10000+ 收藏16 评论32 2016-10-08

10分钟了解MySQL5.7对原生JSON的支持与用法

Part1:JSON格式的支持MySQL5.7版本终于支持了原生的JSON格式,即将关系型数据库和文档型NO_SQL数据库集于一身。本文接下来将对这特性分别就MySQL5.7和MariaDB10.1各自实现的方法异同进行介绍和演示。Part2:创建相应表结构[root@HE3 ~]# mysql -Vmysql  Ver 14.14 Distrib 5.7.15, for linux-g

原创 推荐 点赞9 阅读10000+ 收藏8 评论7 2016-09-28

5分钟了解MySQL5.7的undo log在线收缩新特性

Part1:写在最前在MysQL5.6版本中,可以把undo log 回滚日志分离到一个单独的表空间里;其缺点是不能回收空间大小,until MysQL5.7,but MariadDB10.1暂不支持。本文介绍并演示MysQL5.7是如何在线收缩undo log的。undo log日志是保存在共享表空间ibdata1文件中的,随着数据库的运行时间的不断增长,ibdata1文件会越来越大,在以往的M

原创 推荐 点赞7 阅读10000+ 收藏7 评论3 2016-09-27

5分钟了解MySQL5.7的Online DDL雷区

Part1:写在最前Online DDL,当新手听到这个名字的时候,非常高兴,以为无论什么情况下,修改表结构都不会锁表,理想很丰满,现实很骨感!读完本文,教你如何避开这些雷区,安全的修改表结构。话不多说,我们分别来看下MySQL5.6和MySQL5.7在修改表结构上的相同和异同。Part2:5.6.25的表现①首先我们构造数据并进行测试mysql> create data

原创 推荐 点赞15 阅读10000+ 收藏14 评论13 2016-09-23

1分钟完成MySQL5.7安装部署

1分钟完成MySQL5.7安装部署简介Part1:写在最前MYSQL5.7.15是截止至本文撰写当日,mysql官网的最新社区版,mysql5.7的多项功能优化可以用激动人心来形容,嫌安装麻烦?没关系,跟着本文,带你1分钟搞定MySQL5.7.15数据库安装部署。Part2:仅仅安装就够了?不,当然不够,MySQL5.7的多项功能特性更新,无法一一赘述,因此,我们先从和本文最相关的my.cnf,来

原创 推荐 点赞46 阅读10000+ 收藏83 评论31 2016-09-22

10分钟完成MySQL对emoji的支持

公司有新要求,ios客户端要上线评论中可以使用emoji表情的功能,在mysql 5.5 之前,UTF-8编码只支持1-3个字节;从MySQL 5.5开始,可以支持4个字节UTF编码 utf8mb4 ,一个字符能够支持更多的字符集,也能够支持更多表情符号。utf8mb4兼容utf8,且比utf8能表示更多的字符,是utf8字符集的超集。所以现在一些新的业务,比如IOS中的emoji表情,会将MyS

原创 点赞15 阅读10000+ 收藏10 评论19 2016-09-19

10分钟完成MySQL物理xtrabackup增量备份

在生产环境中,我们一般采取mysqldump全库备份,但这对于大型数据库是不可用的,因为mysqldump是逻辑备份,备份和恢复的效率缓慢,根据个人经验给出一个临界值的话,50G以下的数据库可以用mysqldump来进行全库备份,50G以上的数据库则需要物理全库备份,甚至是增量备份。Xtrabackup是物理备份,其备份速度也因其物理特性远超逻辑备份的速度,而且Xtrabackup就是为了逻辑备份

原创 点赞17 阅读10000+ 收藏11 评论14 2016-09-14

1分钟实现MySQL批量导出以某数字或字母开头的表

情景:我有上百张以H开头的表,我需要备份出这些以H开头的表。  而mysqldump不支持*或者%这种通配符,所以没法实现备份以xx开头的表这种,那么如何快速批量备份出以某字母或数字开头的表呢。这里算是个小技巧,利用文本编辑器来实现。[root@HE3~]# mysql -uroot -p -s -e"select table_name from information_sch

原创 点赞6 阅读9638 收藏4 评论4 2016-09-13

1分钟导出MySQL的数据字典

数据字典是一名DBA需要维护的重要内容,有人喜欢用excel来维护,本人更喜欢直接在数据库上进行维护,这样可以保证库中的注释都是最新的内容,为了便于数据字典的流通性,一般会采用excel的方式来记录,本文记录下如何快速从数据库中导出数据字典信息到excel。这里算是一个小技巧利用mysql的information_schema中的COLUMNS表和navicat中的导出功能实现快速导出数据字典,来

原创 推荐 点赞9 阅读10000+ 收藏5 评论5 2016-09-12

MySQL5.6多实例部署

无论是迫于预算,亦或者是领导要求,多实例的安装也是DBA必须掌握的技术,他的启停和登录方式和单实例安装数据库略有不同,本文记录下如何完成MySQL5.6多实例部署。首先我们看一下my.cnf和单实例的区分:[root@HE1 scripts]# cat /etc/my.cnf [client] #port = 3306 #socket = 

原创 推荐 点赞14 阅读10000+ 收藏27 评论7 2016-09-08

1分钟完成MySQL5.6生产库自动化安装部署

1分钟完成MySQL5.6安装部署简介Part1:写在最前自动化运维是一个DBA应该掌握的技术,其中,自动化安装数据库是一项基本的技能,本文中的安装脚本已通过测试,作为生产库来说没有问题,鉴于每个公司存储规划要求不同,可以按需自行修改脚本。由于源码安装费时费力,rpm包可定制性差,生产库一般采用二进制安装包,本文的安装包为二进制安装文件,本文使用的是mysql-5.6.25-linux-glibc

原创 推荐 点赞27 阅读10000+ 收藏45 评论16 2016-09-06
  • 1
  • 2
写文章