--************************************
-- db_block_checking 与 db_block_checksum
--************************************
db_block_checking与db_block_checksum两个参数都是对block进行检查,然而两者很容易混淆。事实上,两个参数中前者是对块做逻
辑性检查,后者则是做物理性检查。两者各司其职,并不矛盾。下面分别给出具体描述。
1.db_block_checking
db_block_checking 是当block发生任何变化的时候进行逻辑上的完整性和正确性检查。该参数能够避免内存中数据块的损坏。块
的检查将对系统会有1%到10%的性能影响。取决于对db_block_checking参数的设置。频繁的DML将使得块检查带来更多的开销。在系统
负荷允许的情形下建议设置为full。该参数对SYSTEM表空间始终是处于“打开”状态,而不管该参数是否设置为OFF。下面是该参数的
设置参考。FALSE和TRUE是为了老版本的兼容。
Property Description
--------------- ------------
Parameter type String
Syntax DB_BLOCK_CHECKING = { FALSE| OFF| LOW | MEDIUM | TRUE| FULL} -->OFF(=FALSE),FULL(=TRUE)
Defaultvalue FALSE
Modifiable ALTER SYSTEM
Basic No
2.db_block_checksum
db_block_checksum 用于DBWn和direct loader数据块写入到磁盘时,基于块内的所有字节计算得出一个校验值并将其写入块头。
在该参数设置为typical和full时,当读入时候重新计算校验和写出时候的校验对比,如果不同则认为是块损坏。如果设置为FULL模式
,则基于update/delete应用程序语句级别的改变发生后,校验值会被重新计算并写入。同时对于日志块,在写入之前,同样会生产校
验值并写入到块头。该参数主要是防止IO硬件和IO子系统的错误。如果设置为OFF则只对系统表空间有效。下面是该参数的设置参考。
FALSE和TRUE是为了老版本的兼容。
Property Description
--------------- ------------
Parameter type String
Syntax DB_BLOCK_CHECKSUM = { OFF| FALSE| TYPICAL | TRUE| FULL} -->OFF(=FALSE),FULL(=TRUE)
Defaultvalue TYPICAL
Modifiable ALTER SESSION,ALTER SYSTEM
Basic No
3.存在的问题
如果db_block_checking = off,非系统表空间中数据在逻辑上可能已经损坏,但是 db_block_checksum 却是无法检查出来的(负责物
理层面的校验),原样写到磁盘原样读到内存,因为它只校验块在写出后和读入之间是否发生变化而不检查写出前是否存在逻辑上的正确。
有些情况下,比如索引块损坏,造成通过索引无法获得数据,但是读索引块的时候并没有出1578错误,有可能是这个原因。
SQL>ho oerr ora 1578
01578,00000,"ORACLE data block corrupted (file # %s, block # %s)"
// *Cause: Thedatablockindicated was corrupted, mostly due tosoftware
// errors.
// *Action: Try torestorethesegmentcontaining theblockindicated. This
// may involve dropping thesegmentandrecreating it. Ifthere
// isa tracefile,report theerrorsinit toyour ORACLE
// representative
4.db_block_checking和db_block_checksum这两个参数对性能的影响
下面的例子中做一个测试来查看该参数对性能的影响。实际上,环境的不同将使得测试结果会大相庭径。
a. 创建测试对象
b. 修改两个参数为FALSE
c. 对测试表test中三次分别插入100,000行数据
从上面的结果可以看出插入100百万条记录所需的最长时间为56.87秒,最短的时间为59.13,平均时间为58.5233。
d. 修改两个参数为TRUE
e. 再次测试表test中三次分别插入100,000行数据
从上面的结果可以看出插入100百万条记录所需的最长时间为03:01.66秒,最短的时间为02:49.15,平均时间为02:57秒左右。
5.总结
a. 对结果进行对比,可以看出当将两个block参数设置为true时,其速度比为false时慢了近30%,不过此对比根据实际环境应有所不同。
b. 对于性能上的差异而言,当设置两个block参数设置为true时,将需要更多的CPU资源来生成校验值以及进行内存块的验证。同时,
该操作容易引起redo copy latch的持有时间增加和引起这个latch的竞争。
c. 不管db_block_checking和db_block_checksum这两个参数的值为何值,SYSTEM表空间都会进行做checking和checksum,可以通过隐含
参数_db_always_check_system_ts设置为FALSE,但为了SYSTEM表空间数据安全,不建议将这个隐含参数值设置为FALSE。
d. checksum 通过校验结构够保证写入到数据文件与从数据文件读取的块前后两者是一致的。通常对于侦测由于IO操作(磁盘损坏,硬
件损坏)引发的坏块。但它并不侦测在内存中已经出错的数据块。不管错误与否,DBWn后会将其写入到数据文件。
e. checking 则正好弥补了checksum的不足,它对数据块在内存提供一致性验证,确保每一个数据块的完整性。
f. 更多关于Block checking,http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:1094433279412
6.快捷参考
有关性能优化请参考
Oracle 硬解析与软解析
共享池的调整与优化(Shared pool Tuning)
Buffer cache 的调整与优化(一)
Oracle 表缓存(caching table)的使用
有关ORACLE体系结构请参考
Oracle 表空间与数据文件
Oracle 密码文件
Oracle 参数文件
Oracle 联机重做日志文件(ONLINE LOG FILE)
Oracle 控制文件(CONTROLFILE)
Oracle 归档日志
Oracle 回滚(ROLLBACK)和撤销(UNDO)
Oracle 数据库实例启动关闭过程
Oracle 10g SGA 的自动化管理
Oracle 实例和Oracle数据库(Oracle体系结构)
有关闪回特性请参考
Oracle 闪回特性(FLASHBACK DATABASE)
Oracle 闪回特性(FLASHBACK DROP &RECYCLEBIN)
Oracle 闪回特性(Flashback Query、Flashback Table)
Oracle 闪回特性(Flashback Version、Flashback Transaction)
有关基于用户管理的备份和备份恢复的概念请参考
Oracle 冷备份
Oracle 热备份
Oracle 备份恢复概念
Oracle 实例恢复
Oracle 基于用户管理恢复的处理(详细描述了介质恢复及其处理)
SYSTEM 表空间管理及备份恢复
SYSAUX表空间管理及恢复
有关RMAN的备份恢复与管理请参考
RMAN 概述及其体系结构
RMAN 配置、监控与管理
RMAN 备份详解
RMAN 还原与恢复
RMAN catalog 的创建和使用
基于catalog 创建RMAN存储脚本
基于catalog 的RMAN 备份与恢复
使用RMAN迁移文件系统数据库到ASM
RMAN 备份路径困惑(使用plus archivelog时)
有关ORACLE故障请参考
ORA-32004 的错误处理
ORA-01658 错误
CRS-0215 错误处理
ORA-00119,ORA-00132 错误处理
又一例SPFILE设置错误导致数据库无法启动
对参数FAST_START_MTTR_TARGET = 0 的误解及设定
SPFILE 错误导致数据库无法启动(ORA-01565)
有关ASM请参考
创建ASM实例及ASM数据库
ASM 磁盘、目录的管理
使用 ASMCMD 工具管理ASM目录及文件
有关SQL/PLSQL请参考
SQLPlus 常用命令
替代变量与SQL*Plus环境设置
使用Uniread实现SQLplus翻页功能
SQL 基础-->SELECT 查询
SQL 基础--> NEW_VALUE 的使用
SQL 基础--> 集合运算(UNION 与UNION ALL)
SQL 基础--> 常用函数
SQL 基础--> 视图(CREATE VIEW)
SQL 基础--> 创建和管理表
SQL 基础--> 多表查询
SQL 基础--> 过滤和排序
SQL 基础--> 子查询
SQL 基础--> 分组与分组函数
SQL 基础--> 层次化查询(START BY ... CONNECT BY PRIOR)
SQL 基础--> ROLLUP与CUBE运算符实现数据汇总
PL/SQL --> 游标
PL/SQL --> 异常处理(Exception)
PL/SQL --> 语言基础
PL/SQL --> 流程控制
PL/SQL --> PL/SQL记录
PL/SQL --> 包的创建与管理
PL/SQL --> 隐式游标(SQL%FOUND)
PL/SQL --> 包重载、初始化
PL/SQL --> DBMS_DDL包的使用
PL/SQL --> DML 触发器
PL/SQL --> INSTEAD OF 触发器
PL/SQL --> 存储过程
PL/SQL --> 函数
PL/SQL --> 动态SQL
PL/SQL --> 动态SQL的常见错误
有关ORACLE其它特性
Oracle 常用目录结构(10g)
使用OEM,SQL*Plus,iSQL*Plus管理Oracle实例
日志记录模式(LOGGING 、FORCE LOGGING 、NOLOGGING)
表段、索引段上的LOGGING与NOLOGGING
Oralce OMF 功能详解
Oracle 用户、对象权限、系统权限
Oracle 角色、配置文件
Oracle 分区表
Oracle 外部表
使用外部表管理Oracle 告警日志(ALAERT_$SID.LOG)
簇表及簇表管理(Index clusteredtables)
数据泵 EXPDP 导出工具的使用
数据泵 IMPDP 导入工具的使用
导入导出 Oracle 分区表数据
SQL*Loader使用方法
启用用户进程跟踪
配置非默认端口的动态服务注册
配置ORACLE 客户端连接到数据库
system sys,sysoper sysdba 的区别
ORACLE_SID、DB_NAME、INSTANCE_NAME、DB_DOMIAN、GLOBAL_NAME
Oracle 补丁全集 (Oracle 9i 10g 11g Path)
Oracle 10.2.0.1 升级到 10.2.0.4
Oracle 彻底 kill session
分享到:
相关推荐
(一)使用初始化参数 DB_BLOCK_CHECKING 与 DB_BLOCK_CHECKSUM。当块改变时,DB_BLOCK_CHECKING 对块进行逻辑校验。将防止发生 10210 与 10211 错误。 (二)使用 DBMS_REPAIR 包,由 dbmsrpr.sql 与 prvtrpr.plb ...
火狐插件,去除服务端的挟持。wmpfirefoxplugin_(removed_checking_for_server) 火狐插件,去除服务端的挟持。wmpfirefoxplugin_(removed_checking_for_server)
1. **在主数据库上的配置**: 应确保所有关键参数如DB_BLOCK_CHECKSUM和DB_BLOCK_CHECKING都已启用,并且定期进行完整性检查,如使用DBVERIFY或DBREPAIR工具。 2. **在Data Guard备用数据库上的配置**: 备用数据库应...
MTK_NBIOT_Modem_Log_Checking_SOP 文档密码:8637296728
`db_block_buffers`控制缓存的数据库块数量,`db_block_checking`和`db_block_checksum`则涉及块级的校验和检查,有助于维护数据一致性。 总的来说,Oracle RAC数据库的表空间扩容是一个涉及多个步骤的过程,包括...
principles_of_model_checking一本很好的模型检测的书,我很仔细的看了。希望对大家有帮助!
5. **易于集成**:作为一个Python库,biobb_structure_checking 设计成可与其他Python生物信息学工具无缝集成,使得在复杂的工作流程中添加结构验证变得简单。 **安装与使用** 要使用这个库,首先需要确保已经安装...
6. **db_block_checking**:控制是否检查事务处理后的块是否损坏,用于数据一致性检查。 7. **db_file_direct_io**:允许直接I/O操作,提高备份和恢复的效率。 8. **db_link_encrypt_login**:设置数据库链路是否...
本篇文档主要探讨在深度学习AI模型中检查缺陷的重要性与方法。 首先,文档提到了深度学习模型的核心组件,这些组件包括层(layers)、参数(parameters)和权重(weights)。深度学习模型的文件通常按照层进行组织...
9. **db_block_checking** 和 **db_block_checksum**: 这些参数用于数据块的检查和校验,确保数据完整性。 10. **db_lost_write_protect**: 防止丢失写入的保护级别,有助于保护数据安全。 11. **db_ultra_safe**:...
为了解决这些问题,本文提出了一种结合动态符号执行(Dynamic Symbolic Execution, DSE)和模型检查(Model Checking)的方法。DSE允许程序在符号模式下执行,可以探索多种可能的路径,而CEGAR(Counter example-...
Combining Symbolic Execution and Model Checking for Data Flow Testing 是一篇发表在ICSE‘15会议上的论文 。本文提出了通过符号执行和模型测试以提高动态数据流分析代码覆盖率的方法。 Overview Data Flow ...
Model Checking经典书籍,如果做形式化验证的话属于必读系列
this is the code for DCT color image compression. You can check the compression quality by checking your output image which will be stored in current folder.
matlab导入excel代码utl_grouping_monthly_checking_account_into_two_clusters_by_year 按年份将每月支票账户分组。 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow statistics...
imx6 hw design checking list 官网上找的,大家可以去管网上找
19. **DB_BLOCK_CHECKING**:数据块检查,用于验证数据块的完整性和一致性。 20. **AUDIT_TRAIL**:审计追踪,定义了数据库审计功能的开启和记录方式。 了解和正确设置这些参数对于管理和优化Oracle 9i数据库至关...
进行MODIS地表温度数据与地理定位数据的匹配检查
资源分类:Python库 所属语言:Python 资源全名:biobb_structure_checking-3.9.2-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059