RMAN是DBA日常工作非常常用的工具,RMAN的应用场景大概有数据备份恢复、数据迁移等。我们不常用本机RMAN恢复,因为在实际生产中RMAN备份通常是用于异机恢复,比如数据迁移,DG搭建,恢复备份库等操作。

最近做RMAN异机恢复比较多,所以就总结下步骤,先说下重要的几点:

1. 如果恢复的那台数据库是单机库的话,那么在创建这台单机库的时候可以不用dbca创建实例。如果是RAC库的话就需要dbca创建实例了。

2. 两台数据库的路径最好一致,也就是说备份库的数据文件、参数文件、控制文件和归档日志等路径要和主库一致,包括实例名也要一致。这样做的好处是在恢复的时候,不需要修改路径。实例名最好也一致。

3. 理解数据库开启顺序有助于理解RMAN异机恢复的步骤,具体步骤下面会讲。

RMAN异机恢复先从备份开始:

异机恢复所需要的文件包括:参数文件,控制文件和数据文件。

数据库全备份,在备份全库的同时,通过format参数指定配置路径和备份格式。

backup database format '/soft/database_fullbak_%d_%T_%s.bak

这里需要注意的是如果备份了SYSTEM表空间,就会自动备份参数文件和控制文件。在执行完上面的命令后,通过list backup命令可以看到备份集信息,发现在backup database的同时也备份了参数文件和控制文件。

RMAN> list backup;List of Backup Sets
===================BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
201     Full    459.59M    DISK        00:01:10     28-MAY-19      BP Key: 201   Status: AVAILABLE  Compressed: NO  Tag: TAG20190528T222243Piece Name: /soft/database_fullbak_OGGDB_20190528_205.bakList of Datafiles in backup set 201File LV Type Ckp SCN    Ckp Time  Name---- -- ---- ---------- --------- ----2       Full 1520550    28-MAY-19 /oracle/app/oradata/oggdb/sysaux01.dbf3       Full 1520550    28-MAY-19 /oracle/app/oradata/oggdb/undotbs01.dbf5       Full 1520550    28-MAY-19 /oracle/app/oradata/oggdb/odc01.dbf7       Full 1520550    28-MAY-19 /oracle/app/oradata/test02.dbfBS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
202     Full    9.80M      DISK        00:00:03     28-MAY-19      BP Key: 202   Status: AVAILABLE  Compressed: NO  Tag: TAG20190528T222243Piece Name: /soft/database_fullbak_OGGDB_20190528_206.bakControl File Included: Ckp SCN: 1520578      Ckp time: 28-MAY-19BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
203     Full    80.00K     DISK        00:00:00     28-MAY-19      BP Key: 203   Status: AVAILABLE  Compressed: NO  Tag: TAG20190528T222243Piece Name: /soft/database_fullbak_OGGDB_20190528_207.bakSPFILE Included: Modification time: 28-MAY-19SPFILE db_unique_name: OGGDBBS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
204     Full    701.17M    DISK        00:01:35     28-MAY-19      BP Key: 204   Status: AVAILABLE  Compressed: NO  Tag: TAG20190528T222243Piece Name: /soft/database_fullbak_OGGDB_20190528_204.bakList of Datafiles in backup set 204File LV Type Ckp SCN    Ckp Time  Name---- -- ---- ---------- --------- ----1       Full 1520551    28-MAY-19 /oracle/app/oradata/oggdb/system01.dbf4       Full 1520551    28-MAY-19 /oracle/app/oradata/oggdb/users01.dbf6       Full 1520551    28-MAY-19 /oracle/app/oradata/oggdb/test01.dbf

RMAN异机恢复

备份完之后就可以开始恢复了,这里建议备份库的数据文件,日志文件,参数文件和实例等和主库一致,不一致也可以,但是一致的话会方便很多。

上面说到了理解数据库开启顺序有助于理解RMAN异机恢复的步骤,其实是这样的:

数据库启动三个步骤:

1. nomount:Oracle读参数文件(里面有控制文件目录),打开实例,启动Oracle后台进程,给Oracle分配SGA。此时数据库状态为未装载。

2. mount:Oracle打开并读取控制文件(里面有数据文件和日志文件的目录),获取数据文件和重做日志文件的名称和位置。此时数据库完成装载。

3. open:Oracle打开数据文件和重做日志文件,才能对外(所有有效用户)提供数据库服务。

从上面可以看出来数据库在启动时打开文件的顺序为:参数文件>控制文件>数据文件,也就是说我们在做RMAN恢复的时候也要按照这个顺序来恢复。

第一次做异机恢复,建议将备库的数据文件(包括system、temp、undo等)、日志文件、归档文件、参数文件和控制文件都删除掉,这样做的好处是使得备库更干净。其实不删也可以,我习惯在第一次异机恢复删除......

下面开始做异机恢复:

1. 恢复参数文件,由于已经删除掉了参数文件,那么在rman中执行startup nomout会启动dummy实例,然后通过restore spfile from '备份片'; 来恢复参数文件。

[oracle@ogg ~]$ rman target / nocatalogRecovery Manager: Release 11.2.0.4.0 - Production on Tue May 28 22:51:48 2019Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.connected to target database (not started)RMAN> startup nomountstartup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/oracle/app/product/11.2.0/db_1/dbs/initoggdb.ora'starting Oracle instance without parameter file for retrieval of spfile
Oracle instance startedTotal System Global Area    1068937216 bytesFixed Size                     2260088 bytes
Variable Size                281019272 bytes
Database Buffers             780140544 bytes
Redo Buffers                   5517312 bytesRMAN> restore spfile from '/soft/database_fullbak_OGGDB_20190528_207.bak';Starting restore at 28-MAY-19
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISKchannel ORA_DISK_1: restoring spfile from AUTOBACKUP /soft/database_fullbak_OGGDB_20190528_207.bak
channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at 28-MAY-19

2. 恢复完参数文件后,建议在sqlplus中重新启动到nomount阶段,然后通过restore controlfile from '备份片'; 来恢复控制文件。

sql> shutdown immediate
sql> startup nomountRMAN> restore controlfile from '/soft/database_fullbak_OGGDB_20190528_206.bak';Starting restore at 28-MAY-19
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=18 device type=DISKchannel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/oracle/app/oradata/oggdb/control01.ctl
output file name=/oracle/app/oradata/oggdb/control02.ctl
Finished restore at 28-MAY-19

3. 恢复完控制文件后,开启数据库到mount阶段,执行catalog start with '备份路径'; 或者catalog backuppiece '备份片'; 将备份片信息添加到控制文件中。其中catalog start with会添加路径下所有合理的备份片,而catalog backuppiece只会添加单个备份片。

RMAN> alter database mount;
RMAN> catalog start with '/soft/';

4.接下来恢复数据库,restore database。

RMAN> restore database;Starting restore at 28-MAY-19
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=18 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=19 device type=DISKchannel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00002 to /oracle/app/oradata/oggdb/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00003 to /oracle/app/oradata/oggdb/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00005 to /oracle/app/oradata/oggdb/odc01.dbf
channel ORA_DISK_1: restoring datafile 00007 to /oracle/app/oradata/test02.dbf
channel ORA_DISK_1: reading from backup piece /soft/database_fullbak_OGGDB_20190528_205.bak
channel ORA_DISK_2: starting datafile backup set restore
channel ORA_DISK_2: specifying datafile(s) to restore from backup set
channel ORA_DISK_2: restoring datafile 00001 to /oracle/app/oradata/oggdb/system01.dbf
channel ORA_DISK_2: restoring datafile 00004 to /oracle/app/oradata/oggdb/users01.dbf
channel ORA_DISK_2: restoring datafile 00006 to /oracle/app/oradata/oggdb/test01.dbf
channel ORA_DISK_2: reading from backup piece /soft/database_fullbak_OGGDB_20190528_204.bak
channel ORA_DISK_1: piece handle=/soft/database_fullbak_OGGDB_20190528_205.bak tag=TAG20190528T222243
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:35
channel ORA_DISK_2: piece handle=/soft/database_fullbak_OGGDB_20190528_204.bak tag=TAG20190528T222243
channel ORA_DISK_2: restored backup piece 1
channel ORA_DISK_2: restore complete, elapsed time: 00:00:35
Finished restore at 28-MAY-19

5. 终于到了最后一步,还原数据库,recover database。

RMAN> recover database;

以上就是RMAN异机恢复的步骤了,只要多练习,多解决错误,还是可以很快掌握的。

RMAN异机恢复步骤相关推荐

  1. RMAN异机恢复步骤及故障处理

    一.測试机安装OS+Oracle Software.包含配置oracle用户.组和环境变量(略) 二.開始异机恢复 1. 复制源库最新备份集.初始化參数.password文件到測试机 [oracle@ ...

  2. linux dump命令 异机,Oracle 11.2.0.4 从单实例,使用RMAN 异机恢复到RAC

    Oracle 11.2.0.4从单实例,使用RMAN异机恢复到RAC 注意: (1)迁移的2个db版本版本要一致.包括小版本. (2)RMAN异机恢复的时候,db_name必须相同.如果说要想改成其他 ...

  3. centos7 mysql还原dmp_Linux平台下RMAN异机恢复总结

    下面总结.整理一下RMAN异机恢复这方面的知识点,这篇笔记在个人笔记里面躺了几年了,直到最近偶然被翻看到,遂整理.总结一下.如下所示,个人将整个RMAN异机恢复分为准备工作和操作步骤两大部分.当然,准 ...

  4. Oracle 单实例 迁移到 RAC 实例 -- 使用RMAN 异机恢复

    Oracle 官网有关单实例迁移到RAC的一个步骤说明: How to Convert 10g Single-Instance database to 10g RAC using Manual Con ...

  5. Oracle 运维篇+RAC集群转单实例/RMAN异机恢复/RMAN迁移/RMAN备份恢复操作概要

    说明:本文为Oracle RAC集群转单实例/RMAN异机恢复/RMAN迁移/RMAN备份恢复操作概要方便用户查阅 温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化 说 ...

  6. RMAN异机恢复遭遇ORA-01547、ORA-01152、ORA-01110错误案例

    测试环境: 操作系统  :  Red Hat Enterprise Linux ES release 4 (Nahant Update 4)   VMWARE 数据库     :  Oracle Da ...

  7. oracle rman异机恢复

      Oracle源主机 Oracle目标主机 主机平台 CentOS6.2(final) CentOs6.2(FInal) 主机名 vick rman IP地址 192.168.1.11 192.16 ...

  8. [RMAN]异机恢复实验

    一.        准备工作 1.     环境设定 源库: IP 192.168.131.100   SID:orcl 目标库: IP 192.168.131.101 安装与源库相同版本数据库软件( ...

  9. linux网站权限恢复,RMAN异机恢复——备份集权限问题

    今天早上收邮件,看到师父发的rman恢复失败的邮件. 内容如下: 数据都已经解压完毕. 在/orabak/Oracle_bak 下 但恢复时读取备份片总是报错 channel dev1: readin ...

最新文章

  1. 送你一份 Kubernetes 实用命令速查表
  2. 论文笔记 OHEM: Training Region-based Object Detectors with Online Hard Example Mining
  3. python爬虫beautifulsoup_python爬虫初步之BeautifulSoup实战
  4. 【强化学习】一文带你理清强化学习
  5. perf +火焰图使用
  6. http:(4):http请求方法
  7. Linux用户与用户组
  8. IDEA中自动导包设置及自动导包快捷键
  9. Qt Quick简单教程
  10. DataCastle员工离职预测数据竞赛个人总结
  11. python web 数据可视化框架_利用django框架,手把手教你搭建数据可视化系统(一)...
  12. 物联网iot私有云平台搭建
  13. 超人气思维导图XMind新年新版本,这6个新功能你一定要看
  14. hdu 5238 Calculator
  15. EAP通讯基础之SECS/GEM/GEM300mm
  16. BIM模型文件下载——精装修样板间模型
  17. v12.2.8 released版本介绍--2019_7
  18. 二层华三交换机连接三层思科交换机,trunk,vlan划分
  19. 今天去龙德和万意转了一圈
  20. 如何管理才气型/实干型的设计师

热门文章

  1. Android桌面小部件AppWidget:音乐播放器桌面控制部件Widget(3)
  2. python加粗_python 加粗
  3. 运营笔记:找代运营需要警惕这些坑!曝光代运营被坑经历!
  4. Python副业赚钱:提高你工作效率的同时,也能提高你的收入!
  5. 动手撸一个SQL规范检查工具
  6. 好的产品运营需要用好哪些工具?
  7. 时间格式化(XXXX年-XX月-XX日 XX:XX:XX)
  8. Java单例模式--------懒汉式和饿汉式
  9. python队列_Python队列
  10. 细节决定成败!我用2个月的时间破茧成蝶