Oracle RMAN高级恢复概述(一)Oracle不完全恢复简介

不完全恢复是指不完全的数据恢复,不完全恢复与完全恢复在许多方面是相同的,他们基本的命令集相同,但不完全恢复添加了一些其他命令。 引起不完全恢复的原因有很多,如丢失了联机重做日志或归档的重做日志,或者出现重大的用户错误。 不完全恢复会影响整个数据库,换句话,不能只对数据库的一部分执行不完全恢复操作,因为这个会使数据库的一部分具有与这个数据库其余部分不同的SCN和时间点。

要将数据库数据还原到与数据库剩余部分不同的时间点,可以用基于 表空间时间恢复 或者用 闪回技术。

不完全恢复方法包括:基于时间,SCN,日志序列 或取消的恢复。

1、使用resetlogslogs 命令

在不完全恢复期间,通常需要使用resetlogs命令打开数据库,这是因为我们要从已经简历的现有日志流中脱离出来,并且需要向Oracle 说明这种情况. Resetlogs 命令表示一个数据库逻辑生存期的结束和另一个数据库逻辑生存期的开始. 数据库的逻辑生存期也称为一个对应物(Incarnation). 每次使用resetlogs命令都会创建一个新的数据库对应物,这对于恢复操作来说非常重要.

每次使用resetlogs命令时,SCN 计数器不会被重置,不过Oracle 会重置其他计数器(如:日志序列号),同时还会重置联机重做日志的内容.

Oracle 10g 简化了通过resetlogs命令进行的恢复,在归档的重做日志名中添加了一个新的特换串(%r),该字符串表示resetlog ID 号。 在log_archive_dest_format 参数串中包括%r时,归档的重做日志名在每个resetlogs 命令中保持唯一。 这种改动以及其他的内部Oracle 数据库改动使oracle 可以很容易的通过给定的resetlogs操作恢复数据库。 因此,可以很容易的在执行操作后立刻备份数据库,然而,我们仍然认为在任何不完全恢复后备份数据库是很有必要的。

2、建立恢复点

使用RMAN执行不完全恢复操作时需要完成一个工作是简历恢复目标。恢复目录是恢复进程的终点,通常我们基于一个时间点,一个指定的SCN 或者 一个日志序列号来表示它。 我们可以采用许多不同的方法建立恢复目标。

(1)在run 代码块中使用set 命令与until time,until SCN 或 until sequence参数

Run

{

Set until time "to_date('2010-07-05 14:02:00','yyyy-mm-dd hh24:mi:ss')";

Restore database;

Recover database alter database open resetlogs;

}

执行这条命令时,RMAN 会查找与恢复目标时间最近(并非恢复目标时间本身也不能是位于恢复目标之间的时间)的备份集,并且从这个备份集中还原数据库。 如果数据库置于noarchivelog 模式中,恢复操作会在备份集的时间停止;否则在执行recover命令期间,oracle 会在所定义的恢复目标(不包含恢复目标本身)上应用归档的重做日志(以及需要应用的任何增量备份)。

注意: 如果尝试恢复到特定备份的完成点,则必须恢复到备份集中文件的CKP SCN 或 CKP TIME,在不同备份集的RMAN list命令中会列出这些内容。 有时使用备份的CKP TIME 并不够,还可能导致ORA-1152错误。

(2)在restore 和recover 命令中直接使用until time,until SCN 和 until sequence 参数

这种方法避免使用run 代码块,也倾向与使用这种方法。

Startup mount;

Restore database until time "to_date('2010-07-05 14:02:00','yyyy-mm-dd hh24:mi:ss')";

Recover database until time "to_date('2010-07-05 14:02:00','yyyy-mm-dd hh24:mi:ss')";

Alter database open resetlogs;

3、基于时间的恢复

这种恢复类型允许用户将数据库恢复到与指定时间一致的状态。 当然,如果不存在能将数据库还原到用户请求的时间的有效备份或归档重做日志,Oracle 就会报RMAN-03002 和 RMAN-20207的错误。

必须具备在我们指定的恢复时间之前生成的数据库备份,此外还需要所有归档的重做日志。

4、基于SCN 的恢复

Oracle 允许用户将数据库恢复到指定的SCN,实际上,这并不是一种常见的恢复方法。示例如下:

Startup mount;

Restore database until SCN 1000;

Recover database until SCN 1000;

Alter database open resetlogs;

注意: 该示例可以将数据库还原到SCN 1000,但是不会包含SCN.

5、基于日志序列的恢复

RMAN 允许用户将数据库恢复到指定序列号的归档重做日志。如果归档的重做日志中存在间隙,使用这种恢复方法就非常方便。 间隙通常意味着我们只能将数据库还原到间隙的开始点。

Startup mount;

Restore database until sequence 100 thread 1;

Recover database until sequence 100 thread 1;

Alter database open resetlogs;

时间: 2024-08-26 22:59:33

Oracle RMAN高级恢复概述(一)Oracle不完全恢复简介的相关文章

Oracle RMAN高级恢复概述(二) 基于RMAN 的恢复主题

1.只读表空间的恢复 在默认情况下,即使丢失了只读的数据文件,RMAN也不会在执行完全恢复数据库还原操作时还原只读的数据文件. 要在完全恢复期间还原只读的数据文件,就必须在restore 命令中使用check readonly 参数,如: Restore database check readonly; 注意,执行recover tablespace或recover datafile命令时,RMAN的工作情况是不一样的. 使用这两个命令时,不管表空间是否为只读状态都会执行恢复操作. 2.归档重做

Oracle RMAN高级恢复概述(五) 如何验证备份是否可恢复

如果备份不可恢复,那么它就没有用处. RMAN 提供了一种不需要还原数据库就能检查数据库还原能力的方法,并且为用户提供了几个检查选项. 1.restore preview命令 该命令可以查看RMAN 使用哪个备份集来执行特定的恢复. 该命令将列出还原所需的备份集的详细信息. RMAN> restore database preview; 启动 restore 于 08-7月 -10 使用通道 ORA_DISK_1 备份集列表 =================== BS 关键字  类型 LV 大

Oracle RMAN高级恢复概述(三) 如何恢复表空间时间点

使用表空间时间点恢复(TSPITR)可以将一个或多个非SYSTEM表空间恢复到与数据库其他部分不同的某个时间点上.这点和Flashback 有点类似. 比如用户误删了3张表,我们就可以用TSPITR恢复. 先看TSPITR 的工作流程,如下图所示: (1) 在辅助实例上用target的备份集restore 数据文件 (2) 在辅助库上用target的归档文件recover 数据文件 (3) 在辅助库上导出相关数据 (4) 修改主库的控制文件 (5) 用辅助库上导出文件导入辅助库上. 几个相关相关

Oracle RMAN高级恢复概述(六)跨平台的数据库移动和RMAN

Oracle 10g R2支持手工跨平台移动数据库,即使这些平台具有不同的尾数格式(endian format). 尾数格式与字节排序有关,它有两种不同的格式,即大尾数和小尾数. 如果在不同尾数字节格式的平台之间移动数据库,就需要手工操作,并且使用RMAN的convert datafile 或者 convert tablespace命令来将传送的数据文件转换为正确的尾数格式. 一.可跨平台传送的表空间 Oracle 支持几乎(不是所有)Oracle 数据库家族的所有平台之间的表空间移动.该功能具

Oracle RMAN高级恢复概述(四) 表空间时间点恢复

二.手工执行TSPITR Oracle 支持为TSPITR 创建自己的辅助实例. 也可以使用手工的TSPITR来完成失败的自动TSPITR操作. 首先,依然是应用前面的准备阶段中列出的步骤,接着必须准备辅助实例,然后执行TSPITR过程. 3.2.1 准备辅助实例 首先,需要启动和运行辅助实例.辅助实例只是RMAN用于执行TSPITR的临时实例. 辅助实例必须驻留在与目标数据库相同的机器中,并且在辅助实例上不能执行任何类型的DML. 在启动TSPITR前,需要准备辅助实例.和普通的数据库实例创建

Oracle RMAN的体系结构概述

一. 服务器管理恢复 恢复管理器, Recovery Manager, 简陈 RMAN. RMAN 实现一直服务器管理恢复(Server Managed Recovery: SMR). SMR 是一种数据库执行所需要的操作以确保自身备份成功的能力,依赖于Oracle RDBMS 内核中的内置代码可以完成这一功能. SMR 的功能主要体现在能够减少用户的操作. 二. RMAN 使用程序 RMAN 是SMR的具体实现,它是Oracle 提供的,RMAN 是一个独立的应用程序,它负责建立到Oracle

oracle数据库备份恢复概述

1.备份的意义 1)保护数据,避免因为各种故障而丢失数据 2.基本术语介绍 Mean Time Between Failure      --MTBF Mean Time To Repair            --MTTR Mean Time To Failure           --MTTF (1)MTBF--全称是Mean Time Between Failure,即平均故障间隔时间. 就是从新的产品在规定的工作环境条件下开始工作到出现第一个故障的时间的平均值.MTBF越长表示可靠性

备份恢复4.3——rman备份恢复综合演练

1. 检查数据库模式:   sqlplus /nolog     conn /as sysdba    archive log list (查看数据库是否处于归档模式中)    若为非归档,则修改数据库归档模式.    startup mount    alter database archivelog    alter database open 2.连接到target数据库 命令: connect target  /  (connect target system/oracle@ora10g

Oracle RMAN还原与恢复讲解(二)如何还原控制文件

1.使用RMAN(不使用FRA)从自动备份中恢复控制文件 ORACLE 会默认地在$ORACLE_HOME/dbs 或者 $ORACLE_HOME/DATABASE 目录中创建服务器参数文件与控制文件. 假设已经还原了实例参数文件和启动了实例,还原控制文件时,一般过程是先设置ORACLE_SID 和 登陆 RMAN, 然后设置DBID, 使RMAN知道需要查找哪一个数据库的控制文件. 如果使用默认的位置来存储控制文件的自动备份,就可以简单的执行:Restore controlfile from