eygle.com   eygle.com
eygle.com eygle
eygle.com  
 
   
 

FAQ

 

SQL相关

 

高可用性

 

诊断案例

 

内部分析

 

新技术

 

技术专题

 

Unix及其他

 

文档下载

 

图书信息

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

Oracle技术专题

    诊断案例

    • DBA手记:Grid Control监控-进程累积导致的宕机 February 22, 2011
      某用户Oracle Database 10g 10.2.0.4数据库,运行在HP 平台上,数据库出现大量系统累积进程,最后导致数据库挂起,影响了业务使用,造成了严重故障。 在数据库的进程记录信息中,我们发现大量的crs_stat.bin -t进程,这些进程部分是Grid Control调度的监控,另外一部分来自用户自定制的监控脚本,这些脚本中最早未能完成的脚本时间为03:32:48。也就是说,从这一时间起,数据库出现异常导致大量crs_stat进程累积,最后耗尽资源,导致系统挂起。

    • DBA手记:OEM罪几何?-空间监控的性能问题 February 21, 2011
      在某金融行业用户的ERP数据库中,一个小时的采样报告,位于Elapsed Time消耗排行第二位的SQL消耗了19.41%的DB Time,该SQL同样是OEM发出来的,其SQL Module是Oracle Enterprise Manager.Metric Engine,这个SQL每次执行需要245.77秒的时间,是极其缓慢的,数据库环境是Oracle Database 10g 10.2.0.4版本

    • DBA手记:Failed Login Count带来的性能问题 February 18, 2011
      从这段代码可以看到,该SQL是用于监控和计算失败登陆次数(failed_count)的,这一监控结果可以在某用户发生失败登陆尝试时给出告警。这里的DBA_AUDIT_SESSION用于记录审计对于数据库所有的CONNECT和DISCONNECT操作,底层表为AUD$。在Database / Grid Control中如果启用了Failed Login Count Metric监控,就可能遇到这个问题,一个建议的解决方案就是停用这个监控。

    • 大事务回滚导致系统故障案例一则 February 11, 2011
      最近遇到的一则案例,客户系统响应缓慢,IO Wait超高,系统体现在Log file sync上出现大量等待,磁盘没有错误信息。 我的第一印象就是,可能有大事务在回滚,通过如下查询立刻找到了数据库中存在的一个死事务

    • ORA-27468 EXFSYS.RLM$EVTCLEANUP 任务引起的故障 January 7, 2011
      可以通过10046事件跟踪诊断其具体不能完成之原因,更改use_current_session=>TRUE测试(参考Metalink Note: 473551.1)

    • Oracle数据库恢复: 存储及系统故障导致文件丢失 December 4, 2010
      对于数据库不太大的用户,我强烈建议用户在主机上多配备几块硬盘,将备份存放到本地,一是获得性能,二可以加快恢复,保证恢复时间。 最后客户在一块移动硬盘上找到了一份临时分离出去的备份文件,最终靠这个偶然留存的备份挽救了数据库。 数据备份,再多一份也不为过!

    • Oracle数据库恢复 : 存储故障导致的数据损坏 December 3, 2010
      最近帮助用户恢复了一个由于存储故障导致的数据库灾难,整个数据库容量4TB,浪潮的存储设备,控制器损坏导致数据库故障。

    • 故障分析:ORA-00904:invalid column name November 25, 2010
      今天在用户现场接触一个8i的数据库,好久未接触,差点就忘了SVRMGRL工具了。 客户数据库在导出时一直存在一个错误,问题出现在导出同义词阶段

    • Oracle ERP数据库恢复案例一则-备份重于一切 November 18, 2010
      近日,帮助某客户处理了一起Oracle ERP数据库恢复案例,恢复过程较为简单,客户拥有完整的全备份以及归档日志,可以执行安全恢复,最后遇到的问题是,中间某个归档日志损坏,Oracle无法识别,客户允许放弃几个小时的数据,这样就顺利的完成了恢复。

    • Oracle数据库恢复:归档日志损坏案例一则 November 16, 2010
      最近在帮助用户恢复数据库时遇到了一则罕见的归档日志损坏案例

    • attempt to access beyond end of device很危险 November 15, 2010
      最近帮助客户处理了一次数据库异常,异常导致数据库崩溃,以ORA-00600 4193/4194错误无法启动,系统表空间数据文件出现坏块。

    • Latch free竞争 - 最近的SAP测试项目小记 November 10, 2010
      上周在一个SAP的测试项目上折腾了几天,在BASIS方面,以Oracle数据库为后端做了大量的优化和反复测试工作。 在高压力、大并发的情况下,Oracle的种种Bug此起彼伏的跳出来,开始用的10g的版本10.2.0.4进行测试,后来遇到了一个10g中不修正的Bug,只好将数据库升级到Oracle 11gR2上来。 在这个测试中经历了非常多的异常情况,包括对于SAP系统的Debug跟踪等。

    • 案例分析:row cache objects与pin s wait on X October 18, 2010
      中午从陆家嘴步行到东方明珠、正大广场,给儿子买了一个大巴车 -- 他最喜欢的,买了两个变形金刚,现在他是最喜欢车、恐龙的阶段,以前的车都是趴在地上跑的,现在变形金刚或许可以给他一个惊喜,开拓一下想象的翅膀,记得我小时候,整天为变形金刚着迷,想来这是一个时代的宠爱,到今天变形金刚的电影也是风靡不绝。

    • 案情分析:数据库的基本情况 October 15, 2010
      今天又遇到了一些问题,然后又有了新的发现,从1.3G的sysstemstate dump文件中看到很多明确的线索。 继续说一下数据库的基本状况,原本是10.2.0.3的数据库,然后升级到10.2.0.4,数据库硬解析稍高

    • 案例分析:事情的开始是这样的 October 14, 2010
      我喜欢看狄仁杰,不是刘德华版本的,刘德华的版本太年轻了,电视版的梁冠华成为了一个象征,我喜欢狄仁杰的一句话:事情是这样的...... 然后镜头开始回放,狄仁杰的推理开始演绎。 DBA的故障诊断与此类似,当遇到疑难杂症时,就需要DBA来进行猜测推理,然后进行揣测验证,最后得出结论。 然而这个过程绝不简单。

    • Toad 引发的ORA-00600 17281错误 July 30, 2010
      Ora-00600 17281的官方解释是:Error closing all cursors for an instantiation

    • Oracle数据库恢复:解决ORA-600 2831错误 July 28, 2010
      一个数据库,不知怎样就陷入了ORA-600 2831 和 kcfofl_01错误中,表空间无法删除,频繁出现如下错误

    • ASM Diskgroup空间不足导致索引创建失败 July 9, 2010
      在这次失误中学到的教训是:要时刻牢记从不同角度看问题,要从多角度进行审核与确认。

    • ORA-00600 kcratr_nab_less_than_odr案例一则 May 25, 2010
      近日,有朋友遇到了ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr]错误,具体的错误信息类似:Incident 63078 created, dump file: /u01/diag/rdbms/orcl/orcl/incident/incdir_63078/orcl_ora_1916_i63078.trcORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [3313], [2328320], [2334233], [], [], [], [],...

    • opened cursors current 超高的数据库Bug May 12, 2010
      前几天在某客户现场,遇到一个opened cursors current超高的问题,当时检查发现,在某个时段,这一指标高的超乎想象(高达4295024586)

    • Oracle等待事件:inactive session是什么? April 21, 2010
      最近在一个客户的AWR报告中,发现inactive session这个等待事件出现在最前列,这是首次看到这个等待。

    • Java的DatabaseMetaData getPrimaryKeys调用 March 26, 2010
      当JAVA程序中通过DatabaseMetaData#getPrimaryKeys()调用,将会执行这个SQL,如果不及时关闭,则还可能产生严重的内存占用。 那么怎样规避这个调用,考察这个调用是否必要显得非常重要,这个SQL导致的逻辑度太过显著。 对Top SQL保持敏感是DBA的重要守则。

    • ORA-00600 3020 错误案例一则 March 2, 2010
      出现这个错误后,恢复中断,无法继续,3020错误在Metalink上的解释,主要原因是在恢复时发现Redo里面记录的信息和被恢复的数据块信息不一致,导致恢复无法继续。比如Update Some record from 3 to 2,结果发现该记录根本不是3,恢复无法继续。

    • ORA-00600 4000 及 4194 错误小记 February 4, 2010
      在初期恢复时出现了ORA-600 4000号错误,这个错误以前写过几个案例,一般没有好的办法,只能通过bbed修复。 不过4000号错误不一定非要用bbed修改坏块,有时候经过反复几次重新启动数据库,就可以暂时规避,尝试将数据导出。

    • DBA警示录:补丁升级需谨慎 February 2, 2010
      我们在很多工作中,要求都非常严格,一般都要进行工作步骤列表,制定可执行的回退方案等,有时候大家也觉得繁琐,但是繁琐的结果是可控,在穷举了可能的异常之后,我们才能胸有成竹的进行变更。

    • ORA-07445 cold_qerfxArrayMaxSize 的Bug January 26, 2010
      经过Metalink文档:386727.1 确认,这是一个Bug,仅见于HP-UX Itanium环境,在10.2.0.3中修正,一般不会带来严重影响。

    • SQL 共享之 ROLL_INVALID_MISMATCH 含义 January 18, 2010
      在10g中,缺省的使用AUTO_INVALIDATE选项时,分析对象之后,原有SQL并不会立即失效,失效时间和SQL执行有关,同时受到另外一个参数的影响:_optimizer_invalidation_period ,这个参数的缺省值是18000s(以下是Oracle 10gR2的缺省设置),当超过这个时间,SQL会重新硬解析,生成一个新的SQL,并标记与之前Cursor不能共享的原因为 ROLL_INVALID_MISMATCH

    • ORA-600 kcbzpbuf_1 坏块的恢复案例一则 January 13, 2010
      明确了所有的细节之后,处理起来就有底了。在现场遇到了blue_stone同学,这是意外的收获,在越来越多的场合可以遇到ITPUB里熟悉的ID,这是网络生活给我们的馈赠与惊喜。blue_stone准备好了DUL,准备在最坏的情况下进行数据抽取。而我现在越来越少使用DUL、AUL、ODUL了,因为一遇到这样的恢复就会抵触,特别是在失去SYSTEM之后的恢复。而事实上,很多情况下都还是有办法可想的。

    • SAP系统中的Bug 5376783 dbms_space高物理读 December 11, 2009
      这个Bug在DBMS_SPACE.OBJECT_GROWTH_TREND进行空间分析时被触发,根本原因在于内部算法在执行空间检查时,耗费了大量的评估IO成本,导致了大量的IO资源使用

    • ORA-600 17285 错误 与 PL/SQL Developer December 7, 2009
      最近遇到一则ORA-600 17285错误,着实吓人一跳,在繁忙的高峰时段出现这个错误,还真是让人紧张的。

    • 10.2.0.4 RAC CRS-0184错误 CRS 无法启动案例 December 1, 2009
      今天一个客户系统遇到一个问题,RAC的一个CRS节点无法启动,当然检查状态时遇到CRS-0184错误

    • 使用 oradebug 转储 systemstate / processstate November 23, 2009
      当数据库出现一些挂起状态时,如果sqlplus仍然可以连接,则可以通过oradebug工具来进行进程及系统状态信息的转储,从而可以进行Hang分析。

    • 工作日志:10 亿记录表的几个索引创建时间 October 26, 2009
      记录一下最近完成的一个大表数据整理,在近10亿记录的表上创建了3个索引,使用NOLOGGING,COMPRESS选项。

    • 工作记录: 2亿记录的导入及索引创建 September 29, 2009
      昨天做了这样一个工作,将一个2.2亿记录的分区导入一台 2 CPU (2 cores per cpu)的主机: model name : Intel(R) Xeon(R) CPU 5130 @ 2.00GHz 这个过程大约用了15个小时的时间,非常漫长

    • 工作日志:2亿记录的exp导出时间记录 September 26, 2009
      一个短信表的分区,使用direct模式导出

    • Exp 导出与 Expdp 的速度与时间对比 September 24, 2009
      虽然expdp是Oracle 10g推荐的逻辑导出方式,但是仍然有很多人并不习惯这一方式,这与expdp的使用复杂度有关,我觉得expdp的directory方式应当简化,由参数行定义就好了,后台由数据库自动去维护。

    • 大表海量数据的转移及索引创建的记录 September 23, 2009
      为了减少对于生产环境的影响,我们将大表的数据分配迁移到测试机上进行处理,然后在转移回生产库。

    • 换一种思路 - 通过导出导入进行数据整理 September 18, 2009
      虽然通过不断的优化,在前面客户的数据表里将数据鉴别出来仍然是不现实的。 20亿条记录,过滤用户退订部分,据估算,统计一次要46天左右,删除可能要耗时在200天左右,单块读平均每次等待时间达到8ms。

    • CBO的魔术 - 一个错误的索引选择会带来的后果 September 16, 2009
      说CBO是Oracle最为博大精深的技术一点也不为过,只是这技术越复杂越深奥出错的机会就越多了。

    • 使用ora_rowscn识别误操作数据时间点 September 8, 2009
      如果没有明显的字段可以识别,那么ora_rowscn可以作为一个参考,以下这个查询就可以通过SCN和数据识别,将后来增加的记录找出来

    • 恩墨科技为某企业SAP数据库提供紧急援助服务 September 7, 2009
      最近已经遇到了多次SAP备份失败导致的故障,有的甚至要求从数月之前的归档开始恢复,导致客户的业务遭受影响和损失。

    • 并行查询的 PX Deq: reap credit 等待 September 2, 2009
      所以我们应该获得的经验是:在RAC环境中,应当避免频繁查询GV$全局视图。而Metalink上可以找到几则关于访问GV$SESSION视图的Bug。

    • 使用errorstack跟踪ORA-01438错误 July 13, 2009
      跟踪文件中缺省的不会记录具体的SQL、绑定变量等信息,我们可以通过ErrorStack进行后台跟踪,获得更详细的信息,执行如下SQL:alter system set events='1438 trace name errorstack forever,level 10';

    • 断电故障导致 ASM DiskGroup 故障及恢复案例 July 9, 2009
      ASM在RAC环境中的使用已经极其广泛,但是往往由于对ASM的认识不够,很多时候在处理故障时会陷入谜团,前一段在客户环境中就遇到了一个ASM的棘手问题。

    • IBM 的 clverify 与 Oracle 的 cluvfy June 26, 2009
      昨晚在客户Oracle数据库系统上应用一个Patch时,遇到了一幢惊心动魄的事情。

    • 10g临时表空间组导致递归SQL高度解析案例 June 12, 2009
      我们在使用Oracle的一些新特性时,一定要注意观察,看是否会引发一些新的问题,最近发现的几个Bug都和Oracle的一些新特性相关。

    • 恩墨科技为中国国际电子商务中心提供服务 June 11, 2009
      熟悉的表名,熟悉的系统,而当初帮客户诊断系统是大约在2003年了,转眼6年过去,竟然又转回头,再次遇到这个系统。

    • 见过这么高并发( logons current)的数据库么? May 11, 2009
      今天在客户这里,在9206 RAC的集群环境中,偶然发现数据库的Logons Current指标超高。
      高得超乎寻常,可以让我们直接判断为Bug,看看以下数据。


    • ORA-02097 标准版里Resource Manager的Bug May 7, 2009
      这也是一个Bug,在10gR1里,Bug 4343398,这个Bug是为了修复另外一个Bug引入的,虽然resource manager在标准版不可用,代码里仍然执行了不必要的检查,并且触发了错误,还好也是无伤大雅的。

    • Oracle的to_date转换可能导致的错误SQL结果 May 5, 2009
      Metalink上的Bug 4156916 - Dump / wrong results from TO_DATE without a full date format mask 可能与此有关。

    • 使用DATAPUMP导致ORA-00600 17020错误 April 9, 2009
      Oracle 10g 引入的数据泵(Datapump)带来了一系列的好处,比如Server端执行,不惧怕网络终端,任务可以中断和重启动,在数据库端通过队列来调度执行等等。 但是随着这些好处也引来一系列的问题,比如客户数据库又遇到如下问题:ORA-00600 17020错误。 这是由于导出时队列错误导致的(Oracle 10gr2支持自动的队列调度,但是据我观察,是存在很多问题的),Metalink的Bug 4334700 与此有关,Unix、Linux平台在Oracle 11g中得到修正

    • Oracle如何维护SMON_SCN_TIME表? April 9, 2009
      这是由于数据库内部更新smon_scn_time出现的错误,这个字典表用于维护Oracle至关重要的SCN与时间的对应关系,Flashback等重要特性也以来于此。

    • ORA-01114、ORA-27067错误案例一则 April 8, 2009
      这个问题的CTAS SQL有600多个Case When判断,SQL文本有47K,强烈用户建议改写SQL。

    • 遭遇 ORA-7445 kkofkrproratestat 错误 March 24, 2009
      确定性是这个问题导致,但是在实际环境中和优化器模式无关,和一个SQL的低效、全表访问、引发大量的Buffer热点竞争有关,由这个原因导致。

    • IMP-00093 Inconsistency dumpfile之问题解决 March 14, 2009
      以上提示大致说明了问题原因,由于约束和统计信息的问题,导致imp时报错,根据Metalink记录,这是由于一个Bug引起的。

    • The value (30) of MAXTRANS parameter ignored March 7, 2009
      在客户的数据库系统中(Oracle 10.2.0.3),当使用expdp备份时就出现如下错误,非常准时。 可以看到,这个错误就是由于备份时创建备份主表(Master Table)产生的

    • IBM AIX Read-only file system案例一则 February 26, 2009
      昨晚有朋友数据库出现问题,由于断电,导致数据库中断,重启后数据库无法启动。 挂接存储后,Oracle告警日志显示文件系统变为只读

    • ORA-07445 与 PL/SQL Developer 案例一则 February 13, 2009
      前几天,又有一个客户的系统遇到了PL/SQL Developer引起的Bug,而且又是ORA-07445的骇人错误。

    • ORA-00600 17182 错误案例一则 February 12, 2009
      Oracle检测到内存的错误,可能是因为内存块的覆盖,导致数据损坏或丢失。这个错误可能在进程heap或者SGA中出现,没有潜在的数据损失。

    • Oracle跨版本导出EXP-00003错误的解决 February 10, 2009
      "EXP-00003: no storage definition found for segment ....."错误,和Oracle的一个小Bug相关,可以通过修改一个导出相关的View来解决。

    • Logical Standby ORA-01425错误处理一则 February 8, 2009
      今天客户的Logical Standby数据库出现如下错误,这个错误出现在使用skip跳过某个表的DML事务之后。

    • Oracle 10.2.0.3的Ora-1461 / Smg-3500错误 February 5, 2009
      Patch 6602742 修正了这个问题。这个Bug并不会经常出现,对数据库没有太大影响,如果有充足停机时间,可以考虑应用这个小Patch,否则也可以暂时忽略。

    • ORA-07445 kprball()+483错误之原因分析 February 4, 2009
      也就是说当设置了idle time的profile限制时,使用Oracle SQL Developer时,可能会因为超时等原因,在会话中断时出现该错误;看来不仅是Oracle SQL Developer会出现这个问题,现在PL/SQL Developer也会出现这个问题。

    • ORA-600 kcbgtcr_13 未解决之问题记录 January 12, 2009
      这是一个Oracle Database 11g环境,11g之前,类似圣诞遇到的故障,可以较容易的解决,不过在11g中遇到了ORA-600的kcbgtcr_13错误,无法屏蔽一致性读的检验,数据库始终无法Open。

    • BUG带来的BUG-kjdrpkey2hv: called with pkey January 7, 2009
      我们可以猜测一下kjdrpkey2hv的含义,大约就是Lock Management Layer , DROP .....的意思。

    • 圣诞超级复杂困难之Oracle数据库大恢复 December 25, 2008
      这个案例所用到的所有知识在我的网站上全都有详细介绍,不过要能把所有知识综合运用才能解决这次的故障,这真是圣诞节对我的一大考验!

    • ORA-600 [2103]错误及CF enqueue竞争 December 3, 2008
      这个错误是说,CONTROL FILE ENQUEUE等待超时,超时时间是900秒,也就是错误信息后面的参数,900秒杀15分钟,也就是说,在数据库解决这个队列冲突之前,RAC hang住了15分钟,这15分钟是一个要命的时间。

    • DBA警示录:props$应当成为禁忌 November 23, 2008
      应当将PROPS$视为禁忌,也就是说,决不要直接对这个表进行任何操作

    • RAC环境修改undo_rentention需要谨慎 November 18, 2008
      这个案例告诉我们,Bug无处不在,数据库调整应当及其谨慎。

    • TNS-12519 与 processes 参数设置 October 29, 2008
      今天遇到这样一个小问题,客户程序连接数据库遇到了TNS-12519错误:
      TNS-12519: TNS:no appropriate service handler found
      在监听器日志中也能看到这个错误信息。

    • MMNL进程与ORA-07445 ktsmg_get_threshold October 22, 2008
      错误提示每5分钟出现一次,也就是说MMNL进程每5分钟尝试一次重新启动,然后失败

    • Oracle10gR2中的Mutex竞争的案例 October 14, 2008
      Mutex是Oracle在Oracle10g中引入的串行机制,逐渐会用来替代一些存在性能问题的Latch。
      和Latch相比,一个Mutex Get大约仅需要30~35个指令,而Latch Get则需要大约150~200个指令,同时在大小上,每个Mutex仅占用大约16 Bytes空间,而一个latch在10gR2中要占用大约112 Bytes空间

    • Solaris安装Oracle10g之 libCstd.so.1 问题解决 September 3, 2008
      在Solaris上安装Oracle10g时,遇到了如下一个错误:
      Exception String: Error in invoking target 'all_no_orcl ihsodbc' of
      makefile '/data1/oracle/product/rdbms/lib/ins_rdbms.mk'.


    • 歌华经历的数据库"攻击" July 22, 2008
      我和客户开玩笑,这就是数据库攻击啊。 也许在客户端按一个F5,最终转嫁到数据库上的负荷就成为了灾难。 奥运期间,安保第一,要加强防范。数据库也是如此!

    • ORA-07445 数据库也会旧病复发 July 16, 2008
      上一次我在客户现场待了三天,解决问题之后稳定运行了9个月,也算是不错的业绩了,可是客户总是在问题解决之后就觉得不再需要技术人员了。这是做技术的悲哀。

    • Oracle中的不可见字符处理案例一则 June 25, 2008
      那么这个0代表什么字符呢?在ASCII编码表里我们可以看到这对应了一个不可见字符,这是数据入库时的异常导致的

    • DBA警世录:威胁来自数据库之外 May 5, 2008
      记得以前我曾经写过一篇《年关临近 谨防数据库事故》,那的确是有感而发。 根据统计我们发现,每逢节假日前后,都是数据库事故多发期。

    • 成功优化案例:解决ERP系统更新性能问题 April 3, 2008
      通过进一步判断,强烈建议用户重建一个15G的索引,第二天早上收到用户的报告,系统一切恢复了正常。

    • 解决ORA-600 [qmxiUnpPacked2]错误一则 March 18, 2008
      测试一个Oracle 9.2.0.8的数据库时遇到了一则ORA-600 [qmxiUnpPacked2]错误。

    • 关于HDS的高端存储设备USPV March 11, 2008
      这些错误提示相当精确,Oracle数据库提示"The device is not connected",这是存储失去联系的主要症状

    • Oracle DataGuard Standby database ID mismatch错误 March 7, 2008
      故障现象:Oracle 9208 DataGuard日志应用正常,但是在standby alter log文件里老是提示下面错误

    • DMT之后SMON还需要coalesce么? February 22, 2008
      在LMT之前,也就是说在DMT中,SMON的一个经常性工作是去合并(coalesce )相邻的自由空间。

    • ORA-03113错误解决一例 February 7, 2008
      大家知道,ORA-03113错误是Oracle数据库常见的错误,导致这个错误的原因比较复杂,各种各样的原因。可能是网络中断引起的、也可能是数据库本身出现了问题。

    • 成功恢复案例:解决字典表误Truncate故障 January 22, 2008
      这一案例的恢复过程并不重要,重要的是DBA应该学会永远不要让我们的数据库置于这样的危险境地

    • 成功恢复案例:打开断电崩溃数据库 January 20, 2008
      2008年,计划在年后开始自己的事业,从事全职的Oracle技术服务、数据恢复与Oracle培训等业务。

    • Oracle 10.2.0.3的ORA-1461错误 January 7, 2008
      发现最近在Oracle 10.2.0.3的RAC环境中,时不时会提示下面错误:ORA-1461 encountered when generating server alert SMG-3500

    • AIX不完整的补丁安装以及Oracle的Bug December 3, 2007
      不完全的补丁安装是危险的,在进行系统升级时一定要慎重,最好将系统运行在经过验证的稳定的系统版本上,升级过快可能会带来更多的不稳定因素。

    • Linux RAC OCFS文件系统与INODES December 2, 2007
      也就是说OCFS和通常的文件系统不同,inodes在这里并不发挥通常文件系统的作用。

    • 恢复8.1.6的数据库 勿忘svrmgrl October 26, 2007
      唯一需要记录的是,svrmgrl几乎要被遗忘,但是在8i版本中,它依然重要

    • 497天是一个轮回-记Linux时钟的回转 September 17, 2007
      由于某些Linux内核使用32位无符号长整型来计算时间,32位的最大值就是0xffffffff,再加1就将溢出变为0

    • Oracle HowTo:判断一个死事务的恢复进度 September 11, 2007
      由于死事务已经无法通过v$transaction来观察,所以必须通过内部表来进行判断。
      这个内部表是x$ktuxe,该表会记录Dead事务的恢复进度

    • Resize datafile导致ASM Crash一例 August 30, 2007
      这次事故给我们的教训是:DBA也需要看手气!

    • Oracle10gR2的ORA-06512 OLAP错误 August 21, 2007
      提示显示,在数据库启动过程中,执行了一个和OLAP有关的Trigger,出现了错误。

    • 案例学习:inode耗尽导致No space left on device错误 July 10, 2007
      这是一则学习笔记,具体问题ITPUB上提问的朋友已经自己解决。

    • Oracle10g两个监听进程的故障 June 28, 2007
      故障发生时数据库无法通过监听正常建立连接,检查时会发现系统上存在两个监听器进程,其中一个是另外一个的子进程。

    • 光纤通道故障导致数据库崩溃 April 18, 2007
      故障过程是光纤通道Offline,导致LGWR写失败,LGWR中止了数据库。随后光纤通道自动恢复正常,数据库能够重新启动,经过如下恢复过程

    • 阵列增加硬盘导致IO错误一例 February 13, 2007
      一系列的错误提示都表明IO出了问题,经过询问得知,用户正在更换硬盘IBM的盘阵,刚刚插入了5块硬盘,结果发现数据库出现了问题,关闭之后就无法启动。

    • DataGuard数据库服务器硬盘故障处理一则 November 28, 2006
      这两台服务器用的都是联志的国产低端PC Server,这些服务器的质量实在是差,上次一台备机的硬盘损坏,然后又有一台因为电源模块的问题反复重起,现在这一台服务器的硬盘再次出现问题。

    • 磁盘IO故障 导致Redo损坏一例 November 13, 2006
      前几天一个数据库的硬盘出现问题,经过格式化之后恢复正常,今天这块硬盘再次出现问题。 这次损坏的是Redo日志,数据库警告日志给出Redo相关的错误信息....

    • 如何更改监听器日志文件名称 November 10, 2006
      今天一个数据库的监听器日志出了点问题,用set log_file命令重新定位一个日志文件得以解决。

    • 磁盘IO错误 导致数据库故障一则 November 3, 2006
      刚刚说过最近硬件故障频繁,昨天又有一个数据库出现问题。同样是硬件故障,存放数据库软件及数据文件的磁盘出现问题,导致数据库Down机。

    • 如何启动DataGuard的备用数据库 October 30, 2006
      一大早来到公司,打开邮箱,发现收到了一堆的报警邮件,一个Standby数据库Down掉了。

    • 系统表空间IO错误 数据损坏处理一则 October 27, 2006
      同事最近遇到一个数据库问题,说是系统表空间出现坏块,警告日志文件中不断出现如下错误 ................

    • Oracle Diagnostics:又见ORA-04031 June 23, 2006
      今天,一个朋友的数据库出现问题,连接上去一看,原来又是ORA-04031

    • CPU Load Very High-超高负载之数据库 January 9, 2006
      周一一大早就发现一个数据库负载超高,性能异常,4CPU,8G内存,的SUN Fire 480R主机...

    • Oracle Diag:如何处理ORA-600 2662错误 December 20, 2005
      在ORA-00600 2262错误解决一文中,我曾经提到过,很多时候使用隐含参数_ALLOW_RESETLOGS_CORRUPTION后resetlogs打开数据库,我们可能会由于SCN不一致而遭遇到ORA-00600 2662号错误,这里给出一个完整的例子及解决过程。

    • Oracle Diagnostics:Why sysdate is fixed? December 12, 2005
      某个参数导致了系统日期被固化,让他传来alert文件,果然发现了一个此前未注意到的参数: FIXED_DATE

    • Oracle Diagnostics:KTSMG_UPDATE_MQL(): MMNL absent December 3, 2005
      MMNL是Oracle10g引入的一个新的后台进程,其全拼名字为Memory Monitor Light ,是AWR(Automatic Workload Repository )的组件之一...

    • 案例:Move系统表DEPENDENCY$导致索引失效的数据库故障 November 18, 2005
      今天看到有一个朋友因为Move了一个系统表DEPENDENCY$,在没有Rebuild索引的情况下,重起数据库,结果收到ORA-01502错误,数据库无法启动

    • Oracle数据库诊断案例-redo log日志组处于高激活状态 June 26, 2005
      redo log日志组处于高激活状态

    • Oracle诊断案例-Job任务停止执行 November 26, 2004
      昨天接到研发人员报告,数据库定时任务未正常执行,导致某些操作失败。.....

    • 使用SQL_TRACE进行数据库诊断 October 31, 2004
      SQL_TRACE是Oracle提供的用于进行SQL跟踪的手段,是强有力的辅助诊断工具.在日常的数据库问题诊断和解决中,SQL_TRACE是非常常用的方法。 本文就SQL_TRACE的使用作简单探讨,并通过具体案例对sql_trace的使用进行说明.

    • 如何捕获问题SQL解决过度CPU消耗问题 October 24, 2004
      Oracle诊断案例----如何捕获问题SQL解决过度CPU消耗问题 --使用vmstat,top等辅助解决Oracle数据库性能问题

    • 如何诊断和解决CPU高度消耗(100%)的数据库问题 October 24, 2004
      很多时候我们的服务器可能会经历CPU消耗100%的性能问题.
      排除系统的异常,这类问题通常都是因为系统中存在性能低下甚至存在错误的SQL语句, 消耗了大量的CPU所致...

    • Oracle诊断案例-SGA与Swap之一 October 7, 2004
      案例描述: 用户报告,服务器启动一段时间以后,无法建立数据库连接 重新启动几分钟以后,再次无法连接

    • Oracle诊断案例-SGA与Swap之二 October 7, 2004
      SGA与异步IO,Solaris上常见的问题...

    • Oracle诊断案例-Sql_trace之一 June 26, 2004
      症状是,通过连接访问新闻页是极其缓慢,通常需要十数秒才能返回.这种性能是用户不能忍受的.

    • Oracle诊断案例-Sql_trace之二 June 26, 2004
      在我们进行数据库操作时 比如drop user,drop table等,经常会遇到这样的错误 ORA-00604: error occurred at recursive SQL level 1 .

    • Oracle诊断案例-Spfile案例一则 June 26, 2004
      Oracle9i提供的新特性spfile,如果你不了解和充分认识它,你就可能犯下一些不必要的错误...

    字符集专题

    • DBA警世录:where条件很重要 November 19, 2007
      注意到props$.value$列都被更新为ZHS16GBK,显然这是在一次不适当的更新操作中遗漏了WHERE条件。 所以今天我想提醒DBA们的是,WHERE条件很重要,在UPDATE时一定不要遗漏。

    • DBA警世录:更新系统表(props$)修改字符集 June 8, 2006
      今天在Itpub上再次看到字符集变化导致的问题,作者给出的案例是这样的: 数据库为 9.2.0.7.0 ,OS : Solaris Operating System (SPARC 64-bit) 起因是这样的,我的一客户那里UPS出现故障导致系统宕机,然后起来,大约过了10来分钟,突然操作系统找不到磁盘又一次宕机,然后再起来,有用户报一个SQL用不上索引. 这个SQL是这样的: select * from ww.test20060504 dg where dg.user_number='7290' 第一个想法是给那个索引做分析,但还是不行,我们就对这个表做了一次分析,但执行计划没有什么改变...

    • 中文表名-导入导出-字符集 October 18, 2005
      我从不推荐使用中文表名,因为可能在导入导出、字符集设置、应用显示等方面存在问题,要想正确解决面对的所有问题,必然需要对Oracle相关知识具有相当的了解,否则只是徒增困扰而已

    • Oracle字符集子集与超级的对应关系 September 12, 2004
      很多朋友经常问起Oracle字符集子集与超级的对应关系,我将从Oracle8.1.6到9.2.0的对应关系列举在这里供大家参考

    • 字符集问题的初步探讨(七)-字符集更改的内部操作 September 11, 2004
      这个命令是当你选择了使用典型方式创建了种子数据库以后,Oracle会根据你选择的字符集设置,把当前种子数据库的字符集更改为期望字符集,这就是这条命令的作用.

    • 字符集问题的初步探讨(六)-乱码的产生 September 11, 2004
      对于DBA来说,有一个很重要的原则就是:不要把你的数据库置于危险的境地!

    • 字符集问题的初步探讨(二)-数据库的字符集 September 11, 2004
      一旦你的字符集选定了,数据库中能够存储的字符就受到了限制,所以你选择的字符集的应该可以容纳所有你将用到字符。

    • 字符集问题的初步探讨(一)-字符集的基本知识 September 11, 2004
      Oracle全球支持(即Globalization Support)允许我们使用本地语言和格式来存储和检索数据。通过全球支持,Oracle可以支持多种语言及字符集,得以展示数据库的强大魅力

    • 字符集问题的初步探讨(五)-导出文件字符集 September 11, 2004
      我们知道在导出文件中,记录着导出使用的字符集id,通过查看导出文件头的第2、3个字节,我们可以找到16进制表示的字符集ID,在Windows上,
      我们可以使用UltraEdit等工具打开dmp文件,查看其导出字符集

    • 字符集问题的初步探讨(三)-字符集的更改 September 11, 2004
      修改数据库字符集时必须谨慎,修改之前一定要为数据库备份。由于不能回退这项操作,因此可能会造成数据丢失或者损坏。

    • 字符集问题的初步探讨(四)-导入导出及转换 September 11, 2004
      导入导出是我们常用的一个数据迁移及转化工具,因其导出文件具有平台无关性,所以在跨平台迁移中,最为常用。

    Statspack专题

    • 使用spawrrac.sql收集RAC数据库对比信息 February 2, 2009
      在Oracle Database 11g中,Oracle引入了一个新的脚本工具spawrrac.sql用于收集RAC环境下的数据库对比信息,在某些情况下可以清晰的展现RAC环境中的一些问题,值得了解一试

    • SQL*Net more data to client意味着什么? January 25, 2008
      这说明数据库在向客户端发送数据,而且是"more",不停的发送,如果网络状况不好,或者网络流量过大,都可能导致这一等待非常显著

    • Statspack ORA-00001 错误的解决 October 16, 2005
      有朋友遇到Statspack ORA-00001错误。
      这个错误此前从未遇到,但是既然是主键冲突,那肯定是存在重复主键的数据。


    • Statspack专题 November 14, 2004
      Statspack专题....

    • Statspack之十四-"log file sync" 等待事件 October 14, 2004
      当一个用户提交(commits)或者回滚(rollback),session的redo信息需要写出到redo logfile中. 用户进程将通知LGWR执行写出操作,LGWR完成任务以后会通知用户进程. 这个等待事件就是指用户进程等待LGWR的写完成通知.

    • Statspack之十三-Enqueue October 14, 2004
      enqueue是一种保护共享资源的锁定机制。该锁定机制保护共享资源,如记录中的数据,以避免两个人在同一时间更新 同一数据。enqueue 包括一个排队机制,即FIFO(先进先出)排队机制。

    • Statspack之十二-db file scattered read-DB文件分散读取 October 14, 2004
      当数据库进行全表扫时,基于性能的考虑,数据会分散(scattered)读入Buffer Cache。如果这个等待事件比较显著,可能说明对于某些全表扫描的表,没有创建索引或者没有创建合适的索引,我们可能需要检查这些数据表已确定是否进行了正确的设置。

    • Statspack之十一-Statspack报告各部分简要说明 June 25, 2004
      数据库采样时段,这一部分记录了数据库采样的时间,以及采样点数,这部分信息对于report来说是十分重要。 任何统计数据都需要通过时间纬度来衡量,离开了时间,任何数据都失去了意义。

    • Statspack之十-调整STATSPACK的收集门限 June 24, 2004
      因为每一个快照都会收集很多数据,每一行都代表获取快照时数据库中的一个SQL语句,所以stats$sql_summary很快就会成为Statspack中最大的表。

    • Statspack之九-其它重要脚本 June 24, 2004
      在诊断系统问题时,可能需要向专业人士提供原始数据,这时我们可以导出Statspack表数据,其中我们可能用到:spuexp.par

    • Statspack之八-删除历史数据 June 24, 2004
      删除stats$snapshot数据表中的相应数据,其他表中的数据会相应的级连删除

    • Statspack之四-测试安装好的Statspack June 24, 2004
      运行statspack.snap可以产生系统快照,运行两次,然后执行spreport.sql就可以生成一个基于两个时间点的报告。

    • Statspack之五-规划自动任务 June 24, 2004
      Statspack正确安装以后,我们就可以设置定时任务,开始收集数据了。可以使用spatuo.sql来定义自动任务。

    • Statspack之六-生成分析报告 June 24, 2004
      一个statspack的报告不能跨越一次停机,但是之前或之后的连续区间,收集的信息依然有效。你可以选择之前或之后的采样声称report。

    • Statspack之七-移除定时任务 June 24, 2004
      当你完成了一个采样报告,你应该及时移除这个job任务,在生产环境中,遗漏一个无人照顾的job是非常危险的, 如果statspack运行一个星期,采样的数据量是非常惊人的。有的生产企业因疏忽而当机!

    • Statspack之三-安装statspack June 24, 2004
      安装Statspack需要用internal身份登陆,或者拥有SYSDBA(connect / as sysdba)权限的用户登陆。 需要在本地安装或者通过telnet登陆到服务器。

    • Statspack之二-需要更改的系统参数 June 24, 2004
      为了能够顺利安装和运行Statspack你可能需要设置以下系统参数....

    • Statspack之一-Statspack简介 June 24, 2004
      通过Statspack我们可以很容易的确定Oracle数据库的瓶颈所在,记录数据库性能状态,也可以使远程技术支持人员迅速了解你的数据库运行状况。 因此了解和使用Statspack对于DBA来说至关重要。

    压力测试专题

    • 使用ORION测试HP StorageWorks MSA1000存储 December 25, 2007
      在当前存储配置下,IO最大吞吐量可以达到138M/s,iops稳定状态达到2800左右,而Latency在Load Level 30左右的时候达到10ms。

    • Linux单磁盘IO速度概要 July 14, 2007
      昨天测试一个朋友的系统,Dell的新服务器,型号未知,5x300G Disk Raid5的配置,结果简单的测试下来,IO速度仅仅能达到8M/s左右。

    • 使用orastress!进行数据库压力测试 October 18, 2004
      Orastress!的作者是Geoff Ingram,也就是我们前面介绍的orabm的作者,他曾经为Oracle工作数年,是High Performance Oracle" (ISBN: 0471224367)一书的作者.

    • 使用orabm进行CPU压力测试... October 18, 2004
      orabm是一个开源的系统CPU性能测试工具...

    • 使用Bonnie进行系统IO性能测试 October 18, 2004
      Bonnie是一款极小的测试系统IO性能的工具,源代码公开..

    • 使用Bonnie++进行系统IO性能测试 October 18, 2004
      由于Bonnie存在一些众所周知的问题,比如>2G的文件支持. Russell Coker 开发了一套新的代码,用以支持>2G的文件等,得到Tim Bray (tbray@textuality.com)的许可之后,Russell把他的软件命名为bonnie++,在网上发布,并开始流行起来.

    • 如何安装和使用orabm October 18, 2004
      简要介绍orabm的安装...

    • 如何实施Benchmark测试-你需要怎样的测试 October 18, 2004
      我们以存储测试为例,你不仅需要为服务器、HBA、光纤交换机、RAID承担开销,而且还需要承担诸如文件系统、卷管理器等大量软件费用.

    • 如何实施Benchmark标准测试-问题的提出及Tpc-C标准 October 18, 2004
      在大系统设计过程中,经验显示是不足够的,你必须拿出足够的证据来说明你的架构,你的系统必须在理论上能够满足用户的需求. 到这里我们已经看到,一个最重要的内容被引入了,那就是:用户需求.

     

     

     

 

CopyRight © 2004 ~ 2012 eygle.com, All rights reserved.