oracle undo收缩,切换或缩小undo表空间

在Oracle 10g RAC中,需要将一个实例的undo表空间缩小;但是undo表空间的datafile不好回收,不便resize,比较通用的方法是新建一个undo表空间作为此实例的默认表空间,等原来的undo表空间上没有事务后,删除原来的undo表空间和文件。

如果一定要用回之前的undo表空间名称,把刚才的步骤重复一遍就OK。

create undo tablespace tbs_undo_tmp datafile '+DATA' size 10G  AUTOEXTEND OFF;

alter system set undo_tablespace = 'tbs_undo_tmp' scope = both sid = 'testdb1';

在10g新功能中有个叫AUR(Automatic Undo Retention)的东东,这东西就是根据系统现在使用的undo情况去自动调整UNDO_RETENTION的大小(当然,这个自动调整的数值不会少于UNDO_RETENTION的值)。

正是因为这个特性,会导致查询回滚段状态的时候,会发现UNEXPIRED的size非常大。

TABLESPACE_NAME            STATUS     undo_using_MB

------------------------------ --------- -------------

UNDOTBS1               EXPIRED               690

UNDOTBS2               EXPIRED         562.375

UNDOTBS1               UNEXPIRED      43302.75

UNDOTBS2               UNEXPIRED     27085.375

通过以下SQL可以查出AUR将UNDO_RETENTION的值调整到了多少

SELECT to_char(begin_time, 'YYYY-MM-DD HH24:MI:SS') begin_time,

tuned_undoretention

FROM   v$undostat

ORDER  BY begin_time DESC;

BEGIN_TIME        TUNED_UNDORETENTION

------------------- -------------------

2013-08-06 22:33:59          49052

2013-08-06 22:23:59          48831

2013-08-06 22:13:59          48540

2013-08-06 22:03:59          48315

2013-08-06 21:53:59          48071

猜想,关闭AUR会不会对undo表空间中的回滚段使用状态立即造成影响呢?

通过修改隐藏参数关闭AUR功能

alter system set "_undo_autotune" = false scope = both sid = '*';

两次查询回滚段状态,发现关闭AUR会立即对回滚段使用状态立即造成影响。超过spfile中设定的UNDO_RETENTION的回滚段状态变为了EXPIRED。

TABLESPACE_NAME            STATUS     undo_using_MB

------------------------------ --------- -------------

UNDOTBS1               UNEXPIRED       582

UNDOTBS2               UNEXPIRED     563.5

UNDOTBS1               EXPIRED          43410.75

TBS_UNDO_TMP               EXPIRED             2

UNDOTBS2               EXPIRED        24823.0625

TBS_UNDO_TMP               UNEXPIRED    788.25

接下来就是等待系统中原默认的undo表空间全部EXPIRED之后将其删掉。

drop tablespace UNDOTBS1 including contents and datafiles;

阅读(213) | 评论(0) | 转发(0) |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值