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
RMAN-06169: could not read file header during RMAN duplicate database
近期有个友商在做RMAN duplidate database搭建DG时,因为primary db上有offline 的datafile ,并且归档已经丢失,无法再做recover ,online datafile的操作,操作系统或存储上的datafile已经不存在,duplicate时报错如下。
Starting backup at 19-NOV-20
RMAN-06169: could not read file header for datafile 357 error reason 4
Troubleshoot import(imp) very slow into table(nologging) has lob columns
一套ORACLE 11c R2 Windows环境使用import 导入一张包含blob列时速度非常的慢(平均每秒10条),大家都知道imp里因为不能使用parallel等其它原因导入是慢一些,但这么慢不能忍,主要等待事件和时间是control file parallel write和enq: CF – contention,下面是分析一下原因。
Oracle Dataguard在standby failover后如何加回原primary?
今天谈起一种场景,如果oracle dataguard环境中,primary db长时间不可用或出现永久性故障,那么我们必须考虑failover到备用数据库以使其成为新的主数据库。之后,我们还要重建旧的主库,使其成为新的备库。关于备库在failover激活后,再次回到备库,Gavin Soorma在他的blog上有详细的测试记录。