Tag Archives: 11.2

11.2使用KEEP池导致ENQ: KO – Fast Object Checkpoint等待

前一段时间在客户测试TPCC的时候碰到这个问题,今天在MOS上找到问题的原因,简单记录一下。 在11.2中,如果表设置了KEEP池,而在初始化参数中没有指定DB_KEEP_CACHE_SIZE的值,就可能会造成数据库中出现明显的ENQ: KO – Fast Object Checkpoint的等待,同时还伴有reliable message的等待。 MOS文档ENQ: KO – Fast Object Checkpoint And Reliable Message Causing Bad Performance [ID 1377830.1]描述了这个问题,给出的解决方案是不使用KEEP池,改为使用DEFAULT池,或者设置DB_KEEP_CACHE_SIZE的值为非0。 而当时测试的过程中,问题与当前的现象很像,版本是11.2.0.2,在执行完压力测试后,所有程序断开后。如果执行关闭操作SHUTDOWN IMMEDIATE,此时就可以发现,数据库经历漫长的ENQ: KO – Fast Object Checkpoint等待,然后数据库才可以正常关闭。不过唯一的不同之处在于,当时测试环境中设置了DB_KEEP_CACHE_SIZE的值,因此问题和当前问题描述很像,但并不一样。 由于环境已经消失,现在无法验证这个问题,但是根据印象判断,这个问题可能确实和使用了KEEP池有关,在使用KEEP池之前使用默认的DEFAULT池时,数据库关闭并没有经历如此严重的等待。因此,在11.2中使用非DEFAULT池,可能会引发异常  

Posted in BUG | Tagged , , , , | Leave a comment

ORA-600(qctopn1)错误

客户11.2.0.2环境数据库出现这个ORA-600错误。 详细错误信息如下: Tue Jun 12 09:50:47 2012 Errors IN file /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_ora_28252.trc (incident=329000): ORA-00600: internal error code, arguments: [qctopn1], [], [], [], [], [], [], [], [], [], [], [] Incident details IN: /u01/app/oracle/diag/rdbms/orcl/orcl2/incident/incdir_329000/orcl2_ora_28252_i329000.trc Tue Jun 12 09:51:21 2012 Dumping diagnostic … Continue reading

Posted in BUG | Tagged , , , , , , | Leave a comment

ORA-8103错误

最近碰到两次ORA-8103错误,简单总结一下。 一次是客户的10.2数据库出现了ORA-600[6002]错误,导致的问题是索引出现了逻辑损坏,本来问题很简单,只需要删除索引并重建,或者通过ONLINE REBUILD方式就可以了。但是索引删除后,扫描这张表出现了ORA-8103错误,这说明错误不仅出现在索引上,在数据块上同样存在逻辑错误,从而导致了前面的ORA-600[6002]错误。 第二个问题是11.2.0.2环境中出现的ORA-8103错误,错误发生在统计信息收集过程中: Fri Mar 30 02:00:00 2012 DBMS_STATS: GATHER_STATS_JOB encountered errors. CHECK the trace file. Errors IN file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_j000_25932.trc: ORA-20011: Approximate NDV failed: ORA-08103: object no longer EXISTSFri Mar 30 02:00:00 2012 DBMS_STATS: GATHER_STATS_JOB encountered errors. Check the … Continue reading

Posted in BUG | Tagged , , , , | Leave a comment

备份导致ORA-245错误

客户的11.2 RAC数据库在备份是出现ORA-245错误。 从告警日志中可以看到错误信息为: Errors IN file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_18335.trc: ORA-00245: control file backup operation failedErrors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_18335.trc: ORA-00245: control file backup operation failed 详细TRACE信息为: Trace file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_18335.trc Oracle DATABASE 11g Enterprise Edition Release 11.2.0.2.0 – 64bit Production WITH the Partitioning, REAL … Continue reading

Posted in BUG | Tagged , , , , | Leave a comment

11.2数据库登录出现library cache lock等待(二)

客户的11.2.0.2 RAC for Linux X86-64环境的数据库在登录时,发现出现长时间等待。 这一篇描述现象重现过程。 11.2数据库登录出现library cache lock等待(一):https://yangtingkun.net/?p=279 上一篇描述了客户的11.2.0.2 RAC for Linux X86-64环境出现library cache lock的问题,同事回来后想要模拟这个现象,在Windows环境下的11.2.0.1上却没有模拟出来,我也在Windows上的11.2.0.1上尝试了一下,结果没有出现library cache lock等待,但是出现了row cache lock等待事件。 测试步骤很简单,开启三个sqlplus,其中一个设置SET TIME ON,获取时间信息,并不断的已错误的用户名密码尝试连接数据库。另一个会话以正确的用户名和密码连接到数据库,设置SQLPROMPT为SQL2>,以便于和第一个会话区别。最后一个会话以SYS登录数据库,检查会话的等待状态: SQL> SET TIME ON 08:34:41 SQL> CONN TEST/A@192.25.1.100/TEST112 ERROR: ORA-01017: 用户名/口令无效; 登录被拒绝   08:34:42 SQL> CONN TEST/A@192.25.1.100/TEST112 … Continue reading

Posted in ORACLE | Tagged , , | Leave a comment

11.2数据库登录出现library cache lock等待(一)

客户的11.2.0.2 RAC for Linux X86-64环境的数据库在登录时,发现出现长时间等待。 这一篇描述问题的现象的诊断。 出问题的时候我正好在客户现场,于是当时诊断了一下。 客户反映,问题发生在一个用户上,使用这个用户登录需要等待很长时间,而使用其他的用户登录则不存在问题。 首先检查了DBA_PROFILES,确认和密码以及登录有关的PROFILE是否存在限制,当前数据库已经都设置为UNLIMITED,那么问题应该和PROFILE无关。 检查出现问题的用户,也未发现任何特别之处。 在sqlplus上使用这个用户登录,经历了将近10秒左右的等待,终于成功登录。同时检查到会话当时出现library cache lock等待事件。 当再次尝试重现问题时,却已发现问题无法重现了,现在即使使用刚才的问题用户,也可以很快登录成功,并不会出现明显的登录等待。莫非一次成功的登录,就可以解决这个问题。 不过很快,问题再次出现,为了检查会话执行的具体操作,对这个问题用户创建了一个登录触发器,在登录触发器中设置会话的TRACE: SQL> CREATE OR REPLACE TRIGGER T_AFTER_LOGON AFTER LOGON ON DATABASE 2 BEGIN 3 IF USER = ‘GJT’ THEN 4 DBMS_SESSION.SESSION_TRACE_ENABLE(TRUE, TRUE); 5 END IF; 6 … Continue reading

Posted in ORACLE | Tagged , , | 2 Comments

11g改变了DELETE语句的执行计划

在11.2中,如果DELETE的时候没有限制条件,且表上存在主键的话,执行计划会变为索引全扫。 在和600聊天的时候听说了这个现象,开始的时候还不是很相信。当时600特意验证了一下,事实确实如此。 于是特意自己也做了个简单的例子: SQL> SELECT * FROM v$version; BANNER ——————————————————————————– Oracle DATABASE 11g Enterprise Edition Release 11.2.0.2.0 – Production PL/SQL Release 11.2.0.2.0 – Production CORE 11.2.0.2.0 Production TNS FOR Linux: Version 11.2.0.2.0 – Production NLSRTL Version 11.2.0.2.0 – Production SQL> … Continue reading

Posted in ORACLE | Tagged , , | 1 Comment

11.2 sqlplus新增连接是指定版本

在11.2中,Oracle新增了版本的功能,而随之一些工具都对于版本功能有所支持,比如11.2中,sqlplus在连接数据库时就可以指定当前数据库连接到哪个版本上。 需要说明的是,这种连接版本方式的优先级是最高的,它的优先级高于ORA_EDITION环境变量,更高于数据库默认版本,看一个简单的例子: D:\>sqlplus / AS sysdba SQL*Plus: Release 11.2.0.1.0 Production ON 星期二 9月 27 08:21:47 2011 Copyright (c) 1982, 2010, Oracle. ALL rights reserved. 连接到: Oracle DATABASE 11g Enterprise Edition Release 11.2.0.1.0 – Production WITH the Partitioning, OLAP, DATA Mining … Continue reading

Posted in BUG, ORACLE | Tagged , , , | Leave a comment

11.2通过数据库链调用10.2过程报错

测试中无意发现了这个bug,在11.2数据库通过数据库链,执行10.2.0.1上的过程,结果出现ORA-06553: PLS-801: internal error [55916]的错误。 错误可以通过下面的例子重现: -bash-3.2$ sqlplus / AS sysdba SQL*Plus: Release 10.2.0.1.0 – Production ON Mon Sep 12 23:12:47 2011 Copyright (c) 1982, 2005, Oracle. ALL rights reserved. Connected TO: Oracle DATABASE 10g Express Edition Release 10.2.0.1.0 – … Continue reading

Posted in BUG | Tagged , , , , , , | Leave a comment

11.2数据库监听的改变

11.2由于RAC中GRID的分离以及实现了SCAN功能,使得监听的优先级发生了改变。 一个11.2环境的单实例数据库,配置了ASM,随后在同一个服务器上又新建了一个数据库,同样使用这个ASM,但是发现连接这个新的数据库时出现了错误。 [oracle@dbserver1 ~]$ export ORACLE_SID=al32utf8 [oracle@dbserver1 ~]$ sqlplus / AS sysdba SQL*Plus: Release 11.2.0.2.0 Production ON Mon Sep 5 14:04:57 2011 Copyright (c) 1982, 2010, Oracle. ALL rights reserved. Connected TO: Oracle DATABASE 11g Enterprise Edition Release 11.2.0.2.0 – … Continue reading

Posted in ORACLE | Tagged , , , | Leave a comment