㈠ 什么是数据块一致性?
每一个数据块头部都有一个“校验和”字段
当数据块被写回磁盘前,Oracle会重新计算这个校验和
并记录到这个字段,最终写回磁盘
下次数据块被读入内存时,Oracle会重新计算数据块的校验和
并与校验和字段中的值相比较
如果有差异,Oracle就会抛出ORA-1578
也就是,整个校验过程:
写回时,计算并保存
读入时,计算并比较
通过校验和字段进行检查叫物理一致性检查,其侧重于硬件故障,并不关心内容正确与否
而逻辑一致性检查便是接手这任务,如:记录和索引是否对应;记录是否被不存在的事务锁定等
db_block_checksum:物理一致性检查
当值为true时,Oracle除了会对所有表空间的数据块进行校验和检查,还会对redo log块做校验和
如果置之为false,则只会对system表空间的数据块进行校验
Oracle建议开启这个参数
db_block_checking:逻辑一致性检查
当值为false
每一个数据块头部都有一个“校验和”字段
当数据块被写回磁盘前,Oracle会重新计算这个校验和
并记录到这个字段,最终写回磁盘
下次数据块被读入内存时,Oracle会重新计算数据块的校验和
并与校验和字段中的值相比较
如果有差异,Oracle就会抛出ORA-1578
也就是,整个校验过程:
写回时,计算并保存
读入时,计算并比较
通过校验和字段进行检查叫物理一致性检查,其侧重于硬件故障,并不关心内容正确与否
而逻辑一致性检查便是接手这任务,如:记录和索引是否对应;记录是否被不存在的事务锁定等
db_block_checksum:物理一致性检查
当值为true时,Oracle除了会对所有表空间的数据块进行校验和检查,还会对redo log块做校验和
如果置之为false,则只会对system表空间的数据块进行校验
Oracle建议开启这个参数
db_block_checking:逻辑一致性检查
当值为false