ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle10g新增CONVERT语法

Oracle10g新增CONVERT语法

原创 Linux操作系统 作者:yangtingkun 时间:2009-05-04 22:14:44 0 删除 编辑

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中的数据文件,因此可以利用CONVERTASM中的文件拷贝的操作系统中:

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

不过这种方式其实还不如直接使用RMANCOPY命令,因为COPY命令没有将表空间置于只读状态的限制。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-592573/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10455527