Alert: Linux平台使用udev绑定ASM存储时,频繁的systemd-udevd导致CPU使用率高
最近查询时发现一套Linux(Suse Linux 12)平台上的Oracle主机CPU使用率偏高,该数据库并不繁忙,从top中发现大量的systemd-udevd 进程,是CPU的主要花费进程, 该现象并不局限于Suse,RHEL和OEL同样可能存在这些现象, 通常是当udev加载时,即使系统当前并无任何磁盘存储的调整,也会存在该现象。
Exadata X7, RAC gipcd 无法启动,因为Network socket files
环境Oracle Exadata Machine(x7)环境, 节点1异常重启后无法启动,另他节点运行正常,从日志显示是gipc进程启动失败,清理network socket 文件启动成功。
Bugs fixed in each 19.0.0.0.0 Release Update and Release Update Revision(until 19.14)
Bugs fixed in each 19.0.0.0.0 Release Update and Releas […]
RHEL7(Linux7)安装Oracle 11g R2(11.2.0.4) RAC 问题小结
最近一例在11.2.0.4 2NODES RAC on linux7 增加节点时不是很顺利,此版本是ORACLE的认证版本但是还是兼容性还不是那么顺滑,9年前分享过在linux6上addnode还相对顺利《Oracle 11g R2 RAC addnode (增加RAC节点) 实践和注意事项》。 遇到的问题也较多涉及IB,网络,bug, 损坏,补丁等,简单记录。
Query dba_autotask_client slow?
最近在整理巡检脚本时,发现在执行select client_name,status from dba_autotask_client;时耗时几十秒, 该SQL只是想检查数据库级的自动任务是否启用(如自动收集统计信息), 返回的记录也并不多,只关心状态..
Troubleshooting RMAN restore controlfile to NFS hang
最近遇到一个案例AIX 7.2 挂转NFS v3(源为Suse 11), RMAN restore 控制文件到NFS上 hang, 检查了AIX端mount选项和权限一切正常,在oracle用户下同样可以cp 和vi 文件,最终发现是因为rpcbind服务未启动导致,简单记录。
Troubleshooting OGG Char datatype from mysql to ogg fill chr(0)
前几年处理过一个<当C语言的程序处理 chr(0) or ‘\0’ 时的ORA-01008 Case>故障案例, 近期又遇到一个案例是在Golden Gate同步数据时遇到的问题,发现ogg在同步时对于char类型的字段,不足指定长度时,OGG使用的是chr(0)补充, 而对于已有数据是默认chr 32(空格)补充,导致无法匹配问题。
Troubleshooting DB session spin call java function
一天客户问有个SQL执行中好像是hang了,当前的session对应的v$session.event是‘gc current grant 2-way ’, 之前运行都是秒级,现在已经跑了1个小时还未结束,通常看到这个event会怀疑是GC出了问题,然后就走错了路, 下面看一下这个案例。
x$kcbbes checkpoint
增量检查点会引发checkpoint queue(dirty queue)上的脏块递进地被写出,每三秒CKPT后台进程将计算检查点目标RBA(Redo Block Address),当增量检查点发生时所有在目标RBA相应时间之前被弄脏的buffer块都当被写出…
Troubleshooting Select 产生Redo分析案例
众所周知, 在oracle数据库中redo日志是非常重要的文件,oracle代码设计根据Write-Ahead-Logging预写协议,DBW不会在LGWR写入描述该块更改方式的redo之前将已更改的块写入磁盘, redo 日志文件中记录了所有的数据库变化,通常对于Select 查询类并不会修改数据,也不应该产生redo 记录,但是还是有几种特殊场景, 前几日一个客户提出疑问,他注意到在数据库SQLPLUS中set autotrace on中执行一条查询总是出现大量的redo和伴随physical read
Troubleshooting Performance event ‘control file sequential read’
前段时间整理过关于control file的一个等待《Troubleshooting performance event ‘enq: CF – contention’》, 这里再记录关于control file的另一个event( 这里没用等待), 此event只是通知类event,和db file sequential read类似为数据库的I/O类操作,但wait class并非USER I/O,而是SYSTEM I/O. 问题时段control file sequential read占到了AWR top 1 event, 占用约90%的DB TIME.
Oracle 12C新特性: Attribute Clustering
提起表的cluster factor集群因子可能都并不陌生,反映了表上数据分散的程度,Attribute Clustering这是Oracle数据库版本12.1.0.2中的一项新功能,该功能允许dba在将表记录在insert写到磁盘时能否保持顺序,保持较好的cluster factor,
Troubleshooting errors caused by OS resource limit on AIX,HP-UX, SolarisOS, Linux
操作系统资源限制有时会导致上面的应用程序无法fock新进程或open 文件,导致连接创建失败或实例crash, 尤其当数据库的进程数搞的很大时,开始的OS kernel resource limit没有级联的修改,就有可能导致该问题的发生。
Troubleshooting DB load high wait ‘ON CPU’ by New ASH in 12c R2
本次数据库负载异常或故障突然CRASH,而AWR snapshot没有形成时,在12c后中的ASH每5分钟逐渐式flush disk,已不会刷新太频繁而增加系统负载,也不会等到AWR SNAPSHOT时间大粒度间隔而突然重启而ASH数据缺失无法分析。本次就是利用DASH中SQL两个时间段的SQL执行持续时间判断SQL变慢而导致的业务积压,而非SQL执行量增加,或执行计划变化。
Meaning of an asterisk at the end of a FileName item?文件名后带星号(*)
昨天看到oracle binary file 显示oracle执行文件名后带星号如oracle*,可能比较困惑,这样的文件名实例还是可用的, 实际这只是ls的显示问题,*并不是文件名的一部分。
Oracle数据库当遇到存储磁盘坏道时的处理(DBV-00102)
数据库环境有时会因为硬件磁盘问题导致数据不可读,而硬盘“坏道”便是这其中最常见的问题, 当出现因为磁盘坏道里更加棘手,无法移动或跳过,更甚至因为有坏盘在换盘后RAID重组出现文件系统勘误导致文件为0bytes,增加恢复难度,例如使用dbv 检查时会出现如下报错:
Go语言(GO lang)连接Oracle Database使用godror
GO lang在高并发支持非常优秀,相比python更快,godror使用ODPI-C(用于C的Oracle数据库编程接口)为Oracle数据库实现了Go数据库/sql驱动程序, 在中文支持方面非常不错, 这里记录Go连接oracle数据库的方法, GO for Windows 开发环境配置.
Oracle19c手动清理PDB SYSAUX中的大对象如WRI$_ADV_OBJECTS (ORA-65040)
近期一客户19c RAC CDB数据库的SYSAUX表空间增长超大,分析原因为Optimizer statistics advisor特性导致的WRI$_ADV_OBJECTS对象记录数变多, 以下为清理方法。
Oracle 12c/19c ADR trace dest disk busy (100%) when ‘ls’ trace files
最近遇到几次故障升级oracle 12c后,相同的硬件有几次instance crash同时伴有LGWR 核心进程N seconds not move现象,OSW中vmstat ‘B’列会伴有突然大量的blocked(通常是I/O)问题,mpstat/iostat 显示$ORACLE_BASE所在本地文件系统出现90-100% busy现象, ps 显示LGWR和一些FG进程同时在等待相同事OS Kernel function address。
Troubleshooting 19c RAC CRS resource db show “UNKNOWN” state , srvctl start instance CRS-2680
有套ORACLE 19c RAC在使用crsctl 查看db resource时显示“UNKNOWN”, 但是用sqlplus 可以启动db 实例,srvctl status instance显示not running. 手动启动instance 使用srvctl 显示如下错误
[oracle@~]$ srvctl start instance -d -i INTS1
PRCR-1013 : Failed to start resource ora..db
PRCR-1064 : Failed to start resource ora..db on node
CRS-2680: Clean of ‘ora..db’ on ” failed
CRS-5802: Unable to start the agent process