oracle垮版本恢复,RMAN跨版本的异机恢复

原机:  OS:XP   oracle:10.2.0.1.0

异机:  OS:XP   oracle:10.2.0.3.0

目的:利用原机的rman备份集将原库恢复到异机。

1.全备份数据库(rman)

备份脚本如下:

# start backup database

run {

allocate channel c1 type disk;

backup format 'E:\oracle\rman_backup\full%u_%s_%p' database

plus archivelog format 'E:\oracle\rman_backup\archive_%d_%T_%s' delete all input;

release channel c1;

}

# end

2.在异机的操作。

异机的oracle软件安装目录跟原机一样。

ORACLE_BASE=C:\oracle\product\10.2.0

ORACLE_HOME=C:\oracle\product\10.2.0\db_1

设置环境变量ORACLE_SID=orasjh

set ORACLE_SID=orasjh

验证:set ORACLE_SID

创建和原数据库相同的目录结构:

E:\oracle\orasjh  --存放数据库的数据文件,日志文件,控制文件。

E:\oracle\orasjh\archive  --存放归档日志。

C:\oracle\product\10.2.0\admin\orasjh   --audmp,bdump等目录的路径。

C:\oracle\product\10.2.0\db_1\database  --密码文件,初始化参数的位置。

E:\oracle\rman_backup  --rman备份存放的地方。

配置监听器,本地服务名(主要编辑listener.ora,tnsnames.ora文件)

创建密码文件,工具orapwd:

C:\oracle\product\10.2.0\db_1\database>orapwd file=PWDorasjh.ora password=sys entries=5

3.在原机的操作

复制原数据库的spfile到异机。

从RMAN中恢复控制文件:

C:\>rman catalog target

恢复管理器: Release 10.2.0.1.0 - Production on 星期二 3月 3 14:55:24 2009

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

连接到目标数据库: ORASJH (DBID=2615173674)

连接到恢复目录数据库

RMAN> list backup of controlfile;

备份集列表

===================

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间

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

297     Full    6.80M      DISK        00:00:03     02-3月 -09

BP 关键字: 300   状态: AVAILABLE  已压缩: NO  标记: TAG20090302T170100

段名:E:\ORACLE\RMAN_BACKUP\FULL06K8U104_6_1

包括的控制文件: Ckp SCN: 344003       Ckp 时间: 02-3月 -09

RMAN> restore controlfile to 'e:\oracle\control.ctl' from 'E:\ORACLE\RMAN_BACKUP

\FULL06K8U104_6_1';

启动 restore 于 03-3月 -09

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=158 devtype=DISK

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

通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02

完成 restore 于 03-3月 -09

RMAN> restore spfile to 'e:\oracle\rman_backup\spfile.bak' from autobackup;

启动 restore 于 09-3月 -09

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 寻找以下日期的自动备份: 20090309

通道 ORA_DISK_1: 已找到的自动备份: c-2615173674-20090309-00

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

完成 restore 于 09-3月 -09

RMAN> restore archivelog sequence 235;

启动 restore 于 09-3月 -09

使用通道 ORA_DISK_1

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

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

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

通道 ORA_DISK_1: 正在读取备份段 E:\ORACLE\RMAN_BACKUP\ARCHIVE_ORASJH_20090309_10

通道 ORA_DISK_1: 已恢复备份段 1

段句柄 = E:\ORACLE\RMAN_BACKUP\ARCHIVE_ORASJH_20090309_10 标记 = TAG20090309T145

408

通道 ORA_DISK_1: 恢复完成, 用时: 00:00:02

完成 restore 于 09-3月 -09

--将原机的e:\oracle\control.ctl复制到异机的相同目录,复制成三个镜像的控制文件:CONTROL01.CTL CONTROL02.CTL CONTROL03.CTL。同时将spfile.bak,备份期间的归档日志也copy到异机,并正确的改名。将全备后的备份文件(备份集)复制到异机,这里是E:\oracle\rman_backup。

--修改原机的tnsname.ora使orasjh的host指向异机的IP地址(192.168.10.150):

ORASJH =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.150)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orasjh)

)

)

4.在异机打开数据库

在异机打开数据库,只能到mount状态,open时报错。很正常,数据文件都还没有了。

5.在原机用RMAN进行恢复

--在原机启动RMAN开始恢复:

E:\oracle\rman_scripts>rman catalog target

恢复管理器: Release 10.2.0.1.0 - Production on 星期一 3月 9 17:06:40 2009

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

已连接到目标数据库: ORASJH (DBID=2615173674, 未打开) --这时连接的目标库是异机上的。

连接到恢复目录数据库

RMAN> restore database;

启动 restore 于 09-3月 -09

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=155 devtype=DISK

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

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

正将数据文件00001恢复到E:\ORACLE\ORASJH\SYSTEM01.DBF

正将数据文件00002恢复到E:\ORACLE\ORASJH\UNDOTBS01.DBF

正将数据文件00003恢复到E:\ORACLE\ORASJH\SYSAUX01.DBF

正将数据文件00004恢复到E:\ORACLE\ORASJH\USERS01.DBF

通道 ORA_DISK_1: 正在读取备份段 E:\ORACLE\RMAN_BACKUP\FULL09K9G827_9_1

通道 ORA_DISK_1: 已恢复备份段 1

段句柄 = E:\ORACLE\RMAN_BACKUP\FULL09K9G827_9_1 标记 = TAG20090309T145255

通道 ORA_DISK_1: 恢复完成, 用时: 00:01:05

完成 restore 于 09-3月 -09

RMAN> recover database;

启动 recover 于 09-3月 -09

使用通道 ORA_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 235 已作为文件 E:\ORACLE\ORASJH\ARCHIVE\ARC00235_0679223338.

001 存在于磁盘上

--备份期间的归档应用上了。

6.在异机上的最后处理

--在异机的SQL*PLUS中用resetlogs打开数据库:

SQL> alter database open resetlogs;

alter database open resetlogs

*

第 1 行出现错误:

ORA-01092: ORACLE 实例终止。强制断开连接

--查看告警日志如下:

ORA-00704: 引导程序进程失败

ORA-39700: 必须用 UPGRADE 选项打开数据库

Mon Mar 09 17:08:41 2009

Error 704 happened during db open, shutting down database

USER: terminating instance due to error 704

ARC1 started with pid=18, OS id=3252

Mon Mar 09 17:08:42 2009

Errors in file c:\oracle\product\10.2.0\admin\orasjh\bdump\orasjh_lgwr_4816.trc:

ORA-00704: ????????

Mon Mar 09 17:08:42 2009

Errors in file c:\oracle\product\10.2.0\admin\orasjh\bdump\orasjh_dbw0_3556.trc:

ORA-00704: ????????

Mon Mar 09 17:08:42 2009

Errors in file c:\oracle\product\10.2.0\admin\orasjh\bdump\orasjh_mman_232.trc:

ORA-00704: ????????

Mon Mar 09 17:08:42 2009

Errors in file c:\oracle\product\10.2.0\admin\orasjh\bdump\orasjh_psp0_2940.trc:

ORA-00704: ????????

Mon Mar 09 17:08:42 2009

Errors in file c:\oracle\product\10.2.0\admin\orasjh\bdump\orasjh_pmon_2800.trc:

ORA-00704: ????????

Mon Mar 09 17:08:42 2009

Errors in file c:\oracle\product\10.2.0\admin\orasjh\bdump\orasjh_ckpt_3096.trc:

ORA-00704: ????????

Mon Mar 09 17:08:43 2009

Errors in file c:\oracle\product\10.2.0\admin\orasjh\bdump\orasjh_reco_3016.trc:

ORA-00704: ????????

--因为相同平台的数据库软件版本不一样,所以需要upgrade选项打开。

--shutdown数据库用upgrade选项打开数据库:

SQL>startup upgrade

--数据库竟然打开了。

SQL>@C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catupgrd.sql

--执行这个脚本。这个脚本调用catlog.sql和 catproc.sql来重建字典对象等,在执行完这个脚本之后,我们可以关闭数据库后,正常打开数据库:

SQL> select count(*) from dba_objects where status='INVALID';

COUNT(*)

----------

116

--有INVALID的对象。

SQL> @C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utlrp.sql    --重新进行编译

SQL>  select count(*) from dba_objects where status='INVALID';

COUNT(*)

----------

0

--INVALID的对象消失。

--将原机的tnsnames.ora的orasjh的host改回原来的IP。异机恢复完成。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值