配置AUM,要先设置初始化参数unod_management,有两个取值:
AUTO:表示采用AUM来管理undo
MANUAL:表示采用MUN来管理undo,要手工创建rollback segment
在AUM下,只要创建undo表空间,设置undo_tablespace初始化参数即可。
create undo tablespace Name datafile FileName size XM autoextend on;
alter system set undo_tablespace=Name;
在AUM下,如果在设置undo_tablespace时,指定了某个不存在的undo表空间,则实例启动时报错;
如果没有设置undo_tablespace,则系统会查找第一个可用的undo表空间;
如果没有找到undo表空间,则使用位于系统表空间的rollback segment。
AUM采用的是事务绑定undo segment的算法:
首先尝试将每个undo segment绑定一个事务,即每个undo segment上只被一个事务使用;
如果不能发现完全空闲的(也就是没有与任何事务绑定)undo segment,则尝试将其他脱机的undo segment联机;
如果没有可用的undo segment进行联机,尝试创建一个新的undo segment;
如果由于没有可用空间,不能创建新的undo segment,则事务绑定算法会尝试找最早被使用的那个undo segment,这种情况下,不同的多个事务才会在一个相同的undo segment里同时运行。
Undo Segment的收缩,由SMON完成:
每12小时会收缩一次,删除状态为idle状态的extents;
前台进行DML而需要undo时,发现空间不够,则会唤醒SMON进行一次收缩。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/81227/viewspace-688376/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/81227/viewspace-688376/