日期:2014-05-16  浏览次数:20831 次

oracle9i的rman全备在10g上的恢复

目的主要是为了测试迁移升级一个测试库。

?

迁移的方法很多,比如迁移表空间、exp/imp等。由于测试库不能停库,并且表空间中包含的物化视图一直再用,所以迁移表空间的方法不适合这里。而exp/imp花的时间可能会很长。

?

要求:既不影响当前测试库的正常应用,又能达到迁移效果。

?

所以打算直接在测试库生成一个rman备份。然后,将9i的rman备份传到10g的服务器上做恢复。

?

平台都是windows2003.

?

源库:oracle9i,目标库:10g

?

下面是迁移过程:

?

如果源库没有启动归档模式,那么需要启动到归档模式。这是唯一需要停库的一个地方。

?

假如不知道rman备份的实例名是什么,我们可以这么获取:
命令:strings 控制文件备份名|head
可看到第一行就是实例名称:tjcs。

?

目标库的操作如下:

?

C:\Documents and Settings\Administrator>oradim -new -sid tjcs
实例已创建。

?

C:\Documents and Settings\Administrator>set ORACLE_SID=tjcs

?

C:\Documents and Settings\Administrator>d:

?

D:\>cd d:\rman

?

D:\rman>rman target /

?

恢复管理器: Release 10.2.0.1.0 - Production on 星期一 1月 28 16:50:20 2008

?

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

?

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

?

RMAN> startup nomount

?

启动失败: ORA-01078: failure in processing system parameters
LRM-00109: ???????????????? 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\INITTJCS.ORA
'

?

在没有参数文件的情况下启动 Oracle 实例以检索 spfile
Oracle 实例已启动

?

系统全局区域总计???? 159383552 字节

?

Fixed Size???????????????????? 1247852 字节
Variable Size???????????????? 54527380 字节
Database Buffers???????????? 100663296 字节
Redo Buffers?????????????????? 2945024 字节

?

RMAN> restore spfile from 'd:\rmanbak\BK_1_1_618168364';

?

启动 restore 于 28-1月 -08
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=37 devtype=DISK

?

通道 ORA_DISK_1: 已找到的自动备份: d:\rmanbak\BK_1_1_618168364
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 01/28/2008 16:53:05 上) 失败
ORA-19870: 读取备份段 D:\RMANBAK\BK_3_1_618168380 时出错
ORA-32014: 处理来自 SPFILE 恢复映像的参数 "hash_join_enabled" 时出错
LRM-00101: unknown parameter name 'hash_join_enabled'

?

RMAN> exit

?


恢复管理器完成。

?

D:\rman>sqlplus /nolog

?

SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 1月 28 16:53:27 2008

?

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

?

SQL> conn /as sysdba
已连接。
SQL> create pfile='d:\rmanbak\tjcs.ora' from spfile;
create pfile='d:\rmanbak\tjcs.ora' from spfile
*
第 1 行出现错误:
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

?


SQL> exit

?


====创建init.ora
tjcs.__db_cache_size=269098752
tjcs.__java_pool_size=4194304
tjcs.__large_pool_size=4194304
tjcs.__shared_pool_size=130686720
tjcs.__streams_pool_size=0
*.audit_file_dest='d:\rmanbak\tjcs\adump'
*.background_dump_dest='d:\rmanbak\tjcs\bdump'
*.compatible='10.2.0.1.0'
*.control_files='d:\rmanbak\tjcs\control01.ctl','d:\rmanbak\tjcs\control02.ctl','d:\rmanbak\tjcs\control03.ctl'
*.core_dump_dest='d:\rmanbak\tjcs\cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='tjcs'
*.db_recovery_file_dest='d:\rmanbak\tjcs\fla'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=tjcsXDB)'
*.job_queue_processes=10
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.pga_aggregate_target=203423744
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=612368384
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='d:\rmanbak\tjcs\udump'
========
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开<