RMAN异机恢复-路径一致情况

1、拷贝RMAN备份

RMAN最新的备份拷贝的恢复服务器指定目录下(一定要是本机磁盘,不要使用共享盘中的文件),与数据库服务器备份文件路径一致,拷贝到F:\backup\rman目录下。

 

2、数据库安装

启动数据库安装程序,安装目录与数据库服务器一致,为:D:\app\Administrator\product\11.2.0\dbhome_1

clip_image002

clip_image004

clip_image006

clip_image008

clip_image010

clip_image012

clip_image014

clip_image016

clip_image018

clip_image020

clip_image022

 

3、配置监听

启动Net Manager,创建监听

clip_image023

clip_image025

clip_image027

clip_image029

clip_image031

clip_image033

启动监听

clip_image035

将监听服务设置为自动启动

clip_image037

如果是虚拟机的话,建议设置完成后在此处创建快照。

 

4、创建oracle服务

在命令行窗口执行如下命令:

C:\Users\Administrator>oradim -new -sid cme

实例已创建。

 

5、配置初始化参数文件

1)将pfile.ora文件拷贝到%ORACLE_HOME%\database目录下,并根据本机实际情况对部分参数进行修改,修改后的内容如下:

cme.__oracle_base='D:\app\administrator'#ORACLE_BASE set from environment

cme.__pga_aggregate_target=369098752

cme.__sga_target=721420288

cme.__shared_io_pool_size=0

cme.__shared_pool_size=419430400

cme.__streams_pool_size=0

*.audit_file_dest='D:\app\administrator\admin\cme\adump'

*.audit_trail='db'

*.compatible='11.2.0.0.0'

*.control_files='E:\NSTC\ORADATA\CME\cme\control01.ctl','E:\N6HUIFU\cme\control02.ctl'

*.db_block_size=8192

*.db_domain=''

*.db_name='cme'

*.db_recovery_file_dest='E:\N6HUIFU'

*.db_recovery_file_dest_size=4102029312

*.deferred_segment_creation=FALSE

*.diagnostic_dest='D:\app\administrator'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=cmeXDB)'

*.log_archive_dest_1='location=E:\arch'

*.log_archive_dest=''

*.memory_target=1078984704

*.nls_language='SIMPLIFIED CHINESE'

*.nls_territory='CHINA'

*.open_cursors=300

*.processes=500

*.remote_login_passwordfile='EXCLUSIVE'

*.resource_limit=TRUE

*.sessions=555

*.undo_tablespace='UNDOTBS1'

修改完成后需要根据修改内容创建相应目录,脚本如下:

md D:\app\administrator\admin\cme\adump

md E:\NSTC\ORADATA\CME\cme\

md E:\N6HUIFU\cme\

md E:\arch

 

2)修改完成后根据pfile创建spfile,在命令行输入如下命令:

C:\Users\Administrator>set oracle_sid=cme

 

C:\Users\Administrator>sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 8 27 13:51:14 2014

 

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

 

已连接到空闲例程。

 

SQL> create spfile from pfile='D:\app\Administrator\product\11.2.0\dbhome_1\database\pfile.ora';

 

文件已创建。

 

     3)启动数据库

    在命令行输入如下命令,启动数据库到nomount状态。

SQL> startup nomount

ORACLE 例程已经启动。

 

Total System Global Area 1085640704 bytes

Fixed Size                  2174928 bytes

Variable Size             654311472 bytes

Database Buffers          419430400 bytes

Redo Buffers                9723904 bytes

 

6、恢复控制文件并加装数据库

    在新打开的命令行窗口输入如下命令:

C:\Users\Administrator>set oracle_sid=cme

 

C:\Users\Administrator>rman target /

 

恢复管理器: Release 11.2.0.1.0 - Production on 星期三 8 27 14:05:47 2014

 

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

 

连接到目标数据库: CME (未装载)

 

RMAN> set dbid=4032130741

 

正在执行命令: SET DBID

 

RMAN> restore controlfile from 'F:\backup\rman\CF_3613_1_860462539';

 

启动 restore 09-10-14

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

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=20 设备类型=DISK

 

通道 ORA_DISK_1: 正在还原控制文件

通道 ORA_DISK_1: 还原完成, 用时: 00:00:02

输出文件名=E:\NSTC\ORADATA\CME\CME\CONTROL01.CTL

输出文件名=E:\N6HUIFU\CME\CONTROL02.CTL

完成 restore 09-10-14

 

RMAN> alter database mount;

 

数据库已装载

释放的通道: ORA_DISK_1

 

7、修复数据库

RMAN> restore database;

 

启动 restore 09-10-14

启动 implicit crosscheck backup 09-10-14

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=20 设备类型=DISK

已交叉检验的 12 对象

完成 implicit crosscheck backup 09-10-14

 

启动 implicit crosscheck copy 09-10-14

使用通道 ORA_DISK_1

完成 implicit crosscheck copy 09-10-14

 

搜索恢复区中的所有文件

正在编制文件目录...

没有为文件编制目录

 

使用通道 ORA_DISK_1

 

通道 ORA_DISK_1: 正在开始还原数据文件备份集

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

通道 ORA_DISK_1: 将数据文件 00001 还原到 E:\NSTC\ORADATA\CME\CME\SYSTEM01.DBF

通道 ORA_DISK_1: 将数据文件 00004 还原到 E:\NSTC\ORADATA\CME\CME\USERS01.DBF

通道 ORA_DISK_1: 将数据文件 00005 还原到 E:\NSTC\ORADATA\CME\N6_DATA01.DBF

通道 ORA_DISK_1: 正在读取备份片段 F:\BACKUP\RMAN\GNPKJ64Q_1_1

通道 ORA_DISK_1: 段句柄 = F:\BACKUP\RMAN\GNPKJ64Q_1_1 标记 = TAG20141009T010010

通道 ORA_DISK_1: 已还原备份片段 1

通道 ORA_DISK_1: 还原完成, 用时: 00:30:28

通道 ORA_DISK_1: 正在开始还原数据文件备份集

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

通道 ORA_DISK_1: 将数据文件 00002 还原到 E:\NSTC\ORADATA\CME\CME\SYSAUX01.DBF

通道 ORA_DISK_1: 将数据文件 00003 还原到 E:\NSTC\ORADATA\CME\CME\UNDOTBS01.DBF

通道 ORA_DISK_1: 将数据文件 00006 还原到 E:\NSTC\ORADATA\CME\N6_DATA02.DBF

通道 ORA_DISK_1: 将数据文件 00007 还原到 E:\NSTC\ORADATA\CME\N6_DATA03.DBF

通道 ORA_DISK_1: 正在读取备份片段 F:\BACKUP\RMAN\GOPKJ71G_1_1

通道 ORA_DISK_1: 段句柄 = F:\BACKUP\RMAN\GOPKJ71G_1_1 标记 = TAG20141009T010010

通道 ORA_DISK_1: 已还原备份片段 1

通道 ORA_DISK_1: 还原完成, 用时: 00:05:37

完成 restore 09-10-14

 

可以通过以下sql语句查询恢复进度:

select inst_id,sid,serial#,opname,COMPLETE,
trunc(((to_char(last_update_time,'dd')-to_char(start_time,'dd'))*60*24+(to_char(last_update_time,'hh24')-to_char(start_time,'hh24'))*60 +(to_char(last_update_time,'mi')-to_char(start_time,'mi')))*(100-complete)/complete) min from 
( 
SELECT inst_id,
sid,
serial#,
opname,
ROUND(SOFAR / TOTALWORK * 100, 2) COMPLETE,
LAST_UPDATE_TIME,
START_TIME
FROM gV$SESSION_LONGOPS
WHERE OPNAME LIKE 'RMAN%'
--AND OPNAME NOT LIKE '%aggregate%'
AND TOTALWORK != 0
AND SOFAR <> TOTALWORK
) ;

 

8、恢复数据库

RMAN> recover database;

 

启动 recover 10-10-14

使用通道 ORA_DISK_1

 

正在开始介质的恢复

 

通道 ORA_DISK_1: 正在开始将归档日志还原到默认目标

通道 ORA_DISK_1: 正在还原归档日志

归档日志线程=1 序列=20777

通道 ORA_DISK_1: 正在还原归档日志

归档日志线程=1 序列=20778

通道 ORA_DISK_1: 正在读取备份片段 F:\BACKUP\RMAN\GSPKJ7DE_1_1

通道 ORA_DISK_1: 段句柄 = F:\BACKUP\RMAN\GSPKJ7DE_1_1 标记 = TAG20141009T012121

通道 ORA_DISK_1: 已还原备份片段 1

通道 ORA_DISK_1: 还原完成, 用时: 00:00:25

归档日志文件名=E:\ARCH\ARC0000020777_0815249527.0001 线程=1 序列=20777

归档日志文件名=E:\ARCH\ARC0000020778_0815249527.0001 线程=1 序列=20778

无法找到归档日志

归档日志线程=1 序列=20779

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

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

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

RMAN-03002: recover 命令 ( 10/10/2014 09:46:30 ) 失败

RMAN-06054: 介质恢复正在请求未知的线程 1 序列 20779 的归档日志以及起始 SCN 395136428

 

9、打开数据库

RMAN> alter database open resetlogs;

 

数据库已打开

 

注意:需要在系统环境变量中增加名称为oracle_sid,值为cme的环境变量,不然每次使用sqlplus连接数据库时需要手动指定oracle_sid变量的值。

请使用浏览器的分享功能分享到微信等