第8章 管理还原数据

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会将还原数据存放到一个还原段中。

原文地址:https://www.cnblogs.com/kangxuebin/p/2822462.html