Author Archives: yangtingkun

客户数据库出现大量cache buffer chains latch

客户产品数据库上午出现了严重的性能问题,简单记录一下问题的诊断和解决过程。 可以看到,数据库的DB TIME已经涨到了非常高的地步,这说明系统正经受着非常严重的性能问题: Snap Id Snap Time Sessions Cursors/Session Begin Snap: 7170 31-3月 -12 08:00:50 395 10.5 End Snap: 7172 31-3月 -12 09:00:27 689 11.7 Elapsed: 59.61 (mins) DB Time: 17,270.93 (mins)   从TOP 5看,等待事件中最明显的是latch: cache buffers chains,从当前系统的状态也可以看到这一点: SQL> SELECT … Continue reading

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

标签安全管理员手册

Oracle的LABEL安全选件从9i就有,不过一直没有研究过。 当时对于这个LABEL SECURITY的最早印象就是,这是9i中为数不多的安装后V$OPTION视图中显示没有启用的选件之一,印象毕竟深的除了RAC就是这个标签安全了。而到了10g中这个标签安全依然是默认没有启用的选件。 记得当时Kamus研究过这个功能,当时凑热闹了解了一下,这种了解都是流于表面,而且这么长时间早就忘光了。 最近对安全方面毕竟关注,因此这些平时不太常用的功能也开始逐渐的挨个往起捡了。 在线文档地址:http://www.oracle.com/pls/db112/to_toc?pathname=network.112%2Fe10745%2Ftoc.htm&remark=portal+%28Books%29

Posted in BOOKS | Leave a comment

将指定SQL的执行计划从共享池删除

如果Oracle的优化器产生了某种错误的执行计划,或者我们希望Oracle对于某个SQL重新进行分析,那么就需要这个SQL的执行计划在共享池中过期,而简单的方法在10.2.0.4以后才出现。 对于以前的版本而言,最显而易见的方法莫过于直接刷新共享池,但是如果是数据库中绝大部分的SQL都存在问题,那么这种方法无可厚非,也可能是见效最快的方法,而如果数据库中仅仅是个别的SQL存在问题,那么这种方法就过于暴力了。 SQL> SELECT COUNT(*) FROM dual; COUNT(*) ———- 1 SQL> SELECT sql_id, address, hash_value, executions, loads, parse_calls, invalidations 2 FROM v$sqlarea 3 WHERE sql_text = ‘select count(*) from dual’; SQL_ID ADDRESS HASH_VALUE EXECUTIONS LOADS PARSE_CALLS INVALIDATIONS ————- —————- ———- … Continue reading

Posted in ORACLE | Tagged , , , , , | 2 Comments

安装DBMS_SHARED_POOL包

Oracle提供了一个管理共享池对象的接口——DBMS_SHARED_POOL包,不过这个包在11g以前的版本是默认没有安装的。 先看一下11.2的情况: SQL> SELECT * FROM v$version; BANNER ——————————————————————————– Oracle DATABASE 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production PL/SQL Release 11.2.0.3.0 – Production CORE 11.2.0.3.0 Production TNS FOR Solaris: Version 11.2.0.3.0 – Production NLSRTL Version 11.2.0.3.0 – Production SQL> … Continue reading

Posted in ORACLE | Tagged , , | Leave a comment

Oracle VM用户手册总结

虽然VM用户手册中没有找到我感兴趣的TroubleShooting的内容,但是关于详细配置的内容确实不少。 估计要是有时间的话,根据文档的细致描述仔细测试的话,有可能解决配置VM过程中的问题,不过没有故障诊断方面的信息一定会使得问题解决的成本大幅增加。 总的来说,VM的相关资料还是太少,而且官方文档的内容也太少,即使是METALINK上也没有太多有价值的信息。 从Oracle的策略上看,似乎也没有大力去发展VM,因此短期内VM无论是技术上还是市场上可能都很难有非常大的发展。

Posted in BOOKS | Leave a comment

Linux上Oracle启用异步IO

刚解决了一个异步io的问题,还是专门描述一下Oracle中设置异步IO的方式。 首先要检查操作系统上,异步io的相关包是否已经安装,如果没有的话,通过rpm进行安装,并检查系统上异步io的参数设置: [oracle@localhost ~]$ rpm -qa|grep aio libaio-0.3.107-10.el6.x86_64 libaio-devel-0.3.107-10.el6.x86_64 [oracle@localhost ~]$ more /proc/sys/fs/aio-max-nr 1048576[oracle@localhost ~]$ rpm -qa|grep aio libaio-0.3.107-10.el6.x86_64 libaio-devel-0.3.107-10.el6.x86_64 [oracle@localhost ~]$ more /proc/sys/fs/aio-max-nr 1048576 然后检查数据库在链接时是否已经加载了aio的包: [oracle@localhost ~]$ /usr/bin/ldd $ORACLE_HOME/bin/oracle | grep libaio libaio.so.1 => /lib64/libaio.so.1 (0x0000003e13000000)[oracle@localhost ~]$ /usr/bin/ldd $ORACLE_HOME/bin/oracle … Continue reading

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

Linux上Oracle是否使用异步io的诊断

客户的数据库IO负载较重,检查后发现并未设置异步IO。 整个数据库的负载都集中在IO相关的等待上: Top 5 Timed Foreground Events Event Waits Time(s) Avg   wait (ms) %   DB time Wait   Class log   file sync 697,116 70,128 101 36.29 Commit db   file sequential read 2,982,135 54,498 18 28.20 User … Continue reading

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

消除11.2上的db file parallel read

客户在11.2.0.3环境中进行压力测试,发现出现大量的db file parallel read等待事件。 这个等待是11g以后才出现的,而在11g以前,一般这个等待事件发生在数据文件的恢复过程中。而11g新增了prefetch的特性,也可能导致这个等待事件的产生。 当运行压力测试时,后台的等待事件如下: SQL> SELECT event, COUNT(*) FROM v$session WHERE username = USER GROUP BY event ORDER BY 2; EVENT COUNT(*) —————————————————————- ———- SQL*Net message FROM client 1 SQL*Net message TO client 1 db file sequential READ … Continue reading

Posted in ORACLE | Tagged , , , , , | 2 Comments

11gr2访问V$LOCK视图出现性能问题

在Oracle 11.2.0.3 For Linux X64环境中,碰到这个问题。 检查数据库是否存在锁信息,在查询V$LOCK视图时发现很长时间没有响应,甚至一度认为数据库HANG住: SQL> SELECT * FROM v$lock WHERE TYPE != ‘MR’; ADDR KADDR SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK —————- —————- —- — ——– —- —– ——- —– —– 0000000C5A6AA770 0000000C5A6AA7C8 3405 TO 5124 … Continue reading

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

RMAN-600(8201)错误

客户数据库在执行RMAN备份时碰到这个错误。 错误信息如下: RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure OF backup command at 03/25/2012 02:31:18 RMAN-00600: internal error, arguments [8201] [] [] [] []RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== … Continue reading

Posted in BUG | Tagged , , , , , | 4 Comments