千丝万缕:Oracle扩展统计信息虚拟列引发OGG 1161错误 Posted by eygle at 2017-11-15 【内容摘要】这个案例提示我们,要注意学习Oracle的新特性,也要认真思考这些新特性可能带来的级联影响,按照六度关系理论,数据库中任何的修改都可能快速的关联到整个系统的核心稳定性上。
Oracle数据库恢复:风险意识缺乏导致的数据风险 Posted by eygle at 2013-05-08 【内容摘要】在MySQL中,表名的长度限制是64个字符,但是Oracle的表名不能超过30个字符,这是数据库的内在限制。
AWR报告分析之三:cursor: pin S 的原理与案例分析 Posted by eygle at 2013-01-11 【内容摘要】在以下数据库的AWR报告中,可以看到超高的Cursor: Pin S等待,这是一个由于高SQL共享解析时产生的竞争。当一个会话尝试以共享模式(S - Share)来获得一个游标时,发现该游标正在被以共享模式修改Mutex锁定。由此就产生了 cursor : pin S 的等待。
AWR报告分析之二:ges inquiry response 过高 Posted by eygle at 2012-11-26 【内容摘要】在一个朋友AWR报告中,ges inquiry response事件过高引起了忧虑。这个等待事件来自RAC集群,这里的GES指Global Enqueue Service,inquiry意思是查询确认,这个等待时间的意思可以从字面猜测出来,也就是GES等待确认。以下是这个等待事件的解释,主要是说这个等待和资源的Remaster有关,因为Remaster的状态维护会引起相应资源的状态查询结果不同。
AWR报告分析之一:高 DB CPU 消耗的性能根源 Posted by eygle at 2012-11-22 【内容摘要】准备写一个系列,跟进一些AWR报告,做一些简单分析,从中表达一些思路和想法,这些AWR报告可能来自公众发布,在这里予以引用。
以下这份AWR报告的TOP 5 Event可以看出,其CPU消耗超高,占 42.59% 的事件比例,而Log File Sync单次等待达到12毫秒,这表明IO可能存在迟缓
EMD_MAINTENANCE 定时任务引起的资源消耗 Posted by eygle at 2012-11-19 【内容摘要】在很多数据库中,尤其是Oracle 10g的版本,可能会经常看到一个显著的定时任务排在前列:EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS。
ORA-600 KGHALO4 来自Heap Manager的错误 Posted by eygle at 2012-08-29 【内容摘要】作为Oracle DBA,无时无刻不在与各种错误打交道,尤其是ORA-00600错误,在面对这些错误时,除了遭遇得来的经验之外,还要学会把握其中的共性,进而能够通过猜测和简单的推理做出初步的判断。这是对于DBA最为基本的素质要求。这里记录的KGHALO4错误来自一个网友的汇报。
Oracle O001 / O00n 进程 100% CPU资源耗用 Posted by eygle at 2012-06-11 【内容摘要】O00n 进程是RDBMS实例和ASM实例进行通讯的后台进程,其含义为 ASM Connection Pool Process - ASM连接池进程,主要用于维护从实例到ASM的元数据操作。
Delete sdo_geor_ddl__table$$ 的异常删除操作 Posted by eygle at 2011-12-27 【内容摘要】在某客户的数据库跟踪中,发现如下程序块,对sdo_geor_ddl__table$$执行删除操作。
这是被Oracle Spatial 触发的一个后台操作,由触发器调用 SDO_GEOR_ERR_TRIGGER ,如果数据库不需要Spatial组件,建议不要安装,也可以禁用相关触发器或者写在Spatial选件。
ORA-600 [kghasp1] 引致的PGA内存故障 Posted by eygle at 2011-12-15 【内容摘要】也就是说,当数据库去计算已经分配Heap内存时,发现某一Heap大小为0,出现内部错误。这实际上是PGA的内存管理出现了问题。
Bug 2805580 PGA memory corruption possible using PGA_AGGREGATE_TARGET 与此有关。
升级到9205,该BUG即被修正。
simulator lru latch - Oracle自动评估的代价 Posted by eygle at 2011-11-18 【内容摘要】自从Oracle 9i开始,Oracle在数据库内部引入了自动的内存建议特性,帮助用户监控并评估当前的内存设置是否合理,是否需要调节。其建议范围包括Buffer Cache,Shared Pool,PGA等。
这些建议和监控是有代价的,在某些版本中的BUG更可能导致严重的性能问题,所以,作为一个DBA,你必须知道Oracle的各种隐性成本,并明确其潜在影响。
XDB sys_nc_oid$递归调用的案例一则 Posted by eygle at 2011-08-29 【内容摘要】经过分析,我们注意到这条SQL和Oracle的XDB选项有关,如果不安装XDB选件,则这类递归SQL将不会出现,所以提请大家注意的是:在初始化数据库安装时,如果有些选件不会用到,则不建议安装。
Oracle等待事件: resmgr:cpu quantum引发CPU冲高 Posted by eygle at 2011-07-21 【内容摘要】但是很多用户会发现禁用资源计划很多时候没有作用.我第一次遇到这个问题时,第一反应就是直接去寻找是否有隐含参数可以禁用Oracle缺省启用的资源调度,最后通过以下参数设置解决问题:
_resource_manager_always_on = false
在那个案例中,相关的等待事件是: resmgr:active threads,通过隐含参数可以将始终打开的资源计划关闭.
ALL_OBJECTS与X$KGLDP、X$KZSPR的复杂执行计划 Posted by eygle at 2011-06-24 【内容摘要】如果单看如下一条SQL,你可能绝对想不到其执行计划的复杂度。这条SQL的内容如下:
SELECT A.OBJECT, A.OWNER, A.TYPE, B.OBJECT_ID FROM V$ACCESS A, ALL_OBJECTS B WHERE A.OWNER = B.OWNER AND A.OBJECT = B.OBJECT_NAME AND A.TYPE = B.OBJECT_TYPE AND A.SID = :1 AND A.OWNER <> 'PUBLIC' AND A.OWNER <> 'SYS'
一个简单的查询,某个工具软件发给数据库的,查询了V$ACCESS 和 ALL_OBJECTS两个视图。
诊断案例:PMON failed acquire latch QMNC Holder Posted by eygle at 2011-06-23 【内容摘要】在有些情况下,数据库关闭时会遇到PMON进程阻塞的情况,如果PMON进程不能及时获得Latch锁资源,就无法及时去清理事务,关闭进程,就会导致数据库无法关闭的情况。
这种情况在数据库运行状况下也可能发生,一旦这类情况出现,数据库就会出现严重的阻塞,失败的进程也无法获得清理和恢复,是严重的故障情况。
DBA手记:System State转储之ROW CACHE对象 Posted by eygle at 2011-05-26 【内容摘要】跟踪文件向下显示了更进一步的信息,地址为 4f4e57138 的Row Cache Parent Object紧跟着之前的信息显示出来,跟踪信息同时显示是在DC_OBJECTS层面出现的问题。
跟踪信息显示对象的锁定模式为排他锁定(mode=X)。
DBA手记:System State转储分析之问题定位 Posted by eygle at 2011-05-25 【内容摘要】在《Oracle DBA手记 3》即将出版之际,我将《Oracle DBA手记 2》上收录的一些文章发布出来,与大家分享。
在Oracle数据库的运行过程中,可能会因为一些异常遇到数据库挂起失去响应的状况,在这种状况下,我们可以通过对系统状态进行转储,获得跟踪文件进行数据库问题分析;很多时候数据库也会自动转储出现问题的进程或系统信息;这些转储信息成为我们分析故障、排查问题的重要依据。
本章通过实际案例的详细分析,讲解如何逐层入手、层层剖析的分析数据库故障。
恩墨科技为大地保险提供性能优化服务 Posted by eygle at 2011-05-15 【内容摘要】在2010年,恩墨科技成功为上海大地财产保险股份有限公司提供了紧急故障处理和数据库性能优化服务,帮助用户快速确定了数据库系统的瓶颈所在,通过调整消除了故障根源,保障了用户业务系统的稳定运行,同时通过进一步的分析,从全局对数据进行了分区、归档、压缩等技术处理,全面改善了系统的SQL效率与应用用户体验,得到了用户的认可与好评。
恩墨科技在实践中经受住考验,再一次实现了技术的价值。以技术服务客户,以技术为用户创造价值,一直说我们不断追求的目标。
环境变量与ORA-00600 unable to load XDB library Posted by eygle at 2011-04-25 【内容摘要】在AIX环境中,如果环境变量设置顺序存在问题,可能会导致数据库运行出错,正常情况下LIBPATH的lib路径应当在lib32之前:
export LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32
如果位置颠倒,则会出现类似如下错误:
ERROR
ORA-00600: internal error code, arguments: [unable to load XDB library]
SAP系统 SYSFAIL 失败TCPSBUILD 案例一则 Posted by eygle at 2011-03-14 【内容摘要】客户的SAP系统,遇到大量的qRFC事务失败,内部显示SYSFAIL,在操作系统日志看到大量如下错误:
Spool / print: Database error: TemSe->RTAB-S/G(8)->1 for table TCPSBUILD key
对于这个错误,在SAP Notes 864267得到了一些信息。这个Note描述的是进行Offline Backup之后,系统codepage转换出现错误
SAP的 XI_AF_MSG 消息表优化及清理 Posted by eygle at 2011-03-09 【内容摘要】XI_AF_MSG表在SAP XI系统中,存储的是Java Adapter Engine的输入输出信息(stores incoming and outgoing messages)。
根据设定的规则,这个表的数据量通常应该很低,但是在一些异常情况下(有时候是Bug),XI_AF_MSG表的数据量会急剧增加,导致运算缓慢,在客户的系统中,这个表的记录数达到了140万,其LOB对象的存储空间占用了10G,这是相当大的一个容量,几乎不能容忍
DBA手记:临时表空间组导致递归SQL高度解析 Posted by eygle at 2011-03-04 【内容摘要】在使用Oracle的一些新特性时,一定要注意观察,看是否会引发一些新的问题,而DBA应该对系统中的一些异常SQL具有一定的敏锐性,要认真细致及时审查确认,才能保障数据库的持续稳定运行。
DBA手记:SQL_TRACE跟踪与诊断案例 Posted by eygle at 2011-03-03 【内容摘要】2004年,笔者曾经帮客户处理过一则案例,其中涉及SQL_TRACE的使用,我们首先来回顾一下这个案例。
客户的应用是一个后台新闻发布系统,主要性能问题是通过连接访问新闻页极其缓慢,通常需要十数秒才能返回,这是用户不能忍受的。客户操作系统是SunOS 5.8,数据库版本为8.1.7。
面对这个问题,首先想到的是SQL问题,但如何定位具体的问题SQL成为我们考虑的主要目标,通过Statspack采样是一个全局手段,而通过sql_trace则可以实时对会话进行跟踪。诊断时是晚上,在无集中用户访问情况下,让用户在前台进行相关页面的访问,同时进行进程跟踪。
DBA手记:RAC环境下Memory System Deconfigured Posted by eygle at 2011-03-02 【内容摘要】这是客户的一个Oracle9iR2 RAC数据库环境,数据库版本为Oracle 9.2.0.8,主机为IBM P55a小型机。最初客户集群环境运行稳定,后来一台主机出现硬件故障退出集群,问题出现在主机维修完毕之后,当故障主机重新加入现有环境运行,客户发现应用性能出现衰减,前端收费系统响应缓慢,反而不如一个节点工作时的性能。
DBA手记:共享内存无法正常释放的处理 Posted by eygle at 2011-03-01 【内容摘要】在数据库启动之后,需要从操作系统上分配共享内存和信号量(Semaphore)资源,而在某些情况下,数据库异常关闭后,这些资源有可能无法正常释放,则在下次启动时,数据库可能遭遇错误,无法正常启动。
在一个客户环境(操作系统为SUN Solaris平台)中出现了ORA-04031错误之后,使用了shutdown abort选项关闭了数据库
DBA手记:从10g到12c,JOB的问题auto_space_advisor_job_proc Posted by eygle at 2011-02-25 【内容摘要】上一则案例提到的情况,在另外一个客户的系统中,再次遇到了类似的问题。在客户的SAP系统中,某个高负载的时段,数据库遇到了DBMS_SCHEDULER任务的一个Bug,其数据库版本为10.2.0.2。
在SQL Ordered By Elapsed Time的采样中,Top 6都是DBMS_SCHEDULER调度的任务,而且耗时显著
DBA手记:DBA诊断利器 - Event 10046和 10053 Posted by eygle at 2011-02-23 【内容摘要】一次某优化工具厂商的朋友,发来一个案例请求协助诊断,朋友的优化工具在客户的环境中执行某个SQL查询时,需要10分钟时间才能出结果,这是无法接受的,而同样的查询在其他环境上都可以快速的获得输出结果,数据库环境是9.2.0.8。
首先我获得了一个10046跟踪文件,通过tkprof格式化之后,这个SQL的输出结果展现出来。
DBA手记:Grid Control监控-进程累积导致的宕机 Posted by eygle at 2011-02-22 【内容摘要】某用户Oracle Database 10g 10.2.0.4数据库,运行在HP 平台上,数据库出现大量系统累积进程,最后导致数据库挂起,影响了业务使用,造成了严重故障。
在数据库的进程记录信息中,我们发现大量的crs_stat.bin -t进程,这些进程部分是Grid Control调度的监控,另外一部分来自用户自定制的监控脚本,这些脚本中最早未能完成的脚本时间为03:32:48。也就是说,从这一时间起,数据库出现异常导致大量crs_stat进程累积,最后耗尽资源,导致系统挂起。
DBA手记:OEM罪几何?-空间监控的性能问题 Posted by eygle at 2011-02-21 【内容摘要】在某金融行业用户的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带来的性能问题 Posted by eygle at 2011-02-18 【内容摘要】从这段代码可以看到,该SQL是用于监控和计算失败登陆次数(failed_count)的,这一监控结果可以在某用户发生失败登陆尝试时给出告警。这里的DBA_AUDIT_SESSION用于记录审计对于数据库所有的CONNECT和DISCONNECT操作,底层表为AUD$。在Database / Grid Control中如果启用了Failed Login Count Metric监控,就可能遇到这个问题,一个建议的解决方案就是停用这个监控。
大事务回滚导致系统故障案例一则 Posted by eygle at 2011-02-11 【内容摘要】最近遇到的一则案例,客户系统响应缓慢,IO Wait超高,系统体现在Log file sync上出现大量等待,磁盘没有错误信息。
我的第一印象就是,可能有大事务在回滚,通过如下查询立刻找到了数据库中存在的一个死事务
ORA-27468 EXFSYS.RLM$EVTCLEANUP任务引起的故障 Posted by eygle at 2011-01-07 【内容摘要】可以通过10046事件跟踪诊断其具体不能完成之原因,更改use_current_session=>TRUE测试(参考Metalink Note: 473551.1)
Oracle数据库恢复: 存储及系统故障导致文件丢失 Posted by eygle at 2010-12-04 【内容摘要】对于数据库不太大的用户,我强烈建议用户在主机上多配备几块硬盘,将备份存放到本地,一是获得性能,二可以加快恢复,保证恢复时间。
最后客户在一块移动硬盘上找到了一份临时分离出去的备份文件,最终靠这个偶然留存的备份挽救了数据库。
数据备份,再多一份也不为过!
Oracle数据库恢复 : 存储故障导致的数据损坏 Posted by eygle at 2010-12-03 【内容摘要】最近帮助用户恢复了一个由于存储故障导致的数据库灾难,整个数据库容量4TB,浪潮的存储设备,控制器损坏导致数据库故障。
故障分析:ORA-00904:invalid column name Posted by eygle at 2010-11-25 【内容摘要】今天在用户现场接触一个8i的数据库,好久未接触,差点就忘了SVRMGRL工具了。
客户数据库在导出时一直存在一个错误,问题出现在导出同义词阶段
Oracle ERP数据库恢复案例一则-备份重于一切 Posted by eygle at 2010-11-18 【内容摘要】近日,帮助某客户处理了一起Oracle ERP数据库恢复案例,恢复过程较为简单,客户拥有完整的全备份以及归档日志,可以执行安全恢复,最后遇到的问题是,中间某个归档日志损坏,Oracle无法识别,客户允许放弃几个小时的数据,这样就顺利的完成了恢复。
Oracle数据库恢复:归档日志损坏案例一则 Posted by eygle at 2010-11-16 【内容摘要】最近在帮助用户恢复数据库时遇到了一则罕见的归档日志损坏案例
Latch free竞争 - 最近的SAP测试项目小记 Posted by eygle at 2010-11-10 【内容摘要】上周在一个SAP的测试项目上折腾了几天,在BASIS方面,以Oracle数据库为后端做了大量的优化和反复测试工作。
在高压力、大并发的情况下,Oracle的种种Bug此起彼伏的跳出来,开始用的10g的版本10.2.0.4进行测试,后来遇到了一个10g中不修正的Bug,只好将数据库升级到Oracle 11gR2上来。
在这个测试中经历了非常多的异常情况,包括对于SAP系统的Debug跟踪等。
案例分析:row cache objects与pin s wait on X Posted by eygle at 2010-10-18 【内容摘要】中午从陆家嘴步行到东方明珠、正大广场,给儿子买了一个大巴车 -- 他最喜欢的,买了两个变形金刚,现在他是最喜欢车、恐龙的阶段,以前的车都是趴在地上跑的,现在变形金刚或许可以给他一个惊喜,开拓一下想象的翅膀,记得我小时候,整天为变形金刚着迷,想来这是一个时代的宠爱,到今天变形金刚的电影也是风靡不绝。
案情分析:数据库的基本情况 Posted by eygle at 2010-10-15 【内容摘要】今天又遇到了一些问题,然后又有了新的发现,从1.3G的sysstemstate dump文件中看到很多明确的线索。
继续说一下数据库的基本状况,原本是10.2.0.3的数据库,然后升级到10.2.0.4,数据库硬解析稍高
案例分析:事情的开始是这样的 Posted by eygle at 2010-10-14 【内容摘要】我喜欢看狄仁杰,不是刘德华版本的,刘德华的版本太年轻了,电视版的梁冠华成为了一个象征,我喜欢狄仁杰的一句话:事情是这样的......
然后镜头开始回放,狄仁杰的推理开始演绎。
DBA的故障诊断与此类似,当遇到疑难杂症时,就需要DBA来进行猜测推理,然后进行揣测验证,最后得出结论。
然而这个过程绝不简单。
Toad 引发的ORA-00600 17281错误 Posted by eygle at 2010-07-30 【内容摘要】Ora-00600 17281的官方解释是:Error closing all cursors for an instantiation
Oracle数据库恢复:解决ORA-600 2831错误 Posted by eygle at 2010-07-28 【内容摘要】一个数据库,不知怎样就陷入了ORA-600 2831 和 kcfofl_01错误中,表空间无法删除,频繁出现如下错误
ASM Diskgroup空间不足导致索引创建失败 Posted by eygle at 2010-07-09 【内容摘要】在这次失误中学到的教训是:要时刻牢记从不同角度看问题,要从多角度进行审核与确认。
opened cursors current 超高的数据库Bug Posted by eygle at 2010-05-12 【内容摘要】前几天在某客户现场,遇到一个opened cursors current超高的问题,当时检查发现,在某个时段,这一指标高的超乎想象(高达4295024586)
Oracle等待事件:inactive session是什么? Posted by eygle at 2010-04-21 【内容摘要】最近在一个客户的AWR报告中,发现inactive session这个等待事件出现在最前列,这是首次看到这个等待。
Java的DatabaseMetaData getPrimaryKeys调用 Posted by eygle at 2010-03-26 【内容摘要】当JAVA程序中通过DatabaseMetaData#getPrimaryKeys()调用,将会执行这个SQL,如果不及时关闭,则还可能产生严重的内存占用。
那么怎样规避这个调用,考察这个调用是否必要显得非常重要,这个SQL导致的逻辑度太过显著。
对Top SQL保持敏感是DBA的重要守则。
ORA-00600 3020 错误案例一则 Posted by eygle at 2010-03-02 【内容摘要】出现这个错误后,恢复中断,无法继续,3020错误在Metalink上的解释,主要原因是在恢复时发现Redo里面记录的信息和被恢复的数据块信息不一致,导致恢复无法继续。比如Update Some record from 3 to 2,结果发现该记录根本不是3,恢复无法继续。
ORA-00600 4000 及 4194 错误小记 Posted by eygle at 2010-02-04 【内容摘要】在初期恢复时出现了ORA-600 4000号错误,这个错误以前写过几个案例,一般没有好的办法,只能通过bbed修复。
不过4000号错误不一定非要用bbed修改坏块,有时候经过反复几次重新启动数据库,就可以暂时规避,尝试将数据导出。
DBA警示录:补丁升级需谨慎 Posted by eygle at 2010-02-02 【内容摘要】我们在很多工作中,要求都非常严格,一般都要进行工作步骤列表,制定可执行的回退方案等,有时候大家也觉得繁琐,但是繁琐的结果是可控,在穷举了可能的异常之后,我们才能胸有成竹的进行变更。
ORA-07445 cold_qerfxArrayMaxSize 的Bug Posted by eygle at 2010-01-26 【内容摘要】经过Metalink文档:386727.1 确认,这是一个Bug,仅见于HP-UX Itanium环境,在10.2.0.3中修正,一般不会带来严重影响。
SQL 共享之 ROLL_INVALID_MISMATCH 含义 Posted by eygle at 2010-01-18 【内容摘要】在10g中,缺省的使用AUTO_INVALIDATE选项时,分析对象之后,原有SQL并不会立即失效,失效时间和SQL执行有关,同时受到另外一个参数的影响:_optimizer_invalidation_period ,这个参数的缺省值是18000s(以下是Oracle 10gR2的缺省设置),当超过这个时间,SQL会重新硬解析,生成一个新的SQL,并标记与之前Cursor不能共享的原因为 ROLL_INVALID_MISMATCH
ORA-600 kcbzpbuf_1 坏块的恢复案例一则 Posted by eygle at 2010-01-13 【内容摘要】明确了所有的细节之后,处理起来就有底了。在现场遇到了blue_stone同学,这是意外的收获,在越来越多的场合可以遇到ITPUB里熟悉的ID,这是网络生活给我们的馈赠与惊喜。blue_stone准备好了DUL,准备在最坏的情况下进行数据抽取。而我现在越来越少使用DUL、AUL、ODUL了,因为一遇到这样的恢复就会抵触,特别是在失去SYSTEM之后的恢复。而事实上,很多情况下都还是有办法可想的。
SAP系统中的Bug 5376783 dbms_space高物理读 Posted by eygle at 2009-12-11 【内容摘要】这个Bug在DBMS_SPACE.OBJECT_GROWTH_TREND进行空间分析时被触发,根本原因在于内部算法在执行空间检查时,耗费了大量的评估IO成本,导致了大量的IO资源使用
工作日志:10 亿记录表的几个索引创建时间 Posted by eygle at 2009-10-26 【内容摘要】记录一下最近完成的一个大表数据整理,在近10亿记录的表上创建了3个索引,使用NOLOGGING,COMPRESS选项。
工作记录: 2亿记录的导入及索引创建 Posted by eygle at 2009-09-29 【内容摘要】昨天做了这样一个工作,将一个2.2亿记录的分区导入一台 2 CPU (2 cores per cpu)的主机:
model name : Intel(R) Xeon(R) CPU 5130 @ 2.00GHz
这个过程大约用了15个小时的时间,非常漫长
工作日志:2亿记录的exp导出时间记录 Posted by eygle at 2009-09-26 【内容摘要】一个短信表的分区,使用direct模式导出
Exp 导出与 Expdp 的速度与时间对比 Posted by eygle at 2009-09-24 【内容摘要】虽然expdp是Oracle 10g推荐的逻辑导出方式,但是仍然有很多人并不习惯这一方式,这与expdp的使用复杂度有关,我觉得expdp的directory方式应当简化,由参数行定义就好了,后台由数据库自动去维护。
大表海量数据的转移及索引创建的记录 Posted by eygle at 2009-09-23 【内容摘要】为了减少对于生产环境的影响,我们将大表的数据分配迁移到测试机上进行处理,然后在转移回生产库。
换一种思路 - 通过导出导入进行数据整理 Posted by eygle at 2009-09-18 【内容摘要】虽然通过不断的优化,在前面客户的数据表里将数据鉴别出来仍然是不现实的。
20亿条记录,过滤用户退订部分,据估算,统计一次要46天左右,删除可能要耗时在200天左右,单块读平均每次等待时间达到8ms。
CBO的魔术 - 一个错误的索引选择会带来的后果 Posted by eygle at 2009-09-16 【内容摘要】说CBO是Oracle最为博大精深的技术一点也不为过,只是这技术越复杂越深奥出错的机会就越多了。
使用ora_rowscn识别误操作数据时间点 Posted by eygle at 2009-09-08 【内容摘要】如果没有明显的字段可以识别,那么ora_rowscn可以作为一个参考,以下这个查询就可以通过SCN和数据识别,将后来增加的记录找出来
恩墨科技为某企业SAP数据库提供紧急援助服务 Posted by eygle at 2009-09-07 【内容摘要】最近已经遇到了多次SAP备份失败导致的故障,有的甚至要求从数月之前的归档开始恢复,导致客户的业务遭受影响和损失。
并行查询的 PX Deq: reap credit 等待 Posted by eygle at 2009-09-02 【内容摘要】所以我们应该获得的经验是:在RAC环境中,应当避免频繁查询GV$全局视图。而Metalink上可以找到几则关于访问GV$SESSION视图的Bug。
使用errorstack跟踪ORA-01438错误 Posted by eygle at 2009-07-13 【内容摘要】跟踪文件中缺省的不会记录具体的SQL、绑定变量等信息,我们可以通过ErrorStack进行后台跟踪,获得更详细的信息,执行如下SQL:alter system set events='1438 trace name errorstack forever,level 10';
断电故障导致 ASM DiskGroup 故障及恢复案例 Posted by eygle at 2009-07-09 【内容摘要】ASM在RAC环境中的使用已经极其广泛,但是往往由于对ASM的认识不够,很多时候在处理故障时会陷入谜团,前一段在客户环境中就遇到了一个ASM的棘手问题。
10g临时表空间组导致递归SQL高度解析案例 Posted by eygle at 2009-06-12 【内容摘要】我们在使用Oracle的一些新特性时,一定要注意观察,看是否会引发一些新的问题,最近发现的几个Bug都和Oracle的一些新特性相关。
恩墨科技为中国国际电子商务中心提供服务 Posted by eygle at 2009-06-11 【内容摘要】熟悉的表名,熟悉的系统,而当初帮客户诊断系统是大约在2003年了,转眼6年过去,竟然又转回头,再次遇到这个系统。
见过这么高并发( logons current)的数据库么? Posted by eygle at 2009-05-11 【内容摘要】今天在客户这里,在9206 RAC的集群环境中,偶然发现数据库的Logons Current指标超高。
高得超乎寻常,可以让我们直接判断为Bug,看看以下数据。
ORA-02097 标准版里Resource Manager的Bug Posted by eygle at 2009-05-07 【内容摘要】这也是一个Bug,在10gR1里,Bug 4343398,这个Bug是为了修复另外一个Bug引入的,虽然resource manager在标准版不可用,代码里仍然执行了不必要的检查,并且触发了错误,还好也是无伤大雅的。
Oracle的to_date转换可能导致的错误SQL结果 Posted by eygle at 2009-05-05 【内容摘要】Metalink上的Bug 4156916 - Dump / wrong results from TO_DATE without a full date format mask 可能与此有关。
使用DATAPUMP导致ORA-00600 17020错误 Posted by eygle at 2009-04-09 【内容摘要】Oracle 10g 引入的数据泵(Datapump)带来了一系列的好处,比如Server端执行,不惧怕网络终端,任务可以中断和重启动,在数据库端通过队列来调度执行等等。
但是随着这些好处也引来一系列的问题,比如客户数据库又遇到如下问题:ORA-00600 17020错误。
这是由于导出时队列错误导致的(Oracle 10gr2支持自动的队列调度,但是据我观察,是存在很多问题的),Metalink的Bug 4334700 与此有关,Unix、Linux平台在Oracle 11g中得到修正
Oracle如何维护SMON_SCN_TIME表? Posted by eygle at 2009-04-09 【内容摘要】这是由于数据库内部更新smon_scn_time出现的错误,这个字典表用于维护Oracle至关重要的SCN与时间的对应关系,Flashback等重要特性也以来于此。
ORA-01114、ORA-27067错误案例一则 Posted by eygle at 2009-04-08 【内容摘要】这个问题的CTAS SQL有600多个Case When判断,SQL文本有47K,强烈用户建议改写SQL。
遭遇 ORA-7445 kkofkrproratestat 错误 Posted by eygle at 2009-03-24 【内容摘要】确定性是这个问题导致,但是在实际环境中和优化器模式无关,和一个SQL的低效、全表访问、引发大量的Buffer热点竞争有关,由这个原因导致。
ORA-00600 17182 错误案例一则 Posted by eygle at 2009-02-12 【内容摘要】Oracle检测到内存的错误,可能是因为内存块的覆盖,导致数据损坏或丢失。这个错误可能在进程heap或者SGA中出现,没有潜在的数据损失。
Oracle跨版本导出EXP-00003错误的解决 Posted by eygle at 2009-02-10 【内容摘要】"EXP-00003: no storage definition found for segment ....."错误,和Oracle的一个小Bug相关,可以通过修改一个导出相关的View来解决。
Logical Standby ORA-01425错误处理一则 Posted by eygle at 2009-02-08 【内容摘要】今天客户的Logical Standby数据库出现如下错误,这个错误出现在使用skip跳过某个表的DML事务之后。
Oracle10gR2中的Mutex竞争的案例 Posted by eygle at 2008-10-14 【内容摘要】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 问题解决 Posted by eygle at 2008-09-03 【内容摘要】在Solaris上安装Oracle10g时,遇到了如下一个错误:
Exception String: Error in invoking target 'all_no_orcl ihsodbc' of
makefile '/data1/oracle/product/rdbms/lib/ins_rdbms.mk'.
歌华经历的数据库"攻击" Posted by eygle at 2008-07-22 【内容摘要】我和客户开玩笑,这就是数据库攻击啊。
也许在客户端按一个F5,最终转嫁到数据库上的负荷就成为了灾难。
奥运期间,安保第一,要加强防范。数据库也是如此!
ORA-07445 数据库也会旧病复发 Posted by eygle at 2008-07-16 【内容摘要】上一次我在客户现场待了三天,解决问题之后稳定运行了9个月,也算是不错的业绩了,可是客户总是在问题解决之后就觉得不再需要技术人员了。这是做技术的悲哀。
Oracle中的不可见字符处理案例一则 Posted by eygle at 2008-06-25 【内容摘要】那么这个0代表什么字符呢?在ASCII编码表里我们可以看到这对应了一个不可见字符,这是数据入库时的异常导致的
DMT之后SMON还需要coalesce么? Posted by eygle at 2008-02-22 【内容摘要】在LMT之前,也就是说在DMT中,SMON的一个经常性工作是去合并(coalesce )相邻的自由空间。
ORA-03113错误解决一例 Posted by eygle at 2008-02-07 【内容摘要】大家知道,ORA-03113错误是Oracle数据库常见的错误,导致这个错误的原因比较复杂,各种各样的原因。可能是网络中断引起的、也可能是数据库本身出现了问题。
成功恢复案例:解决字典表误Truncate故障 Posted by eygle at 2008-01-22 【内容摘要】这一案例的恢复过程并不重要,重要的是DBA应该学会永远不要让我们的数据库置于这样的危险境地
成功恢复案例:打开断电崩溃数据库 Posted by eygle at 2008-01-20 【内容摘要】2008年,计划在年后开始自己的事业,从事全职的Oracle技术服务、数据恢复与Oracle培训等业务。
Oracle 10.2.0.3的ORA-1461错误 Posted by eygle at 2008-01-07 【内容摘要】发现最近在Oracle 10.2.0.3的RAC环境中,时不时会提示下面错误:ORA-1461 encountered when generating server alert SMG-3500
AIX不完整的补丁安装以及Oracle的Bug Posted by eygle at 2007-12-03 【内容摘要】不完全的补丁安装是危险的,在进行系统升级时一定要慎重,最好将系统运行在经过验证的稳定的系统版本上,升级过快可能会带来更多的不稳定因素。
Linux RAC OCFS文件系统与INODES Posted by eygle at 2007-12-02 【内容摘要】也就是说OCFS和通常的文件系统不同,inodes在这里并不发挥通常文件系统的作用。
恢复8.1.6的数据库 勿忘svrmgrl Posted by eygle at 2007-10-26 【内容摘要】唯一需要记录的是,svrmgrl几乎要被遗忘,但是在8i版本中,它依然重要
497天是一个轮回-记Linux时钟的回转 Posted by eygle at 2007-09-17 【内容摘要】由于某些Linux内核使用32位无符号长整型来计算时间,32位的最大值就是0xffffffff,再加1就将溢出变为0
Oracle HowTo:判断一个死事务的恢复进度 Posted by eygle at 2007-09-11 【内容摘要】由于死事务已经无法通过v$transaction来观察,所以必须通过内部表来进行判断。
这个内部表是x$ktuxe,该表会记录Dead事务的恢复进度
Oracle诊断案例-Job任务停止执行 Posted by eygle at 2004-11-26 【内容摘要】昨天接到研发人员报告,数据库定时任务未正常执行,导致某些操作失败。.....
使用SQL_TRACE进行数据库诊断 Posted by eygle at 2004-10-31 【内容摘要】SQL_TRACE是Oracle提供的用于进行SQL跟踪的手段,是强有力的辅助诊断工具.在日常的数据库问题诊断和解决中,SQL_TRACE是非常常用的方法。
本文就SQL_TRACE的使用作简单探讨,并通过具体案例对sql_trace的使用进行说明.
如何捕获问题SQL解决过度CPU消耗问题 Posted by eygle at 2004-10-24 【内容摘要】Oracle诊断案例----如何捕获问题SQL解决过度CPU消耗问题
--使用vmstat,top等辅助解决Oracle数据库性能问题
如何诊断和解决CPU高度消耗(100%)的数据库问题 Posted by eygle at 2004-10-24 【内容摘要】很多时候我们的服务器可能会经历CPU消耗100%的性能问题. 排除系统的异常,这类问题通常都是因为系统中存在性能低下甚至存在错误的SQL语句, 消耗了大量的CPU所致...
Oracle诊断案例-SGA与Swap之一 Posted by eygle at 2004-10-07 【内容摘要】案例描述:
用户报告,服务器启动一段时间以后,无法建立数据库连接
重新启动几分钟以后,再次无法连接