基于rman的恢复操作有哪些呢

发布时间:2021-11-06 17:10:29 作者:柒染
来源:亿速云 阅读:116

今天就跟大家聊聊有关基于rman的恢复操作有哪些呢,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

针对RMAN进行的备份,下面从几个方面利用RMAN进行一些恢复操作。

恢复

1.       对数据库进行完全介质恢复

 1.1进入rman命令行

rman  target /

1.2开始备份

backup  database format=’ /oracle/u01/app/oracle/backup/%U’;

1.3一致性停止数据库

shutdown  immediate;

1.4 删除所有的数据文件

rm  –rf /oracle/u01/app/oracle/oradata/orcl/*.dbf

开始恢复:

1.5 利用rman启动数据库到mount状态

RMAN>  startup mount;

1.6 数据库修复

RMAN>  restore database;

1.7 数据库恢复

RMAN>  recover database;

           可以添加其他参数:

           recover database delete archivelog;用于删除在恢复过程中产生的归档日志文件

           recover database skip tablespace temp;指定再恢复过程中跳过临时表空间,默认是不恢       复临时表空间的。

           recover database delete archivelog maxsize 100m;用于指定再恢复过程中限制自动产生       的归档大小为100m,如果超过这个大小就会被删除在循环继续使用来恢复。

1.8 启动数据库到open状态                  

RMAN>alter  database open;

 

2.       表空间的恢复

在有备份的基础上我们先模拟破坏表空间,然后将其恢复

2.1 破坏users表空间

echo  “” > /oracle/u01/app/oracle/oradata/orcl/users01.dbf

         2.2 切换日志

                   这时我们查询表空间users中的表不一定报错,因为在内存中还有记录,查询到的

                   是内存中的信息,需要我们手动切换日志                           

SQL>alter  system switch logfile;

           多执行几次,保证切换完成

2.3 检查表空间是否可用

SQL>select  * from test


ERROR at line 1:

ORA-00376:file 4 cannot be read at this  time         

ORA-01110: data file 4:  '/oracle/u01/app/oracle/oradata/orcl/users01.dbf'

                   这时发现users表空间已经不能使用

 

         开始恢复

         2.4 将表空间offline

RMAN>  SQL ‘alter tablespace users offline’;

         2.5修复

RMAN>restore  tablespace users;

         2.6 恢复

RMAN>recover  tablespace users;

         2.7 将表空间online

RMAN>SQL  ‘alter tablespace users online’;

         2.8 检验是否恢复

SQL>select  * from test;

                   可以查询到数据,表明表空间已经恢复

 

3.       数据文件的恢复

         3.1 将数据文件offline

RMAN>  SQL ‘alter database datafile 4 offline’;

         3.2修复

RMAN>restore  datafile 4;

         3.3恢复

RMAN>recover  datafile 4;

         3.4将数据文件online

RMAN>SQL  ‘alter database datafile 4 online’;

RMAN> SQL ‘alter database datafile 4  offline’;

RMAN>run {

RMAN>SQL ‘alter database datafile 4 online’;

4.1进入rman命令行

SQL>rman  target /

   4.2备份归档

RMAN>backup  archivelog all delete input;

4.3 检查备份

RMAN>List  backup of archivelog all;

 

BS Key   Size       Device Type Elapsed  Time Completion Time

------- ---------- ----------- ------------  ---------------

91       59.54M     DISK        00:00:02     28-FEB-13     

        BP Key:  95   Status: AVAILABLE  Compressed: NO  Tag: TAG20130228T162106

        Piece  Name: /oracle/u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_02_28/o1_mf_annnn_TAG20130228T162106_8ly4vmt4_.bkp

 

  List of  Archived Logs in backup set 91

  Thrd Seq     Low SCN    Low Time   Next SCN   Next Time

  ---- -------  ---------- --------- ---------- ---------

  1    311      5582914    27-FEB-13  5583269    27-FEB-13

  1    312      5583269    27-FEB-13  5601615    28-FEB-13

  1    313      5601615    28-FEB-13  5623126    28-FEB-13

  1    314      5623126    28-FEB-13  5625133    28-FEB-13

  1    315      5625133    28-FEB-13  5625135    28-FEB-13

  1    316      5625135    28-FEB-13  5625138    28-FEB-13

  1    317      5625138    28-FEB-13  5628235    28-FEB-13

   1    318     5628235    28-FEB-13 5628281    28-FEB-13

            通过查看,备份了从311-318archivelog,并保存在备份集中,删除了                         /oracle/u01/app/oracle/路径下的归档日志文件.

   4.4 恢复归档

RMAN>restore  archivelog sequence between 311 and 315;

            查看log_archive_dest_1路径,发现已经恢复出311-315的归档文件

   4.4指定归档恢复路径

            通过在run脚本中来制定恢复的路径

RMAN>run  {

           set  archivelog destination to ‘’;

           restore  archivelog sequence between 311 and 315;

           set  archivelog destination to ‘’;

           restore  archivelog sequence between 316 and 317;

          }

            可以指定多个路径。

 

5.       控制文件的恢复

5.1 开启控制文件自动备份

RMAN>CONFIGURE  CONTROLFILE AUTOBACKUP ON;

5.2备份控制文件

RMAN>backup  current controlfile;

5.3 设置DBID

        没有了控制文件,数据库只能启动到nomount状态,启动之前需要设置DBID

RMAN>set  dbid=1324770912

        怎样获取DBID呢:

a)      创建自动备份时未改名的备份文件包含;

b)      rman连接时

c)      Rman备份日志

d)      数据库v$database视图

5.4 恢复控制文件

RMAN>  restore controlfile from autobackup;

        如果没有指定路径会恢复到参数文件control_files的路径下

        指定路径:

RMAN>  restore controlfile to ‘/home/oracle/control01.ctl’ from autobackup;

 

5.5 找不到恢复路径的解决办法

        在自动备份控制文件前改过备份路径,比如改到/oracle/u01/app/oracle/backup 

RMAN>CONFIGURE  CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK

       TO '/oracle/u01/app/oracle/backup/%F';

        备份表空间

RMAN>  backup tablespace users;

        因为开启了自动备份控制文件,备份表空间也会备份控制文件,查询

RMAN>list  backup of controlfile;

        这时提示有控制文件的备份。

        这时记录dbid=1324770912

       

SQL>shutdown  immediate;

SQL>startup  nomount

SQL>rman  target /

RMAN>set  dbid=1324770912

RMAN>restore  controlfile from autobackup;

 

提示报错:

Starting restore at 28-FEB-13

using target database control file instead of  recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=540 devtype=DISK

 

recovery area destination:  /oracle/u01/app/oracle/flash_recovery_area

database name (or database unique name) used for  search: ORCL

channel ORA_DISK_1: no autobackups found in the  recovery area

channel ORA_DISK_1: looking for autobackup on day:  20130228

channel ORA_DISK_1: looking for autobackup on day:  20130227

channel ORA_DISK_1: looking for autobackup on day:  20130226

channel ORA_DISK_1: looking for autobackup on day:  20130225

channel ORA_DISK_1: looking for autobackup on day:  20130224

channel ORA_DISK_1: looking for autobackup on day:  20130223

channel ORA_DISK_1: looking for autobackup on day:  20130222

channel ORA_DISK_1: no autobackup in 7 days found

RMAN-00571:  ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK  FOLLOWS ===============

RMAN-00571:  ===========================================================

RMAN-03002: failure of restore command at 02/28/2013  17:12:17

RMAN-06172: no autobackup found or  specified handle is not a valid copy or piece

                 因为:在默认路径下找不到自动备份的控制文件进一步产rman参数 

RMAN>show  all;

                 发现自动备份控制文件的路径并不是/oracle/u01/app/oracle/backup,而是默认路径

                 针对windows下默认路径为:$ORACLE_HOME/database

                 linux系统下默认路径为:$ORACLE_HOME/dbs             

                 那么为什么在我们之前设置了rman参数,这里又会改变呢,因为我们利用的              configure设置的参数,这个改变是保存在控制文件中的,所以会找不到路径。

                针对这种情况有两种方法:

a)      将备份的文件拷贝到所需要默认的路径下:$ORACLE_HOME/dbs

b)      重新设置自动备份控制文件路径

set  CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO  '/oracle/u01/app/oracle/backup/%F';

                                    这里为什么采用set来设置呢,因为现在数据库是nomount状态,不能使用                  configure来设置。

5.6 如果数据库是非归档数据库

         修改自动备份控制文件路径时也不要使用configure来执行,因为此命令是永久生效,默认是保存到控制文件的,这样导致在恢复时找不到控制文件,使用set命令来设置修改自动备份控制文件路径。

 

从备份集中恢复

5.7 通过备份集中的备份恢复控制文件

        需要设置dbid

        启动数据库到nomount状态

        恢复控制文件        

restore  controlfile from

 '/oracle/u01/app/oracle/backup/c-1324770912-20130301-08';

        这样即使更改过默认参数,只要指定备份集正确就可以恢复。

 

注意:

        再恢复控制文件后启动数据库步骤:

a)  启动数据库到mount

SQL>alter database mount;

b)  恢复数据库

SQL>recover  database using backup controlfile;

 

auto

Additional information: 3

在执行auto后,会自动应用归档,但是当前日志文件还没有归档,所以需要指定redo.log来应用剩下的日志从而恢复数据库

SQL>recover  database using backup controlfile;

 

/oracle/u01/app/oracle/oradata/orcl/redo01.log

Media recovery complete.

 

                            提示:Media recovery complete.恢复完成

c)  重做日志文件                   

SQL>alter database open resetlogs;


参数文件在备份的时候即使不手工备份也会自动完成备份,一般不手动备份。

恢复类似于控制文件的恢复.

6.1  利用自动备份恢复

a)      设置dbid

b)      启动到nomount状态

c)      恢复

RMAN>restore spfile from autobackup;

6.2  指定恢复文件

           也可以通过手工指定的备份的控制文件进行恢复

RMAN>restore spfile from ‘/oracle/u01/app/oracle/backup/ c-1324770912-20130301-0a’;

6.3  恢复到制定目标地址

RMAN>restore spfile to ‘/home/oracle/spfiletmp.ora’ from ‘/oracle/u01/app/oracle/backup/ c-1324770912-20130301-0a’;

 

看完上述内容,你们对基于rman的恢复操作有哪些呢有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. Oracle RMAN 自动恢复
  2. 手机误删照片怎样恢复呢?如何来恢复呢

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

rman 各种 基于

上一篇:vim使用技巧有哪些

下一篇:如何去掌握Linux系统

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》