设置scale_up_multiplier:
1 2 3 |
BEGIN DBMS_WORKLOAD_REPLAY.PREPARE_REPLAY (scale_up_multiplier => 10); END; |
但是设置之后,在DBA_WORKLOAD_REPLAYS.SCALE_UP_MULTIPLIER检查发现,这个值始终是1。
这是因为scale_up_multiplier不支持基于object id的同步。当synchronization的值为object_id,scale_up_multiplier在代码里面被hard code为1的(BUG 9774435)。
而synchronization这个参数,默认true时,11g早期版本(好像是11.2.0.3之前),默认值true的情况下是指SCN,在11g的后期版本,默认值true的情况就变成指object_id了。
所以,早期文档上说的
1 |
SQL>exec dbms_workload_replay.prepare_replay(synchronization => TRUE,.... |
此时的true是SCN,所以,按照早期文档说明,在早期版本的数据上,执行完prepare之后,再放大scale_up_multiplier是可以的,是可以能放大到指定倍数的。
但是在我的11.2.0.4.5中,如果还是按照早期文档的说明,设置synchronization => TRUE,就会导致无论怎么设置scale_up_multiplier都不会生效的问题。
解决方法:显式设置synchronization => ‘SCN’
1 2 3 |
BEGIN DBMS_WORKLOAD_REPLAY.PREPARE_REPLAY (synchronization => 'SCN',scale_up_multiplier => 10); END; |