ITPub博客

首页 > 数据库 > Oracle > rman 恢复数据总结

rman 恢复数据总结

原创 Oracle 作者:七_仔 时间:2015-05-25 11:09:23 0 删除 编辑
一、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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-03-25

  • 博文量
    47
  • 访问量
    235638