1. Oracle提供了两种管理还原数据
1)自动的还原数据管理:Oracle服务器自动地管理还原段的创建、分配和优化;
2)手动的还原数据管理。
2. Oracle使用还原段的目的
1)事务回滚:当一个用户发了一些DML语句之后改了主意使用了rollback语句回滚了他所做的事务。此时Oracle服务器将还原段中的原始数据回写到原来的数据行中;
2)事务恢复:如果当事务正在进行期间实例时崩溃了,则当数据库再次打开ORacle服务器就要还原(回滚)所没有提交的变换;
3)保证数据的读一致性,当事务在进行期间,数据库中的其他用户不应看到任何这些事务所做的没有提交的变换,一个语句不应该看到任何该语句开始执行后所做的变换。
3. Oracle还原段的类型
1)系统还原段:仅为系统表空间的对象变换所用,它是在数据库创建时在系统表空间中创建。即可以工作自动模式下,也可以工作在手动模式下;
2)非系统还原段
a)自动模式:需要一个还原表空间,Oracle服务器将自动维护还原表空间中的还原数据;
b)手动模式:所有非系统表空间中对象的变化都将使用这样的非系统还原段
b1)私有还原段:为一个实例所用;
b2)公有还原段:为任何一个实例使用,通常在Oracle集群(real application clusters)中使用;
3)延迟还原段:当一个表空间被设置为脱机时,如果需要,由Oracle系统自动创建。延迟还原段被用来在该表空间重新设为联机时回滚事务。当不需要时,系统自动删除。
4. oracle自动管理还原数据,需要了解如下参数配置
1)undo_management:说明系统使用自动(auto)还是手动(manual)模式;
undo_management不是动态参数,不能使用alter system set命令修改
2)undo_tablespace:说明系统使用哪些还原表空间;
undo_tablespace是动态参数,可以使用alter system set命令修改
alter system set undo_tablespace=xiaoming_undo;
3)查看数据库中还原数据的管理方式
select name,value from v$paramenter where name like '%undo%';
show parameter undo;
5. 还原表空间的创建于维护
1)在create database命令中加入一个子句,在创建数据库时建立还原表空间undo tablespace xiaoming_undo datafile'文件名.dbf';
2)在创建数据库后,使用create undo tablespac命令创建建立还原表空间;
3)常用命令
a)还原表空间增加一个大小25MB的数据文件
alter tablespace xiaoming_undo add datafile 'D:\orcl\xiaoming\xiaoming2_undo.dbf' size 25m;
b)将数据文件设置为自动扩展
alter tablespace datafile 'D:\orcl\xiaoming\xiaoming2_undo.dbf' autoextend on;
select file_id,file_name,tablespace_name,autoextensible from dba_data_files;
6. 什么是oracle的还原数据?
在oracle数据库中,当某个进程修改数据时,该数据的原始值即为还原数据,oracle会将还原数据存放到一个还原段中。