我们都知道为了防止热备期间的分裂块问题,Oracle在热备过程中会对修改块进行全块的Redo记录.
偶然发现居然还存在一个隐含参数可以控制这个行为:
SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ 2 FROM SYS.x$ksppi x, SYS.x$ksppcv y 3 WHERE x.inst_id = USERENV ('Instance') 4 AND y.inst_id = USERENV ('Instance') 5 AND x.indx = y.indx 6 AND x.ksppinm LIKE '%&par%' 7 / Enter value for par: blocks old 6: AND x.ksppinm LIKE '%&par%' new 6: AND x.ksppinm LIKE '%blocks%'
NAME VALUE DESCRIB ------------------------------ -------------------- ------------------------------------------- _log_blocks_during_backup TRUE log block images when changed during backup |
这个参数缺省值为TRUE,设置在热备份期间允许在redo中记录数据块信息,如果数据库块大小等于操作系统块大小,则可以设置该参数为False,减少热备期间数据库的负担(这种情况极为少见)。
原文地址:http://www.eygle.com/archives/2006/05/oracle_hotbackup_redo.html