Oracle ACE,《Oracle DBA工作笔记》作者 现就职于国内某互联网公司,擅长数据管理,数据迁移,性能优化,目前专注于开源技术,运维自动化和性能优化。
持续推了三期,今天是第四期,还是在朋友圈征集信息,本期的公司有饿了吗,竞技世界,大街网,宜信支付与结算中心,宜信大数据创新中心,搜狐畅游,北京海量数据和Pivotal,如果你有更多的职位需求,可以微信留言,后台留言或者发送邮件jeanrock@126.com,说不定我能帮到你。
首先问一个问题,你听说过下面这两个工具吗? Maatkit 和Aspersa 如果听过,可能就暴露年龄了,你如果现在去查Aspersa相关的文章,会发现下载链接之类的都不可用了。
一直以来文本编辑器用了不少,一旦习惯了就不愿意轻易改动了。从emeditor,ultraeditor,notepad++这些工具用到如今,似乎已经习惯了ultraeditor的感觉,如果一定要在这些编辑器找到一个亮点,对我来说就是列编辑模式。
有一个公众号是吃草的罗汉,最近看他的一篇文章,我被里面的一小段内容吸引了,他这样写道: 在成长的道路上,有时你越是不喜欢的事,越会阴差阳错的让你遇见 在《我也可以是流浪诗人》中有几段话,很有意思,摘录一些分享给大家: 做你没做过的事情,叫做成长; 做你不愿意做的事情,叫做改变; 做你不敢做的事情,叫做突破; 我觉得很受用,自己似曾想过但没想通的问题,好像有了一些答案。
记得在知乎里面有一个网友提问:写工业级别代码是怎样一种体验?褚霸回复到:看lua源码就知道啥叫工业级 什么是Lua,我们有必要花一点时间来了解一下。 做数据库性能测试的时候,很常用的一个工具就是sysbench,而且有一点很特别,默认就是使用了Lua模板,有同学说Lua模板是什么,如果告诉你是一门新的脚本语言,很多同学就头大了,当然sysbench也不是甩手掌柜,已经给你配备了一系列的Lua模板,基本能够满足大多数场景的测试,比如OLTP读写,只读,插入,批量插入等模板。
我做事喜欢结果导向,喜欢快速迭代,能10分钟搞定,绝对不愿意花15分钟。但是技术行当,还是得耐得住寂寞,因为很多事情10分钟搞不定,可能100分钟,1000分钟也搞不定,但是不代表我们真搞不定,需要花一些时间,花一些额外的代价来补课。
在做MHA测试的时候,有一个重要的环节就是测试MHA Manager节点和Master节点的网络情况,如果产生了抖动,那么MHA本身提供了一个参数secondary_check来保证,但是如果你的部署环境中是一主一从的话,这个参数就不会起作用了,因为latest slave和oldest slave是同一个库,简单来说,连不上就是连不上了,至于切还是不切,这个还不好说。
生活里的变化蛮多,真是点点滴滴里的体现细节,由此自己也有了一些想法,拿出来和大家聊一聊。 就拿我今天在思考的超市购物来说吧。我们楼下有个物美超市,平日里人也不少,今天去超市,发现人比平常多了很多,原来是因为双十一在搞活动。
很早之前我写过几篇关于MySQL死锁的分析,比如 但是感觉不过瘾,而且分析的都是一些特定的场景,好像还缺少一些举一反三的感觉,所以今天就补上这一波。 MySQL里的锁兼容列表大体是这样的关系,如果第一次看会有些晕,感觉抓不住重点,其实有一点小技巧。
最近帮一些朋友处理了一些Oracle的问题,也从中发现了一些潜在的问题,索性总结出来作为借鉴。为了保证信息的敏感,里面的问题描述可能和真实情况不符,但是问题的处理方式是真实的。
昨天帮一个朋友看了MySQL数据清理的问题,感觉比较有意思,具体的实施这位朋友还在做,已经差不多了,我就发出来大家一起参考借鉴下。 为了保证信息的敏感,里面的问题描述可能和真实情况不符,但是问题的处理方式是真实的。
在大概2个月前,自己给自己订了个学习计划。差不多两个月了,我想大家肯定都忘记了,我还依稀记得,今天拿出来也算是一个阶段性的验收了。 总体来说,有得有失,因为工作的中心和方向,前期需要投入很多精力去做一些基础性的规划和任务,难免在一些技术深度上会有所欠缺。
今天去参加数据技术嘉年华,早些年这个大会是叫Oracle技术嘉年华,我猜后来融入了MySQL的方向,融入了云,叫做数据技术嘉年华,简单来说是把“库”字去掉了,这是大会的方向也是亮点吧。
周末的日子其实很短,有时候我都会有种错觉,每次醒来的第一反应是今天要上班吗?因为时间短,有限的时间总是有很多种过法,比如经典的一睡到底,我知道的朋友最厉害的能从早上睡到晚上。
今天中午花了点时间尝试构建了一个文档知识库小站点,作为一个知识库方案落地的备选。使用的是开源项目Raneto,全面支持markdown的格式。 有些同学可能对markdown的格式有些陌生,如果熟悉GitHub会发现里面大量的文件都是.md结尾的,比如readme.md文件。
MySQL中可以使用编程语言(比如Python)来解析binlog中DML的逆操作来达到闪回的效果,如果数据不多,手工解析也可以。这也是现在大家碰到的很多DML Flashback的一个基本原理。
DBAplus社群年度的收官会议Gdevops在广州举办,我也应邀参加,每次技术大会和交流中,都会有新的认知和收获。今年是社群成立2周年,而这2年也是我个人快速成长的2年,简单一句:感谢DBAplus。
在平时的工作中,我们多多少少会有一些定时任务需要处理,有些是在每个服务器上单独部署,有些是在中控端部署,但是这样有一个缺点就是难以形成闭环,我们不知道我们的定时任务是否执行成功,如果需要做信息统计,这个工作量还是蛮大的。
之前写过一篇Django的介绍,简单部署之后就没有深入跟进了。 Django初探 上周末去广州参加技术大会,在往返的飞机上,自己调试了下Django里面的内容。
DevOps几年前来看,基本都在提概念,这几年很多公司都在落地了,公司里每个自动化运维平台都不好意思。具体落实下来,做得好还是不好,水平也层次不齐。 我们不说自动化运维的意义,不讨论要不要做自动化运维。
晚上从珠江边回来之后,看到一篇文章说,MySQL有几个极限值,一个表的字段最多只有1017个,我看了以后表示怀疑。怎么快速验证呢,我看到文章的时候已经11点了,只有不到1个小时的时间来验证了。
今天下午的时候感觉很微妙,在配置自动化平台环境有些焦头烂额的时候,在一个虚拟机环境中偶然发现了一套Oracle学习环境,因为目前主要精力都在MySQL方向上,很久没有玩Oracle了,这次偶遇就好比老朋友相见,寒暄几句(配置服务),然后问问近况(连上数据库看看),我也拿出了之前写的一些脚本看看。
之前画过一版MHA的故障图,最近和同事做了系统详细的测试,发现了一些问题,有些是预料之外的场景,有些是目前MHA没有更好的保证和实现,斟酌再三做了取舍。
今天有一个朋友问我一个MySQL的建表问题,问题的现象是创建表失败,根据他的反馈,问题比较奇怪, CREATE TABLE XXX ..此处省略260多个字段 `xxxxIsAllowIn` varchar(4) COLLAT...
在搭建MySQL主从的时候,change master是一个关键,如果没有使用GTID的方式,就需要使用偏移量和指定的binlog,每次需要手工去抓取这些信息,感觉还是比较费力,而且偏移量对我们来说就是一个黑盒子,到底递增多少,我们也不知道,只是给我们一个结果,但是搭建了一些环境之后,我突然发现了一些“规律”,比如下面的语句。
写第一篇,意味着还有第二篇的内容,这个也是自己今天偶然发现的问题。同事之前碰到了一个MySQL服务不断重启的问题,究其原因,其实倒还合理,今天的这个问题比较纠结,看起来好像没有直接的联系,问题算是比较诡异。
前几天看到前同事在朋友圈感慨: 年龄大了,越来越感觉时间的不够用。想陪伴更多,想工作更好,晚上想加会班,又怕回家后孩子睡着了又感觉奶奶带一天孩子太累。
MySQL高可用方案中MHA绝地是一个相当成熟的实现。对于数据的切换,其实MGR也能很好的完成,也就是说,数据层面的角色切换已经刻意很平滑的做好了,但是对于访问IP的处理,还是有很大的空间,MHA提供了很多可选的空间来支持。
之前没有认真整理,感觉备份工具就是mysqldump,xtrabackup了,但是如果认真想一想,其实会发现还是有很多其他丰富的功能。 比如数据的逻辑导出,比如某个表的数据(全部,部分)等都可以很方便的实现,这些比那些备份工具来说要轻巧很多,方便迁移。
最近有个需求是升级MySQL 5.5到MySQL 5.7版本,为此我们想了一些方案,比如MySQL级联复制升级,这么考虑主要是基于版本的差异性,尽可能保持兼容。
今天在地铁上看到,各种刷屏。 哦,今天是10月24日了,1024的程序猿节日啊。我的脑海里面自动搜索出来了一首诗,来自青莲居士李白-早发白帝城,所以我会着重分析下这首诗,生活给了我力量,我从工作生活入手来解读,哈哈。
学习的时候我喜欢对比,MySQL和Oracle比,Python和MySQL比,总能有一些收获,也有了新的理解。 今天整理这部分内容的时候,我发现Python和MySQL还是有很多相似之处。
MySQL的字符串函数非常多,以至于有时候我不知道该如何灵活的使用这些函数。 字符串基本信息函数 collation convert,char_length等 加密函数 password(x...
大数据解决方案里面有一个组件是zookeeper,最开始看到这个的时候,脑海里不由得闪现出一个职业,动物园管理员。打开Apache里面的项目介绍,发现和我想的也差不多,看里面的测试目录确实都是各种动物,得管管了。
今天看数据库内核月报,发现一个蛮有意思的问题,就是show binary logs的时候没有任何结果,这个问题的原因很简单,但是分析问题的过程相比是艰辛的,需要在各种潜在的可能中找到那个肯定的结果。
自己码了一篇文章,把精华和内容的改变发在了DBAplus公众号上面,感兴趣可以点击查看。 DBA 3.0时代来了! 原文如下,保留了一些是偏个人的内容,其实我在大早上还去伯克利大学去参观了下。
今天是OOW第二天,人数比第一天多了很多,从安保服务和周围的交通管制能够明显感觉的到。 来点会议中的花絮内容吧 早上Openworld有一个keynote,所以不到九点,会场外的人已经排起了长龙,场外也有大屏幕投影,想听也是没问题,仔细看照片左侧会发现场内惊现“科比”,哈哈。
今天计划去Oracle总部去看看,然后因为是硅谷地区,同时准备去看看Google总部。其实也到斯坦福去看了看,我想和加州伯克利结合起来,会单独推一篇文章。 如果看地图的地理位置,我所在的是旧金山的downtown地区,如果去Oracle总部红木城那边,大概有40多公里。
本来OOW大会是计划10月6日回京,自己想早点回家就选择了5日出发,早上天刚蒙蒙亮,拍了一下downtown的景色,以为马上要离不开了,结果发现后面是一段曲折的旅程。
对于我来说,现在处于一个特殊的状态,就是知道哪些东西是需要的,相对重要的,但是我也很清楚的知道,这些东西是我目前不擅长的。所以为了能够落实自己的想法,同时逼迫自己学习一些原本陌生的东西,其实是一件很有意思的事情,前提是不能把自己逼得太紧,否则除了压力就是各种纰漏。
今天在规划文档知识库的内容。想了很多的方式,也咨询了不少圈内好友。 有了一个基本的思路,我的想法是构建的知识库目录尽可能全面,重合度低,而且能够有很多落到实处。
MySQL中的字符串处理函数非常多,以至于我在整理的这部分内容的时候也眼前一亮,有一种进了大观园的感觉,哦,原来有这个函数,哦,竟然可以这样实现,以前怎么没想到,等等。
记得多年前做Java开发的时候,对于Java Web框架真是非常痴迷,痴迷的一个主要原因就是感觉很神秘,因为还在大学,只会简单的用用,做一个简单demo,从hello world开始,实现一个看起来丑得要命的小网站,所以我也深信,那个网站的用户只有我一个人。
MySQL的高可用方案很多,MHA算是其中最流行的一种方案之一。目前最新的版本是0.57,它分为两部分,一部分水himanager,另外一部分是node. 了解学习一个开源项目,阅读源码是一个很不错的开始,所以MHA就成为了我学习的一个重点内容。
在做一些技术规划的时候,会发现有一些事情需要前置,比如说MySQL里面的工具,如果等到实际碰到了各色的问题再来统一,就比较难了。有沟通成本,人力成本,技术沉淀和持续交付等等的成本,这些最好提前和团队有一个基本的沟通,达成一个共识。
学Python喊了很长时间了,总是因为各种各样的理由搁置,昨天想起来前同事推荐过一本Python的书《Python核心编程》第二版,就火速买了一本,Python的学习也算是个开始了。
以前看MySQL的执行计划,感觉内容有些简陋,平时分析主要就是看是否全表扫描,索引使用是否合理等。基本上也能分析出很多问题来,但是显然有时候会有些疑惑,那就是对于复合索引,多列值的情况下,到底启用了那些索引列,这个时候索引的使用情况就很值得琢磨琢磨了,我们得根据执行计划里面的key_len做一个重要的参考。
今天想到一个问题,如果有一个环境是一主一备架构,根据业务需要做逻辑备份,该怎么规划和考虑。数据库版本为10g,11g 这个问题如果在考虑性能的前提下,我觉得是蛮有意思的一个问题。
在十几年的求学历程中,高中和大学似乎是离我们最近的回忆了,今天和高中同学在一起吃饭聊天,无意中听他说了句,高中毕业已经十几年了,想想虽然还不是昨天那么临近,但是感觉也就近几年的光阴发生的事情。
今天有个网友问我一个MySQL的恢复问题。提供的截图如下。 对于这个问题,在一些断电的场景下还是可能出现的。我首先是要确认是否为线上业务还是测试环境,线上业务来说这个影响还是很大的。