查看: 467|回复: 0

oracle10g跨os平台迁移表空间

 关闭 [复制链接]

签到天数: 2595 天

连续签到: 9 天

[LV.Master]至尊海神IIIIII

发表于 2010-9-14 22:32 | 显示全部楼层 |阅读模式
oracle10g跨os平台迁移表空间


利用oracle10g_rman_convert_transportable tablespace迁移表空间
前言:
   利用rman cross-platform. transfortable databases and tablespaces 跨os平台迁移数据库或表空间

1、在源库创建要cross的表空间及对应的用户
SQL> create tablespace crosstbs datafile 'D:\ORACLE\PRODUCT\10.1.0\DB_1\TRAIN\crosstbs.DBF' size 10m;  --建立表空间
SQL> create user crosstbs identified by crosstbs default tablespace CROSSTBS; --建立用户
SQL> grant  resource,connect to crosstbs;  --对用户进行授权

  SQL> conn crosstbs/crosstbs
  已连接。
  SQL> create table test(a int) ;   --建立表并插入记录
  
  表已创建。
  
  SQL> insert into test values(1);
  
  已创建 1 行。
  
  SQL> insert into test values(2);
  
  已创建 1 行。
  
  SQL> commit;
  
  提交完成。
   
  SQL> conn / as sysdba
  已连接。
  SQL> alter tablespace crosstbs read only;  --置只读
  
  SQL> create directory dumpdir as 'c:\temp' ;  --IMPDP、EXPDM 要用到
  
  目录已创建。
  
  SQL> grant read,write on directory dumpdir to crosstbs;  --目录授权
  
  授权成功。

2、在源库导出要cross os的表空间
c:\temp>  expdp system/manager directory=dumpdir dumpfile=exp_crosstbs.dmp transport_tablespaces=crosstbs   

Export: Release 10.1.0.2.0 - Production on 星期三, 08 9月, 2010 10:47

Copyright (c) 2003, Oracle.  All rights reserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining opti**
启动 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01":  system/******** directory=dumpdir
dumpfile=exp_crosstbs.dmp transport_tablespaces=crosstbs
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型 TRANSPORTABLE_EXPORT/TABLE
处理对象类型 TRANSPORTABLE_EXPORT/TTE_POSTINST/PLUGTS_BLK
已成功加载/卸载了主表 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01"
******************************************************************************
SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 的转储文件集为:
   C:\TEMP\EXP_CROSSTBS.DMP
作业 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" 已于 10:48 成功完成

3、在源库对cross os的表空间数据文件进行转换
SQL>select platform_id,platform_name,.endian_format 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
  
  15 rows selected
  C:\>
  C:\>rman catalog rman/rman target sys/dddddd
  
  恢复管理器: 版本10.1.0.2.0 - Production
  
  Copyright (c) 1995, 2004, Oracle.  All rights reserved.
  
  连接到目标数据库: TRAIN (DBID=1113606269)
  连接到恢复目录数据库
  
  RMAN> convert tablespace crosstbs to platform 'Microsoft Windows IA (32-bit)'
  2> format ='c:\temp\crosstbs.dbf';
  
  启动 backup 于 08-9月 -10
  正在启动全部恢复目录的 resync
  完成全部 resync
  分配的通道: ORA_DISK_1
  通道 ORA_DISK_1: sid=139 devtype=DISK
  分配的通道: ORA_DISK_2
  通道 ORA_DISK_2: sid=141 devtype=DISK
  分配的通道: ORA_DISK_3
  通道 ORA_DISK_3: sid=134 devtype=DISK
  通道 ORA_DISK_1: 启动数据文件转换
  输入数据文件 fno=00009 name=D:\ORACLE\PRODUCT\10.1.0\DB_1\TRAIN\CROSSTBS.DBF
  已转换的数据文件 = C:\TEMP\crosstbs.dbf
  通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:01
  完成 backup 于 08-9月 -10
  
  RMAN>exit

4、在目标库利用ftp把源库产生的dmp文件及转换文件(rman加工生产),下载到目标库
5、在目标库实施impdp导入表空间
  SQL> create user crosstbs identified by crosstbs ; --建立用户
SQL> grant  resource,connect to crosstbs;  --对用户进行授权
SQL> create directory dumpdir as 'c:\temp' ;  --IMPDP、EXPDM 要用到
  
  目录已创建。
  
  SQL> grant read,write on directory dumpdir to crosstbs;  --目录授权
  
  授权成功。

  C:\temp>impdp system/manager dumpfile=exp_crosstbs.dmp  directory=dumpdir transport_datafiles=c:\temp\crosstbs.dbf
  
  Import: Release 10.1.0.2.0 - Production on 星期三, 08 9月, 2010 12:20
  
  Copyright (c) 2003, Oracle.  All rights reserved.
  
  连接到: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
  With the Partitioning, OLAP and Data Mining opti**
  已成功加载/卸载了主表 "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01"
  启动 "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01":  system/******** dumpfile=exp_cross
  tbs.dmp directory=dumpdir transport_datafiles=c:\temp\crosstbs.dbf
  处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
  处理对象类型 TRANSPORTABLE_EXPORT/TABLE
  处理对象类型 TRANSPORTABLE_EXPORT/TTE_POSTINST/PLUGTS_BLK
  作业 "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" 已于 12:20 成功完成
  
6、在目标库对导入的crosstbs os表空间进行read write操作
SQL>conn / as sysdba
SQL> alter tablespace crosstbs read write;

表空间已更改。
SQL> conn crosstbs/crosstbs
已连接。
SQL> select * from test;

          A
----------
          1
          2

SQL>
<
PCOS系统下载站:http://zhuangji.wang

本版积分规则