查看与undo相关的系统参数
1、undo_management
有两个参数值:auto、manual(默认)
manual:系统启动后使用rollback segment存储undo信息;
auto:使用UNDO 表空间,这时undo_tablespace必须要指定一个UNDO 表空间
2、undo_tablespace
指定存放undo的表空间。
3、undo_retention
undo数据保存的期望时间,单位为秒。如果undo表空间充足,保存时间则会达到设置的期望值;如果undo表空间不足,则会提前覆盖。
Undo或者说rollback segment机制是Oracle早期奠定行业地位的核心技术之一。Undo机制的提出,源自于Oracle提出的“多版本一致读”特性。在Oracle中,select操作不会阻塞任何操作,也不会被任何操作所阻塞。这就意味着,当我们对一个数据表进行DML操作,比如插入、修改和删除数据的时候,其他会话连接的select操作是可以随意进行的,而且访问的数据都是DML操作之前提交的数据。
严格的说,多版本一致读是两个Oracle特性。一致读所说的是:当一个查询读操作select数据的时候,只能读取到小于等于启动查询操作时候SCN的数据。比如:我们启动查询的时候,数据表A中包括10亿条数据,。之后另一个会话启动删除了1亿条数据并且提交。提交之后,第一个读会话才检索到原来1亿条数据的位置,并且最后结束。从结果看,第一个会话读取到的是10亿条数据。一致读特性的关键就在于保证了读操作的一致性,读取数据在时间层面的一致性。细想一下,第二个会话commit之后,源数据1亿条的前镜像在Undo空间中是失效Expired状态。一致读过程中,一定是进行过失效Undo镜像数据的读取。
SCN:当Oracle数据库更新后,由DBMS自动维护去累积递增的一个数字。
参考:https://blog.csdn.net/fenglin20115588/article/details/50818216