Oracle10g新增CONVERT语法


从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命令没有将表空间置于只读状态的限制



相关阅读:
javascript实例教程(21-3)
用PHP和ACCESS写聊天室(九)
JS option location 页面跳转实现代码
SQL Server 2005噪声字词和辞典概述
IE6的BUG及修复:谓防患于未然的策略
玩转花样表单(四)
介绍Oracle数据库备份基础知识
Windows授权管理工具:slmgr.vbs
偷改账号 Windows Server 2008系统早知道
JS拖动技术 关于setCapture使用
Vista SP2更新和升级常见问题和解决方案
js鼠标左右键 键盘值小结
Linux 下创建终端命令别名
用PHPnow搭建PHP+MYSQL网站开发环境
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4