日期:2014-05-16  浏览次数:20493 次

Oracle DB管理还原数据
? 说明DML 和还原数据的生成
? 监视和管理还原数据
? 描述还原数据和重做数据之间的不同
? 配置还原保留时间
? 保证还原保留时间
? 使用还原指导
 
1、数据操纵
 
可使用DML 类的SQL 语句操纵或修改数据:INSERT、UPDATE、DELETE和MERGE。
这些语句作为事务处理的一部分执行,事务处理以第一个成功的DML 语句作为开始,以COMMIT或ROLLBACK命令作为结束。
事务处理始终整个提交。除非使用SAVEPOINT子句回退到特定保存点,否则事务处理整个回退。
除了使用显式COMMIT或ROLLBACK命令之外,还可以隐式地执行这些命令。
例如,如果进程或系统失败,则可能会发生回退。执行如CREATE TABLE这样的DDL 命令后可能会发生提交。
附注
? 使用MERGE命令可执行DML 命令的组合,从而将一个表中的数据合并到另一个表中。
? 提交始终在执行DML 命令之前和之后发生。
 
2、还原数据
 
还原数据是:
? 原始的、修改之前的数据副本
? 是针对更改数据的每个事务处理所捕获的
? 至少保留到事务处理结束
? 用于支持:
– 回退操作
– 读取一致性查询
– 闪回查询、闪回事务处理和闪回表
– 从失败的事务处理中进行恢复
 
当某个进程更改了数据库中的数据时,Oracle DB 会保存旧值(还原数据)。按数据修改前的原样存储数据。
如果捕获了还原数据,则可以回退未提交的数据。
还原数据用于支持读取一致性和闪回查询
还原还可用于“倒回”(闪回)事务处理和表。
读取一致性查询中,提供与查询开始时的数据一致的结果。如果要成功完成读取一致性查询,原始信息必须仍作为还原信息存在。如果原始数据不再可用,则会收到“快照太旧”错误。只要保留了还原信息,Oracle DB 就能通过重建数据来满足读取一致性查询的要求。
 
闪回查询有目的地查找过去某个时间存在的某个版本的数据。只要过去那个时间的还原信息仍存在,闪回查询就能成功完成。
闪回事务处理使用还原功能来创建补偿事务处理,以便回退事务处理及其相关事务处理。
使用闪回表功能可将表恢复到特定的时间点。
 
还原数据也可用于从失败的事务处理中进行恢复。如果在用户决定提交或回退事务处理之前用户会话异常结束(可能因为网络错误或客户机故障),就会导致事务处理失败。当实例崩溃或发出SHUTDOWN ABORT命令时,事务处理也可能会失败。
 
如果事务处理失败,则选择最安全的行为,即让Oracle DB 撤销用户做出的所有更改,从而还原原始数据。
所有事务处理的还原信息将至少保留到事务处理结束,即使用以下方法之一结束事务处理时:
? 用户还原事务处理(回退事务处理)。
? 用户结束事务处理(提交事务处理)。
? 用户执行DDL 语句,如CREATE、DROP、RENAME或ALTER语句。如果当前事务处理包含任何DML 语句,则数据库首先提交该事务处理,然后在新的事务处理中执行并提交DDL。
? 用户会话异常终止(回退事务处理)。
? 用户会话正常终止并退出(提交事务处理)。
保留的还原数据量及其保留时间取决于数据库活动量以及数据库配置。
注:Oracle 闪回事务处理利用联机重做日志来挖掘用于执行的相应还原SQL。如果闪回事务处理调用中未提供事务处理开始时间,则只使用还原数据作为人为的时间边界,以此确定目标事务处理的重做挖掘开始时间。
 
3、事务处理和还原数据
? 每个事务处理只分配给一个还原段。
? 一个还原段可以同时服务多个事务处理。
 
事务处理开始时就会分配还原段。在事务处理的整个过程中,更改数据时,原始(更改之前)值会被复制到还原段。通过选中V$TRANSACTION动态性能视图,可以查看哪些事务处理被分配到哪些还原段。
 
还原段是为了支持事务处理,由实例自动创建的专用段。像所有段一样,还原段由区组成,区又由数据块组成。还原段根据需要可自动增长和收缩,它充当所分配的事务处理的循环存储缓冲区。
 
事务处理会填充其还原段中的区,直至完成了事务处理或占用了所有空间为止。
如果填充完区之后还需要更多的空间,事务处理则获取段中下一个区的空间。占用了所有区之后,事务处理会自动转回到第一个区或请求为还原段分配新区。
注:并行DML 和DDL 操作实际上可导致事务处理使用多个还原段。
 
4、存储还原信息
还原信息存储在还原段中,还原段又存储在还原表空间中。
还原表空间:
? 仅用于还原段
? 包含特殊的恢复注意事项
? 只能与单个实例相关联
 
? 要求在任意指定时间,一个给定的实例只能有一个表空间是当前可写还原表空间
还原段只存在于特定形式的表空间中,这种形式的表空间称为“还原表空间”。(在还原表空间中不能创建其它段类型)
安装进程可自动创建“小文件”还原表空间。用户还可以创建“大文件”还原表空间。但是,在同时执行大量短事务处理的大量联机事务处理(OLTP) 环境中,