一、引入还原段主要有3个目的:
1、事务回滚:主要是针对rollback语句起作用
2、事务恢复:非正常关闭数据库即非保留事务级关闭数据库(abort、immediate)或者数据库instance崩溃,则当数据库再次打开时oracle服务器就要还原所有没有提及的事务。这种还原就是事务恢复的一部分。要使得恢复真正的成为可能写到还原段的变化也要受到联机重做日志的保护。
3、保证数据的读一致性。
二、还原数据的管理方法
1、自动的还原数据管理:oracle服务器自动的管理还原段的创建、分配和优化
2、手工的还原数据管理:所有的还原段的创建、分配和优化都是手动管理的。
注:一个事务只能将他的全部的还原数据存入同一个还原段中,但是多个并行的事务可以写一个还原段。每个还原段都有一个段头在该段头中保存了一个事务表。该表中存放着有关使用这一还原段的当前事务的信息。
三、还原段的分类
为了管理的方便oracle的还原段分为以下几种不同的类型:
1、系统还原段system
仅为系统表空间中的对象变化使用,在数据库创建时在系统表空间中创建的
2、非系统还原段non-system
为其他表空间中的对象变化所使用,当一个数据库有多个表空间时必须有必须有至少一个手动的非系统还原段或者一个自动管理的还原表空间
1、自动管理的还原段
需要一个还原表空间,由oracle服务器自动维护还原表空间中的还原数据
2、手动管理的还原段
由dba负责创建非系统还原段,所有非系统表空间中对象的变化都将使用这一非系统还原段
1、公有:为任何一个实例所用,他们通常是在oracle集群中使用
2、私有:为一个实例所用
3、延迟还原段deferred
当一个表空间置为脱机时,如果需要由oracle系统自动创建。延迟还原段被用来在该表空间被重新置为联机时回滚事务,当不需要他们时,系统会自动将他们删除。