主要分三种:基于时间点,SCN,日志序列号。
步骤:
1.建立恢复点:
set until time=”to_date(‘07/01/02 15:00:00’,’mm/dd/yy hh24:mi:ss’)”;--基于时间点
sequence ** thread **;--------基于日志序列号
scn **;------------基于SCN
也可在restore database ,recover database后直接用 until time =”to_date(‘07/01/02 15:00:00’,’mm/dd/yy hh24:mi:ss’)”;
2.进行还原,恢复:
restore database;----先还原
recover database;----再恢复
3.以resetlogs方式打开数据库:
alter database open resetlogs;
-----------------------------------------------
在数据库用resetlogs方式打开后,数据库会对应一个新的逻辑生存期,用incarnation(对应物)来进行表示。
有时需要用上次执行resetlogs打开数据库前生成的备份来还原数据库,如有恢复目录,恢复步骤如下:
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
281 282 TEST 2016356161 PARENT 1 05-5月 -10
281 924 TEST 2016356161 CURRENT 511670 12-5月 –10
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 88081764 bytes
Database Buffers 75497472 bytes
Redo Buffers 2945024 bytes
C:\Documents and Settings\Administrator>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期三 5月 12 14:32:00 2
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: TEST (未装载)
RMAN> CONNECT CATALOG RMAN/123123@CATEST;
连接到恢复目录数据库
RMAN> reset database to incarnation 282 ;
将数据库重置为原型 282
RMAN> restore controlfile;
启动 restore 于 12-5月 -10
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: sid=155 devtype=DISK
分配的通道: ORA_DISK_3
通道 ORA_DISK_3: sid=154 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 正在读取备份段 E:\RBACKUP\C-2016356161-20100512-00
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:\RBACKUP\C-2016356161-20100512-00 标记 = TAG20100512T110008
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:07
输出文件名=D:\ORADATA\TEST\CONTROL\CONTROL01.CTL
输出文件名=D:\ORADATA\TEST\CONTROL\CONTROL02.CTL
输出文件名=D:\ORADATA\TEST\CONTROL\CONTROL03.CTL
完成 restore 于 12-5月 -10
SQL> alter database mount;
数据库已更改。
RMAN> restore database until scn 511699;
启动 restore 于 12-5月 -10
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
使用通道 ORA_DISK_3
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORADATA\TEST\DATA\SYSTEM01.DBF
通道 ORA_DISK_1: 正在读取备份段 E:\RBACKUP\27LDG27N_1_1
通道 ORA_DISK_2: 正在开始恢复数据文件备份集
通道 ORA_DISK_2: 正在指定从备份集恢复的数据文件
正将数据文件00002恢复到D:\ORADATA\TEST\DATA\UNDOTBS01.DBF
正将数据文件00005恢复到D:\ORADATA\TEST\DATA\TEST.DBF
通道 ORA_DISK_2: 正在读取备份段 E:\RBACKUP\28LDG27O_1_1
通道 ORA_DISK_3: 正在开始恢复数据文件备份集
通道 ORA_DISK_3: 正在指定从备份集恢复的数据文件
正将数据文件00003恢复到D:\ORADATA\TEST\DATA\SYSAUX01.DBF
正将数据文件00004恢复到D:\ORADATA\TEST\DATA\USERS01.DBF
通道 ORA_DISK_3: 正在读取备份段 E:\RBACKUP\29LDG27T_1_1
通道 ORA_DISK_2: 已恢复备份段 1
段句柄 = E:\RBACKUP\28LDG27O_1_1 标记 = TAG20100512T105902
通道 ORA_DISK_2: 恢复完成, 用时: 00:00:36
通道 ORA_DISK_3: 已恢复备份段 1
段句柄 = E:\RBACKUP\29LDG27T_1_1 标记 = TAG20100512T105902
通道 ORA_DISK_3: 恢复完成, 用时: 00:00:37
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:\RBACKUP\27LDG27N_1_1 标记 = TAG20100512T105902
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:38
完成 restore 于 12-5月 -10
RMAN> recover database until scn 511699;
启动 recover 于 12-5月 -10
释放的通道: ORA_DISK_1
释放的通道: ORA_DISK_2
释放的通道: ORA_DISK_3
启动 implicit crosscheck backup 于 12-5月 -10
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=154 devtype=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: sid=155 devtype=DISK
分配的通道: ORA_DISK_3
通道 ORA_DISK_3: sid=156 devtype=DISK
已交叉检验的 3 对象
完成 implicit crosscheck backup 于 12-5月 -10
启动 implicit crosscheck copy 于 12-5月 -10
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
使用通道 ORA_DISK_3
完成 implicit crosscheck copy 于 12-5月 -10
搜索恢复区域中的所有文件
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\2010_05_12\
O1_MF_1_30_5YN8LF3F_.ARC
文件名: E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\2010_05_12\
O1_MF_1_31_5YN8ZPBQ_.ARC
文件名: E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\2010_05_12\
O1_MF_1_32_5YN9H4RW_.ARC
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
使用通道 ORA_DISK_3
RMAN-06900: 警告: 无法生成 V$RMAN_STATUS 或 V$RMAN_OUTPUT 行
RMAN-06901: 警告: 禁止更新 V$RMAN_STATUS 和 V$RMAN_OUTPUT 行
来自目标数据库的 ORACLE 错误:
正在开始介质的恢复
存档日志线程 1 序列 30 已作为文件 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\T
EST\ARCHIVELOG\2010_05_12\O1_MF_1_30_5YN8LF3F_.ARC 存在于磁盘上
存档日志线程 1 序列 31 已作为文件 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\T
EST\ARCHIVELOG\2010_05_12\O1_MF_1_31_5YN8ZPBQ_.ARC 存在于磁盘上
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
0_05_12\O1_MF_1_30_5YN8LF3F_.ARC 线程 =1 序列 =30
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\201
0_05_12\O1_MF_1_31_5YN8ZPBQ_.ARC 线程 =1 序列 =31
介质恢复完成, 用时: 00:00:05
完成 recover 于 12-5月 -10
RMAN> list incarnation;
在恢复目录中注册的数据库的新原型
正在启动全部恢复目录的 resync
完成全部 resync
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
281 282 TEST 2016356161 PARENT 1 05-5月 -10
281 924 TEST 2016356161 ORPHAN 511670 12-5月 -10
281 1482 TEST 2016356161 CURRENT 511703 12-5月 -10
SQL> alter database open resetlogs;
数据库已更改。
具体步骤如上红色标识。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22804047/viewspace-683107/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22804047/viewspace-683107/
本文介绍Oracle数据库恢复的具体步骤,包括如何使用基于时间点、SCN和日志序列号的方法进行数据库恢复。此外还详细展示了如何通过RMAN命令将数据库重置到特定的原型,并进行控制文件及数据文件的恢复。

571

被折叠的 条评论
为什么被折叠?



