1 2 3 下一页 每当一个进程或者一个用户会话修改数据库中的数据时,Oracle数据库系统都会在数据修改之前把已经存在的旧值保存为撤销数据。如此的话,数据库管理员就可以用这些撤销数据来进行事务回退、保障读写一致性、进行回闪操作等等。不过这些操作的效果好不好,主要还是要看数据库的撤销保持能力。这个撤销保持能力,在 Oracle数据库中指的就是这个撤销数据可以保存的时间。 因为这撤销数据是保存在撤销表空间的撤销段中。而这个撤销段有一个特点,就是其是循环使用的。当撤销表空间满了时,数据库会覆盖某些撤销数据。如果撤销数据被覆盖掉,那么在执行上面这些作业时,就会遇到问题。为了上面这些作业能够正确执行,数据库管理员要尽量来保障数据库的撤销保持能力。 一、理解数据库撤销信息的三种类型。 如上图所示,在Oracle数据库中撤销信息一般包括未提交撤销信息、已提交撤销信息和已过期撤销信息。掌握这三类撤销信息的特点以及他们之间的区别,是做好撤销保持能力保障工作的基础。 未提交撤销信息指的是仍在支持一个活动事务且在出现一个rollback或则一个事务故障时需要被撤销的信息。简单的说,未提交撤销信息就是一个事务还没有被完成时保存在撤销段中的数据。这个为提交的撤销信息有一个特点,即其永远不会被覆盖。如果数据库系统的撤销表空间中的存储空间全部被未提交的撤销信息所填充,那么数据库在运行时就会出现“snapshot too old”的错误信息。此时其他一些作业、甚至正在运行的一些事务都将无法完成。为此这对于Oracle数据库来说,是一个致命的错误。 (责任编辑:admin) |