RMAN 高级恢复Word下载.docx

上传人:b****4 文档编号:16496562 上传时间:2022-11-24 格式:DOCX 页数:41 大小:130.92KB
下载 相关 举报
RMAN 高级恢复Word下载.docx_第1页
第1页 / 共41页
RMAN 高级恢复Word下载.docx_第2页
第2页 / 共41页
RMAN 高级恢复Word下载.docx_第3页
第3页 / 共41页
RMAN 高级恢复Word下载.docx_第4页
第4页 / 共41页
RMAN 高级恢复Word下载.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

RMAN 高级恢复Word下载.docx

《RMAN 高级恢复Word下载.docx》由会员分享,可在线阅读,更多相关《RMAN 高级恢复Word下载.docx(41页珍藏版)》请在冰豆网上搜索。

RMAN 高级恢复Word下载.docx

可以很容易的通过给定的resetlogs操作恢复数据库。

因此,可以很容易的在执行操作后立刻备份数据库,然而,我们仍然认为在任何不完全恢复后备份数据库是很有必要的。

Rman跨resetlogs版本恢复

1.2 

建立恢复点

使用RMAN执行不完全恢复操作时需要完成一个工作是简历恢复目标。

恢复目录是恢复进程的终点,通常我们基于一个时间点,一个指定的SCN 

或者 

一个日志序列号来表示它。

我们可以采用许多不同的方法建立恢复目标。

1.2.1 

在run 

代码块中使用set 

命令与until 

time,until 

SCN 

或 

until 

sequence参数

Run

{

Set 

time 

"

to_date('

2010-07-05 

14:

02:

00'

'

yyyy-mm-dd 

hh24:

mi:

ss'

)"

;

Restore 

database;

Recover 

database 

alter 

open 

resetlogs;

}

执行这条命令时,RMAN 

会查找与恢复目标时间最近(并非恢复目标时间本身也不能是位于恢复目标之间的时间)的备份集,并且从这个备份集中还原数据库。

如果数据库置于noarchivelog 

模式中,恢复操作会在备份集的时间停止;

否则在执行recover命令期间,oracle 

会在所定义的恢复目标(不包含恢复目标本身)上应用归档的重做日志(以及需要应用的任何增量备份)。

注意:

如果尝试恢复到特定备份的完成点,则必须恢复到备份集中文件的CKP 

CKP 

TIME,在不同备份集的RMAN 

list命令中会列出这些内容。

有时使用备份的CKP 

TIME 

并不够,还可能导致ORA-1152错误。

1.2.2 

在restore 

和recover 

命令中直接使用until 

和 

sequence 

参数

这种方法避免使用run 

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

Startup 

mount;

Alter 

1.3 

基于时间的恢复

这种恢复类型允许用户将数据库恢复到与指定时间一致的状态。

当然,如果不存在能将数据库还原到用户请求的时间的有效备份或归档重做日志,Oracle 

就会报RMAN-03002 

RMAN-20207的错误。

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

1.4 

基于SCN 

的恢复

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

示例如下:

1000;

该示例可以将数据库还原到SCN 

1000,但是不会包含SCN.

1.5 

基于日志序列的恢复

RMAN 

允许用户将数据库恢复到指定序列号的归档重做日志。

如果归档的重做日志中存在间隙,使用这种恢复方法就非常方便。

间隙通常意味着我们只能将数据库还原到间隙的开始点。

100 

thread 

1;

二. 

2.1 

只读表空间的恢复

在默认情况下,即使丢失了只读的数据文件,RMAN也不会在执行完全恢复数据库还原操作时还原只读的数据文件。

要在完全恢复期间还原只读的数据文件,就必须在restore 

命令中使用check 

readonly 

参数,如:

check 

readonly;

注意,执行recover 

tablespace或recover 

datafile命令时,RMAN的工作情况是不一样的。

使用这两个命令时,不管表空间是否为只读状态都会执行恢复操作。

2.2 

归档重做日志的还原

在使用RMAN的普通恢复过程中,不必恢复归档的重做日志。

不过,偶尔也会要求还原一个或多个归档的重做日志。

例如,我们可能需要使用LogMiner 

在备份中存储的归档重做日志文件里查找一些信息。

archivelog 

all;

from 

logseq=20 

thread=1;

logseq=30 

还可以将归档的重做日志还原到默认位置以外的位置上:

destination 

to 

d:

/arch"

上例中的set 

命令没有替代方法,必须要求使用set。

如果RMAN 

认为一个归档的重做日志已存在,就不会在磁盘上还原这个归档的重做日志,即使设置的还原位置不同与默认的归档日志位置,Oracle 

也不会在这个新的位置上恢复归档的重做日志。

2.3 

数据文件副本的还原

可以从数据文件副本(不是备份集)中还原数据库的数据文件。

要实现这个功能,需要先使用restore 

datafilecopy命令,然后再使用恢复数据库(或表空间,数据文件)的recover。

RMAN>

(datafile 

5) 

datafilecopy;

-- 

此处的圆括号是必须的,如果没有就报错

datafile 

5;

SQL>

online;

执行restore 

时,该命令会识别需要还原的数据文件的最新副本,然后从这个副本中还原这些数据文件。

数据文件的最新副本可能是在一个数据文件副本中,而不是在一个副本中。

在这种情况下,Oracle 

会恢复这个数据文件副本。

2.4 

恢复讹误的数据块

即使与讹误数据块关联的数据文件一直联机,也可以通过用块介质恢复(block 

Media 

recover:

BMR)执行块级别恢复操作来修复Oracle 

数据库中的这些逻辑上或者物理上的讹误数据块。

一般出现数据块错误时,都会有错误消息:

ORA-01578:

ORACLE 

data 

block 

corrupted 

(file 

#18,block 

#88)

如果没有BMR时,我们必须从一个备份中恢复这个数据文件,在恢复过程中,用户不能使用该数据块文件中的所有数据。

用BMR恢复就很简单,只需要执行blockrecover命令即可:

Blockrecover 

18 

88;

如果有必要,可以同时恢复多个数据文件的多个数据块。

如:

16,17,88,108;

Blcokrecover 

88 

19 

blcok 

188;

会跟踪在备份和恢复期间发生的数据块讹误。

如果检测到备份或复制操作出现讹误,由于Oracle 

不允许在备份中出现讹误,所有这个备份就会失败。

当然,可以配置RMAN允许一定数量的讹误,但是不推荐这种用法。

可以使用backup 

validate 

命令查看RMAN 

检测到的所有数据库讹误。

这条命令会在v$backup_corruption 

和v$database_block_corruption视图中填充检测到的所有讹误数据块。

如果讹误发生在复制操作期间,v$copy_corruption视图就会指明包含讹误的备份集。

注意的是:

v$backup_corruption 

是一个显示历史讹误的视图,v$database_block_corruption 

则是一个显示当前数据块讹误的视图。

一旦修正了数据库的块讹误,就需要重新运行backup 

database命令,然后查询v$database_block_corruption 

视图以确保不存在其他讹误。

查询v$database_block_corruption视图可以查看讹误数据块的详细信息。

如下所示,使用具有corruption 

list 

restore 

参数的blockrecover命令可以方便地修正v$database_block_corruption 

视图中的讹误数据块。

corruption 

'

SYSDATE-5'

这条命令将还原讹误列表中最近5天的所有讹误数据块。

在上面的命令中,还可以使用until 

sequence.

2.5 

恢复前一个对应物

一个数据库的对应物(incarnation)对应这个数据库的特定逻辑生存期。

有时我们需要使用上次执行resetlogs命令打开数据库前生成的一个备份来还原数据库,或者可能需要还原到执行上一个resetlogs命令之前的时间点。

这就需要用到incarnation.

2.5.1 

使用恢复目录恢复前一个对应物

先假设使用恢复目录执行了备份操作,并且最近使用了resetlogs命令执行过时间点恢复,现在需要使用执行resetlogs命令之前的一个备份来恢复数据库。

操作步骤:

(1)启动但不加载实例,这是因为我们要先得到一个与恢复数据库对应物关联的控制文件

(2)使用reset 

incarnation 

命令为RMAN 

指示对应物的备份集。

(3)Restore 

controlfile,使rman还原最新的控制文件

(4)加载数据库

(5)Restore 

数据库

(6)Recover 

(7)使用resetlogs 

打开数据库

C:

/Users/Administrator.DavidDai>

rman 

target 

catalog 

rman/rman@orcl;

恢复管理器:

Release 

11.2.0.1.0 

Production 

on 

星期二 

7月 

10:

31:

40 

2010

Copyright 

(c) 

1982, 

2009, 

and/or 

its 

affiliates. 

All 

rights 

reserved.

连接到目标数据库:

ORCL 

(DBID=1247395743)

连接到恢复目录数据库

incarnation;

数据库原型列表

DB 

关键字 

Inc 

名 

STATUS 

重置 

重置时间

------- 

-------- 

---------------- 

--- 

---------- 

----------

12 

1250808537 

PARENT 

30-8月 

-05

534907 

30-6月 

-10

323 

CURRENT 

940996 

06-7月 

startup 

force 

nomount;

reset 

4;

controlfile;

scn 

940990;

recover 

2.5.2 

不使用恢复目录恢复前一个对应物

为了通过前一个对应物进行恢复,需要一个包含前一个对应物信息的控制文件。

在大多数情况下,这可能是当前的控制文件。

如果当前的控制文件不了解需要恢复的对应物,则需要还原包含该信息的控制文件,从而使得利用该方法恢复数据。

可以使用list 

of 

命令查看控制文件了解哪些对应物.

没有连接恢复目录的list 

输出与已连接恢复目录时的list 

输出有一些细微的区别。

这是因为信息从控制文件中获得的,因此某些键(如Inc 

key)将会不同。

操作步骤如下:

(1)从RMAN中运行list 

命令,确定希望复位到哪个对应物

(2)关闭数据库

(3)启动加载数据库

(4)执行reset 

命令复位对应物

(5)使用restore 

命令还原数据库

(6)recover恢复数据库

1247395743 

02-4月 

940976 

21-5月 

ORPHAN 

8426617 

8554968 

shutdown 

immediate;

2;

将数据库重置为原型 

2

2010-7-5 

23:

50:

39'

启动 

于 

使用通道 

ORA_DISK_1

通道 

ORA_DISK_1:

正在开始还原数据文件备份集

正在指定从备份集还原的数据文件

将数据文件 

00001 

还原到 

D:

/APP/ADMINISTRATOR/ORADATA/ORCL/SYSTEM01.DBF

00002 

/APP/ADMINISTRATOR/ORADATA/ORCL/SYSAUX01.DBF

00003 

/APP/ADMINISTRATOR/ORADATA/ORCL/UNDOTBS01.DBF

00004 

/APP/ADMINISTRATOR/ORADATA/ORCL/USERS01.DBF

00005 

/APP/ADMINISTRATOR/ORADATA/ORCL/DAVE0.DBF

正在读取备份片段 

F:

/BACKUP/ORCL_1GLI2EN5_1_1.BAK

段句柄 

/BACKUP/ORCL_1GLI2EN5_1_1.BAK 

标记 

TAG20100705T232732

已还原备份片段 

1

还原完成, 

用时:

00:

01:

45

完成 

正在开始介质的恢复

线程 

序列 

156 

的归档日志已作为文件 

/ARCHIVELOG/ORCL_1_156_719615012.ARC 

存在于磁盘上

归档日志文件名=D:

线程=1 

序列=156

介质恢复完成, 

02

数据库已打开

注:

后面可以跟三种类型:

1000

150;

查看sequence:

select 

sequence# 

v$archived_log;

SEQUENCE#

161

162

3

4

从这个结果也证明resetlogs 

会重置sequnce,但是scn不会被重置。

查看scn:

current_scn 

v$database;

CURRENT_SCN

-----------

8555698

dbms_flashback.get_system_change_number 

dual;

GET_SYSTEM_CHANGE_NUMBER

------------------------

8555706

三. 

表空间时间点恢复,TSPITR:

tablespace 

point-in-time 

recovery. 

官网文档的连接地址:

Tablespace 

Point-in-Time 

Recovery 

(TSPITR)

使用表空间时间点恢复(TSPITR)可以将一个或多个非SYSTEM表空间恢复到与数据库其他部分不同的某个时间点上。

这点和Flashback 

有点类型。

比如用户误删了3张表,我们就可以用TSPITR恢复。

先看TSPITR 

的工作流程,如下图所示:

(1) 

在辅助实例上用targe

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1