undo 回滚数据(rollback),保持数据一致性,用于保存所修改数据的旧值。
存储被修改数据块的位置和修改前的数据,实现事务回退、读一致性和事务恢复等。还提供倒叙查询特征(flashback query)
修改后未提交,可以通过rollback回退
保证用户看到的都是提交过的数据,未提交的则会查询到undo 中的。
undo_management AUTO为自动管理方式。手动则为manual
手工,则会使用回滚段,
undo_tablespace 指定回滚表空间,没有指定则会使用system 中的回滚段。
rac模式下,必须为每一个例程单独配置undo 表空间
undo_retention 指定回滚数据的最大保留时间,默认为900秒。
修改undo表空间:
alter tablespace.......add datafile .. 增加数据文件
alter tablespace ......rename datafile 移动数据文件
alter tablespace ..... offline/online 在open下移动时,需要。。
alter tablespace ......begin backup/end backup 在归档模式下备份。
切换undo表空间:
alter system set undo_tablespace=...
监视undo表空间
为了合理确定undo表空间的尺寸,在数据库运行高峰期搜集undo表空间的统计信息。v$undostat
SQL> select to_char(begin_time,'HH24:MI:SS') begin_time,to_char(end_time,'HH24:MI:SS'),undoblks from v$undostat;
BEGIN_TI TO_CHAR( UNDOBLKS
-------- -------- ----------
12:19:09 12:22:34 0
12:09:09 12:19:09 3
11:59:09 12:09:09 27
11:49:09 11:59:09 1
11:39:09 11:49:09 0
11:29:09 11:39:09 1
11:19:09 11:29:09 0
11:09:09 11:19:09 7
每隔10分钟生成一个。
显示undo段的统计信息:
SQL> select a.name,b.xacts,b.writes,b.extents from v$rollname a,v$rollstat b where a.usn=b.usn;
NAME XACTS WRITES EXTENTS
----------------------------------- ---------- ---------- ----------
SYSTEM 0 5080 6
_SYSSMU1$ 0 12102 3
_SYSSMU2$ 0 24702 4
_SYSSMU3$ 0 13218 3
_SYSSMU4$ 0 12796 3
_SYSSMU5$ 0 23094 3
_SYSSMU6$ 0 9684 4
_SYSSMU7$ 0 79584 3
_SYSSMU8$ 0 57332 4
_SYSSMU9$ 0 9236 3
_SYSSMU10$ 0 10248 3
name 表示段的名称, xacts 事务个数,writes 写入字节数,extents拥有段的区个数。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15799689/viewspace-687363/ ,如需转载,请注明出处,否则将追究法律责任。