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 星期一 6月 5 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;