欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 从10g开始,RMAN新增了CONVERT的语法,使得数据库文件可以跨版本复制,从这个特性开始,操作系统以及平台不再是数据库物理文件的限制了。 Oracle支持的可转换的平台可以在V$TRANSPORTABLE_PLATFORM
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入
从10g开始,RMAN新增了CONVERT的语法,使得数据库文件可以跨版本复制,从这个特性开始,操作系统以及平台不再是数据库物理文件的限制了。
Oracle支持的可转换的平台可以在V$TRANSPORTABLE_PLATFORM视图中查询:
SQL> SELECT * FROM V$TRANSPORTABLE_PLATFORM; PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT ----------- ---------------------------------------- -------------- 1 Solaris[tm] OE (32-bit) Big 2 Solaris[tm] OE (64-bit) Big 7 Microsoft Windows IA (32-bit) Little 10 Linux IA (32-bit) Little 6 AIX-Based Systems (64-bit) Big 3 HP-UX (64-bit) Big 5 HP Tru64 UNIX Little 4 HP-UX IA (64-bit) Big 11 Linux IA (64-bit) Little 15 HP Open VMS Little 8 Microsoft Windows IA (64-bit) Little 9 IBM zSeries Based Linux Big 13 Linux 64-bit for AMD Little 16 Apple Mac OS Big 12 Microsoft Windows 64-bit for AMD Little 17 Solaris Operating System (x86) Little 18 IBM Power Based Linux Big 20 Solaris Operating System (AMD64) Little 19 HP IA Open VMS Little |
已选择19行。
Oracle支持将数据文件转换为这些平台上的数据文件格式。
SQL> host $ rman target / |
恢复管理器: Release 10.2.0.3.0 - Production on 星期四 3月 5 01:36:55 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: TESTRAC (DBID=4291216984)
RMAN> convert tablespace 'TEST' to platform 'Linux 64-bit for AMD'
2> format '/data/backup/%T_%n_%N.dbf';
启动 backup 于 05-3月 -09使用目标数据库控制文件替代恢复目录分配的通道: ORA_DISK_1通道 ORA_DISK_1: sid=310 实例=testrac1 devtype=DISK分配的通道: ORA_DISK_2通道 ORA_DISK_2: sid=292 实例=testrac2 devtype=DISK
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: backup 命令 (在 03/05/2009 01:40:55 上) 失败
RMAN-06599: 表空间 TEST 不是只读的
CONVERT要求目标表空间是只读的:
SQL> host $ rman target / |
恢复管理器: Release 10.2.0.3.0 - Production on 星期四 3月 5 01:42:20 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: TESTRAC (DBID=4291216984)
RMAN> convert tablespace 'TEST'
2> to platform 'Linux 64-bit for AMD'
3> format '/data1/backup/%T_%n_%N.dbf';
启动 backup 于 05-3月 -09使用通道 ORA_DISK_1使用通道 ORA_DISK_2通道 ORA_DISK_1: 启动数据文件转换输入数据文件 fno=00008 name=+DISK/testrac/datafile/test01.dbf已转换的数据文件 = /data1/backup/20090305_TESTRACx_TEST.dbf通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:07完成 backup 于 05-3月 -09
这个生成的文件20090305_TESTRACx_TEST.dbf文件就可以在Linux X86 for 64环境中进行迁移表空间的导入,或者指向备份恢复操作。
当然CONVERT语法远远不止上面提到的,可以进行数据文件、表空间甚至数据库的转换,同时各种限制条件也远远不只上面提到的,比如CONVERT数据库就不能直接跨越不同的编码方式。
在文档中提到CONVERT语法还有一个功能,由于绝大部分操作系统命令都无法直接访问ASM中的数据文件,因此可以利用CONVERT将ASM中的文件拷贝的操作系统中:
RMAN> convert tablespace 'TEST'
2> format '/data1/backup/test01.dbf';
启动 backup 于 05-3月 -09使用通道 ORA_DISK_1使用通道 ORA_DISK_2通道 ORA_DISK_1: 启动数据文件转换输入数据文件 fno=00008 name=+DISK/testrac/datafile/test01.dbf已转换的数据文件 = /data1/backup/test01.dbf通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:03完成 backup 于 05-3月 -09不过这种方式其实还不如直接使用RMAN的COPY命令,因为COPY命令没有将表空间置于只读状态的限制。