Author: mac

  • gc buffer busy/gcs log flush sync与log file sync

    这篇博文整理自我的帖子: RAC中的gc current block busy与redo log flush   对于log file sync(本质上是 write redolog慢)引发gc buffer busy acquire /release 集群等待事件的这个命题的真伪,其实Oracle在开发性能调优组件ADDM时一早给了我们答案:   RECOMMENDATION 2: Host Configuration, 12% benefit (507182 seconds) ACTION: Investigate the possibility of improving the performance of I/O to the online redo log files. RATIONALE: The average size of writes to the online redo log files was…

  • 【转】ORA-12528 Oracle 实例无法正常连接一例

    查看故障时间的监听日志,如下: … TNS-12528: TNS:listener: all appropriate instances are blocking new connections 05-OCT-2011 14:02:34 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))(SERVICE_NAME=siebeldb)) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.7.88.195)(PORT=33825)) * establis h * siebeldb * 12528 TNS-12528: TNS:listener: all appropriate instances are blocking new connections 05-OCT-2011 14:02:34 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))(SERVICE_NAME=siebeldb)) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.7.88.195)(PORT=33826)) * establis h * siebeldb * 12528 TNS-12528: TNS:listener: all appropriate instances are blocking new connections…

  • Oracle数据库新版本12c信息汇总

    Oracle甲骨文公司的旗舰产品Oracle Database 12c进入release发布的倒计时, 可能在今年7月在上海举行的OOW之前发布。 Oracle Database 12c是甲骨文公司上千名软件工程师耗时7~8年研发的超重量级RDBMS管理型数据库管理系统,可以说是目前世界上技术最为领先的DB产品,业界分析Oracle DB在技术上领先对手5年左右(一家之言)。   在这里我们来汇总了解12c的一些新知识!   【12c新特性】安装12c Standalone Grid Infrastructure 【12c新特性】EM Database Express 将在版本11.2之后废弃或不再支持的特性 解读Tom介绍的Oracle Database 12c的12个新特性 解读Oracle Database 12.1新特性Pluggable Databases 12c分页查询特性FETCH FIRST ROWS,OFFSET ROWS FETCH NEXT ROW LIMIT Clause子句 【12c新特性】dbms_stats report_gather_auto_stats统计信息报告特性 12c新特性:Recover Table Oracle Database 12c(12.1) Beta已经开始内部测试      

  • Oracle OLTP表压缩技术

      对于启用11g OLTP压缩特性的表而言,当发生INSERT时若块内部空间的阈值未达到则不作压缩,若INSERT后达到阈值则触发压缩,如上图所示。 该压缩一般与commit/rollback无关。 若存在多个字段,则可以共享使用符号表:       表空间级别指定OLTP压缩: create tablespace TablespaceName datafile ‘……..’  default COMPRESS FOR OLTP; 表级别指定压缩: create table OLTPCOMP (t1 int,t2 varchar2(200))                    COMPRESS FOR OLTP;   将表修改为COMPRESS FOR OLTP 但对现有块不压缩 alter table TableName  COMPRESS FOR OLTP; move并将表修改为COMPRESS FOR OLTP alter table TableName MOVE COMPRESS…

  • _library_cache_advice和latch:shared pool、latch:shared pool simulator

    版本10.2.0.4和11.1.0.6中”_library_cache_advice”=TRUE的情况下可能出现高latch:shared pool、latch: shared pool simulator等latch争用等待事件,默认情况下_library_cache_advice受到参数”statistics_level”的影响为TRUE,当_library_cache_advice=TRUE时他启用library cache simulator特性。   该library cache simulator特性负责估算shared pool LRU的表现,simulator模拟器收集heap内存堆大小以及load载入、pin、unpin的次数信息;通过这些数据来估算出若我们有更大的shared pool,我们可以由更大的共享池来缓存更多的SQL、PLSQL在共享池中,以此来节约加载时间。若我们设置更小的shared pool size,则又会对加载时间有何等的影响?   题外话:另一个对ASMM 下shared pool有作用的参数: _memory_broker_shrink_heaps: If 0, will not try to shrink shared pool or Java pool If greater than zero, will wait this many seconds after failed shrink request to ask again   禁用library cache simulator设置”_library_cache_advice”=false”可能”(具体仍需要诊断)解决高latch:shared pool、latch: shared…

  • 11gR2游标共享新特性带来的一些问题以及_cursor_features_enabled、_cursor_obsolete_threshold和106001 event

    版本11gR2中引入cursor sharing游标共享和mutex互斥锁增强的一些特性,而这些特性也带来了一些问题(主要体现在版本11.2.0.1和11.2.0.2上,11.2.0.3上基本已经修复)。 Cursor Obsolescence游标废弃是一种SQL Cursor游标管理方面的增强特性,该特性启用后若parent cursor父游标名下的子游标child cursor总数超过一定的数目,则该父游标parent cursor将被废弃,同时一个新的父游标将被开始。 这样做有2点好处: 避免进程去扫描长长的子游标列表child cursor list以找到一个合适的子游标child cursor 废弃的游标将在一定时间内被age out,其占用的内存可以被重新利用   实际在版本10g中就引入了该Cursor Obsolescence游标废弃特性,当时child cursor 的总数阀值是1024, 但是这个阀值在11g中被移除了,这导致出现一个父游标下大量child cursor即high version count的发生;由此引发了一系列的版本11.2.0.3之前的cursor sharing 性能问题,主要症状是版本11.2.0.1和11.2.0.2上出现大量的Cursor: Mutex S 和 library cache lock等待事件。 增强补丁Enhancement patch《Bug 10187168 – Enhancement to obsolete parent cursors if VERSION_COUNT exceeds a threshold》就该问题引入了新的隐藏参数_cursor_obsolete_threshold(Number of cursors per parent before obsoletion.),该”_cursor_obsolete_threshold”参数用以指定子游标总数阀值,若一个父游标的child cursor count<=>version count高于”_cursor_obsolete_threshold”,则触发Cursor…

  • 【Oracle数据恢复】诊断ORA-08102错误

    [oracle@mlab2 ~]$ oerr ora 8102 08102, 00000, “index key not found, obj# %s, file %s, block %s (%s)” // *Cause: Internal error: possible inconsistency in index // *Action: Send trace file to your customer support representative, along // with information on reproducing the error   ORA-8102错误出现的原理是当表或者LOB SEGMENT上存在一个键值,但是该键值在索引上却找不到时,则出现错误。 其TRACE部分类似于:     oer 8102.<code> – obj# <object…

  • VKTM进程消耗大量CPU的问题

    11g中引入了VKTM后台进程,VKTM是virtual keeper of time的缩写,该进程负责提供时钟时间(每秒更新一次)以及参考时间服务(每20ms更新一次,仅在进程高优先级情况下可用),该参考时间服务用于各种基于时间间隔的度量。  VKTM在SGA中发布这些计时信息,以便各种RDBMS Client可以廉价和快速了解时间信息。Wall-clock 时钟时间每一秒更新一次且单调递增。 而参考时间计数(Reference-time)则每20ms更新一次,且仅当VKTM运行在高优先级情况下时可用。   在某些环境下VKTM持续消耗较多的CPU,特别是在虚拟化的环境中例如Vmware、Vbox等; 对于这些虚拟化环境若是非产品production环境,则可以考虑将VKTM进程不要运行在高优先级上,虽然这会导致Reference-time参考时间计数不可用,但是实际不会产生必要的性能度量不可用的问题。 在11g中默认_high_priority_processes 隐藏参数指定了LMS*和VKTM运行在高优先级下,可以通过修改该参数,仅让LMS运行在高优先级下,这样VKTM所消耗的CPU将明显下降。 当让我们不建议在产品环境中这样做,如果你确实要这样做,建议优先咨询Oracle Support。 使用方法如下,注意需要重启RDBMS实例方才生效:       SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ FROM SYS.x$ksppi x, SYS.x$ksppcv y WHERE x.inst_id = USERENV (‘Instance’) AND y.inst_id = USERENV (‘Instance’) AND x.indx = y.indx AND x.ksppinm like ‘%high%’; SQL> alter system set “_high_priority_processes”=’LMS*’ scope=spfile;…

  • RAC Grid Infrastructure安装11.2.0.3.5 14727347 PSU GI-RDBMS补丁

    在《【视频教学】Maclean教你用Vbox在Linux 6.3上安装Oracle 11gR2 RAC》 中我们介绍了在11.2.0.3 Grid Infrastructure GI环境下安装11.2.0.3.5 14727347 补丁的步骤; 由于该11.2.0.3.5的opatch auto安装会有问题,所以我们使用手动的opatch apply安装该补丁,以下是检验步骤: 14727347解压后包含了2个补丁目录14727310和15876003 ,已包含11.2.0.3.5 DB的PSU,下载了该GI PSU后无需再去下载DB 的PSU了。   PSU 14727347的下载地址 1) rootcrs.pl 停止本节点的服务,若有RDBMS DB在运行则首先关闭该实例 su – oracle $ <ORACLE_HOME>/bin/srvctl stop database –d <db-unique-name> su – root $GRID_HOME/crs/install/rootcrs.pl -unlock 2) 给GI HOME打补丁 AIX上: su – root;  slibclean   su – grid opatch napply -oh $GRID_HOME -local /tmp/patch/14727310 opatch napply…

  • 【Oracle ASM数据恢复】 ORA-600 [kfcChkAio01]错误解析

    如果ASM实例经常奔溃crash,且后台日志alert.log中发现如下错误信息的话,则有必要参考本篇文章了:   NOTE: starting recovery of thread=1 ckpt=201.9904 group=2 NOTE: starting recovery of thread=2 ckpt=139.4186 group=2 Tue Dec 16 03:00:51 2008 Errors in file /u01/app/oracle/product/10.2.0/asm/admin/+ASM/udump/+asm2_ora_15305.trc: ORA-00600: internal error code, arguments: [kfcChkAio01], [], [], [], [], [], [], [] ORA-15196: invalid ASM block header [kfc.c:5552] [endian_kfbh] [2079] [2147483648] [1 != 0] Abort recovery for domain 2…