Oracle ACE,《Oracle DBA工作笔记》作者 现就职于国内某互联网公司,擅长数据管理,数据迁移,性能优化,目前专注于开源技术,运维自动化和性能优化。
现在我看待一个技术,总是会换一种角度来看,在他能实现什么的基础上,我更喜欢看他不能做什么,为什么不能这么做。 比如MySQL GTID在5.6试水,5.7已经发展完善,但是还是有一些场景是受限的。
今天突然想起一个问题,那就是对于ibdata的恢复,如果我们简单模拟一下,就会发现还是蛮有意思的。 首先我们得到两个参数值,一个是刷脏页的指标,另外一个是数据文件的目录。
参加了社群DBAplus组织的活动,其实还是蛮有收获。很多具体的想法谈不上,其实还是自己的技术沉淀不够,但是还是有了一些思路和脉络,这是好事。还有一个好处就是又见到了很多新朋友,老朋友。
今天和大家分享几个工作学习中的几点收获。 首先是对于学习,一直以来,对于internal的东西我都是抱有很大的兴趣,有时候会有些过头,因为回过头来在工作中难以联系和应用起来。
最近看了很多阿里同学的MySQL文章,阿里内核同学的文章一言不合就上代码,不光让我们看到了结果,还能有代码可读,如果碰到了类似的问题,这样的解读确实是很难得的。
周末总结了下关于MySQL学习的一些思路,当然还有很多需要补充的地方。我是侧重从优化的角度来总结的一部分内容,所以数据迁移,数据管理的部分就和很多地方糅合在了一起。
自MySQL 5.6开始,在索引方面有了一些改进,比如索引条件下推(Index condition pushdown,ICP),严格来说属于优化器层面的改进。 如果简单来理解,就是优化器会尽可能的把index condition的处理从Server层下推到存储引擎层。
Oracle 12cR2中有一个不错的特性,那就是Active Data Guard会话保留,原本的叫法是Preserving Active Data Guard Application Connections 怎么理解呢,比如在Active Data Guard上的连接会话,在switchover的过程中会话连接会始终保持不会中断。
如果让你写一个简单牛叉的SQL,数据库类型不限,你会写出什么样的SQL语句。 Oracle 如果是Oracle,我就写个drop table dual; 这个SQL看起来很简单,包含的信息量还是蛮大的,首先对于dual表你得有一定的认识和了解,而这个视图和一般的数据字典不同,如果删除之后,直接会导致数据库不可用。
以前写过一篇Oracle中关于IP地址定位的问题分析,最后引申出了一系列的问题。当时问题紧急严峻,抓取了10053事件定位源头,想出了一个解决妙法,还自鸣得意了下,结果忙活完之后看看行业里的解决方案都大体如此,我的心凉了半截。
在MySQL的表结构设计中,突然想起来几个地方碰到的问题比较多,大体来说一个就是字符集,一个就是数据类型。 而字符集和数据类型结合起来,就有一个蛮有意思的细节,那就是行长度的问题。
如果有一套环境,业务优先级很高,服务器的服役时间比我工作时间都长,现在需要迁移到X86平台,而且经过评估,如果能够升级数据库的软件版本,可以使用到更多的特性和功能。
在青春萌动的时候,我非常喜欢郭敬明的文字,就如同看现在的年轻人喜欢《小时代》一样不可理解。郭敬明的书我记得有一篇得叫做 《一个人》,大体讲的就是几个玩得非常好的朋友,最后因为各种各样的原因,最后各奔东西,随着时间的推移,而慢慢生疏,最终成了陌生人。
最近总是看到很多高考的信息,但是信息相对较散,我一直没有看到一个完整的信息,算了,还是自己整理一份。 首先高考的试卷不是一张卷统一,而是分了很多的类别。
最近看到Percona的工程师Agustín写了一篇博客,是关于MySQL触发器和可更新视图的一个观点,具体链接可以参考 https://www.percona.
前些天处理了一个需求,当时的数据库环境是Oracle,我算是想尽了Oracle相关的方案,而且在问题的处理过程中,还在不断的琢磨,如果失败了还有什么其他的方案。
1200多天,听起来是一个蛮吉利的数字,也伴随了我1200多个日日夜夜,无论是出差还是节假日,我都尽量腾出时间来写一些东西,就这样不光有技术博客,还有了游记,生活感悟和日常琐事的思考。
今天看到Franck Pachot? 发了一个Twitter,意思是Oracle里的SQL还能这么写。猛一看确实让人有些意外。 禁不住诱惑,自己也尝试了一番。
今天处理了一个蛮有意思的案例,正如我给开发同学所说的那样,方案有很多,但是我们需要明确需求之后,找到一个最合适的需求。 业务同学反馈,数据库中有一个表数据量很大,因为要做一期活动,需要近期的数据,以前的旧数据可以考虑清理。
MySQL Shell是在官方版本5.7.12推出,工具的初衷本身都是为了解决一类问题,想必官方从很多方面了解到工具的使用情况,支持的开发语言太多,众口难调,所以这么个命令行工具就出来了,从它的推出,足以看到MySQL的格局,它是把很多能做不能做得都揽过来自己做了。
今天就说点最近和我相关的一些事情吧。简单想了下有近十多件事情想和大家说说。人的想法也是如此奇妙,说不定明天的一些想法还是会变,但是有了方向也就不再迷茫。 内容上我是不会刻意做硬广软广,人生如戏,重在演技,套路得人心实在太累,我就是说说这么几件事情而已。
一直以来,我感觉汽车摇号真是和我无缘,尽管早已突破了社保年限的限制,但是我的硬伤是没有驾照,所以我连摇号的资格都没有。而我一直以来的借口是晕车,但我这个借口在摇号困难的北京也逐渐站不住脚,所以在各种计划和催促下,总算迈出了第一步,从5月13日开始的学习到6月13日考试结束,整整一个月的时间,真是让我感触良多。
自Oracle 12.2发布以来,就会面临两类升级的需求,一类是12.1升级到12.2,毕竟12.1和12.2的发布时间间隔有5年左右的时间,这个时间段内已经有一些线上业务使用了12.1,现在升级到12.2的意愿就会更加强烈。
前几天,我和系统运维的同事处理一个看似诡异的问题,他找到我说应用服务器启动的时候报了DB的Error,但是错误信息有限,他也没法完全定位到错误的原因,所以就希望我来帮忙看看这个问题是怎么回事,怎么解决。
昨天测试了一下mysqlpump,今天来把剩下的补充完成,算是一个小的系列。 mysqlpump 在MySQL 5.7中做逻辑备份恢复有了一个新的工具mysqlpump,如果你掌握了mysqldump,那么使用mysqlpump就是分分钟的事情,因为很多参数都是很相似的,可以理解它是mysqldump的加强版,一个亮点就是有了并行的选项,使得数据备份的性能更加强大。
在MySQL 5.7中做逻辑备份恢复有了一个新的工具mysqlpump,如果你掌握了mysqldump,那么使用mysqlpump就是分分钟的事情,因为很多参数都是很相似的,可以理解它是mysqldump的加强版,一个亮点就是有了并行的选项,使得数据备份的性能更加强大。
今天又收到了一条报警的信息,看起来很常规,但是后面的故事如果你做了分析就会发现其实本身并不平常,我觉得我得出手了。 ZABBIX-监控系统: ------------------------------------报警内容: PGA Alarm ...
今天突然想起来,我微信里还真收藏了不少有意思的视频和文章,我也筛选一下,也和大家交流交流,当然基本都是和技术无关的,每篇文章我也写出一点感想,表明我是认真对待这个事情的,把文章读完了的,下列的文章排名不分先后,是按照我收藏的顺序来。
今天测试了一下12c中的PDB还原恢复,里面还是有不少的差别。 我就简单模拟了一个破坏场景,是在一个未打开的PDB tcymob0从中删除了数据文件usres01.dbf,然后尝试备份恢复。
前段时间我的浏览器出了点问题,导致之前收藏的很多博客网站,链接都没了。当时还很懊恼,作为一个搞IT的,眼睁睁的看着自己电脑上的数据找不到,自己还什么都做不了,现在想想也是给自己做一次归零,因为收藏的越多,内容越多,看的几率越低。
MySQL里的mysqldump无疑是大家使用最为广泛的备份恢复工具了。这样一个工具使用起来功能非常丰富,很多功能几个参数组合起来就能够轻松实现了,我就简单列举几个不错的点。
周末了,放假了,想必大家都出去玩了吧,我呢还是在忙着学车,忙着陪孩子,忙着准备点自己的事情,当然每天的惯例还是有的,今天聊几点想法,如果你是一个容易纠结的人,可能对你有帮助。
Oracle 12c里面的PDB迁移还是有很多花样的,玩法很多,如果想达到一种平滑方式的迁移,克隆远程PDB也是一种方法,保证网络畅通,即可远程克隆PDB到指定的目标容器数据库中,当然这种方式还是推荐数据量不大的PDB。
今天看JL(Jonathan Lewis)的一篇文章,真是费了不少的脑细胞,玩Oracle几十年的老司机,看问题的角度和深度果然不一样,当时看他的大作《Oracle核心技术》就花了我不少时间,还没有看完,一本薄薄的书能够蕴含如此的能量,做技术到了这个火候,让人深深佩服。
之前花了些时间做了Oracle 10g,11g,12c参数的差别,其中有一个参数很有意思,在不同版本代表的含义还有所差别。就是sec_case_sensitive_logon。
古希腊哲学家普罗泰戈拉说道:人是万物的尺度。在人工智能时代的今天,这句话更有深意,已经不是单纯的抒情了。 今天是AlphaGo和柯洁的第二场比赛。在谷歌DeepMind CEO Demis Hassabis的Twitter直播了整个过程。
性能监控中的很多数据都是根据时间维度来生成的,就算是很少的几台服务器,如果设置了大量的监控项,每天的数据量也是很客观的,再加上是成千上万的服务器,这个量级就很大了。
今天在下班前帮同事处理了一个看起来很有意思的问题,虽然知道了问题的方向和大体的原因,但是当时因为时间原因还是没想到如何复现这个问题,晚上回到家,收拾收拾,打开电脑,反向推理,求证,测试,重现,于是才有了这个问题的完整解读。
一直以来对于MySQL的存储过程性能还是颇有微词的,说实话够慢的。有时候想做一些对比测试,存储过程初始化几万条数据都得好一会儿,这功夫Oracle类似的测试早都做完了,今天就赶个晚班车,把这个没做完的任务完成了。
今天和同事聊了聊技术的事情,聊到BAT里面的一些高大上的系统和设计,相比总是会有些差距,不过像那样体量的公司知识沉淀很深,所以能够做好我们力所能及的事情,把它细化做好,也是一种进步和改进。
我在8年前去面试程序员的时候,一个不大的公司,里面的开发主管接待了我们,给我的题目就是写一段程序模拟生产者消费者问题,当时可把我难坏了,一下子感觉自己的知识储备竟然如此的匮乏。
按照自己之前的计划,我觉得得看看关于开发的东西了,因为我对于并发,锁的认知总是有一个局限性,自己也在地铁上做了些功课。有了这个想法,再有拿起书的勇气,那就是一个开始了。
母亲节到了,还是个周末,想必朋友圈都是各种祝福刷屏了,就一点,打个电话吧,和没打的同学想比,这个至少比发朋友圈效果来得实在,至少你亲自告诉她了。 而我们现在也是上有老,下有小,所以今天也应该是孩子妈妈的节日,孩子还太小,说不了,那我们就简单表个态吧,发个红包啥的。
今天和同事一起看了一个问题,她在一个主从环境中发现了数据不一致,存在主键冲突。 show slave status的报错信息大概是下面的样子。
一直以来我们想要推进内部的自动化系统,但是总是会遇到各种各样具体的问题,有时候我们准备好了,但是总是会有一些因素的干扰,再加上工作时间的安排,有些事情就一拖再拖。
我们在搭建MySQL环境的时候,一般都会按照建议的标准规范来做,比如拷贝mysql.server到自启动目录下。 cp -rf $basedir/support-files/mysql.server /etc/init.d/mysql 然后设置MySQL自启动的服务,配置完成之后就可以运行命令service mysql.server start 来启动MySQL了。
和女儿分别了一个长假,中间间隔了一天,然后又是一个短假,突然发现回来之后她对我的称谓一下子变了,白天叫我小狐狸爸爸,晚上叫我乌龟爸爸,好像下午还叫我猫咪爸爸来着。
最近几天发现游记的笔记越来越难写了,有些话题会用2个甚至3个多小时的时间来准备和整理,我还是希望能写点有用的东西,所以还是值得的。 今天是在佛罗里达的最后一天行程,明天就要开启回国模式,先得坐飞机到华盛顿机场,然后再转机,中间只有1个小时的时间,需要马不停蹄的奔向另一个航班到北京,想想就亚历山大。
转机换乘,一路向南 按照已有的行程计划,我们在早间需要从newark机场换乘,坐飞机从北边换乘到南边佛罗里达的Tampa。 昨天在开始观看话剧前,远远望去,纽约是这样一个大都市的感觉,眼花缭乱的广告和行色匆匆的路人。
今天分享的内容较多,我就分为一下几个部分吧。 内容量很大,现在每天也就睡4~5个小时,一来是倒时差的副作用,二来是写文花的时间会随着内容量变大而变长。 目录 去往纽约前的临时拜访前往纽约特殊的午餐在帝国大厦俯瞰美国全景去往时代广场古老落后的地铁走进华尔街 华尔街附近看到的一些其他细节 时代广场附近的晚餐 晚餐后的文化大餐 匆匆夜归人 之所以要写这个小节,是因为这个部分是一个很特殊的体验,我们在早上出发前临时拜访了一家天主教堂。