文档章节

RMAN学习过程之九,实战rman恢复之异机恢复

JAVA枪手
 JAVA枪手
发布于 2017/09/06 13:16
字数 1650
阅读 9
收藏 0

初始设定:

假设两台服务器a和b(虽然我这儿只有一台,您就把它假装是两台吧),服务器A中运行的库sid为mydb,现在将它复制一份到服务器b

准备工作:

1 、记录下源数据库的DBID,DBID的获取方式上节讲过的。

2 、将源数据库的初始化参数文件,拷贝到目标服务器上。

3 、确认备份(含控制文件,数据文件,归档文件)有效,并已拷贝至目标服务器(没归档应该也可以,只要能确认数据文件和控制文件是一致备份。)

步骤:

1. 首先创建源库的全库备份,(由于只有一台机器,所以备份完之后,通过dbca删除源库,正式情况下务必要等备份库完全建立并正常运行之后才能决定是否要删除源库啊)。 前面讲了太多的备份,这里就不列详细的操作步骤了。本例中我创建了一个新库,并在库中建了一个tmp表,插入了4条记录。

2. 在目标服务器配置oracle_sid。

C:\Documents and Settings\Administrator>oradim -new -sid mydb

添加一个名为mydb的sid,由于是异机恢复,sid要与源库相同。

3. 连接到该sid

C:\Documents and Settings\Administrator> set oracle_sid=mydb

C:\Documents and Settings\Administrator>rman target /

恢复管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

已连接到目标数据库 (未启动)

RMAN>  set dbid 2543439098;

正在执行命令: SET DBID

RMAN> startup nomount;

启动失败: ORA-01078: failure in processing system parameters

LRM-00109: N^7(4r?*2NJ}ND<~ ¨F:\ORAHOME1\DATABASE\INITMYDB.ORA¨

正在尝试在没有参数文件的情况下启动 Oracle 例程...

Oracle  例程已启动

系统全局区域总计      97589952 字节

Fixed Size                      453312  字节

Variable Size                 46137344  字节

Database Buffers              50331648  字节

Redo Buffers                    667648  字节

4. 先恢复初始化参数文件

RMAN>  restore spfile to pfile ¨F:\ORAHOME1\DATABASE\INITMYDB.ORA¨ from ¨d:\backup\mydb\C-2543439098-20070720-02¨;

启动 restore 于 20-7月 -07

正在使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=9 devtype=DISK

通道 ORA_DISK_1: 已找到的自动备份: d:\backup\mydb\C-2543439098-20070720-02

通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成

完成 restore 于 20-7月 -07

然后使用刚刚创建的参数文件重新启动到未加载状态(注意,你最好打开该参数文件,看一下路径是否都确实存在,或者是否正确。)

RMAN>  startup force nomount pfile=¨F:\ORAHOME1\DATABASE\INITMYDB.ORA¨;

Oracle  例程已启动

系统全局区域总计     135338868 字节

Fixed Size                      453492  字节

Variable Size                109051904  字节

Database Buffers              25165824  字节

Redo Buffers                    667648  字节

5. 恢复控制文件并进入到加载状态

RMAN>  restore controlfile from ¨f:\backup\mydb\C-2543439098-20070720-01¨;

启动 restore 于 20-7月 -07

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在恢复控制文件

通道 ORA_DISK_1: 恢复完成

正在复制控制文件

输出文件名=F:\ORAHOME1\ORADATA\MYDB\CONTROL01.CTL

输出文件名=F:\ORAHOME1\ORADATA\MYDB\CONTROL02.CTL

输出文件名=F:\ORAHOME1\ORADATA\MYDB\CONTROL03.CTL

完成 restore 于 20-7月 -07

RMAN>  alter database mount;

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

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

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

RMAN-03002: failure of alter db command at 07/20/2007 17:44:22

ORA-01990:  打开口令文件¨F:\OraHome1\DATABASE\PWDmydb.ORA¨时出错

ORA-27041:  无法打开文件

OSD-04002:  无法打开文件

O/S-Error: (OS 2)  系统找不到指定的文件。

 

奇怪,我这里报错了,但再次执行加载,发现提供已经是加载状态了,报错不奇怪,奇怪的是报错了还能进加载,呵呵,不就是缺少密码文件嘛,不管它,一会儿恢复完了再重建,继续进行。

 

RMAN> alter database mount;

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

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

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

RMAN-03002: failure of alter db command at 07/20/2007 17:44:51

ORA-01100:  数据库已安装

 

6. 修复数据库,我这里是源路径修复,如果你要恢复的文件地址与源库地址不同的话,需要通过SET NEWNAME FOR DATAFILE命令来为数据文件重新设定路径。

 

RMAN>  restore database;

启动 restore 于 20-7月 -07

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=11 devtype=DISK

通道 ORA_DISK_1: 正在开始恢复数据文件备份集

通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件

正将数据文件00001恢复到F:\ORAHOME1\ORADATA\MYDB\SYSTEM01.DBF

正将数据文件00002恢复到F:\ORAHOME1\ORADATA\MYDB\UNDOTBS01.DBF

正将数据文件00003恢复到F:\ORAHOME1\ORADATA\MYDB\DRSYS01.DBF

正将数据文件00004恢复到F:\ORAHOME1\ORADATA\MYDB\INDX01.DBF

正将数据文件00005恢复到F:\ORAHOME1\ORADATA\MYDB\TOOLS01.DBF

正将数据文件00006恢复到F:\ORAHOME1\ORADATA\MYDB\USERS01.DBF

正将数据文件00007恢复到F:\ORAHOME1\ORADATA\MYDB\XDB01.DBF

通道 ORA_DISK_1: 已恢复备份段 1

段 handle=D:\BACKUP\MYDB\03INAL1I_1_1 tag=TAG20070720T162417 params=NULL

通道 ORA_DISK_1: 恢复完成

完成 restore 于 20-7月 -07

 

 

7. 恢复数据库

RMAN>  recover database;

启动 recover 于 20-7月 -07

使用通道 ORA_DISK_1

正在开始介质的恢复

通道 ORA_DISK_1: 正在启动到默认目标的存档日志恢复

通道 ORA_DISK_1: 正在恢复存档日志

存档日志线程 =1 序列=10

通道 ORA_DISK_1: 已恢复备份段 1

段 handle=D:\BACKUP\MYDB\04INAL2V_1_1 tag=TAG20070720T162503 params=NULL

通道 ORA_DISK_1: 恢复完成

存档日志文件名 =F:\ORAHOME1\ORADATA\MYDB\ARCHIVE\1_10.DBF 线程 =1 序列 =10

无法找到存档日志

存档日志线程 =1 序列=11

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

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

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

RMAN-03002: failure of recover command at 07/20/2007 17:50:36

RMAN-06054: media recovery requesting unknown log: thread 1 scn 143893

 

 

报错了,但是没关系,并非严重错误,只是提醒你恢复到一个未知的scn号。如果要避免这个错误,可以在alter database mount之后,通过set until scn或者set until time命令设置恢复到的scn号或时间。

8. 然后通过open resetlogs方式打开数据库

RMAN>  alter database open resetlogs;

数据库已打开

 

呵呵,成功打开,这是个好消息,我们需要连接到数据库来验证一下。

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on  星期五 7月 20 17:55:24 2007

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn system/manager

已连接。

SQL> select *from tmp;

COL

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

11111

22222

33333

44444

SQL>

 

 哈哈,成功啦。剩下的工作就简单了,你即可以通过dbca配置数据库,也可以通过orapwd命令重建密码文件等等

 

本文转载自:http://www.5ienet.com/note/html/rman/rman-restore-to-other-machine.shtml

共有 人打赏支持
JAVA枪手
粉丝 7
博文 95
码字总数 15221
作品 0
东城
高级程序员
catalog恢复目录介绍和配置

2.1、nocatalog介绍 nocatalog方式 就是用control file作为catalog,每一次备份都要往控制文件里面写好多备份信息,控制文件里面会有越来越多的备份信息。因此,当使用rman nocatalog方式备份...

PengChonggui
06/28
0
0
rman report list crosscheck delete -rman常用命令

一、REPORT 1、报告目标数据库的物理结构 RMAN>REPORT SCHEMA 2、报告需要备份的数据文件 在执行备份之前,常常需要取得需要备份的数据文件信息,通过执行REPORT NEED BACKUP命令,可以列出需...

zhailibao
2014/02/28
0
0
Oracle9i rman备份恢复总结

Recovery Manager(RMAN)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的Oracle 工.RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据...

♂.Cent
2010/12/08
0
0
RMAN简明教程之二——RMAN的启动与运行

一、运行要求 1、进程与内存要求 更多的进程的需要 大池的分配 2、基本环境变量需求 ORACLESID, ORACLEHOME, PATH, NLSLANG, 如果用到了基于时间的备份与恢复,需要另外设置NLSDATE_FORMAT ...

晨曦之光
2012/03/09
0
0
RMAN简明教程之五——RMAN还原和恢复

一、常规还原与恢复 RMAN 的整个恢复过程可以分为还原(restore)与恢复(recover) ,他们在含义上是有很大差别的,一个是指物理意义的文件的还原与拷贝,一个是指数据库一致性的恢复,所以...

晨曦之光
2012/03/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

自己手写一个 SpringMVC 框架

前端框架很多,但没有一个框架称霸,后端框架现在Spring已经完成大一统.所以学习Spring是Java程序员的必修课. Spring 框架对于 Java 后端程序员来说再熟悉不过了,以前只知道它用的反射实现的,...

别打我会飞
9分钟前
0
0
01-《Apache Tomcat 9》之文件索引

《Apache Tomcat 9》是《看Apache官方文档学英语》的第一个专栏!让我们一起在看文档的过程中学英语,在学英语的过程中夯实技术! Documentation Index - 文件索引 Introduction - 介绍 This...

飞鱼说编程
10分钟前
0
0
最近

20181016最近在熟悉业务 关于money的 要涉及到流程中转同步 这个点感觉 业务大于技术 关于业务性的内容 还是要把自己及时清零的好 我们需要好好的梳理下业务内容 业务作为导向 技术提供解决方...

JAVA码猿
20分钟前
0
0
JDK1.8HashMap源码分析

HashMap和Hashtable的主要区别是: 1. Hashtable是线程安全,而HashMap则非线程安全,Hashtable的实现方法里面大部分都添加了synchronized关键字来确保线程同步,因此相对而言HashMap性能会高...

小小明童鞋
30分钟前
15
0
以Redis为例,详谈分布式系统缓存的细枝末节

前言: 在分布式Web程序设计中,解决高并发以及内部解耦的关键技术离不开缓存和队列,而缓存角色类似计算机硬件中CPU的各级缓存。如今的业务规模稍大的互联网项目,即使在最初beta版的开发上...

Java干货分享
33分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部