Oracle版本:10.2.0.1
原DB:winxp 10.142.244.185 sid=cc
恢复到目标机器(虚拟机):windows server 2003 10.142.244.29
1、 Rman备份原DB
C:\Documents and Settings\F1632512>rman
复原管理员: Release 10.2.0.1.0 - Production on 星期四 10月 27 14:49:11 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
RMAN> connect target /
已联机到目标数据库: CC (DBID=1976629323)
RMAN> configure controlfile autobackup on;
使用目标数据库控制文件替代复原目录
旧的 RMAN 组态参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
新的 RMAN 组态参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
已顺利储存新的 RMAN 组态参数
RMAN> backup database;
开始 backup, 于 27-10月-11
配置的信道: ORA_DISK_1
通道 ORA_DISK_1: sid=158 devtype=DISK
通道 ORA_DISK_1: 启动完整数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 名称=E:\ORACLE\PRODUCT\10.2.0\ORADATA\CC\SYSTEM01.DBF
输入数据文件 fno=00003 名称=E:\ORACLE\PRODUCT\10.2.0\ORADATA\CC\SYSAUX01.DBF
输入数据文件 fno=00004 名称=E:\ORACLE\PRODUCT\10.2.0\ORADATA\CC\USERS01.DBF
输入数据文件 fno=00002 名称=E:\ORACLE\PRODUCT\10.2.0\ORADATA\CC\UNDOTBS01.DBF
通道 ORA_DISK_1: 启动部份 1, 在 27-10月-11
通道 ORA_DISK_1: 已完成部份 1, 在 27-10月-11
片段处理=E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\01MQ5024_1_1 标记=TAG20111027T144955 批注=NONE
片段处理=E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\02MQ5030_1_1 标记=TAG20111027T144955 批注=NONE
片段处理=E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\03MQ504G_1_1 标记=TAG20111027T144955 批注=NONE
通道 ORA_DISK_1: 备份集完成, 经历时间: 00:00:45
完成 backup, 于 27-10月-11
开始 Control File and SPFILE Autobackup, 于 27-10月-11
处理片=E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\C-1976629323-20111027-00 批注=NONE
完成 Control File and SPFILE Autobackup, 于 27-10月-11
RMAN>
2、 将1步的rman备份文件与归档日志COPY到DB29的相应目录中(不指定相应目录也可以,但是恢复的时候需restore …. From,还是放在指定目录简单些)
3、 在新机器10.142.244.29(以下简称DB29)上安装oracle,版本同原DB,只安装软件,不用建库,目录与原DB相同(需建立bdump等存放log的目录,还有存放数据文件的目录)。
4、 建立相关的密码文件,服务,监听器,否则无法连接DB
C:\Documents and Settings\Administrator>e:
E:\>cd E:\oracle\product\10.2.0\db_1\BIN
E:\oracle\product\10.2.0\db_1\BIN>orapwd file=E:\oracle\product\10.2.0\db_1\data
base\pwdCC.ora password=oracle entries=5;
E:\oracle\product\10.2.0\db_1\BIN>oradim -new -sid CC -startmode m
执行处理已建立.
并建立监听器
E:\oracle\product\10.2.0\db_1\BIN>set ORACLE_SID=CC
E:\oracle\product\10.2.0\db_1\BIN>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 10月 27 10:18:48 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
联机至闲置的执行处理.
可以连接DB了
5、 手动建立一个pfile文件,放到DB29的E:\oracle\product\10.2.0\db_1\database目录下,并启动数据库到nomount状态(需要设置内存参数,否则无法unmount,会无法分内存,报ORA-04031错误)
以下是initcc.ora文件的内容:
db_name=cc
java_pool_size=4194304
large_pool_size=4194304
shared_pool_size=96468992
E:\oracle\product\10.2.0\db_1\BIN>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 10月 27 10:18:48 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
联机至闲置的执行处理.
SQL> startup pfile='E:\oracle\product\10.2.0\db_1\database\initcc.ora' nomount;
ORACLE 执行处理已启动.
Total System Global Area 163577856 bytes
Fixed Size 1247852 bytes
Variable Size 104859028 bytes
Database Buffers 50331648 bytes
Redo Buffers 7139328 bytes
6、 用rman连接,利用rman备份恢复spfile
E:\oracle\product\10.2.0\db_1\BIN>rman
复原管理员: Release 10.2.0.1.0 - Production on 星期四 10月 27 10:28:10 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
RMAN> connect target /
联机至目标数据库: cc (未挂载)
RMAN> restore spfile from 'E:\oracle\product\10.2.0\db_1\database\C-1976629323-2
0111027-00';
开始 restore, 于 27-10月-11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 找到自动备份: E:\oracle\product\10.2.0\db_1\database\C-19766293
23-20111027-00
通道 ORA_DISK_1: 从自动备份回复 SPFILE 完成
完成 restore, 于 27-10月-11
7、 关闭DB29,用刚恢复的spfile启动DB29到nomount(注意需要创建bdump,udump那几个目录,否则会报错ORA-02778: Name given for the log directory is invalid )
RMAN> shutdown immediate;
已关闭 Oracle 执行处理
SQL> startup nomount
ORA-02778: Name given for the log directory is invalid
建立相应的log目录:bdump,udump等
SQL> startup nomount
ORACLE 执行处理已启动.
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 104858304 bytes
Database Buffers 176160768 bytes
Redo Buffers 7139328 bytes
8、 用rman恢复controlfile,修改DB29状态为mount
RMAN> restore controlfile from 'E:\oracle\product\10.2.0\db_1\database\C-1976629323-20111027-00';
开始 restore, 于 27-10月-11
使用目标数据库控制文件替代复原目录
配置的信道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 正在回复控制档
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令于 10/27/2011 10:43:55 失败
ORA-19870: 读取备份 E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\C-1976629323-20111027-00 时发生错误
ORA-19504: 无法建立档案 "E:\ORACLE\PRODUCT\10.2.0\ORADATA\CC\CONTROL01.CTL"
ORA-27040: 档案建立错误, 无法建立档案
OSD-04002: 无法开启档案
O/S-Error: (OS 3) 系统找不到指定的路径。
错误提示找不到目录,建立E:\ORACLE\PRODUCT\10.2.0\ORADATA\CC\目录,再重试
RMAN> restore controlfile from 'E:\oracle\product\10.2.0\db_1\database\C-1976629323-20111027-00';
开始 restore, 于 27-10月-11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在回复控制档
通道 ORA_DISK_1: 回复完成, 经历时间: 00:00:04
输出文件名=E:\ORACLE\PRODUCT\10.2.0\ORADATA\CC\CONTROL01.CTL
输出文件名=E:\ORACLE\PRODUCT\10.2.0\ORADATA\CC\CONTROL02.CTL
输出文件名=E:\ORACLE\PRODUCT\10.2.0\ORADATA\CC\CONTROL03.CTL
完成 restore, 于 27-10月-11
RMAN> alter database mount;
已挂载数据库
释出的通道: ORA_DISK_1
9、 用rman恢复database
RMAN> restore database;
开始 restore, 于 27-10月-11
配置的信道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 正在启动数据文件备份集回复
通道 ORA_DISK_1: 正在设定要从备份集回复的数据文件
正在将资料文件 00001 回复为 E:\ORACLE\PRODUCT\10.2.0\ORADATA\CC\SYSTEM01.DBF
正在将资料文件 00002 回复为 E:\ORACLE\PRODUCT\10.2.0\ORADATA\CC\UNDOTBS01.DBF
正在将资料文件 00003 回复为 E:\ORACLE\PRODUCT\10.2.0\ORADATA\CC\SYSAUX01.DBF
正在将资料文件 00004 回复为 E:\ORACLE\PRODUCT\10.2.0\ORADATA\CC\USERS01.DBF
通道 ORA_DISK_1: 从备份 E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\02MQ5030_1_1 读取
通道 ORA_DISK_1: 已回复备份 1
片断处理=E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\02MQ5030_1_1 标记=TAG20111027T092656
通道 ORA_DISK_1: 回复完成, 经历时间: 00:01:25
完成 restore, 于 27-10月-11
RMAN> recover database;
开始 recover, 于 27-10月-11
使用通道 ORA_DISK_1
启动媒体恢复
存盘日志系线 1 顺序 16 已经是磁盘中的档案 E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\ARCHIVE\ARC00016_0765131918.001
存盘日志文件名=E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\ARCHIVE\ARC00016_0765131918.001 系线=1 顺序=16
存盘日志文件名=E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\ARCHIVE\ARC00017_0765131918.001 系线=1 顺序=17
存盘日志文件名=E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\ARCHIVE\ARC00018_0765131918.001 系线=1 顺序=18
存盘日志文件名=E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\ARCHIVE\ARC00019_0765131918.001 系线=1 顺序=19
存盘日志文件名=E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\ARCHIVE\ARC00019_0765131918.001 系线=1 顺序=20
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令于 10/27/2011 10:47:36 失败
RMAN-11003: 在 SQL 叙述剖析/执行期间失败: alter database recover logfile 'E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\ARCHIVE\ARC00019_0765131918.001'
ORA-00310: 存盘日志的顺序号码为 19; 需要的顺序号码为 20
ORA-00334: 存盘日志: 'E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\ARCHIVE\ARC00019_0765131918.001'
10、 用只读打开DB,看看恢复的数据是否正常
SQL> alter database open read only;
已更改数据库.
SQL> select status from v$instance;
STATUS
------------------------
OPEN
SQL> select * from amy.test; //rman备份前的表
ID IN_DATE
---------- --------------
3 27-10月-11
1 21-10月-11
2 21-10月-11
SQL> select * from amy.back_rman; //rman备份后建的表
T IN_DATE
---------- --------------
1 27-10月-11
11、 数据正常,关闭DB29,用resetlogs选项打开DB
SQL> shutdown immediate;
数据库关闭.
数据库已卸除.
已关闭 ORACLE 执行处理.
SQL> startup mount;
ORACLE 执行处理已启动.
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 104858304 bytes
Database Buffers 176160768 bytes
Redo Buffers 7139328 bytes
数据库已挂载.
SQL> alter database open resetlogs;
已更改数据库.
SQL> select * from amy.test;
ID IN_DATE
---------- --------------
3 27-10月-11
1 21-10月-11
SQL> select * from amy.back_rman;
T IN_DATE
---------- --------------
1 27-10月-11
OK,一切正常,恢复完毕。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9902302/viewspace-709849/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9902302/viewspace-709849/