Troubleshooing ORA-600 [2663] after DataGuard switchover
这是一个非常典型的dataguard 环境中存在的bug, 在oracle 11.1-12.1版本之间一直存在的BUG,当Physical Standby Dataguard 环境发现switchover或者failover后,在验证索引块上存在无效的scn时抛出的错误ORA-600 [2663],或者有时附带ORA-600 [ktbdchk1: bad dscn], 该BUG不会导致当前数据块上有数据丢失,也不会有数据勘误在索引块上。 这里简单记录.
Troubleshooting high db file sequential reads cause a insert do index split
1. Set 450502, level 1 -> to control block rejections for any index block.
2. Set underscores to reduce the limit from 10000 to something lower. If the limit is good enough, do not have to set these parameters.
3. If the limit must be reduced to below 1024 (using the underscore) additionally set event 450503 – it forces the code to accept whatever user sets.
4. Set 43822 – to control rejections for root/branch split.
What’s the ORA_TEMP_%_DS_% table, eg. SYS.ORA_TEMP_1_DS_%
This is expected behavior. ORA_TEMP_%_DS_% is only used when gathering histogram. SYS.ORA_TEMP_1_DS_% are global temporary tables created by dbms_stats to generate histograms for tables.
Troubleshooting ORA-6544 [pevm_peruws_callback-1] [4021] waiting to lock object SYS.TAB$
一个12C R2的2节点RAC, 节点1 8点左右数据库实例连接hang, 从数据库DB alert log中发现ORA-6544 [pevm_peruws_callback-1] [4021]错误, 可见前期出现大量的library cache 等待,影响了SQL解析和连接,因情况紧急kill 实例重启后恢复正常。
12c R2注意事项: mmon trace增长很快,3秒一次AUTO SGA: kmgs_parameter_update_timeout gen0 0 mmon alive 1
Oracle 12c很多情况下TRACE目录使用率增长迅速, 之前有总结过两篇异常情况,但是最近还是比较多,记录一下另一种情况。
Oracle12c R2注意事项: 因BUG生成大量的trace file 包含KRB: (rman module)
Oracle12c R2注意事项:ORA-12805问题
Troubleshooting database crash and HPUX-ia64 Error: 11 caused by IO error( SFP 光衰 )
一个2节点RAC on HPUX平台的数据库实例1突然因为I/O 错误,数据文件读写失败,自动重启后不久再次因为Vating Disk不可用crs crash, 另一节点正常。后暂时停止问题节点,排查硬件的底层环境问题,确认数据库主机节点的SFP(Small Form-factor Pluggable)光衰减严重,导致数据传输丢帧,频繁重发数据帧导致数据库存储I/O延迟过高(58ms-100s)或间断,数据库IO错误。
案例: 修复Oracle 11.2.0.1 dblink 访问ORA-600 [2252]
2019.6.23 已过去,默认11.2.0.3 后的版本Compatibility 已auto Auto-rollover,开始解决方法还要大版本升级,目前Oracle 又陆续放出了几个低版本的opatch, 修复ORA-600 2552不用再大版本升级了,目前opatch 已经从10.2.0.4以后的版本都可以装one-off patch解决。更多信息可以看之前我的 《预警:2019年ORACLE SCN 兼容性特性( Compatibility)自动改变的影响》, 这里记录一下11.2.0.1 的修复方法.
How to clear the V$Database_block_corruption view?
如果V$Database_block_corruption 有记录有短时间内无法修复,如果告警天天告确实烦人,几年前有写过一篇Know more about V$BACKUP_CORRUPTION , 这里有个DG 环境中因为primary db 没有启用force logging, 结果Standby db上好多nologging corrupted block. 解决方法之前也有写过 利用RMAN增量备份(Incremental Backup)修复standby 环境中的nologging corupted blocks , 这里我想临时把这些记录清理掉,后期再修复。
都9102年了, 你还在考Oracle 11G、12C OCP?
最近有看到还有人在考oracle 11g, 12c 的OCP, 是陈年的OCP 有技术含量么? 在我个人认为2009年后拿到的都一个样,16年前的8i OCP要过4门,
从2019年开始 Oracle 认证有了新的变化:
1, 以后不再有OCA , 新Oracle OCP 只需要2门课程的考试(1Z0-082+1Z0-083)
Oracle 19c注意事项: DBMS_JOB 行为变化
DBMS_SCHEDULER 是一种新的JOB调度形式,提供了功能更加强大和跟踪的功能,说是新是相对DBMS_JOB, schedure从10G时引入已经十多年, 用于替换DBMS_JOB, 如果你升级19c 时原来的库有dbms_job对象,会在preupgrade.jar中提示Warning JOB_TABLE_INTEGERITY.注意从ORA 19C开始 DBMS_JOB总是以DBMS_SCHEDULER的形式创建,
PostgreSQL 12 : Prepare statement和plan_cache_mode 参数
在SQL的初始解析阶段PostgreSQL和ORACLE rdbms有很多相似之处, 如开始会进行语法、语义的检查,那些元数据存在system表空间(oracle)或 system catalog(PostgreSQL). 然后根据之前预准备的统计信息(可能动态采样),CBO 会为SQL执行生成一个执行计划. 但是在解析完成后ORACLE和PG(以下用PG代替PostgreSQL)会存在一些差异,oracle会把执行计划存储在shared pool(Libaray cache)中对于所有会话可以共享,但是PG存储在program的本地内存中
Oracle12c R2注意事项:ORA-12805问题
一套Oracle 12.2.0.1 4-nodes RAC on Linux 环境, 又一个BUG会生成大量的日志信息如下, 之前分享过一个生成大量trace的笔记
Oracle12c R2注意事项: 因BUG生成大量的trace file 包含KRB: (rman module), 这里记录另一个bug.
# db alert log
2019-08-02T16:45:30.696722+08:00
Errors in file /u01/app/oracle/diag/rdbms/anbob/anbob1/trace/anbob1_cjq0_24035.trc:
ORA-12805: parallel query server died unexpectedly
Oracle Kernel Layer & ORA-600 Code Info 内部错误分类
Indexes exist for versions 7.2.2 and 8.0.3. Author: Ric […]
利用RMAN增量备份(Incremental Backup)修复standby 环境中的nologging corupted blocks
有时为了提升SQL执行速度或减少redo而使用NOLOGGING选项, 或者在segment 级使用NOLOGGING属性, 将使用最少的信息记录到online redo logfile,但是对于DataGuard环境是基于redo应用,所以这也是在DATAGUARD配置时需要在数据库级启用FORCE_LOGGING原因,如果缺少了日志必要的信息,在RECOVERY介质恢复期间将受影响的块标记为已损坏, 查询V$DATABASE_BLOCK_CORRUPTION.CORRUPTION_TYPE为NOLOGGING
How to disable database link in Oracle? (如何禁用数据库dblink )
前几天有人问到是否有办法禁用Oracle database link?是的, 有时出于安全、性能、防止SCN传播等原因需要禁用本地创建DBLINK,同时也希望其它库不要DBLINK访问我们的库, 但是只要给其它人提供了本库的用户、密码、监听端口、服务名连接的信息,即使只有create session的权限,对方也可以dblink 从其它库连到本地数据库…
Troubleshooting High “enq: TX – index contention” events during index split?
经常发生在应用程序的并发性很高的表相关联的索引上,索引叶块、枝块争用较高,尤其当应用程序执行许多INSERT和DELETE时,通常会发生这种情况。原因是在向索引插入新行时索引块分裂,事务将必须在模式4下等待TX锁定,直到执行块拆分的会话完成操作为止, 常伴随[gc] buffer busy waits
Oracle Database 环境整改建议应对 Linux TCP SACK PANIC 内核安全高危漏洞 CVE-2019-11477
在 Linux 内核处理 TCP 网络数据的操作中发现了三个相关的安全漏洞。 其最严重的安全漏洞会被远程攻击者利用在运行受影响软件的系统上触发一个内核崩溃,从而影响到系统的可用性。对于安装现在运行oracle 数据库的环境,anbob建议禁用tcp_sack的方式解决SACK问题高危。
SCN compat no change even Auto-RollOver is enable (SCN 兼容级别未改变)
相信近几个月好些DBA一定都被SCN compat(兼容级别)在2019年6月23日自动从1直接跳级到3的问题搞的紧张兮兮, 现在这个特殊日期已经过去几天,不知道是不是觉的风平浪静有些失望, 最近应该都开始检查是否SCN Compat是否已自动变为3, 在auto rollover未禁用的情况下,还是有些情况下SCN compat当前并没有改变,下面列几种情况。
Instance Startup Fails With ORA-00205, ORA-15040 After Applying Patch (安装补丁后实例启动失败)
安装PSU或安装one-off patch补丁时,在relink编译oracle执行文件后文件的group ownership属组可能会发生改变,对比可以和oracle 执行文件相同路径下的oracle0文件(上一版oracle的mv)查看。 当oracle用户和oracle执行文件都没有OS ASM属组如asmadmin时,会无法读取ASM disk.
解决方法,手动修改或使用setasmgidwrap 修改;使用srvctl 启动实例,让oracle自动修改…
How to create ASM devices with UDEV
Udev is the mechanism used to create and name /dev device nodes corresponding to the devices that are present in the system. Udev uses matching information provided by sysfs with rules provided by the user to dynamically add the required device nodes.