详解Oracle基于用户管理恢复的处理

Oracle支持多种方式来管理数据文件的备份与恢复来保证数据库的可靠与完整。除了使用RMAN工具以及第三方备份与恢复工具之外,基于用户管理的备份与恢复也是DBA经常使用的方式之一。本文首先介绍了恢复的相关概念,接下来详细讲述了在归档模式下使用基于用户管理恢复的处理过程。

一、恢复的相关概念

介质恢复

首先使用备份还原数据,然后再应用归档日志、重做日志的恢复方式称为介质恢复。

介质恢复能将一个经过还原的数据更新到当前的时间点或之前的某个时间点。

通常介质恢复这个术语专指对数据文件进行恢复的过程。

数据块的介质恢复指数据文件中的个别数据块出现错误时进行的特殊恢复操作。

介质恢复通常又可以分为完全恢复和不完全恢复

完全恢复

使用数据库,表空间或数据文件的备份进行还原,再使用归档,重做日志或增量备份将数据更新到当前时间点

用户可以实现基于对数据库、表空间、数据文件执行完全恢复

对整个数据库实现完全恢复的步骤

启动数据库到mount 状态

确保所有需要被恢复的数据文件处于联机(online)状态

还原数据库或需要恢复的数据文件

应用联机重做日志或/与归档重做日志

对表空间及数据文件实现完全恢复的步骤

如果数据库处于打开状态,应将需要恢复的表空间或数据文件置为脱机(offline)状态

还原需要恢复的数据文件

应用联机重做日志或/与归档重做日志

使表空间或数据文件联机

不完全恢复

与完全恢复是同样的步骤,只不过不完全恢复仅仅是将数据恢复到某一个特定的时间点或特定的SCN,而

不是当前时间点。下列情况通常需要进行不完全恢复:

介质故障(media failure)导致部分或全部联机重做日志(online redo log)损坏

用户操作失误(user error)导致数据丢失,例如,用户由于疏忽而移除了表,提交了无效的数据到表

由于归档重做日志(archived redo log)丢失而无法进行完全恢复(complete recovery)

     当前控制文件(control file)丢失,必须使用备份的控制文件打开(open)数据库

不完全恢复的步骤

关闭数据库并备份数据库(以防止恢复失败)

启动数据库到mount 状态

还原所有受损的数据文件,同时可以选择还原控制文件

将数据库恢复至某个时间点、序列、或系统改变号

使用RESETLOGS关键字打开数据库

注意:

在做不完全恢复前建议在恢复前后做一次备份,避免恢复失败导致不必要的损失

不完全恢复完成后,建议不要直接使用OPEN RESETLOGS 命令以读/写模式打开(open)数据库,而应先以只读模式打开数据库,

并检查是否已将数据库恢复到正确的时间点。如果恢复的时间点有误,在没有使用OPEN RESETLOGS命令的情况下,重新执

行恢复操作相对简单。如果恢复结果早于指定的时间点,只需重新执行恢复操作。如果恢复结果超过了指定的时间点,则

应再次还原数据库并重新进行恢复。

Flashback Database(闪回数据库)是一种进行不完全恢复的方法

不完全介质恢复的几种类型:

基于时间的恢复(Time-based recovery)将数据恢复到指定的时间点

用户控制的恢复(Cancel-based recovery) 当用户提交CANCEL后停止恢复(此选项在使用RMAN时无效)

基于SCN 的恢复(Change-based recovery) 将数据恢复到指定的SCN

按重做日志序号恢复(Log sequence recovery)将数据恢复到指定的重做日志序号(仅使用RMAN时有效)

表空间按时间点恢复(tablespace point-in-time recovery,TSPITR)

可以将一个或多个表空间恢复到与数据库中其他表空间不同的时间点

TSPITR的适用情况:

因错误地移除(drop)及清除(truncate)表而进行的恢复

恢复存在逻辑错误的表

由于不正确的批处理作业或其他DML 语句导致数据库中部分数据有误,因而需要恢复

单独将某个方案(schema)恢复到与物理数据库中其他方案不同的时间点

(假设数据库中不同的方案使用不同的表空间)

恢复大型数据库(VLDB)中的一个表空间,而不必先使用备份复原整个数据库再执行所有前滚(roll-forward)操作

时间: 2016-08-22

详解Oracle基于用户管理恢复的处理的相关文章

Oracle 基于用户管理恢复的处理

--================================ -- Oracle 基于用户管理恢复的处理 --================================       Oracle支持多种方式来管理数据文件的备份与恢复来保证数据库的可靠与完整.除了使用RMAN工具以及第三方备份与恢复工具之外,基于 用户管理的备份与恢复也是DBA经常使用的方式之一.本文首先介绍了恢复的相关概念,接下来详细讲述了在归档模式下使用基于用户管理恢 复的处理过程.    一.恢复的相关概念  

Oracle 基于用户管理的不完全恢复

    Oracle 数据恢复从恢复类型来说,抛开具体的文件,总共可分为两大类型的恢复,一是完全恢复,一个是不完全恢复.其实,熟悉了Oracle体系结构之后,对于Oracle恢复就会有一个总体的概念.因为Oracle组成的外围部分,主要由不同的文件来组成,每种不同类型的文件有不同的作用,因此只要了解了其作用,更利于了解与掌握Oralce数据库的备份与恢复.言归正传,完全恢复即是把数据库恢复到最新的SCN,出故障前的那一刻,是无损恢复.而不完全恢复即是有损恢复,多用于恢复用户误操作,归档日志丢失等

Oracle基于用户管理的不完全恢复(一)不完全恢复的特性

Oracle 数据恢复从恢复类型来说,抛开具体的文件,总共可分为两大类型的恢复,一是完全恢复,一个是不完全恢复.其实,熟悉了Oracle体系结构之后,对于 Oracle恢复就会有一个总体的概念.因为Oracle组成的外围部分,主要由不同的文件来组成,每种不同类型的文件有不同的作用,因此只要了解了其作 用,更利于了解与掌握Oralce数据库的备份与恢复.言归正传,完全恢复即是把数据库恢复到最新的SCN,出故障前的那一刻,是无损恢复.而不完全恢复即是有损恢复,多用于恢复用户误操作,归档日志丢失等情形

Oracle基于用户管理的不完全恢复

Oracle 数据恢复从恢复类型来说,抛开具体的文件,总共可分为两大类型的恢复,一是完全恢复,一个是不完全恢复.其实,熟悉了Oracle体系结构之后,对于Oracle恢复就会有一个总体的概念.因为Oracle组成的外围部分,主要由不同的文件来组成,每种不同类型的文件有不同的作用,因此只要了解了其作用,更利于了解与掌握Oralce数据库的备份与恢复.言归正传,完全恢复即是把数据库恢复到最新的SCN,出故障前的那一刻,是无损恢复.而不完全恢复即是有损恢复,多用于恢复用户误操作,归档日志丢失等情形.本

Oracle基于用户管理的不完全恢复(三)恢复过去某个时间点误操

案例2--恢复过去某个时间点误操作的表(DML) 1.基于change (scn) SQL> conn scott/tiger Connected. SQL> select * from tb01; ID ---------- 1 2 3 SQL> drop table tb01 purge; Table dropped. SQL> create table tb01(id int) tablespace test; Table created. SQL> insert in

Oracle基于用户管理的不完全恢复(二)恢复过去某个时间点误操作的表

案例1--恢复过去某个时间点误操作的table 1.基于时间点 SQL> select username,scn,timestamp,sql_redo from v$logmnr_contents where seg_name='TB01'; USERNAME               SCN TIMESTAMP           SQL_REDO --------------- ---------- ------------------- -------------------------

详解Oracle建立用户和对用户的管理

# 合法的Oracle标识符号 1.不能是保留关键字 2.必须使用1到30个字符.数据库的名称最多是8个字符. 3.必须以数据库字符集中的字母字符开头 4.只能够包含数据库字符集中的字母字符,以及以下字符:#.$._,另外数据库链接可以包含@符号和'.'(句号) 5.不能包含引号 # 建立用户 create user angeos identified by angeos; 建立了用户:angeos,密码为:angeos # 对用户授权 grant connect,resource to ang

Oracle基于用户管理的不完全恢复(五)误删除表空间

案例4--误删除表空间(有备份) 通过备份的控制文件找到与表空间有关的信息进行恢复,因为新的控制文件里面已经没有该表空间的信息了.实际上在整个恢复过程中还是利用归档日志进行恢复,如果删除表空间之前的操作有及时写入到归档信息,就会全部恢复出来.下面的案例分切换日志和不切换日志两种. 1.基于backup control 的不完全恢复 SQL> select file_id,file_name,tablespace_name from dba_data_files; FILE_ID FILE_NAM

Oracle基于用户管理的不完全恢复(四)完全恢复时丢失部分归档日志

案例3--在做完全恢复时,丢失了部分归档日志 (recover database until cancel;) 1.基于cancel 的不完全恢复 --模拟环境 SQL> col table_name for a20 SQL> col tablespace_name for a10 SQL> select table_name,tablespace_name from user_tables; TABLE_NAME           TABLESPACE ---------------