一、oracle是通过还原表空间来实现还原数据的自动管理的,oracle9i以后才引入还原数据段的自动管理。oracle为每个实例分配一个还原表空间,该表空间要有足够的空间以应对该实例的工作负荷,之后oracle服务器将自动维护和管理还原表空间中的还原数据。
要实习oracle的自动管理还原数据必须在初始化参数文件中配置undo_management,undo_tablespace两个参数而且还必须创建至少一个还原表空间。
undo_management:设置管理方式是auto或者manual
undo_tablespace:设置系统使用的还原表空间
可以在初始化参数文件中使用undo_management=auto undo_tablespace=undo_tablespace_name将还原数据的管理设置为自动。其中undo_management不是动态参数,不能使用alter system set设置,只有修改参数文件,undo_tablespace是动态参数可以使用alter system set undo_tablespace=undo_tablespace_name设置。
使用如下sql获得还原表空间的信息:
select name ,value from v$parameter where name like '%undo%';
undo_management =auto
undo_tablespace=undotbs1
undo_retention=900
说明当前还原表空间undotbs1是自动管理还原数据的
二、创建还原表空间:有两个方式可以创建还原表空间
1、在create database时加入一个子句在创建数据库时创建还原表空间
2、使用create undo tablespace命令来创建还原表空间
create undo tablespace tablespace_name
datafile 'file_name.dbf'
size 20M;
如果要修改还原表空间的一些参数配置可以通过alter tablespace命令来完成,在该命令中可以使用的子句如下;
rename
add datafile
datafile[online|offline]
begin backup
end backup
为了防止由于事务量的增加造成的还原数据装满还原表空间的情况发生,需要将还原表空间的数据文件置为自动扩展的。
1、查看哪些数据文件时可以自动扩展的
select tablespace_name,file_name,autoextensible from dba_data_files where tablespace_name like '%UNDO%';
2、将数据文件设置为自动扩展
alter database
datafile 'file_name.dbf'
autoextend on;
三、切换还原表空间
oracle允许在同一时刻只能将一个还原表空间赋值给oracle系统,在表空间中可以存在多个还原表空间但是同一时刻只能有一个还原表空间是活动的。可以使用alter system命令
动态切换还原表空间:alter system set undo_tablespace=tablespace_name;
在v$parameter视图中存储的参数都是oracle的动态参数,允许使用alter system命令修改。在spfile中存储的参数是不允许使用alter system命令修改的。
四、删除还原表空间的的指令和删除普通的表空间相同
drop tablespace tablespace_name;