Oracle ACE,《Oracle DBA工作笔记》作者 现就职于国内某互联网公司,擅长数据管理,数据迁移,性能优化,目前专注于开源技术,运维自动化和性能优化。
对于dataguard说,switchover,failover是一种互补可选的容灾解决方案。但是对于这种容灾思路还是存在着一些实践中的细节需要,从数据层面而言,只能是最大程度保证了数据的不丢失,但是数据切换过去了,权限,配置这些信息还是需要考虑的,如果切换过程很快,收尾的补充工作很慢,那么总体来看切换的时间就被拉长了。
最近几天都非常的忙,当然也得给大家带来一些有意思的东西,弄完问题也是翻箱倒柜,发现能拿出手的就是8年以前自己写的一点心灵小点滴了,看着这些文字,一下子让我回想起青葱岁月。
之前分享了第一篇 使用shell批量监控磁盘坏块(一),今天来简单说说这个需求的实现内容 。 首先主要思路是通过中控的机器来发送监控的细节,然后返回结果。 首先就是我们需要有一个服务器列表,里面会有这些需要的元数据信息。
首先要说推荐,我这些推荐的日本电影自己绝对都看过,而且有些看过不止几遍,不过说来惭愧,现在这几部电影都不在我的电脑和pad上了,因为前段时间因为误输密码看到了苹果灾难性的小苹果,然后就稀里糊涂从ios的老版本直接升级到最新版本了,结果现在因为版权,很多电影已经看不到了。
今天来说几个问题,一个是对昨天《让我焦灼的四个问题》的升华,不能起博眼球的题目,技术分析给大家兜底了,你们看看有没有类似的问题。 还有几个小问题说说今天的感受和网友的问题解答。
之前写了一篇 《最近让我焦灼的四个问题》,既是感慨,也是无奈,既是记录问题,也是鞭策自己,当然只是吐槽,抱怨是没有任何意义的,所以我更新第二篇,这些问题在近些天都得到了基本解决。
最近有不少朋友留言或者微信问我一个问题,出乎我的意料,问题竟然都是很相似的,所以我统一答复一下。 之前写了一篇文章 一个清理和查询都要兼顾的简单方案,看来很多朋友还是很关心这个分区索引中的唯一性约束是怎么建立的。
今天在琢磨写点什么,突然感觉应该给大家一些更实在的干货,技术之外其实还有很广阔的天地,这方面恰恰是我缺乏的,但是别人有,而我也是一个比较挑 剔的技术宅,对于好的深入分析的文字,我都会牢牢记住,这不,说到很多IT标准和各种行业规范,有时候感觉会有些冗余,但是背后付出的可能是时间考验下的 灾难,生命来逐渐演进。
最近有一个高中同学问我一件事情,就是他们目前使用excel需要经常查很多数据,但现在使用excel的筛选功能感觉比较费劲。想问问我有没有什么改进的方法,对于我来说,这种情况下,我会很自然的推荐他使用数据库,而且如果可行我会推荐使用Oracle,可能这个思路听起来也不太好,主要是我从下面几个方面来考虑。
今天帮一个朋友看一个pl/sql的问题,他已经钻到一个死胡同里列,可能明眼人一看就知道哪里有问题,但是当局者迷,所以我抽空看了一下这个pl/sql块。 pl/sql的内容大体如下: declare TYPE new_type IS TABLE OF VARCHA...
今天的内容可能会让大家失望了,是最近准备在着手解决的几个问题,目前都是无解,虽然问题有临时的解决方案,但是感觉还是快找到原因了,结果还是让我不够满意,有些问题刚刚碰到,还在观察之中,有些问题准备处理,但是老是感觉忙,CPU老是负载高,这个得反思工作效率,是不是在干有意义的事情。
之前写过一篇通过shell来监控磁盘坏块的文章 http://blog.itpub.net/23718752/viewspace-1872978/ 从使用情况来看,也确实发现了一些坏块很多的问题,这也给我们的工作带来一些清晰的指导。
今天收到一封报警邮件,这引起了我的注意。当然过了一会,有收到了CPU使用率恢复的邮件。 报警邮件内容如下: ZABBIX-监控系统: ------------------------------------报警内容: Disk I/O is overload...
最近和开发应用的同学在讨论一个需求,目前他们碰到了一些性能问题,想让我来看看是否能够从数据库的角度有一些解决方案。 假设表为消费记录,简称service_details,这是一个普通表,目前这个表数据量很大,需要定期去删除一些过期的数据,至于过期的标准先暂时按照两个星期来算。
今天看到一条报警短信,提示是某个表空间的问题。 ZABBIX-监控系统: ------------------------------------ 报警内容: Tablespace Usage warning ------------------------...
有时候出现了环境问题,对比是一种很好的方式,如果对比得当,可以避免反复的出现问题,可以根据对比的情况推理出一些可能出现的情况或者问题。 如果对比不当,很可能得出错误的结论。
新年了,先祝大家新的一年身体健康,万事如意。我就随便聊聊我的想法。 身体健康 这句话可能在奔三的道路上格外重要,自己以前也从来没有注意过养生休息之类的,前段时间忙晕了,有时候吃完饭就直接躺床上一躺睡一会,如此一来,倒一直也没感觉到不舒服难受的,但是在前段时间的体检中就有了轻度脂肪肝,让我汗颜。
今天碰到一个奇怪的小问题,看起来是一个非常简单的问题。 我先说一下问题背景。有一台DB服务器,因为需要搭建备库,现在找了一台已有的机器临时用一下,这台临时的服务器上已经安装了Oracle软件是11.2.0.4.0,而我们需要安装的备库版本是11.2.0.3.0所以为了兼容,所以需要在临时的服务器上再安装一套Oracle软件,把11.2.0.4的ORACLE_HOME切换过来,直接从主库拷贝了安装目录,开始克隆安装。
记得之前在一半技术一半生活中分享过一个设计,因为业务的需求,为了提高业务的处理效率,采用了根据业务的拆库拆表的方式,类似下面的图示。 开发团队也很给力,帮我们协调了好的机器,加了内存,也在新业务2的环境上同步了表结构,抽取了部分数据,然后业务2就开始了紧张的测试, 通过这几天的测试,发现系统的性能逐步稳定下来。
今天碰到一个有些奇怪的问题,但是奇怪的现象背后都是有本质的因果。 下午在做一个环境的检查时,发现备库是在mount阶段,这可是一个11gR2的库,没有ADG实在是太浪费了,对于这种情况感觉太不应该了。
今天和开发的同事讨论一个问题,他们说source 1的环境中存在一个表,现在希望目标环境target 1和target 2中都需要用到这部分的数据。 对于这个问题看似处理也比较常规。
昨天在睡觉前接到了一条报警短信,本来已经疲倦的身轻如燕,但是看到报警,还是警觉了起来 ZABBIX-监控系统: ------------------------------------报警内容: DG_issue ----------------------...
今天早上开发的一个同事找到我说他早上做了一个统计查询,但是感觉速度很慢,已经过了一个小时了还没有反应。想让我看看是什么情况。 我通过v$session查到有一个会话确实已经持续了近一个小时,查看sql语句是一个create table select * from xxx这样格式的语句。
今天有一个同学问我一个问题,因为白天比较忙也没有在意,在下班后坐地铁的时候抽空看了这个问题,感觉还是蛮有意思的。但是当时也没有任何答案,就准备自己回去好好实验一下再做答复,至少不能敷衍别人嘛。
数据库的重启看似是一件非常简单,没有技术含量的活,这是我以前说的话。而这句话简直是戳中了我的痛点。这种活真是太有技术含量了,高深到让人需要注意太多的东西,需要做非常多的前期功课。
今天正在处理问题,突然收到一封邮件,提示mongo的一个副本集出现了问题。邮件内容如下: 当前状态:PROBLEM 事件编号:11187790 发生时间:2015.
记得在哪一天读到了这样一个段子, 有一天,朴树的妈妈非常为难地问他,你要不要去饭店端个盘子?朴树才忽然发现,自己已经在家里白吃白喝很久了。 你可以理解这是一个段子,心灵鸡汤,励志神曲。
前几天一个开发的同事来找我咨询一个问题,说是咨询,其实是开发的同事也不是非常清楚里面的逻辑,因为历史系统,历史原因,各种原因吧,所以我也是带着试试看的态度来帮助了这位同事。
硬件的监控其实还是蛮重要的,这个部分在嘉年华中也着重强调过,不过做起来确实还是有一些难度,我们也尝试了一些方法,最终准备两条腿走路,一边使用中控的方式来统一监控管理,同事考虑把硬件监控揉入zabbix的监控体系之中。
今天开发的同事下午反馈给我一个问题,说有操作直接卡住了,听这个描述,感觉很可能是查询慢了。 于是连接到环境中,查看了一下正在执行的sql语句情况,发现下面的语句已经执行了一段时间。
在几天前说过关于db link分配权限的问题,当时也折磨了我好一会儿 http://blog.itpub.net/23718752/viewspace-1869425/ 大体的情况还是在118的服务器中去访问128中的某个表的时候存在一些访问的问题,最后是重建了一个public的db link得以修复,当时对于这个问题的临时处理也是一波三折,还触发了一个oracle的bug,也算是有惊无险。
今天下午有一个紧急需求,是辅助业务部门做一个紧急查询,既然说紧急查询,那么肯定业务上需要加急处理,那么很快就需要找到我们DBA来帮忙了。 需求的情况是,需要根据某一个用户的标识(比如手机号)来定位对应用户的id,可能同一个身份证号,可以注册多个不同的id。
最近其实已经琢磨了不少的事情,有时候恨不得是十分钟干九件事情,但是我还是有些不满意,因为我似乎很多事情没有按照计划来做。所以我要吐槽一下。先来吐槽软文 最近在朋友圈里看到不少的技术文章,有不少每每读完都有种让人伤神的感觉,因为有些文章看起来标题很丰富,但是看内容想看最后的结论,找不到,与其这样还不如多看几个段子给自己消遣消遣。
昨天接到一个开发的需求,内容看起来非常简单。 申请数据库192.168.1.118:1522:TEST下用户APP_TE_FLOW_128赋予对表testore_log的查询权限。
今天收到报警邮件,提示在短时间内DB time有了很大的抖动。报警邮件如下:ZABBIX-监控系统: ------------------------------------报警内容: DB time is too high ----------------...
在sql调优中使用dbms_sqltune是一个很高效的工具,如果说awr发现了性能问题sql,addm可以给出调优建议,sql monitor能够监控性能问题sql和执行计划,那么dbms_sqltune就是最后的优化顾问了,它给出的建议是经过深思熟虑的。
oracle的ADG那是自不必多说,用存储圈的话说,现在存储正在从被动被动变为主动,但是总体上是被软件抢,RAID被ASM抢,快照被Flashback抢,DR被ADG抢。
DBA和开发都是两个可爱的团队,如果合作起来,那战斗力可是杠杠的。如果合作不愉快,那就是一件简单至极的事情都能扯皮几天几夜,而且还解决不了。 今天出公司的时候碰见一个开发同事,因为最近和开发同事打交道太多了,我都分不清到底他到底是哪个team的,然后就迷迷糊糊搭上了话,然后简单问了几句话,发现我潜意识里认错人了。
今天写的这些感慨必然会被人各种喷,不过决定先留下来,过一段时间再来看看,看看自己到底有了怎么样的变化。 每天都在大清早赶着地铁开始了新的一天,以前还能够有空间翻翻纸质的书,现在看手机的空间都很紧张。
今天同事让我帮一个忙,说现在有两个环境中的一张表数据不一致,已经造成了一些数据问题,他们已经排查了一圈,最后发现是一张表的数据问题导致,希望我来帮忙协助一下。 他们提供了详细的源库,目标库的链接,看起来一起都明确了,那DBA需要做的事情就很明朗了。
最近在做一套MySQL环境的数据迁移,需要把一部分数据从一个站点迁移到另外一个站点,新站点是一套全新的环境,对于MySQL的安装采用了同事建议的二进制方式。当然安装的过程比起Oracle的安装看起来要简单很多了。
问题的背景是这样,以前学习oracle 10g rac的时候在rhel 5上安装,真是快使出吃奶的劲了,前前后后忙活了一个多星期,配网络,配共享存储,修改vmware的配置文件,结果在root.sh的部分发现认证系统是rhel 4,rhel 5中还需要手工去修改一些脚本内容才可以,要不总是在root.sh的时候出现很奇怪的报错。
在学习Oracle的时候,必然会接触到sql解析的过程。这个过程大体是这样的步骤。 1.对sql的文法检查,查看是否有文法错误,比如from,select拼写错误等。 2.在数据字典里校验sql涉及的对象是否存在。
最近做硬件巡检,发现一部分硬盘出现了坏块,同事就帮忙去协调处理这个事情,晚些时候接到了现场工程师的电话,问我可以不可以换,简单确认是raid5的盘。所以只能一个盘一个盘来换。
之前写了两篇关于DBA和开发同事的一些代沟,产生了一些共鸣,本身写这个的目的就是能够让DBA也试着从开发的角度来理解问题,开发同学也能够多学习一些DB的知识,DB不是一个黑盒,不清楚不了解很容易出现问题。
最近这些天有一台服务器总是会收到剩余swap过低的告警。 邮件内容大体如下: ############ ZABBIX-监控系统: ------------------------------------ 报警内容: Lack of free swap space on ora_test_s2_yangjr@10.
有一个环境是10gR2,一主两备,因为10g的备库还不是active,所以有一些查询的需求的时候,我们还是会打开相应的窗口时间。 开发的同学需要做一个大查询,数据只能全表,而且还有order by,势必会消耗大量的temp空间,这个时候充分利用备库就是好一些,有一个备库平时也没有用过,今天就用这个备库来完成查询需求。
今天突然想起前段时间学习的一篇博客,是oaktable的Charles Hooper所写,链接为: https://hoopercharles.wordpress.com/2010/02/19/what-is-the-meaning-of-the-cpu-column-in-an-explain-plan/ 自己也趁机消化了一下。
今天继续去嘉年华充电,也是忙忙碌碌从各个会场间穿梭。对于我来说,Oracle和MySQL都想多听听。也是有点贪心啊。 早上有杜伟业大师的讲座,不过从我的感觉来看,应该能够听明白的应该不多,因为SQL Optimizer这个部分着实不是很容易理解,也和大师讨论过,这个部分需要非常熟悉优化器本身的工作情况,他已经对oracle,sybase,db2的优化器做过很多相关的sql optimizer的工作。
今天参加了Oracle技术嘉年华,也写一些体会简单说说,不一定都是技术相关。 首先对于我来说,能够参加这个峰会是极大的荣幸,特别感谢盖总对我的信任,所以自己也是高度重视,准备了不少的素材,吸取了在之前演讲中的一些缺点和不足,首先把ppt量降了下来,这样演讲就不会有太多的时间包袱,另一方面加入了更多的素材,可能有些案例,一句话就能说明意思,就不用一一贴出一些日志或者操作步骤来,对于一些需要额外补充道的案例直接给出图形比较效果,可能更加简明扼要。