关于新参数DB_UNRECOVERABLE_SCN_TRACKING
DB_UNRECOVERABLE_SCN_TRACKING这个参数是从11.2.0.2才有的,看官方文档介绍如下:
Default value | true |
---|---|
Modifiable | ALTER SESSION, |
Range of values | true | false |
Basic | No |
Oracle RAC | Multiple instances must have the same value |
DB_UNRECOVERABLE_SCN_TRACKING enables or disables the tracking of unrecoverable (
NOLOGGING) direct-path insert and load operations.
When the value is set to
true, updates are made to the controlfile that maintains the
V$DATAFILE.
UNRECOVERABLE_CHANGE# and
V$DATAFILE.
UNRECOVERABLE_TIME columns. When the value is set to
false, updates are not made to the controlfile. Setting this parameter to
false may improve performance of direct-path
NOLOGGING operations.
----------------此参数默认值为True,如果设置为false,带有nologging的更新操作就不能更新到控制文件了。Performance of the NOLOGGING load operation could be limited by the control file write I/O. 如果设置为flase,将会提升直接路径nologging的性能。
多个实例必须有一样的值。可以从v$datafile的下面几个列可以查到:
UNRECOVERABLE_CHANGE#
UNRECOVERABLE_TIME
FIRST_NONLOGGED_SCN
FIRST_NONLOGGED_TIME
这个参数在11.2.0.2上有BUG,官方发布的BUG如下:
Bug 12360160 - ALTER SYSTEM / SESSION of DB_UNRECOVERABLE_SCN_TRACKING has no effect (文档 ID 12360160.8)
Dynamically changing DB_UNRECOVERABLE_SCN_TRACKING with
ALTER SESSION or ALTER SYSTEM has no effect on the value used.
Rediscovery Notes:
The DB_UNRECOVERABLE_SCN_TRACKING init.ora parameter can be
modified dynamically but the change has no effect; the code
uses the value from instance startup, and this startup value
determines whether the unrecoverable scn/timestamp is recorded
in the controlfile (datafile section) for nologging writes.
Workaround
If DB_UNRECOVERABLE_SCN_TRACKING is set to TRUE at startup,
then event 10359 level 1 can be used to dynamically disable
(then later dynamically enable) unrecoverable scn/timestamp
tracking in the controlfile:
alter system set events '10359 trace name context forever, level 1';
alter system set events '10359 trace name context off';
But, if DB_UNRECOVERABLE_SCN_TRACKING is set to FALSE at
startup, there is no workaround to dynamically over-ride this
setting ie the unrecoverable scn/timestamp will not be tracked.
这个BUG已经在11.2.0.3上已经修复了。