加快rollback事务回滚速度

背景:

运行一个长事务会话SQL,取消运行或者kill会话,回滚时间较长的情况。

影响到其它业务运行,需要尽快回滚的场景。

1.可以通过kill会话对应的操作系统进程,能够使用到并行恢复,会加快回滚速度。(首选)

2.调高FAST_START_PARALLEL_ROLLBACK参数(只是增大并行恢复进程的limit值),动态生效,对于会话中使用并行的事务有作用。通常默认值low已经足够。

会话中未使用到并行的事务仍然需要先kill会话对应的操作系统进程。

alter system set fast_start_parallel_rollback=high;

3.如果有条件能够重启数据库,则修改_cleanup_rollback_entries参数到5000再重启库。

alter system set "_cleanup_rollback_entries"=5000 scope=spfile;

预估回滚需要的时间

set linesize 100
  alter session set NLS_DATE_FORMAT='DD-MON-YYYY HH24:MI:SS';
  select usn, state, undoblockstotal "Total", undoblocksdone "Done", undoblockstotal-undoblocksdone "ToDo",
         decode(cputime,0,'unknown',sysdate+(((undoblockstotal-undoblocksdone) / (undoblocksdone / cputime)) / 86400)) "Estimated time to complete"
  from v$fast_start_transactions;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值