摘要: 近期由于特殊原因有一台主库宕机了一个小时没有处理,说起来这是个挺不好啥意思的事情,但是由于这个事情反而发现个比较诡异的情况,那就是在主库宕机一个小时候后,监控才发出从库IO thread中断的报警,也就是说在那一个小时内,从库的同步状态是双Yes的。这是多么诡异的现象,那么这是因为什么原因呢?我们下来分析一下。 众所周知,MySQL的同步是异步完成的,其中IO thread负责接收从主库dump的binlog到从库上生成relay log,然后SQL thead负责解析relay log后在从库上进行重放来完成同步。这个2步是完全异步的,单独停止其中一个,并不会影响另一个的正行工作。当这... 阅读全文
posted @ 2013-12-12 00:41 billy鹏 阅读(19813) 评论(1) 推荐(2) 编辑
摘要: 最近连续经历了机架掉电和交换机挂掉,着实切了不少主库,虽然过程心惊胆跳,但是也算是上过战场,经过了实战演习,相信TEAM中的小伙伴们对于切主库已经可以驾轻就熟了。 MySQL的主库切换也属于DBA的一个基本技能,下面我们就来聊聊MySQL主库切换那些事。正常切主库 首先我们说说正常情况下的主库切换,在这种情况下,我们有时间可以做计划慢慢进行切换,所以这种切换其实时流程化的操作。 我们先说一下技术层面的步骤: 1、挑选一台服务器作为新主库 可以是现有的slave,也可以是新扩容出来的slave,但是归根结底它的角色是slave 2、在new master上设置log-slave-... 阅读全文
posted @ 2013-12-10 19:13 billy鹏 阅读(4329) 评论(1) 推荐(0) 编辑
摘要: 正休息的时候一个电话将我的睡意完全打散,“开发童鞋写update SQL的时候忘了加where条件了”,相信每一个DBA同学听到这个消息的时候都有骂街的冲动吧。万幸只是单表写花了,而不是哪位大神在DB里面drop table玩。虽然已经很久没进行单表恢复了,但是还好步骤都印在脑海中,没有出问题的就恢复完了。 言归正传,记录一下单表恢复的步骤和关键点,提醒自己也提醒大家。第一步: 找一台性能比较高的服务器作为还原机,从备份池中将最近的一次备份恢复到这台还原机上。当然这个前提是你有备份,且备份是可用的。(什么? 你告诉我没有做备份,那么同学你可以洗洗睡了,准备享受自由的空气吧。) 注意:... 阅读全文
posted @ 2013-12-06 01:35 billy鹏 阅读(23603) 评论(2) 推荐(2) 编辑
摘要: 最近经历了一次MyISAM重启的血泪教训,小小的故障历经3个小时才全部解决完毕,特此铭记一下,以后坚决防止在同一个地方跌倒两次。事情的过程: 某日早7点接到几条主库报警,给值班组打电话后得到的消息是有一台交换机重启了。so,第一反应,这种情况不用处理过会就好了。(后来才知道,这是条虚假消息,没有上去验证是一个巨大的错误,代价惨重。) 等到了8点,依然收到报警,并且有越来越多的趋势。赶紧实际登陆服务器验证,发现服务器被重启了,上面的MySQL实例被意外shutdown。这时候从工作群中知道好几台同机房的服务器都出现相同情况,第一反应,一个机架掉电了。于是就赶紧重启吧,重启好了就奖从库都c... 阅读全文
posted @ 2013-12-02 20:07 billy鹏 阅读(663) 评论(0) 推荐(0) 编辑
摘要: 最近遇到一条SQL线上执行超过5s,这显然无法忍受了,必须要优化了。 首先看眼库表结构和SQL语句。CREATE TABLE `xxxxx` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `owner` bigint(20) NOT NULL, `publicStatus` int(11) NOT NULL DEFAULT '0', `title` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `type 阅读全文
posted @ 2013-11-20 15:06 billy鹏 阅读(5999) 评论(0) 推荐(1) 编辑
摘要: 近期线上的数据遇到一个问题,最终原因为max_user_connections和max_connections的一个bug导致,具体过程如下现象 前端页面不断的出现错误页面。排查处理过程 按照数据库的标准排查流程,首先看延迟,慢查询,连接数,这三个最容易出现问题的地方。 第一时间发现有较大的延迟超过800s,经过分析慢查询日志发现是一条DELETE SQL没有使用索引导致全表查询引发的对服务器IO性能消耗过多导致的。 同事前端的兄弟们也发现这个业务的调用量徒增几百倍,从一个没什么访问量的业务变为每秒上万访问量的业务。 故,我们初步推断,这是由于访问量激增引发的平时不明显的问题暴露... 阅读全文
posted @ 2013-11-05 12:53 billy鹏 阅读(3127) 评论(0) 推荐(0) 编辑
摘要: 最近读了《给你一个团队,你能怎么管?》,一点小感想。所谓管理,就是通过团队的力量完成组织的目标。说白了就是不能单干,要充分发挥团队中每一名成员的能力,别玩英雄主义。也就是我们经常念叨的“用之以长,不用之以短”,“因人而异,因地适宜”,“合适的人做适合的事”,其实都是这个意思。《给你一个团队,你能怎么管?》中对所有的团队成员做了如下的4类划分,让我印象比较深刻。1、能力强,态度好。要充分放权,建立良好的信任关系。2、能力强,态度差。加强方向上的监控,给予挑战。3、能力差,态度好。培训,给予能力120%的任务。4、能力差,态度差。做好螺丝钉,给予展示的机会。其实,团队中最需要区分的是烂苹果,还是小 阅读全文
posted @ 2013-09-27 23:52 billy鹏 阅读(2953) 评论(0) 推荐(0) 编辑
摘要: 对于越来越多的数据,数据库的容量越来越大,压缩也就越来越常见了。在我的实际工作中进行过多次压缩工作,也遇到多次问题,在此和大家分享一下。首先,我们先说说怎么使用innodb的压缩.第一,mysql的版本需要大于5.5第二,设置innodb_file_format=barracuda第三,create table或者alter talble 增加 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;(默认的key_block_size=16)其实很简单,根据经验,一般压缩比例可以达到30%-40%然后,我们说说我在压缩过程中遇到的坑和发现的关联,当然有些比较二。No1: 阅读全文
posted @ 2013-09-27 16:26 billy鹏 阅读(18613) 评论(1) 推荐(3) 编辑
摘要: 最近遇到非常多的导数据的需求(主要是CSV的需求),专门对mysqldump、pt-archive、mydumper做了一下对别,粗浅研究,以备将来使用。msqldumppt-archivemydumper本地导成SQL格式OXO本地导成CSV格式OOX远程导出SQL格式OXO远程导出CSV格式XOX自定义分隔符OXXSQL导出速度快快快CSV导出速度快很慢较快多表导出是否支持并发XXO是否支持表对表导入导出OOX是否支持条件导出OOX备份binlogXXO归档XOX还有许多需要研究的地方,后期再去研究一下sqoop。 阅读全文
posted @ 2013-09-11 23:10 billy鹏 阅读(707) 评论(0) 推荐(0) 编辑
摘要: 最近遇到很多业务需求,需要进行数据导出工作,由于有格式要求,故之前一直使用mysqldump的方法。mysqldump -uuser -ppassword -S mysql.sock -t db table -T /data1/dbatemp/ 当然可以根据需求增加分隔符和行结束符。--fields-terminated-by和--lines-terminated-by,其他也可以增加where条件进行检索,可以自行使用--help查询。 但是后续由于业务需求比较频发,同事需求数据容量越来越大,已经不适合在localhost进行操作,需要一台中心管理机来统一进行管理,这时候mysqld... 阅读全文
posted @ 2013-09-10 15:20 billy鹏 阅读(3631) 评论(0) 推荐(0) 编辑