前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB笔试面试787】在Oracle中,参数DB_BLOCK_CHECKSUM和DB_BLOCK_CHECKING的作用是什么?

【DB笔试面试787】在Oracle中,参数DB_BLOCK_CHECKSUM和DB_BLOCK_CHECKING的作用是什么?

作者头像
AiDBA宝典
发布2020-05-07 15:29:59
5820
发布2020-05-07 15:29:59
举报

题目部分

在Oracle中,参数DB_BLOCK_CHECKSUM和DB_BLOCK_CHECKING的作用是什么?

答案部分

何时进行数据块的一致性检查呢?当一个数据块被读或写的时候,将对块的进行一致性检查,检查的内容包括块的版本、比较块在Cache和Block Buffer中的数据块地址,然后根据要求进行校验和(checksum)。

块的一致性检查由DB_BLOCK_CHECKSUM和DB_BLOCK_CHECKING两个初始化参数控制。DB_BLOCK_CHECKSUM是一种物理检查,用于防止物理I/O的损坏,默认值是TYPICAL,只有在写入(DBWn常规写或用户进程直接路径写入)数据文件时,根据一个CHECKSUM算法计算数据块的校验和,然后写入数据块的块头,下次在读取的时候会重新计算块的CHECKSUM值,与块头进行比对以判断该块是否损坏。如果将其设置为FULL,还会验证内存中的块的CHECKSUM值,避免内存的问题导致块的损坏。即使将DB_BLOCK_CHECKSUM值设置为FALSE,对于SYSTEM表空间也会进行相关的验证。DB_BLOCK_CHECKSUM主要是为了防止I/O硬件和I/O子系统的错误。

DB_BLOCK_CHECKING参数(默认值为FALSE)主要用于数据块的逻辑一致性检查,但只是在块内,不包括块间的逻辑检查,用于防止在内存中损坏或数据损坏。当启用DB_BLOCK_CHECKING时,可能会产生内部错误ORA-600[kddummy_blkchk]或者ORA-600[kdBlkCheckError]。

如果db_block_checking被启用,且磁盘的块已经被逻辑损坏,那么下一次更新块将会标记该块为软损坏(Soft Corrupt),将来对这个块的读将产生ORA-1578错误。在这种情况下报告损坏错误“DBV-200:Block,dba ,already marked corrupted”。即使将DB_BLOCK_CHECKING值设置为FALSE,对于SYSTEM表空间也会进行相关的验证。

本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

● QQ:646634621 QQ群:230161599、618766405

● 微信:lhrbestxh

● 微信公众号:DB宝

● 提供Oracle OCP、OCM、高可用(rac+dg+ogg)和MySQL最实用的技能培训

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档