RMAN完整备份其余服务器恢复

在研究RMAN的时候忽然想到,使用RMAN作的数据库全备的备份集可不能够拿到其余的服务器作一个恢复操做?说干就干,我在帖子上看到最好是相同版本相同安装目录的一个数据库,而后仅安装Oracle软件,而后使用rman备份恢复。那么一个大体流程出来了:数据库

1.使用RMAN备份整个源数据库;bash

2.使用VirtualBox的复制虚拟机功能复制一个相同的副本,配置好网络;服务器

3.将副本虚拟机内的Oracle实例删除;网络

4.完成恢复前的准备工做oracle

5.使用当前只有Oracle软件的副本虚机加上源数据库的备份完成恢复工做。工具


第一步: 备份ui

在源数据库上登陆RMAN使用全备命令作一个全备操做spa

RMAN target /    --登陆rman工具
backup database format '/home/oracle/prod_%s.bak';    --数据库全备
list backupset;   --查看所有备份集复制代码


能够看到备份5包括的是数据文件,备份6包括的是控制文件和参数文件。3d


第二步:复制虚拟机rest

为了保证一个相同的数据库软件版本相同的安装路径,同时也是为了偷懒,在这里我就直接作了一个复制副本的操做,正常应该搭建一个相同的服务器,安装同版本的数据库,但不建数据库的操做。

复制虚拟机后重新配置好网络ip。

若是你要是本身搭建环境的话可使用相同的数据版本安装,最好路径相同,在选择安装Oracle软件仍是同时建库时能够选择仅安装Oracle软件。

第三步:删除副本服务器内的Oracle实例,这里我选择简单点的操做,使用图形界面使用DBCA操做删除数据库实例,而后就会自动删除掉数据文件等。固然也能够手动删除这些文件,必定要先关闭实例才好。


第四步:恢复前的准备工做

1.在我操做的过程当中有两个报错产生,第一个是和审计文件有关,另外一个是在恢复控制文件时和建立有关,他们都有一个共同的错误,没有办法本身建立文件夹!!!!


如图:这两个文件夹在作第三步的时候,删除Oracle的实例时已经被删掉了,在恢复的过程当中没有办法本身建立这个文件夹,因此须要本身建立好,在建立文件时要注意属主和属组的问题。

2.另外一个准备工做很重要,可是由于我是作的虚拟机直接拷贝的操做,因此理论上这步不须要作,可是若是你要是本身搭建必定要作这个操做。那就是.bash_profile文件的建立。这个是必需要作的操做,若是是在Windows下,必定要指定ORACLE_SID和建立服务。

在这里咱们就能够直接将源数据库的.bash_profile文件拷贝过来。

这样咱们的准备工做就作好了。


第五步:RMAN恢复

如今咱们的环境已经配置好了,Oracle数据库的启动模式是首先调取参数文件,参数文件内记录着数据控制文件的位置和一系列内存分配状况,参数文件分配好内存后指定控制文件位置,在nomount状态下打开控制文件,控制文件内记录着数据库的一系列的参数和数据文件的位置,在mount状态下打开数据文件,完成数据库实例打开的操做。

一样这也是个人数据库实例恢复流程,参数文件——控制文件——数据文件

1.首先打开rman环境,在这里咱们首先要指定好源数据库的DBID

rman target /

Recovery Manager: Release 11.2.0.1.0 - Production on 星期四 12月 13 14:47:32 2018
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
connected to target database: PROD (DBID=335947904)
这段是rman启动时的显示状况,是在源数据启动时拷贝的,咱们的副本数据库不会存在这DBID的。

RMAN> set DBID=335947904
executing command: SET DBID

复制代码

2.恢复参数文件

正常启动到nomount环境下须要调取参数文件,可是目前咱们的副本环境下不存在参数文件,并且首先要恢复的就是参数文件,很矛盾,因此在这里可打开rman自带的一个nomount小环境下去恢复参数文件。

RMAN> startup nomount;   --rman自带的nomount小环境

RMAN> restore spfile from '/home/oracle/prod_6.bak';  复制代码

在dbs/目录下查看,此时spfileprod.ora文件已经恢复成功

RMAN> startup force nomount  --使用恢复的spfile启动复制代码

3.恢复控制文件

在nomount下恢复实例的控制文件

RMAN> restore controlfile from '/home/oracle/prod_6.bak';
RMAN> alter database mount;   --加载恢复的控制文件
RMAN> list backup;   --能够看到RMAN的元数据了复制代码

4.还原全部的数据文件

在mount环境下能够看到rman备份的元数据,能够直接使用restore恢复数据库。

RMAN> restore database;复制代码

5.运用日志恢复

运用recover日志尽量的多恢复数据。

RMAN> recover database;   尝试恢复,使用尽可能多的归档恢复。复制代码

7.打开数据库

在数据库备份时因为当前日志没有切换,因此当前日志不在备份中,当前日志的缺失,又使用备份的控制文件,因此是不彻底恢复的形式打开数据库。不然没法打开数据库。

RMAN> alter database open resetlogs;  复制代码


总结:这是一个不彻底的恢复操做,缘由是缺乏当前日志文件,全部在下次备份时,最好作一第二天志切换,尽最大可能的恢复数据。整体来讲RMAN是一个很好用的工具。

相关文章
相关标签/搜索