暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用RMAN的备份集恢复数据文件

原创 eygle 2019-11-21
673

使用RMAN进行完全恢复数据

如果数据库的控制文件完好、日志文件完好,一旦数据文件损失或者全部丢失,那就可以通过RMAN的备份集恢复数据文件,应用归档日志,完成完全恢复。

RMAN> startup mount;
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
复制

假定控制文件完好,或者已经被恢复到原有位置,则可以使用list backup summary命令查看控制文件中记录的备份集概要信息,然后通过restore database命令从备份集中恢复备份文件:

RMAN> restore database;

启动 restore 于 02-3月 -07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK

通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00002恢复到D:\ORADATA\EYGLE\DATAFILE\O1_MF_UNDOTBS1_2G8OJ6NB_.DBF
正将数据文件00003恢复到D:\ORADATA\EYGLE\DATAFILE\O1_MF_SYSAUX_2G8OJHP9_.DBF
正将数据文件00004恢复到D:\ORADATA\EYGLE\DATAFILE\O1_MF_USERS_2G8OJYYS_.DBF
正将数据文件00005恢复到D:\ORADATA\EYGLE\DATAFILE\O1_MF_EYGLE_2YDGSVH7_.DBF
通道 ORA_DISK_1: 正在读取备份段 D:\BACKUP\EYGLEFULL_EYGLE_20070302_18
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = D:\BACKUP\EYGLEFULL_EYGLE_20070302_18 标记 = EYGLE
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:56
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORADATA\EYGLE\DATAFILE\O1_MF_SYSTEM_2G8OHFX6_.DBF
通道 ORA_DISK_1: 正在读取备份段 
D:\FRA\EYGLE\BACKUPSET\2007_03_02\O1_MF_NNNDF_TAG20070302T163818_2YHRMTH9_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = 
D:\FRA\EYGLE\BACKUPSET\2007_03_02\O1_MF_NNNDF_TAG20070302T163818_2YHRMTH9_.BKP 标记 = TAG20070302T163818
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:35
完成 restore 于 02-3月 -07
复制

通过recover database命令对数据库进行恢复:

RMAN> recover database;

启动 recover 于 02-3月 -07
使用通道 ORA_DISK_1

正在开始介质的恢复
介质恢复完成, 用时: 00:00:11

完成 recover 于 02-3月 -07
RMAN> alter database open;
数据库已打开
复制

这样就完成了完全恢复,数据库能够推演到崩溃前的状态,不会丢失任何提交成功的数据。

使用RMAN的不完全数据恢复

更多的情况下,故障可能会导致重做日志的损坏或丢失,此时就需要对数据库进行不完全恢复,以下是Restore备份之后进行基于时间恢复的一个示例:

[oracle@jumper oracle]$ export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss' 
[oracle@jumper oracle]$ rman target /

Recovery Manager: Release 9.2.0.4.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.
connected to target database: EYGLE (DBID=1407686520)

RMAN> recover database until time '2007-03-09 16:30:00';

Starting recover at 2007-03-09 16:57:09
using target database controlfile instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=10 devtype=DISK

starting media recovery

………
archive log filename=/opt/oracle/archive/arch1_6502.dbf thread=1 sequence=6502
archive log filename=/opt/oracle/archive/arch1_6503.dbf thread=1 sequence=6503
archive log filename=/opt/oracle/archive/arch1_6504.dbf thread=1 sequence=6504
archive log filename=/opt/oracle/archive/arch1_6505.dbf thread=1 sequence=6505
archive log filename=/opt/oracle/archive/arch1_6506.dbf thread=1 sequence=6506
media recovery complete
Finished recover at 2007-03-09 16:57:13

RMAN> alter database open resetlogs;
database opened
复制

恢复之后可以从alert文件中看到更为详细的提示,必须检查alert文件以确认恢复无误:

Fri Mar  9 16:58:31 2007
alter database open resetlogs
Fri Mar  9 16:58:31 2007
RESETLOGS after incomplete recovery UNTIL CHANGE 18995673889
Resetting resetlogs activation ID 1417650445 (0x547fa10d)
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论