ITPub博客

首页 > 数据库 > Oracle > oracle加快回滚速度

oracle加快回滚速度

原创 Oracle 作者:colin_cwc 时间:2017-12-25 16:40:55 0 删除 编辑
记得一次大批量删除数据时,由于回滚段满,导致delete操作失败,大量事务回滚,这个表又是交易使用,rollback时,导致cpu idle急剧降低,cpu和io都繁忙了,交易根本无法使用这个表,程序直接挂死,真是带血的教训。作为dba,当时想办法就是加快回滚速度:

提高并行回滚进程的数量,设置为
HIGH时回滚进程=4*cpu数。在sql命令行模式下执行
动态修改
ALTER SYSTEM SET FAST_START_PARALLEL_ROLLBACK = HIGH;

参数解释:
Values:
FALSE
Parallel rollback is disabled
LOW
Limits the maximum degree of parallelism to 2 * CPU_COUNT
HIGH
Limits the maximum degree of parallelism to 4 * CPU_COUNT
If you change the value of this parameter, then transaction recovery will be stopped and restarted with t


相关视图:
select * from v$fast_start_transactions

回滚过程中,回滚的进度可以通过视图V$FAST_START_TRANSACTIONS来确定
USN:事务对应的undo段
STATE:事务的状态,可选的值为(BE RECOVERED, RECOVERED, or RECOVERING)
UNDOBLOCKSDONE:已经完成的undo块
UNDOBLOCKSTOTAL:总的undo数据块
CPUTIME:已经回滚的时间,单位是秒
RCVSERVERS:回滚的并行进程数

待回滚结束,为了减少undo的影响,fast_start_parallel_rollback恢复为false,
a
lter system set fast_start_parallel_rollback= FALSE;





来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31429550/viewspace-2149234/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2017-01-17

  • 博文量
    20
  • 访问量
    18953