一、rman恢复的基础概念
使用rman 进行数据库的恢复只能使用之前的rman 的rman 进行备份,可以实现数据库的完全恢复,也可以实现数据库的不完全恢复。rman 恢复分为两个步骤 ,首先使用restore 命令进行数据库的修复(还原),然后使用recover(恢复)进行整个数据库的恢复、
1restore 修复数据库’
可以修复整个数据库、单独的表空间、单独的数据文件、控制文件、归档重做日志文件以及服务器初始化参数文件。rman 中的修复不需要手动操作,而是自动从备份集抽取数据经常数据库的修复。
2recover 恢复数据库
rman 可以利用增量备份或归档重做日志来恢复修复后的数据文件,rman 优先选择增量备份执行恢复,因为利用增量备份时仅仅需要进行数据块的直接复制。具有更高效的恢复操作。
二 restore 和recover 命令
1 restore 命令语法
restore(restore_object [restore_spc_option])[ restore_optin}
a restore_object
restore database;
restore controlfile from autobackup;
restore datafile 4;
restore datafile '/u01/app/oracle/oradata/ENMOEDU/USERS1.DBF';
restore tablespace users;
2recover 命令语法
recover database delete archivelog;
recover controlfile;
recover datafile 4;
recover datafile
recover tablespace users;
三 利用rman 进行完全恢复;
如果数据库运行在归档模式,并且数据库控制文件可用,则可以利用备份对整个数据库,单独的数据文件 或单独的表空间进行完全恢复操作
1整个数据库的完全恢复
如果要对整个数据库的完全恢复,数据库必须处于加载状态。
进行数据库完全恢复的步骤
(1).启动rman 并连接到目标数据库,如果使用恢复目录,还需要连接恢复目录数据库;
(2) 将数据库加载到 mount ;
(3 )
restore database;
recover database delete archivelog;
delete archivelog 表示恢复完成后自动删除在恢复过程中使用的归档从左日志,但不会删除restore 之前的归档重做日志。
我们可以通过run 块修复
run {
allocate channel ch1 type disk;
allocate channel ch2 type disk;
restore datafile;
recover database;}
(4) 恢复完成后 打开数据库
2 、数据文件的完全恢复
(1)首先要将损坏的数据文件 脱机
alter database datafile 5 offline;
(2) 将损坏或者丢失的数据文件进行修复和恢复操作
restore datafile 5
recover datafile 5
(3) 然后将数据文件联机;
alter database datafile 5 online
3 表空间的完全恢复
(1)首先将损坏的表空间脱机
alter tablespace users offline immediate;
(2) 对表空间进行修复会恢复操作;
restore tablespace users;
recover tablespace users;
(3) 将修复的表空间进行联机;
alter tablespace user online;
四 利用RMAN 的不完全恢复
如果需要数据库恢复到故障之前的某个状态,可以对数据库进行不完全恢复,在恢复不完全的时候要注意一下几点
必须对整个数据库进行一次修复,而不仅仅是修复损坏的或丢失的数据文件,
基于时间,scn 或 日志序列号设置恢复操作何时终止。
使用 rman 进行数据库不完全恢复的步骤为:
1在基于时间、scn 或者 日志序列号三种方式中选择一种作为数据库恢复的 终止标记 。
可以从告警日志中查询特定时间的SCN ,也可以通过查询动态性能视图 V$log _history 获得scn 与序列号之间的关系 、
基于时间的不完全恢复
atler session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
rman > run{
set until time '2015-5-15-23 10:00:00';
restore database
recover database
}
基于scn 不完全恢复;run {
set until scn 341242343
restore database
recover database
}
基于日志序列的不完全恢复
rman > run
{ set until sequence 431;
restore database
recover database
}
完成恢复操作以后 以resetlog 方式打开数据库
alter database open resetlogs;
然后再进行一次完全备份;
backup database
五 控制文件的恢复
1.控制文件恢复的注意事项
利用备份对控制文件进行了修复,都要以resetlogs 方式打开数据库。因为在备份的控制文件中没有当前联机重做日志的信息。
如果联机重做日志文件也全部损坏,则只能对数据库进行不完全恢复,因为rman 不支持对联机重做日志的备份。
如果没有建立恢复目录,则控制文件的修复只能使用自动备份额控制文件了
2 控制文件恢复的步骤
a 将目标数据库 启动到 nomount 状态下;
b 启动rman 但是不连接目标数据库
c 设置dbid
set dbid 798799
d 连接目标数据库
connect target sys/orcle@ORA11GR2
由于当前数据库没有假造的过程,还不能使用 rman 资料档案库 ,所以我们需要手动为他们分配通道 restore
run{
set allocate channel ch1 device type disk ;
restore controlfile from autobackup;
}
c 加载数据库 进行数据库的恢复
alter database mount ;
restore database
recover database
d 完成以后 以resetlogs 方式打开数据库;
alter database open resetlogs;
六 将数据文件恢复到新的位置
1 set newname
set newname for database 1 to ' 路径’;
set newname for tablespace users to '路径
tablesapce 将制定的表空间中的所有数据文件复制到新的位置
3恢复数据文件到新位置的步骤
首先将表空间 离线
altertablespace user offline immediate;
set newname for datafile '/u01/app/oracle/oradata/user1.dbf' to /;u01/usr01.dbf';
对表空间进行操作
restore tablesapce users;
切换数据文件新的位置
switch datafile all;
对表空间进行恢复
recover tablespace users;
联机
alter tablespace users online
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30176559/viewspace-1670482/
,如需转载,请注明出处,否则将追究法律责任。