Oracle ACE,《Oracle DBA工作笔记》作者 现就职于国内某互联网公司,擅长数据管理,数据迁移,性能优化,目前专注于开源技术,运维自动化和性能优化。
最近在评估一个开发同事的需求时,发现随着需求的变化,DBA相关的评估工作也会随之变化,同时反射到开发同事那边,通过这个案例也可以看到很多的需求变化,可以从中看出很多的不足和改进之处。
今天参加了DBGeek的技术交流活动,感触还蛮多。也是在一个偶然的机会中,受肉丝(魏兴华)邀请,欣然答应了他们组织的技术分享活动,好久没有动动筋骨,也是跃跃欲试,一来可以总结一下最近的工作情况,二来这种分享会让自己对于我原本有些模糊的工作理念深信不疑。
今天听一个同事讲了下ITIL的内容,从这个主题的方向来说,我还是想好好取取经的。因为这个和基础架构中的配置管理,其中很多比较枯燥,晦涩的概念同事竟然都用非常生动的语言描述了出来,而且里面有很多的小段子,就是生活中的各种有趣的事情或者个人的思考,很多事情竟然闻所未闻,而且考虑问题的角度也有非常大的层次,所以总体来说我对于这次的分享是非常满意的。
对于Oracle Data Guard中的Switchover一般是计划内的操作,自己其实也处理了不少的故障,也算是轻门熟路。复杂的事情简单做,简单的事情重复做,重复的事情用心做,想必很多事情都是这个理吧。
tnsping,作为Oracle连接测试的一个小巧的工具,其实大家已经不陌生了,但是使用tnsping有一个问题,就是连接超时,当然这个和网络的安全策略等密不可分,但是摆在我面前的一个问题是,现在有大量的服务器,每台数据库服务器上都有tnsnames.ora,如果需要判断tnsnames.ora里面的配置是否生效,使用tnsping是一个很自然的选择。
数据库升级的时候有一个很重要的环节就是数据库参数审核,对于数据库参数还是有很多的门道,其中一种就是对于过期参数的处理。 我们可以使用如下的SQL来得到一个基本的过期参数列表。
昨天突然想起了《火锅英雄》这部电影,在剧情之外,我被里面的背景音乐深深吸引,经过一番查找,总算了找到了几首相关的曲子,里面Overhead的Flubirds着实让我感慨万千。
时间就这样滴答滴答又走完了100天,还好中间没有缺勤,今天总结就简单提提太多粉丝数,点赞数之类的,之后我们来点更实际的总结。我会把这一百天的笔记做一个分类整理。 对于这一百天的整体阅读情况如下: 这一百天里关注人数增加了近300人,大部分都是搜索公众号或者点击公众号名称关注的,说实话,我是在最近才意识到原来我几乎没有对外发布过我的公众号二维码。
在学习笔记写到80天左右的时候,我订立了一个学习计划,发现有了计划还是有一些动力,每天写工作中的事情,如果大家坚持一路看过来应该也知道我每天搬砖的心路历程了。不知道对你们的学习和启迪有多大。
关于学习,其实在年会时听CEO过一个721法则,很有感触,即70%的学习经验来自工作,20%来自指导所学,10%来自培训。所以对于系统的培训,只是我们知识体系中的一部分,而且所占比例要低一些,究其原因,我想用实践出真知这句话来解释是最恰当不过了,所以做好本职工作是我们学习进步的基本动力,这个对于我们的工作学习都有一定的指导意义。
其实对于PG,自己总是听圈内人说和Oracle很相似,自己也有一些蠢蠢欲动学习的想法,从我的感觉来看,它是介于Oracle和MySQL之间的一种数据库,具备类似Oracle的功能,兼具MySQL的开源风格。
今天一个开发的同事找到我,说有个问题想咨询一下我,突然想起他昨天让我帮他处理一个工单,他这么一问我才想起来还没做,结果他说是另外一件事,说有个开发测试的环境,数据库报04031的错误,想让我帮忙看看是怎么回事,这种问题刚好就找对了。
今天正在做一个数据变更操作,突然一个开发的同学找到我,看起来比较着急的样子,说想让我做一个数据变更。 当然在这种时候,我正在做的数据变更操作已经被打断了,已经有一些不愿意了,而且还要紧急变更,在没有得到脚本,没有环境,没有脚本说明,对于这种三无要求我一向都是比较排斥的。
今天其实想了很多,生活中其实遇到了很多的困难和挫折,这些都是无可避免。 今天在栈桥上其实也很有感触,看到里面的人来人往,我似乎也读到了一些生活的意义,而我也挺喜欢坐着看着来来往往的人,有些是一家人在合照,有的是情侣,还有些是朋友,有些是一个人。
今天开发的同事找到我说,他们发现一个应用今天应该会同步过来一部分数据,但是今天却没有,所以想让我帮忙看看到底是怎么回事。 对于这类需求也算是轻门熟路,不光维护管理数据,补数据也在行。
今天开发的同学发来一封邮件,希望我帮忙对一个sql语句做一个评估。他们也着急要用,但是为了稳妥起见,还是希望我来审核一下,这是一个好的习惯。 打开邮件,看到的语句是下面这样的形式。
今天身体不适,还是简单写点东西。 不知道昨天是因为饮食的问题,还是劳累的问题,昨天睡觉以后就开始肚子痛,结果挨了2个小时,期间去了几次卫生间,最后还是上吐下泻,这样也好,肚子空了就没有什么值得翻腾的了。
今天想起大学时参与的一个项目,让我突然想起了一些事情,多年之后再来看原来的我,发现其实还是有不少的建议。 那时候是暑假的时间,课程里面专门安排了一个项目实践,因为也没有实际的项目可做,所以也就是根据老师提供的素材来自己选择一个项目,给了三个项目,每个小组是10多个人,当时学软件工程也有些日子了,论逼格的一句话,当时的软件工程教材还是全英文的。
今天想起这件同事处理的一个性能优化案例,当时虽然解决了,但是还是留下了几个未解的问题,和大家一起讨论一下。 首先,这个问题是根据反馈sql响应很慢,已经开始影响前端应用的登录了。
pt工具是非常实用有效的一个工具集,对于诊断常规问题还是非常有效的,相比于Oracle的工具,MySQL中没有那么多复杂的数据字典,在实现方式上相对更加轻巧,主要都是针对日志的挖掘。
每一次退缩之后的努力,都是极大的进步。有句话说的好,努力不一定成功,但不努力一定很轻松。这句话应该是很多人对待事物的态度写真吧。 我就举几个例子来说说我的一些感悟,当然还是不可避免要和Oracle扯上关系,这也算退缩,我以后也要多和其它数据库扯上关系。
突然发现最近忙里偷闲也回答了一些微信好友的问题。有的在公众号提问,有的私信给我。简单整理了一下。 问题1: 之前使用expdp和impdp导出导入数据库statistics时遇到一个bug,无法impdp导入,后来只能不导入statistics,待导入数据后自己收集对象统计信息,但问题是收集的统计信息和原来有些差异,特别是直方图信息有差异,导致sql执行计划有变化,不知到杨总有没有遇到过?又该怎么处理呢? 答: 报错是因为跨版本了吧,有的时候有这种情况,我们生产是不用直方图的。
最近测试了一下PCIE-SSD在数据库环境的迁移和加压情况,IOPS无可置疑,比起机械硬盘确实是高了很多个量级,在数据环境中的IO方面确实有很稳定的提升,目前使用闪存产品系列,看官网最新的发布已经支持6T了,这个着实让我想起曾经的U盘,几十M,几百兆都曾经风光一时。
目前计划对跨平台的数据库环境进行迁移,一来降低运维成本,二来更加可控。其实对于很多机器来说,如果机器跑了很多年,一直没有重启过,那么时间长了,一个直观的感受就是稳定,这也是小机口碑远远好于PC的一个重要原因吧,但是如果机器有一天出了问题,那么可能就会让大家坐立不安。
最近在工作忙碌之余也帮几位网友查看了几个问题,有一个问题让我印象挺深,其实也可以分享出来作为一些参考,问题之外还是有一些值得借鉴的地方。 首先是在周末的一个晚上,白天已经比较累了,大概在晚上11点左右,就准备收拾收拾睡觉了,但是突然qq闪动起来,有一个网友发消息给我,在反复问我,在不在不?看起来还挺着急。
今天突然想起了几句话,由此联想到了Java Servlet中的get和post方法。 对于Servlet其实自己也算是清门熟路了,get和post这是http协议的两种方法,而在servlet开发中,以doGet()和doPost()分别处理get和post方法.这两个方法有什么区别呢。
我们有了常规的知识体系,更多时候会感觉繁琐,或者感觉力不从心,所以我们就会有投机的心理,一旦发现存在一些相关的攻略,看起来可能会颠覆原本的认知,我们就会更加欣喜。 比如前几天我无意中看到了下面的速算攻略。
最近测试了使用datapump来迁移百G数据的场景,因为实际需要,需要把Unix下10gR2的库迁移到Linux下11gR2,所以这个过程相对来说牵制也较多。考虑了多种方案,最后权衡后决定使用datapump来迁移。
今天处理的一个问题比较绕,花费了我不少的时间来分析,当然最后发现是拜拜忙碌一场空,还是有一些历史原因。 大体的环境情况如下,有一台线上库OLTP,其中也有会自己的存储过程,job,结合起来处理一些数据,当然作为统计系统而言,目前有两套统计系统STATDB1,STATDB2,都哟裇相关业务的划分,两者会有一些交集。
orion是一个做IO测试的小巧工具,可以测试随机读写,模拟混合负载等。 在oracle 11g已经自带包含了这一工具,无须额外的安装了,为IO方面的测试带来了不少的便利。
今天下午的时候,有一位开发同事找我,说有一个技术问题想请教一下。 当然正如他所说,这个问题比较奇怪,而且已经影响了他的测试流程,他说有一个表查看对应的表空间但是显示为空,所以插入不了数据。
本来打算去看《垫底辣妹》,因为豆瓣评分还是很高,但是全程日语,中文字幕,我担心老妈吃不消,而且媳妇说太励志了,所以就转看《奇幻的森林》,看影片评分很高,比《火锅英雄》还高一个点,我想应该就是这部片子了。
Oralce中的命令非常丰富,oerr命令是一个不错的辅助工具,很多看起来没有眉目的错误代码,可以让DBA很快定位问题的缘由,我们根本不需要去记有哪些ORA错误,除非那些错误已经完全和你的工作分不开。
今天想整理一下自己的思路,想想接下来的这些天,笔记该怎么写,需要写哪些内容,大体想了一下,发现有计划会让自己更有动力。 暂且按照这个计划来实施。对于数据库也需要扩展一些新的思路,当然现有的11g,12c的更多特性也需要加深理解,多实践。
最近帮助业务部门解决了一个技术问题,因为发现有数据问题需要对存在问题的数据做分析。当然一个难点就是把数据给筛选出来,当我看到他们提供的语句,在备库做了简单的数据评估之后,发现数据量比想象的要多,大概有200万条左右的数据,而业务部门手头有一个excel文件,需要和这些数据做一些比对,当然停了下筛选逻辑还蛮复杂,最开始建议他们数据量太大,使用excel还是可能出问题,但是业务部门认为应该没有太大的问题,他们会有excel中的公式等来处理,想想也有道理,就提供给了他们一个近40M的文件。
在周末的下午,看父母待在家里也没其他的安排,就买了几张电影票,拉他们去看电影,和父母看电影,其实影片的选择还是有限制的,首先不能是外国片,中文字幕的也不行,之前在我哥家里看美国大片,为了突显影片效果,专门把窗帘拉下来,结果我们看得津津有味,一转头,老爸已经睡着了,老妈看起来看得很带劲,但是好像关注点和我们不一样,有时候搞笑的镜头有一些背景文化,给她解释一圈,片子已经演过去好一段儿了,所以一般的外国片让他们看可能效果不太好。
第二次线下沙龙在今天成功举办,从疲惫之中缓过神来,感觉还是需要说些什么。 有了第一次的沙龙举办经验,第二次相对来说就从容了许多,这其中离不开社群里热心的小伙伴帮助。
今天最终还是有些小感冒,在家休息,也看了好几集的《黑名单》,也算是给自己放个小假。然后不知不觉就想起最近的一些事情。 记得前几天看到微信群里大家发的一张貌似印度人摊饼的小视频,看起来还是蛮有意思,硕大的炉子,印度人坐在地上把薄饼直接摊在旁边的炉子上,翻翻转转倒也是自如。
最近有朋友在微信公众号后台留言提了一个问题,问题如下: 执行计划中,并列的两条操作比如并列的两条table access full,上层没有关联操作比如hash join,这是什么意思? 但是两张表在sql中是有等值连接的,为什么执行计划没有提现连接方式呢? 然后他过了一会附了一张操作截图。
白天时不时闪过一些年头,虽然现在离家很远,扫墓什么的不现实了,但是有什么亲人可以在我内心寄托深深的思念,我内心非常怀念的还是我的爷爷,说是爷爷,其实应该叫外公,没学会太多礼数,结果为了顺口爷爷奶奶一起通叫了。
关于数据库的启停,以前一直认为是最简单,最没有技术含量的任务,但是接手的环境越多,越来越证明我最初的想法是错误的。数据库的启停是一个敏感操作,重启一定是有着特定的原因和需求。
之前写过一篇 物化视图刷新结合ADG的尝试,想必绝大多数的朋友看完再没有深究,其实也有些朋友做了建议,让我尝试prebuilt来做。这种数据迁移方式用的比较少,但是个人感觉还是很不错的。
最近积累了几个问题,我就凑在一起做一个统一的答复,微信后台的留言回复超过24小时就无法回复了,有时候看到的时候已经过了时间点了,实在抱歉。 有时候有些朋友是通过qq或者微信来问我问题,有时候运气好能够马上定位,感觉非常侥幸。
最近碰到了一个比较奇怪的数据库连接问题。问题的起因是做一个数据整合的时候,把服务器B的防火墙信息都拷贝到了服务器A,迁移的过程都很顺利,是一套开发测试环境,迁移完成之后,从应用的反馈来说都没有发现问题,过了几天有个开发的同事找到我说,她现在连接数据库的时候总是有超时的错误。
对于数据整合式迁移,基本就是小霸王的二合一,四合一,八合一这样的节奏,把几个尽可能相关业务的数据库中的数据整合到一个库里。彼此还是独立的schema,倒也是相安无事。 在这种整合式迁移中,比较让人纠结的部分就是性能不是排第一位,而是迁移前的准备比较琐碎。
对昨天提出的问题做了一个简单的分析和排查,也算是有了一个交代,上一篇文章在 dg broker校验失败的一个奇怪问题 http://blog.itpub.net/23718752/viewspace-2064499/ 我查看了最近的日志,发现在半个月以前有一行日志引起了我的注意。
前几天碰到一个看起来有些奇怪的例子,今天抽空把分析过程整理了一下。 有一主一备的一套测试环境,之前环境在我手里,交给另外一个同事之后,重新搭建了dataguard,我检查了一圈,发现都没有问题,然后过了一个星期的样子,无意中再次查看的时候,发现这个备库竟然在dg broker中的状态是disable,当然我也不能看到这个现象就反问同事,说当时dataguard怎么有这种低级操作问题。
11g中的ADG特性本身已经非常有特色,促使很多对于10g中不太灵便的备库升级到11g,对于DBA是一大福利,那么还有一个福利就是snapshot standby了。 在平时的数据更新操作中,DBA可以做好sql审核,如果对于复杂的,繁多的变更,如果有些变更有一定的依赖,数据变化情况比较大,评估有难度,很多问题单纯在测试环境还发现不了,到了生产就是事儿。
今天喝了点咖啡,突然发现不光没精神起来,反而头晕脑胀,完全不在状态,好吧,一天的日子又过去了。虽然处理了几个遗留问题,但是还是容我说一说今天的一些感受,就是目前感受到的隐隐的危机意识,莫名其妙的,自己有了一种深深的危机感,也许这也是好事吧。
今天看到一个报警信息,大体是CPU使用异常。 ZABBIX-监控系统: ------------------------------------报警内容: CPU utilization is too high ---------------------...