使用32k块大小的buffer cache时出现块讹误报ORA-600 [kcbzpbuf_1]错误 / 或由cache保护发出ORA-7445 [kdb4cpss]错误
此问题一般出现在 Oracle 11.1版本至 12.1之间版本
可能症状:
- 数据库讹误 / 数据块逻辑讹误
- 实例奔溃
- 进程可能报ORA-7445信息或异常中止
- 内存讹误
- 内部报错(ORA-600)
- ORA-600 [kcbzpbuf_1]
- ORA-600 [kcb_pre_apply_1]
- 出现在kdb4cpss上后在其后
- 会影响到SGA
- 会影响到BUFFER_CACHE内存
相关:
db_block_size
db_32k_cache_size
关于报错描述
- ORA-600 [kcbzpbuf_1]块讹误出现在对于使用32k(32768)块的表空间的buffer caches上,大量的单一事务集中在某张表上进行插入删除操作导致出现讹误。
- ORA-7445 [kdb4cpss] 当使用32k块且启用_db_block_cache_protect时,发现存在对象被分配的段无访问权限的错误
如果在db_block_checksum=FULL设置下DBWR会发现并报出checksum错误,以避免讹误被扩散到磁盘上:
ORA-600 [kcbzpbuf_1] [3] [1] (3 in the 1st ar