代码改变世界

参数db_ultra_safe

2016-04-14 09:49  abce  阅读(587)  评论(0编辑  收藏  举报

db_ultra_safe参数设置控制保护级别的其它参数的默认值

可以取的值有:off、data_only、data_and_index。默认值是off

-off:不影响db_block_checking, db_block_checksum, db_lost_write_protect的值。

-data_only:将db_block_checking设置为medium、将db_lost_write_protect设置为typical、将db_block_checksum设置为full

-data_and_index:将db_block_checking设置为full、将db_lost_write_protect设置为typical、将db_block_checksum设置为full

 

补充:

db_block_checking可取值范围为:false、off、low、medium、true、full;默认是false

-off/false:对用户表空间不开启块检查,对system表空间还是会开启块检查

-low:在内存中块内容被修改后,对块头执行基本的检查

-medium:执行low设置的相关检查,此外对所有对象进行语义上的full检查(索引除外,因为可以删除重建)

-full/true:执行low+medium设置的检查,此外对所有对象进行语义上的检查

oracle通过检查块中的数据来检查数据块,确保其在逻辑上是自一致的(self-consistent)。 块检查会产生1%--10%的开销,取决于负载和参数设置。对于DML操作,开销会大点。如果性能开销可以接受,可以将其设置为full。 false、true值只是为了保留向后兼容性。

 

db_block_checksum可取值范围为:off、false、typical、true、full

db_block_checksum定义DBWn和直接路径加载是否计算检查和,检查和信息放在数据块的头部。

-typical:块读取,以及最后一次写会进行检查和检查。会增加1%--2%的开销。oracle建议设置为typical。

-full:除了typical的功能外,对块的修改前和修改后都会进行检查和检查。在将缓存中的块写入磁盘前进行检查和检查。会增加4%--5%的开销。

-off:DBWn只是为system表空间进行检查和检查,普通用户不管。此外,也不进行log检查和检查

oracle使用检查和来检测坏块。 在将log buffer中的log写入日志前都会进行检查和检查,在11g之前,这部分工作都是由lgwr进程完成;11g开始,这部分工作由lgwr和前台进程完成(主要是前台进程)。

 

db_lost_write_protect可取值范围为:none、typical、full

开启或关闭lost write检测功能。数据块lost write发生在以下场景:I/O子系统反馈已经写入磁盘,但实际上并没有写入磁盘。

-typical:对读/写表空间的log buffer cache操作会进行lost write检测

-full:对read-only表空间的log buffer cache操作也会进行lost write检测

-none:不开启lost write检测