RAMN恢复数据库的过程
1 修复数据库
1) 指物理上文件的复制。rman将启动一个服务器进程,使用磁盘中的备份集或镜像副本,修复数据文件,控制文件,以及归档重做日志文件。
2)执行修复数据库时,需要执行restore命令
2 恢复数据库
1)是在数据文件的介质恢复,也就是为修复后的数据文件应用联机或者归档重做日志,从而将修复的数据库文件更新到当前时刻或指定时刻的状态
2)执行恢复数据库时,需要使用recover命令

数据库非归档恢复
1数据库是在非归档模式下运行,且最近的完全数据库备份有效,就可以在故障发生时进行数据库的非归档恢复
2只需要执行restore命令,将数据库文件修复到正确位置,然后打开数据库就可以。
不需要执行recover命令,因为这会导致恢复所有的数据库文件,即使只有一个数据文件不可用。

数据库非归档恢复案例(连接目标数据库需要在start mount下)
1将数据库修改为非归档模式

shutdown immediate;
startup mount;
alter database noarchivelog;
alter database open;
archive log list;
在关闭数据,启动数据库,但不打开
shutdown immediate;
startup mount;

这里写图片描述
这里写图片描述
2连接目标数据库

rman target sys/123 catalog rmain_user/123;

这里写图片描述
3备份整个数据库

rman>backup database;

这里写图片描述
4模拟故障,关闭数据库后,删除某个数据文件

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

这里写图片描述

5 startup mount

SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area 3373858816 bytes
Fixed Size                  2180424 bytes
Variable Size            2231372472 bytes
Database Buffers         1124073472 bytes
Redo Buffers               16232448 bytes
数据库装载完毕。

6 alter database datafile ‘xx\xx\XXX.dbf’ offline drop;

SQL> alter database datafile 'D:\ORACLE\ORADATA\ORCL\USERS01.DBF' offline drop;

数据库已更改。

7rman>restore database;
这里写图片描述
8 alter database open;
这里写图片描述
9.恢复介质

recover datafile 'D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF';
recover datafile 'D:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF';
recover datafile 'D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF';
recover datafile 'D:\ORACLE\ORADATA\ORCL\USERS01.DBF';
recover datafile 'D:\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF';
recover datafile 'F:\TEST\MYBIGSPACE .DBF';
recover datafile 'F:\TEST\MYSPACE.DBF';
recover datafile 'F:\TEST\MYSPACE\RECOVERY_TABLE.DBF';
recover datafile 'F:\TEST\BLOCKSPACE.DBF';
 alter database open;

这里写图片描述

数据库归档恢复案例
1数据库要在归档模式下

SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            F:\test\myguiDan
最早的联机日志序列     333
下一个存档日志序列   336
当前日志序列           336

2连接目标数据库

C:\Users>rman target  sys/123   nocatalog;

恢复管理器: Release 11.2.0.1.0 - Production on 星期一 65 23:10:30 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

已连接到目标数据库: ORCL (DBID=1469525683, 未打开)
使用目标数据库控制文件替代恢复目录

3备份整个数据库

run{
#注释 this is complete database backup
#--打开磁盘通道 ,通道名称ch1
allocate channel ch1 type disk;
#--完全备份
backup full
tag full_db_backup format "F:\test\back\db_t%t_s%s_p%p"(database);
release channel ch1;
}

这里写图片描述
4模拟介质故障。
4.1关闭数据库后,并且删除或移动表空间users对应的数据文件user01.dbf

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

这里写图片描述

4.2启动数据库,但不打开(因为数据文件丢失,打开数据库会包找不到对应的数据文件)

SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area 3373858816 bytes
Fixed Size                  2180424 bytes
Variable Size            2231372472 bytes
Database Buffers         1124073472 bytes
Redo Buffers               16232448 bytes
数据库装载完毕。
5重新连接rman,并执行恢复命令

run{
allocate channel ch1 type disk;
restore database;
recover database;
release channel ch1;
}
“`
这里写图片描述

6打开数据库
alter database open;
这里写图片描述

posted on 2017-06-05 22:05  2637282556  阅读(231)  评论(0编辑  收藏  举报