Author: mac

  • ORA-07445: [__lwp_kill()+8] [SIGIOT]错误一例

    这是一套SunOS 5.10上的10.2.0.3的RAC系统,8月初告警日志中陆续出现以下记录: Tue Aug 3 15:17:04 2010 Errors in file /u01/app/oracle/admin/prsi061/udump/prsi061a_ora_27774.trc: ORA-07445: exception encountered: core dump [__lwp_kill()+8] [SIGIOT] [unknown code] [0x6C7E00000000] [] [] SIGIOT信号伴随7445错误出现并不多见,因为该信号一般是用来实现相关的硬件异常的。 我们可以欣赏一下这个trace文件。 trace文件中的堆栈信息如下: ksedmp()+744 CALL ksedst() 000000840 ? 1066C60CC ? 000000000 ? 1066C2BC0 ? 1066C1928 ? 1066C2328 ? ssexhd()+1240 CALL ksedmp() 000106400 ? 106530764 ? 106530000 ? 000106530 ? 000106400 ? 106530764…

  • 利用FORCE_MATCHING_SIGNATURE捕获非绑定变量SQL

    做为一个DBA,你大概习惯了定期要抓取数据库中的非绑定变量SQL,这些SQL经常扮演着一箱苹果中蛀虫的角色。 看到下列SQL你必定觉得眼熟: SELECT substr(sql_text, 1, 80), count(1) FROM v$sql GROUP BY substr(sql_text, 1, 80) HAVING count(1) > 10 ORDER BY 2 是的,以上这段抓取literal sql的脚本大约从8i时代就开始流行了,在那时它很popular也很休闲,使用它或许还会给你的雇主留下一丝神秘感。不过今天我要告诉你的是,它彻底过时了,落伍了,已经不是fashion master了。 10g以后v$SQL动态性能视图增加了FORCE_MATCHING_SIGNATURE列,其官方定义为”The signature used when the CURSOR_SHARING parameter is set to FORCE”,也就是Oracle通过将原SQL_TEXT转换为可能的FORCE模式后计算得到的一个SIGNATURE值。这么说可能不太形象,我们来具体看一下: SQL> create table YOUYUS (t1 int); Table created. SQL> alter system flush shared_pool; System altered. SQL>select /*test_matching_a*/ * from YOUYUS…

  • ORA-00600:[qctcte1]内部错误一例

    一套AIX上的4节点10.2.0.4 RAC系统在1月份出现实例hang住的现象,并伴随有ORA-00600:[qctcte1]内部错误,trace文件内容如下: siposrc1_ora_102944.trc Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options ORACLE_HOME = /oracle/product/10.2.0/db_1 System name: AIX Node name: jszydb1 Release: 3 Version: 5 Machine: 00CE31834C00 Instance name: siposrc1 Redo thread mounted by this instance: 1 Oracle process number:…

  • ddl操作是否会产生undo?

    ddl是否会产生undo? 这可能是每一个初学Oracle的人都会有的疑问;ddl操作又不能rollback回滚,要什么undo数据呢? 事实是几乎每个ddl操作都会产生undo,我们来探究一下: SQL> select vs.name, ms.value 2 from v$mystat ms, v$sysstat vs 3 where ms.statistic# = vs.statistic# 4 and name = ‘undo change vector size’; NAME VALUE —————————————————————- ———- undo change vector size 0 SQL> create table YOUYUS (t1 int); Table created. SQL> select vs.name, ms.value 2 from v$mystat ms, v$sysstat vs 3 where…

  • 对于OCM考试的几点意见和建议

    Oracle Certified Master(OCM) 大师认证资质是Oracle认证的最高级别。此认证是对技术、知识和操作技能的最高级别的认可。Oracle认证大师是解决最困难的技术难题和最复杂的系 统故障的最佳Oracle专家人选。资深专家级Oracle 技能考试,通过后将成为企业内的资深专家和顾问。OCM 不但有能力处理关键业务数据库系统和应用,还能帮助客户解决所有的Oracle 技术困难。要想获得OCM 证书,必须先通过OCA、OCP考试,再学习两门高级技术课程,然后在Oracle 实验室通过场景实验考试。场景实验考试的目的是测试您的实际问题分析和故障解决能力。 作为一个过来人,我十分愿意分享我对备考OCM的几点建议: 这对于你来说既是一次考试,也是一次系统复习的好机会;OCM考试的面非常广,部分环节可能是你从未实践过的。 准备时间最好不要少于半年,但也千万不要超过半年。 准备阶段使用考纲指定的操作系统,DB,OMS,Clusterware版本。这里推荐在Redhat或Oracle Enterprise Linux 4.7平台上练习,切勿使用windows或windows远程登录练习。 2天的考试是对体力的考验,所以要保证充足的睡眠。 试卷分英语和日语两版;题目文字量较多,需认真阅读;如果对题意并不明了,可以让监考老师进一步解释,一般不会推辞。 很多考试中要求建立的对象可以通过OMS获得SQL语句,确认后输入到SQLPLUS中执行。 部分环节需要十分耐心,如果你不想在屏幕前焦急等待,可以去上个厕所或者泡杯咖啡,总之请放轻松。 如果你不熟悉Grid Control(OMS)界面,那么可以尝试读一下《Oracle.Enterprise.Manager.10g.Grid.Control.Implementation.Guide.2009》,并勤加练习。 考试期间可以阅读10g的官方文档,也可以查询metalink(MOS),前提是在你有足够时间的情况下。 安装配置Grid Control(OMS)是考试的一个高危阶段,这往往决定于你的安装配置经验以及人品,但是一旦出现了问题而你毫无troubleshooting Grid Control的能力,那么就显得事倍功半了。 考试后的hand on是一个”复杂的”过程,请致电OU的800电话。 to be continued …………

  • Does DB Time include wait on cpu queue time?

    DB TIME1=DB CPU2+ Foreground NO-Idle wait time 1:Amount of elapsed time (in microseconds) spent performing Database user-level calls. This does not include the elapsed time spent on instance background processes such as PMON. 2:Amount of CPU time (in microseconds) spent on database user-level calls. This does not include the CPU time spent on instance background…

  • 11g 新特性IGNORE_ROW_ON_DUPKEY_INDEX提示

    11g中引入一些功能强大的hint提示,其中就包括了IGNORE_ROW_ON_DUPKEY_INDEX。其官方定义为: “The IGNORE_ROW_ON_DUPKEY_INDEX hint applies only to single-table INSERT operations. It is not supported for UPDATE, DELETE, MERGE, or multitable insert operations. IGNORE_ROW_ON_DUPKEY_INDEX  causes the statement to ignore a unique key violation for a specified set of columns or for a specified index. When a unique key violation is encountered, a row-level rollback occurs and…

  • 8i查询DBA_FREE_SPACE视图极慢的问题

    还是那套古老的8.1.7.4,在该系统上检查表空间使用情况的SQL运行缓慢,其SQL如下: SELECT D.TABLESPACE_NAME, SPACE “SUM_SPACE(M)”, SPACE – NVL(FREE_SPACE, 0) “USED_SPACE(M)”, ROUND((1 – NVL(FREE_SPACE, 0) / SPACE) * 100, 2) “USED_RATE(%)”, FREE_SPACE “FREE_SPACE(M)” FROM (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) D, (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) FREE_SPACE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F where d.tablespace_name…

  • Segment in recyclebin? Is it free?

    考过10g ocp的朋友大概都看到过这样的问题,回收站中的对象所占空间是否算作free space? 纸上得来终觉浅,我们实地考察一下: SQL> set long 99999999; /*DBA_FREE_SPACE视图列出了数据库中所有表空间上空闲的区间,利用该视图我们可以计算表空间使用率等 注意该视图不会列出本地管理模式中offline的数据文件(或表空间)上的相关区间信息*/ SQL> select text from dba_views where view_name=’DBA_FREE_SPACE’; TEXT ——————————————————————————– select ts.name, fi.file#, f.block#, f.length * ts.blocksize, f.length, f.file# from sys.ts$ ts, sys.fet$ f, sys.file$ fi where ts.ts# = f.ts# and f.ts# = fi.ts# and f.file# = fi.relfile# and ts.bitmapped = 0 union all select /*+…

  • ora-600 [17182]错误一例

    这是一套古老的系统,SUNOS 5.8,Oracle 8.1.7.4。最近老革命途遇新问题,告警日志烽烟掠起: Errors in file /u01/app/oracle/admin/CULPRODB/udump/culprodb_ora_7913.trc: ORA-00600: internal error code, arguments: [17182], [32438472], [], [], [], [], [], [] Thu Jul 15 16:19:29 2010 Errors in file /u01/app/oracle/admin/CULPRODB/udump/culprodb_ora_7913.trc: ORA-00600: internal error code, arguments: [17182], [32438472], [], [], [], [], [], [] Thu Jul 15 16:19:30 2010 Errors in file /u01/app/oracle/admin/CULPRODB/udump/culprodb_ora_7913.trc: ORA-00600: internal error code,…