IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    db replay设置scale_up_multiplier不生效

    小荷发表于 2016-03-29 06:47:48
    love 0

    设置scale_up_multiplier:

    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了。

    所以,早期文档上说的

    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’

    BEGIN
    DBMS_WORKLOAD_REPLAY.PREPARE_REPLAY (synchronization => 'SCN',scale_up_multiplier => 10);
    END;


沪ICP备19023445号-2号
友情链接