DB_UNRECOVERABLE_SCN_TRACKING這個參數是從11.2.0.2才有的,看官方文檔介紹如下:
true
ALTER SESSION, ALTER SYSTEM
true | false
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上已經修復了。