您好,欢迎来到网暖!

当前位置:网暖 » 站长资讯 » 建站基础 » 网络技术 » 文章详细 订阅RssFeed

RMAN跨小版本跨平台与字节序传输表空间

来源:网络整理 浏览:264次 时间:2022-01-25

将Linux平台上的源数据库中的tspitr与test表空间传输到AIX平台上。并在源主机上使用目录/u02/transport来存储被转换的数据文件。操作步骤如下:
1.将要被传输的表空间tspitr与test设置为只读

SQL> alter tablespace tspitr read only;Tablespace altered.SQL> alter tablespace test read only;Tablespace altered.

 

2.检查源平台与目标平台信息支不支持传输操作
数据库所支持的平台信息:

SQL> select platform_name,endian_format from v$transportable_platform;PLATFORM_NAME                                                                    ENDIAN_FORMAT-------------------------------------------------------------------------------- --------------Solaris[tm] OE (32-bit)                                                          BigSolaris[tm] OE (64-bit)                                                          BigMicrosoft Windows IA (32-bit)                                                    LittleLinux IA (32-bit)                                                                LittleAIX-Based Systems (64-bit)                                                       BigHP-UX (64-bit)                                                                   BigHP Tru64 UNIX                                                                    LittleHP-UX IA (64-bit)                                                                BigLinux IA (64-bit)                                                                LittleHP Open VMS                                                                      LittleMicrosoft Windows IA (64-bit)                                                    LittleIBM zSeries Based Linux                                                          BigLinux x86 64-bit                                                                 LittleApple Mac OS                                                                     BigMicrosoft Windows x86 64-bit                                                     LittleSolaris Operating System (x86)                                                   LittleIBM Power Based Linux                                                            BigSolaris Operating System (x86-64)                                                LittleHP IA Open VMS                                                                   Little

 

源平台:

SQL> select d.platform_name,endian_format from v$transportable_platform tp,v$database d where tp.platform_name=d.platform_name ;PLATFORM_NAME                                                                                         ENDIAN_FORMAT----------------------------------------------------------------------------------------------------- --------------Linux 64-bit for AMD                                                                                  Little

 

目标平台

SQL> select d.platform_name,endian_format from v$transportable_platform tp,v$database d where tp.platform_name=d.platform_name ;PLATFORM_NAME                                                                    ENDIAN_FORMAT-------------------------------------------------------------------------------- --------------AIX-Based Systems (64-bit)                                                       Big

 

3.确认要被传输的表空间是否是自包含表空间(TSPITR,TEST):

SQL> exec sys.dbms_tts.transport_set_check('TSPITR',true);PL/SQL procedure successfully completed.SQL> exec sys.dbms_tts.transport_set_check('TEST',true);PL/SQL procedure successfully completed.SQL> select * from sys.transport_set_violations;no rows selected

 

如果没有行选择,表示该表空间只包含表数据,可以传输。

4.记录表空间传输前表tspitr与test中的记录:

SQL> select count(*) from tspitr.tspitr;  COUNT(*)----------     50315SQL> select count(*) from test.test;  COUNT(*)----------     50316

 

5.使用RMAN将源数据库中的表空间tspitr,test转换为目标平台字节序格式,使用format参数来控制被转换后数据文件的文件名和存储目录.

[oracle@oracle11g ~]export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'[oracle@oracle11g ~]rman target/Recovery Manager: Release 10.2.0.5.0 - Production on Mon Mar 30 10:35:41 2015Copyright (c) 1982, 2007, Oracle.  All rights reserved.connected to target database: TEST (DBID=2168949517)RMAN> convert tablespace "TSPITR","TEST"2> to platform 'AIX-Based Systems (64-bit)'3> format ='/u02/transport/%U';Starting backup at 2015-03-30 10:37:27allocated channel: ORA_DISK_1channel ORA_DISK_1: sid=141 devtype=DISKchannel ORA_DISK_1: starting datafile conversioninput datafile fno=00006 name=/u01/app/oracle/oradata/test/tspitr01.dbfconverted datafile=/u02/transport/data_D-TEST_I-2168949517_TS-TSPITR_FNO-6_3aq349v8channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:15channel ORA_DISK_1: starting datafile conversioninput datafile fno=00007 name=/u01/app/oracle/oradata/test/test01.dbfconverted datafile=/u02/transport/data_D-TEST_I-2168949517_TS-TEST_FNO-7_3bq349vochannel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01Finished backup at 2015-03-30 10:37:45[oracle@oracle11g transport]$ ls -lrttotal 112776-rw-r----- 1 oracle oinstall 104865792 Mar 30 10:37 data_D-TEST_I-2168949517_TS-TSPITR_FNO-6_3aq349v8-rw-r----- 1 oracle oinstall  10493952 Mar 30 10:37 data_D-TEST_I-2168949517_TS-TEST_FNO-7_3bq349vo

 

6.使用导出工具创建传输表空间元数据dump文件

SQL> create or replace directory test_dump as '/u02/transport';Directory created.SQL> grant read,write on directory test_dump to public;Grant succeeded.[oracle@oracle11g dump_test]$ expdp \'sys/zzh_2046@test as sysdba\' directory=test_dump dumpfile=tspitr_test.dmp logfile=tspitr_test.log transport_tablespaces=TSPITR,TESTExport: Release 10.2.0.5.0 - Production on Monday, 30 March, 2015 10:57:37Copyright (c) 2003, 2007, Oracle.  All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsStarting "SYS"."SYS_EXPORT_TRANSPORTABLE_01":  "sys/********@test AS SYSDBA" directory=test_dump dumpfile=tspitr_test.dmp logfile=tspitr_test.log transport_tablespaces=TSPITR,TESTProcessing object type TRANSPORTABLE_EXPORT/PLUGTS_BLKProcessing object type TRANSPORTABLE_EXPORT/TABLEProcessing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICSProcessing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLKMaster table "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded******************************************************************************Dump file set for SYS.SYS_EXPORT_TRANSPORTABLE_01 is:  /u02/dump_test/tspitr_test.dmpJob "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 10:57:55[oracle@oracle11g dump_test]ls -lrt-rw-r----- 1 oracle oinstall      960 Mar 30 15:23 tspitr_test.log-rw-r----- 1 oracle oinstall    90112 Mar 30 15:23 tspitr_test.dmp

 

7.将转换后存储在/u02/transport目录中的数据文件与导出的元数据文件tspitr_test.dmp传输到目标主机的目录/yb_oradata/transport中

ftp> put data_D-TEST_I-2168949517_TS-TSPITR_FNO-6_3aq349v8200 PORT command successful.150 Opening data connection for data_D-TEST_I-2168949517_TS-TSPITR_FNO-6_3aq349v8.226 Transfer complete.ftp: 发送 104865792 字节,用时 8.86秒 11839.88千字节/秒。ftp> put data_D-TEST_I-2168949517_TS-TEST_FNO-7_3bq349vo200 PORT command successful.150 Opening data connection for data_D-TEST_I-2168949517_TS-TEST_FNO-7_3bq349vo.226 Transfer complete.ftp: 发送 10493952 字节,用时 0.90秒 11659.95千字节/秒。ftp> put tspitr_test.dmp200 PORT command successful.150 Opening data connection for tspitr_test.dmp.226 Transfer complete.[IBMP740-1:oracle:/yb_oradata]$ls -lrt-rwxrwxrwx    1 oracle   dba       104865792 Mar 30 12:42 data_D-TEST_I-2168949517_TS-TSPITR_FNO-6_3aq349v8-rwxrwxrwx    1 oracle   dba        10493952 Mar 30 12:42 data_D-TEST_I-2168949517_TS-TEST_FNO-7_3bq349vo-rwxrwxrwx    1 oracle   dba           98304 Mar 30 12:42 tspitr_test.dmp

 

8.将要被传输的表空间附加到目标数据库中

[IBMP740-1:oracle:/yb_oradata]$sqlplus / as sysdbaSQL*Plus: Release 10.2.0.4.0 - Production on Mon Mar 30 11:31:47 2015Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> create user tspitr identified by "tspitr";User created.SQL> grant dba,connect,resource to tspitr;Grant succeeded.SQL> create user test identified by "test";User created.SQL> grant dba,connect,resource to test;Grant succeeded.SQL> create or replace directory test_dump as '/yb_oradata/transport';Directory created.SQL> grant read,write on directory test_dump to public;Grant succeeded.[IBMP740-1:oracle]$impdp system/system directory=test_dump dumpfile=tspitr_test.dmp transport_datafiles=/yb_oradata/data_D-TEST_I-2168949517_TS-TEST_FNO-7_3bq349vo,/yb_oradata/data_D-TEST_I-2168949517_TS-TSPITR_FNO-6_3aq349v8Import: Release 10.2.0.4.0 - 64bit Production on Monday, 30 March, 2015 11:45:48Copyright (c) 2003, 2007, Oracle.  All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsMaster table "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloadedStarting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01":  system/******** directory=test_dump dumpfile=tspitr_test.dmp transport_datafiles=/yb_oradata/transport/data_D-TEST_I-2168949517_TS-TEST_FNO-7_3bq349vo,/yb_oradata/transport/data_D-TEST_I-2168949517_TS-TSPITR_FNO-6_3aq349v8Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLKORA-39123: Data Pump transportable tablespace job abortedORA-00721: changes by release 10.2.0.5.0 cannot be used by release 10.2.0.3.0Job "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" stopped due to fatal error at 11:45:53

 

出错原因是因为源数据库的compatible=10.2.0.5.0,目标数据库的compatible=10.2.0.3.0这里在导出使用version=10.2.0.3.0导出元数据后再执行导出也是同样会报这个错误,因为这里不是逻辑导出,而是传输表空间,所以version参数不起作用。所以想修改源数据库的compatible参数为10.2.0.3.0,但在10g以后,compatible参数只能增大不能减少。
SQL> show parameter compatible

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 10.2.0.5.0

SQL> alter system set compatible='10.2.0.3.0' scope=spfile;

System altered.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 167772160 bytes
Fixed Size 1272600 bytes
Variable Size 109053160 bytes
Database Buffers 54525952 bytes
Redo Buffers 2920448 bytes
ORA-00201: control file version 10.2.0.5.0 incompatible with ORACLE version
10.2.0.3.0
ORA-00202: control file: '/u01/app/oracle/oradata/test/control01.ctl'

在将源数据库的compatible参数修改为10.2.0.3.0后无法启动数据库。

这里是从10.2.0.5(源数据库的compatible参数为10.2.0.5.0)向10.2.0.4(这里目标数据库中的compatible参数却为10.2.0.3.0,不是10.2.0.4.0)跨平台传输表空间不会成功,也就是从高版本向低版本传输表空间不能成功。但从低版本向高版本传输表空间是可以成功,例如下面的示例:
我们要将Linux平台上的源数据库中的tspitr与test表空间传输到AIX平台上。并在源主机上使用目录/u02/transport来存储被转换的数据文件。操作步骤如下:
1.将要被传输的表空间tspitr与test设置为只读

SQL> alter tablespace tspitr read only;Tablespace altered.SQL> alter tablespace test read only;Tablespace altered.

 

2.检查源平台与目标平台信息支不支持传输操作
数据库所支持的平台信息:

SQL> select platform_name,endian_format from v$transportable_platform;PLATFORM_NAME                                                                    ENDIAN_FORMAT-------------------------------------------------------------------------------- --------------Solaris[tm] OE (32-bit)                                                          BigSolaris[tm] OE (64-bit)                                                          BigMicrosoft Windows IA (32-bit)                                                    LittleLinux IA (32-bit)                                                                LittleAIX-Based Systems (64-bit)                                                       BigHP-UX (64-bit)                                                                   BigHP Tru64 UNIX                                                                    LittleHP-UX IA (64-bit)                                                                BigLinux IA (64-bit)                                                                LittleHP Open VMS                                                                      LittleMicrosoft Windows IA (64-bit)                                                    LittleIBM zSeries Based Linux                                                          BigLinux x86 64-bit                                                                 LittleApple Mac OS                                                                     BigMicrosoft Windows x86 64-bit                                                     LittleSolaris Operating System (x86)                                                   LittleIBM Power Based Linux                                                            BigSolaris Operating System (x86-64)                                                LittleHP IA Open VMS                                                                   Little

 

源平台:

SQL> select d.platform_name,endian_format from v$transportable_platform tp,v$database d where tp.platform_name=d.platform_name ;PLATFORM_NAME                                                                                         ENDIAN_FORMAT----------------------------------------------------------------------------------------------------- --------------Linux 64-bit for AMD                                                                                  Little

 

目标平台

SQL> select d.platform_name,endian_format from v$transportable_platform tp,v$database d where tp.platform_name=d.platform_name ;PLATFORM_NAME                                                                    ENDIAN_FORMAT-------------------------------------------------------------------------------- --------------AIX-Based Systems (64-bit)                                                       Big

 

3.确认要被传输的表空间是否是自包含表空间(TSPITR,TEST):

SQL> exec sys.dbms_tts.transport_set_check('TSPITR',true);PL/SQL procedure successfully completed.SQL> exec sys.dbms_tts.transport_set_check('TEST',true);PL/SQL procedure successfully completed.SQL> select * from sys.transport_set_violations;no rows selected

 

如果没有行选择,表示该表空间只包含表数据,可以传输。

4.记录表空间传输前表tspitr与test中的记录:

SQL> select count(*) from tspitr.tspitr;  COUNT(*)----------     50315SQL> select count(*) from test.test;  COUNT(*)----------     50316

 

5.使用RMAN将源数据库中的表空间tspitr,test转换为目标平台字节序格式,使用format参数来控制被转换后数据文件的文件名和存储目录.

[oracle@weblogic28 ~]$ export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'[oracle@weblogic28 ~]$ rman target/Recovery Manager: Release 10.2.0.1.0 - Production on Mon Mar 30 15:16:38 2015Copyright (c) 1982, 2005, Oracle.  All rights reserved.connected to target database: JYTEST (DBID=3911337604)RMAN> convert tablespace "TSPITR","TEST"to platform 'AIX-Based Systems (64-bit)'2> 3> format ='/u02/transport/%U';Starting backup at 2015-03-30 15:17:09using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: sid=134 devtype=DISKchannel ORA_DISK_1: starting datafile conversioninput datafile fno=00006 name=/u01/app/oracle/oradata/jytest/tspitr01.dbfconverted datafile=/u02/transport/data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_01q34qbmchannel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01channel ORA_DISK_1: starting datafile conversioninput datafile fno=00007 name=/u01/app/oracle/oradata/jytest/test01.dbfconverted datafile=/u02/transport/data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_02q34qbnchannel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01Finished backup at 2015-03-30 15:17:12[root@weblogic28 transport]# ls -lrttotal 102528-rw-r----- 1 oracle oinstall 52436992 Mar 30 15:17 data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_01q34qbm-rw-r----- 1 oracle oinstall 52436992 Mar 30 15:17 data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_02q34qbn

 

6.使用导出工具创建传输表空间元数据dump文件

SQL> create or replace directory test_dump as '/u02/transport';Directory created.SQL> grant read,write on directory test_dump to public;Grant succeeded.[oracle@weblogic28 ~]$ expdp \'sys/system as sysdba\' directory=test_dump dumpfile=tspitr_test.dmp logfile=tspitr_test.log transport_tablespaces=TSPITR,TESTExport: Release 10.2.0.1.0 - 64bit Production on Monday, 30 March, 2015 15:23:19Copyright (c) 2003, 2005, Oracle.  All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP and Data Mining optionsStarting "SYS"."SYS_EXPORT_TRANSPORTABLE_01":  'sys/******** AS SYSDBA' directory=test_dump dumpfile=tspitr_test.dmp logfile=tspitr_test.log transport_tablespaces=TSPITR,TESTProcessing object type TRANSPORTABLE_EXPORT/PLUGTS_BLKProcessing object type TRANSPORTABLE_EXPORT/TABLEProcessing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLKMaster table "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded******************************************************************************Dump file set for SYS.SYS_EXPORT_TRANSPORTABLE_01 is:  /u02/transport/tspitr_test.dmpJob "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 15:23:29[root@weblogic28 transport]# ls -lrttotal 102624-rw-r----- 1 oracle oinstall 52436992 Mar 30 15:17 data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_01q34qbm-rw-r----- 1 oracle oinstall 52436992 Mar 30 15:17 data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_02q34qbn-rw-r----- 1 oracle oinstall      960 Mar 30 15:23 tspitr_test.log-rw-r----- 1 oracle oinstall    90112 Mar 30 15:23 tspitr_test.dmp

 

7.将转换后存储在/u02/transport目录中的数据文件与导出的元数据文件tspitr_test.dmp传输到目标主机的目录/yb_oradata/transport中

ftp> get data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_01q34qbm200 PORT command successful.150 Opening BINARY mode data connection for data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_01q34qbm (52436992 bytes).226 Transfer complete.52436992 bytes received in 0.4497 seconds (1.139e+05 Kbytes/s)local: data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_01q34qbm remote: data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_01q34qbmftp> get data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_02q34qbn200 PORT command successful.150 Opening BINARY mode data connection for data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_02q34qbn (52436992 bytes).226 Transfer complete.52436992 bytes received in 0.4518 seconds (1.133e+05 Kbytes/s)local: data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_02q34qbn remote: data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_02q34qbnftp> get tspitr_test.dmp200 PORT command successful.150 Opening BINARY mode data connection for tspitr_test.dmp (90112 bytes).226 Transfer complete.90112 bytes received in 0.001825 seconds (4.822e+04 Kbytes/s)local: tspitr_test.dmp remote: tspitr_test.dmp[IBMP740-1:oracle:/yb_oradata/transport]$ls -lrttotal 205008-rwxrwxrwx    1 oracle   dba        52436992 Mar 30 15:06 data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_01q34qbm-rwxrwxrwx    1 oracle   dba        52436992 Mar 30 15:06 data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_02q34qbn-rwxrwxrwx    1 oracle   dba           90112 Mar 30 15:07 tspitr_test.dmp

 

8.将要被传输的表空间附加到目标数据库中

[IBMP740-1:oracle:/yb_oradata]$sqlplus / as sysdbaSQL*Plus: Release 10.2.0.4.0 - Production on Mon Mar 30 11:31:47 2015Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> create user tspitr identified by "tspitr";User created.SQL> grant dba,connect,resource to tspitr;Grant succeeded.SQL> create user test identified by "test";User created.SQL> grant dba,connect,resource to test;Grant succeeded.SQL> create or replace directory test_dump as '/yb_oradata/transport';Directory created.SQL> grant read,write on directory test_dump to public;Grant succeeded.IBMP740-1:oracle:/yb_oradata/transport]impdp system/system directory=test_dump dumpfile=tspitr_test.dmp transport_datafiles=/yb_oradata/transport/data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_01q34qbm,/yb_oradata/transport/data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_02q34qbnImport: Release 10.2.0.4.0 - 64bit Production on Monday, 30 March, 2015 15:09:38Copyright (c) 2003, 2007, Oracle.  All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsMaster table "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloadedStarting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01":  system/******** directory=test_dump dumpfile=tspitr_test.dmp transport_datafiles=/yb_oradata/transport/data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_01q34qbm,/yb_oradata/transport/data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_02q34qbnProcessing object type TRANSPORTABLE_EXPORT/PLUGTS_BLKProcessing object type TRANSPORTABLE_EXPORT/TABLEProcessing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLKJob "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at 15:09:42[IBMP740-1:oracle:/yb_oradata/transport]$sqlplus / as sysdbaSQL*Plus: Release 10.2.0.4.0 - Production on Mon Mar 30 16:36:19 2015Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> show parameter compatibleNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------compatible                           string      10.2.0.3.0SQL> select count(*) from tspitr.tspitr;  COUNT(*)----------     50315SQL> select count(*) from test.test;  COUNT(*)----------     50316

 

可以看到,从10.2.0.1(compatible=10.2.0.1.0)向10.2.0.4(compatible=10.2.0.3.0)跨平台和字节序传输表空间是可以执行成功。

为了从10.2.0.5向10.2.0.4(compatible=10.2.0.3.0)跨平台传输表空间,我这里测试一下将10.2.0.1源数据库升级到 10.2.0.5但compatible设置为10.2.0.1.0或小于目标数据库的compatible=10.2.0.3.0来进行测试。

[oracle@weblogic28 ~]$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.5.0 - Production on Mon Mar 30 19:17:59 2015Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> select version from v$instance;VERSION-----------------10.2.0.5.0SQL> show parameter compatibleNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------compatible                           string      10.2.0.1.0

 

将源数据库从10.2.0.1升级到10.2.0.5后compatible参数还是为10.2.0.1.0

使用RMAN将源数据库中的表空间tspitr,test转换为目标平台字节序格式,使用format参数来控制被转换后数据文件的文件名和存储目录.

[oracle@weblogic28 ~]$ export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'[oracle@weblogic28 ~]$ rman target/Recovery Manager: Release 10.2.0.5.0 - Production on Mon Mar 30 19:21:39 2015Copyright (c) 1982, 2007, Oracle.  All rights reserved.connected to target database: JYTEST (DBID=3911337604)RMAN> convert tablespace "TSPITR","TEST"2> to platform 'AIX-Based Systems (64-bit)'3> format ='/u02/transport/%U';Starting backup at 2015-03-30 19:22:01using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: sid=148 devtype=DISKchannel ORA_DISK_1: starting datafile conversioninput datafile fno=00006 name=/u01/app/oracle/oradata/jytest/tspitr01.dbfconverted datafile=/u02/transport/data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_03q358mqchannel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:03channel ORA_DISK_1: starting datafile conversioninput datafile fno=00007 name=/u01/app/oracle/oradata/jytest/test01.dbfconverted datafile=/u02/transport/data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_04q358mtchannel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:03Finished backup at 2015-03-30 19:22:08

 

使用导出工具创建传输表空间元数据dump文件

SQL> create or replace directory test_dump as '/u02/transport';Directory created.SQL> grant read,write on directory test_dump to public;Grant succeeded.[oracle@weblogic28 ~]$ expdp \'sys/system as sysdba\' directory=test_dump dumpfile=tspitr_test.dmp logfile=tspitr_test.log transport_tablespaces=TSPITR,TESTExport: Release 10.2.0.5.0 - 64bit Production on Monday, 30 March, 2015 19:23:47Copyright (c) 2003, 2007, Oracle.  All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsStarting "SYS"."SYS_EXPORT_TRANSPORTABLE_01":  "sys/******** AS SYSDBA" directory=test_dump dumpfile=tspitr_test.dmp logfile=tspitr_test.log transport_tablespaces=TSPITR,TESTProcessing object type TRANSPORTABLE_EXPORT/PLUGTS_BLKProcessing object type TRANSPORTABLE_EXPORT/TABLEProcessing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLKMaster table "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded******************************************************************************Dump file set for SYS.SYS_EXPORT_TRANSPORTABLE_01 is:  /u02/transport/tspitr_test.dmpJob "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 19:24:00[oracle@weblogic28 transport]$ ls -lrttotal 102624-rw-r----- 1 oracle oinstall 52436992 Mar 30 19:22 data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_03q358mq-rw-r----- 1 oracle oinstall 52436992 Mar 30 19:22 data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_04q358mt-rw-r--r-- 1 oracle oinstall      986 Mar 30 19:24 tspitr_test.log-rw-r----- 1 oracle oinstall    90112 Mar 30 19:24 tspitr_test.dmp

 

将转换后存储在/u02/transport目录中的数据文件与导出的元数据文件tspitr_test.dmp传输到目标主机的目录/yb_oradata/transport中

ftp> get data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_04q358mt200 PORT command successful.150 Opening BINARY mode data connection for data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_04q358mt (52436992 bytes).226 Transfer complete.52436992 bytes received in 0.4462 seconds (1.148e+05 Kbytes/s)local: data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_04q358mt remote: data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_04q358mtftp> get data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_03q358mq200 PORT command successful.150 Opening BINARY mode data connection for data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_03q358mq (52436992 bytes).226 Transfer complete.52436992 bytes received in 0.4458 seconds (1.149e+05 Kbytes/s)local: data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_03q358mq remote: data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_03q358mqftp> get tspitr_test.dmp200 PORT command successful.150 Opening BINARY mode data connection for tspitr_test.dmp (90112 bytes).226 Transfer complete.90112 bytes received in 0.00183 seconds (4.809e+04 Kbytes/s)local: tspitr_test.dmp remote: tspitr_test.dmp[IBMP740-1:oracle:/yb_oradata/transport]$rm tspitr_test.log[IBMP740-1:oracle:/yb_oradata/transport]$ls -lrttotal 205008-rw-r--r--    1 oracle   dba        52436992 Mar 30 19:08 data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_04q358mt-rw-r--r--    1 oracle   dba        52436992 Mar 30 19:08 data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_03q358mq-rw-r--r--    1 oracle   dba           90112 Mar 30 19:08 tspitr_test.dmp

 

将要被传输的表空间附加到目标数据库中

[IBMP740-1:oracle:/yb_oradata]$sqlplus / as sysdbaSQL*Plus: Release 10.2.0.4.0 - Production on Mon Mar 30 11:31:47 2015Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> create user tspitr identified by "tspitr";User created.SQL> grant dba,connect,resource to tspitr;Grant succeeded.SQL> create user test identified by "test";User created.SQL> grant dba,connect,resource to test;Grant succeeded.SQL> create or replace directory test_dump as '/yb_oradata/transport';Directory created.SQL> grant read,write on directory test_dump to public;Grant succeeded.[IBMP740-1:oracle:/yb_oradata/transport]$impdp system/system directory=test_dump dumpfile=tspitr_test.dmp transport_datafiles=/yb_oradata/transport/data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_04q358mt,/yb_oradata/transport/data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_03q358mqImport: Release 10.2.0.4.0 - 64bit Production on Monday, 30 March, 2015 19:12:27Copyright (c) 2003, 2007, Oracle.  All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsMaster table "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloadedStarting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01":  system/******** directory=test_dump dumpfile=tspitr_test.dmp transport_datafiles=/yb_oradata/transport/data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_04q358mt,/yb_oradata/transport/data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_03q358mqProcessing object type TRANSPORTABLE_EXPORT/PLUGTS_BLKProcessing object type TRANSPORTABLE_EXPORT/TABLEProcessing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLKJob "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at 19:12:33SQL> select count(*) from tspitr.tspitr;  COUNT(*)----------     50315SQL> select count(*) from test.test;  COUNT(*)----------     50316

 

可以看到执行成功。虽然源数据库是10.2.0.5,但其compatible为10.2.0.1.0,而目标数据库是10.2.0.4,其compatible参数为10.2.0.3.0,传输表空间是能成功执行的。

下面将源数据库的compatible修改为10.2.0.3.0(与目标数据库的compatible一样)

[oracle@weblogic28 dbs]$ vi initjytest.ora省....*.compatible='10.2.0.3.0'SQL> startup pfile='/u01/app/oracle/product/10.2.0/db/dbs/initjytest.ora';ORACLE instance started.Total System Global Area 1073741824 bytesFixed Size                  2101736 bytesVariable Size             335547928 bytesDatabase Buffers          729808896 bytesRedo Buffers                6283264 bytesDatabase mounted.Database opened.SQL> show parameter compatibleNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------compatible                           string      10.2.0.3.0

 

使用RMAN将源数据库中的表空间tspitr,test转换为目标平台字节序格式,使用format参数来控制被转换后数据文件的文件名和存储目录.

[oracle@weblogic28 dbs]$ rman target/Recovery Manager: Release 10.2.0.5.0 - Production on Mon Mar 30 19:47:07 2015Copyright (c) 1982, 2007, Oracle.  All rights reserved.connected to target database: JYTEST (DBID=3911337604)RMAN> convert tablespace "TSPITR","TEST"2> to platform 'AIX-Based Systems (64-bit)'3> format ='/u02/transport/%U';Starting backup at 2015-03-30 19:47:28using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: sid=141 devtype=DISKchannel ORA_DISK_1: starting datafile conversioninput datafile fno=00006 name=/u01/app/oracle/oradata/jytest/tspitr01.dbfconverted datafile=/u02/transport/data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_05q35a6hchannel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01channel ORA_DISK_1: starting datafile conversioninput datafile fno=00007 name=/u01/app/oracle/oradata/jytest/test01.dbfconverted datafile=/u02/transport/data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_06q35a6ichannel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01Finished backup at 2015-03-30 19:47:31

 

使用导出工具创建传输表空间元数据dump文件

[oracle@weblogic28 dbs]$ expdp \'sys/system as sysdba\' directory=test_dump dumpfile=tspitr_test.dmp logfile=tspitr_test.log transport_tablespaces=TSPITR,TESTExport: Release 10.2.0.5.0 - 64bit Production on Monday, 30 March, 2015 19:48:36Copyright (c) 2003, 2007, Oracle.  All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsStarting "SYS"."SYS_EXPORT_TRANSPORTABLE_01":  "sys/******** AS SYSDBA" directory=test_dump dumpfile=tspitr_test.dmp logfile=tspitr_test.log transport_tablespaces=TSPITR,TESTProcessing object type TRANSPORTABLE_EXPORT/PLUGTS_BLKProcessing object type TRANSPORTABLE_EXPORT/TABLEProcessing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLKMaster table "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded******************************************************************************Dump file set for SYS.SYS_EXPORT_TRANSPORTABLE_01 is:  /u02/transport/tspitr_test.dmpJob "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 19:48:50[oracle@weblogic28 transport]$ ls -lrttotal 102624-rw-r----- 1 oracle oinstall 52436992 Mar 30 19:47 data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_05q35a6h-rw-r----- 1 oracle oinstall 52436992 Mar 30 19:47 data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_06q35a6i-rw-r--r-- 1 oracle oinstall      986 Mar 30 19:48 tspitr_test.log-rw-r----- 1 oracle oinstall    90112 Mar 30 19:48 tspitr_test.dmp

 

将转换后存储在/u02/transport目录中的数据文件与导出的元数据文件tspitr_test.dmp传输到目标主机的目录/yb_oradata/transport中

ftp> get data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_05q35a6h200 PORT command successful.150 Opening BINARY mode data connection for data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_05q35a6h (52436992 bytes).226 Transfer complete.52436992 bytes received in 0.4461 seconds (1.148e+05 Kbytes/s)local: data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_05q35a6h remote: data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_05q35a6hftp> get data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_06q35a6i200 PORT command successful.150 Opening BINARY mode data connection for data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_06q35a6i (52436992 bytes).226 Transfer complete.52436992 bytes received in 0.4481 seconds (1.143e+05 Kbytes/s)local: data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_06q35a6i remote: data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_06q35a6iftp> get tspitr_test.dmp200 PORT command successful.150 Opening BINARY mode data connection for tspitr_test.dmp (90112 bytes).226 Transfer complete.90112 bytes received in 0.001821 seconds (4.833e+04 Kbytes/s)local: tspitr_test.dmp remote: tspitr_test.dmp

 

将要被传输的表空间附加到目标数据库中

[IBMP740-1:oracle:/yb_oradata]$sqlplus / as sysdbaSQL*Plus: Release 10.2.0.4.0 - Production on Mon Mar 30 11:31:47 2015Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> create user tspitr identified by "tspitr";User created.SQL> grant dba,connect,resource to tspitr;Grant succeeded.SQL> create user test identified by "test";User created.SQL> grant dba,connect,resource to test;Grant succeeded.SQL> create or replace directory test_dump as '/yb_oradata/transport';Directory created.SQL> grant read,write on directory test_dump to public;Grant succeeded.[IBMP740-1:oracle:/yb_oradata/transport]$impdp system/system directory=test_dump dumpfile=tspitr_test.dmp transport_datafiles=/yb_oradata/transport/data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_05q35a6h,/yb_oradata/transport/data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_06q35a6iImport: Release 10.2.0.4.0 - 64bit Production on Monday, 30 March, 2015 19:32:30Copyright (c) 2003, 2007, Oracle.  All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsMaster table "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloadedStarting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01":  system/******** directory=test_dump dumpfile=tspitr_test.dmp transport_datafiles=/yb_oradata/transport/data_D-JYTEST_I-3911337604_TS-TSPITR_FNO-6_05q35a6h,/yb_oradata/transport/data_D-JYTEST_I-3911337604_TS-TEST_FNO-7_06q35a6iProcessing object type TRANSPORTABLE_EXPORT/PLUGTS_BLKProcessing object type TRANSPORTABLE_EXPORT/TABLEProcessing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLKJob "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at 19:32:32

 

可以看到,将源数据库10.2.0.5的compatible设置为10.2.0.3.0与目标数据库10.2.0.4的compatible一样,执行传输表空间是可以执行成功的。

之前使用pfile参数文件参源数据库的compatible参数从10.2.0.1.0修改为10.2.0.3.0了,现在将其修改为10.2.0.1.0,并重新使用pfile文件启动源数据库会报错。

[oracle@weblogic28 dbs]$ vi initjytest.ora省....*.compatible='10.2.0.1.0'SQL> startup pfile='/u01/app/oracle/product/10.2.0/db/dbs/initjytest.ora';ORACLE instance started.Total System Global Area 1073741824 bytesFixed Size                  2101736 bytesVariable Size             335547928 bytesDatabase Buffers          729808896 bytesRedo Buffers                6283264 bytesORA-00201: control file version 10.2.0.3.0 incompatible with ORACLE version10.2.0.1.0ORA-00202: control file: '/u01/app/oracle/oradata/jytest/control01.ctl'

 

这也就证明从oracle 10g开始,compatible参数只能增大,不能缩小。

总结:
1.跨小版本执行跨平台与字节序的表空间传输时,源数据库的compatible参数必须小于或等于目标数据库的compatible参数
2.当源数据库的compatible参数大于目标数据库的compatible参数时,要执行跨平台与字节序的表空间传输只有将目标数据库升级为与源数据库相同的版本号且compatible参数要大于或等于源数据库的compatible参数。
3.从oracle 10g开始,compatible参数只能增大,不能缩小。

 

将Linux平台上的源数据库中的tspitr与test表空间传输到AIX平台上。并在源主机上使用目录/u02/transport来存储被转换的数据文件。操作步骤如下:
1.将要被传输的表空间tspitr与test设置为只读

SQL> alter tablespace tspitr read only;Tablespace altered.SQL> alter tablespace test read only;Tablespace altered.

 

2.检查源平台与目标平台信息支不支持传输操作
数据库所支持的平台信息:

SQL> select platform_name,endian_format from v$transportable_platform;PLATFORM_NAME                                                                    ENDIAN_FORMAT-------------------------------------------------------------------------------- --------------Solaris[tm] OE (32-bit)                                                          BigSolaris[tm] OE (64-bit)                                                          BigMicrosoft Windows IA (32-bit)                                                    LittleLinux IA (32-bit)                                                                LittleAIX-Based Systems (64-bit)                                                       BigHP-UX (64-bit)                                                                   BigHP Tru64 UNIX                                                                    LittleHP-UX IA (64-bit)                                                                BigLinux IA (64-bit)                                                                LittleHP Open VMS                                                                      LittleMicrosoft Windows IA (64-bit)                                                    LittleIBM zSeries Based Linux                                                          BigLinux x86 64-bit                                                                 LittleApple Mac OS                                                                     BigMicrosoft Windows x86 64-bit                                                     LittleSolaris Operating System (x86)                                                   LittleIBM Power Based Linux                                                            BigSolaris Operating System (x86-64)                                                LittleHP IA Open VMS                                                                   Little

 

源平台:

SQL> select d.platform_name,endian_format from v$transportable_platform tp,v$database d where tp.platform_name=d.platform_name ;PLATFORM_NAME                                                                                         ENDIAN_FORMAT----------------------------------------------------------------------------------------------------- --------------Linux 64-bit for AMD                                                                                  Little

 

目标平台

SQL> select d.platform_name,endian_format from v$transportable_platform tp,v$database d where tp.platform_name=d.platform_name ;PLATFORM_NAME                                                                    ENDIAN_FORMAT-------------------------------------------------------------------------------- --------------AIX-Based Systems (64-bit)                                                       Big

 

3.确认要被传输的表空间是否是自包含表空间(TSPITR,TEST):

SQL> exec sys.dbms_tts.transport_set_check('TSPITR',true);PL/SQL procedure successfully completed.SQL> exec sys.dbms_tts.transport_set_check('TEST',true);PL/SQL procedure successfully completed.SQL> select * from sys.transport_set_violations;no rows selected

 

如果没有行选择,表示该表空间只包含表数据,可以传输。

4.记录表空间传输前表tspitr与test中的记录:

SQL> select count(*) from tspitr.tspitr;  COUNT(*)----------     50315SQL> select count(*) from test.test;  COUNT(*)----------     50316

 

5.使用RMAN将源数据库中的表空间tspitr,test转换为目标平台字节序格式,使用format参数来控制被转换后数据文件的文件名和存储目录.

[oracle@oracle11g ~]export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'[oracle@oracle11g ~]rman target/Recovery Manager: Release 10.2.0.5.0 - Production on Mon Mar 30 10:35:41 2015Copyright (c) 1982, 2007, Oracle.  All rights reserved.connected to target database: TEST (DBID=2168949517)RMAN> convert tablespace "TSPITR","TEST"2> to platform 'AIX-Based Systems (64-bit)'3> format ='/u02/transport/%U';Starting backup at 2015-03-30 10:37:27allocated channel: ORA_DISK_1channel ORA_DISK_1: sid=141 devtype=DISKchannel ORA_DISK_1: starting datafile conversioninput datafile fno=00006 name=/u01/app/oracle/oradata/test/tspitr01.dbfconverted datafile=/u02/transport/data_D-TEST_I-2168949517_TS-TSPITR_FNO-6_3aq349v8channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:15channel ORA_DISK_1: starting datafile conversioninput datafile fno=00007 name=/u01/app/oracle/oradata/test/test01.dbfconverted datafile=/u02/transport/data_D-TEST_I-2168949517_TS-TEST_FNO-7_3bq349vochannel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01Finished backup at 2015-03-30 10:37:45[oracle@oracle11g transport]$ ls -lrttotal 112776-rw-r----- 1 oracle oinstall 104865792 Mar 30 10:37 data_D-TEST_I-2168949517_TS-TSPITR_FNO-6_3aq349v8-rw-r----- 1 oracle oinstall  10493952 Mar 30 10:37 data_D-TEST_I-2168949517_TS-TEST_FNO-7_3bq349vo

 

6.使用导出工具创建传输表空间元数据dump文件

SQL> create or replace directory test_dump as '/u02/transport';Directory created.SQL> grant read,write on directory test_dump to public;Grant succeeded.[oracle@oracle11g dump_test]$ expdp \'sys/zzh_2046@test as sysdba\' directory=test_dump dumpfile=tspitr_test.dmp logfile=tspitr_test.log transport_tablespaces=TSPITR,TESTExport: Release 10.2.0.5.0 - Production on Monday, 30 March, 2015 10:57:37Copyright (c) 2003, 2007, Oracle.  All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsStarting "SYS"."SYS_EXPORT_TRANSPORTABLE_01":  "sys/********@test AS SYSDBA" directory=test_dump dumpfile=tspitr_test.dmp logfile=tspitr_test.log transport_tablespaces=TSPITR,TESTProcessing object type TRANSPORTABLE_EXPORT/PLUGTS_BLKProcessing object type TRANSPORTABLE_EXPORT/TABLEProcessing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICSProcessing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLKMaster table "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded******************************************************************************Dump file set for SYS.SYS_EXPORT_TRANSPORTABLE_01 is:  /u02/dump_test/tspitr_test.dmpJob "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 10:57:55[oracle@oracle11g dump_test]ls -lrt-rw-r----- 1 oracle oinstall      960 Mar 30 15:23 tspitr_test.log-rw-r----- 1 oracle oinstall    90112 Mar 30 15:23 tspitr_test.dmp

 

7.将转换后存储在/u02/transport目录中的数据文件与导出的元数据文件tspitr_test.dmp传输到目标主机的目录/yb_oradata/transport中

ftp> put data_D-TEST_I-2168949517_TS-TSPITR_FNO-6_3aq349v8200 PORT command successful.150 Opening data connection for data_D-TEST_I-2168949517_TS-TSPITR_FNO-6_3aq349v8.226 Transfer complete.ftp: 发送 104865792 字节,用时 8.86秒 11839.88千字节/秒。ftp> put data_D-TEST_I-2168949517_TS-TEST_FNO-7_3bq349vo200 PORT command successful.150 Opening data connection for data_D-TEST_I-2168949517_TS-TEST_FNO-7_3bq349vo.226 Transfer complete.ftp: 发送 10493952 字节,用时 0.90秒 11659.95千字节/秒。ftp> put tspitr_test.dmp200 PORT command successful.150 Opening data connection for tspitr_test.dmp.226 Transfer complete.[IBMP740-1:oracle:/yb_oradata]$ls -lrt-rwxrwxrwx    1 oracle   dba       104865792 Mar 30 12:42 data_D-TEST_I-2168949517_TS-TSPITR_FNO-6_3aq349v8-rwxrwxrwx    1 oracle   dba        10493952 Mar 30 12:42 data_D-TEST_I-2168949517_TS-TEST_FNO-7_3bq349vo-rwxrwxrwx    1 oracle   dba           98304 Mar 30 12:42 tspitr_test.dmp

 

8.将要被传输的表空间附加到目标数据库中

[IBMP740-1:oracle:/yb_oradata]$sqlplus / as sysdbaSQL*Plus: Release 10.2.0.4.0 - Production on Mon Mar 30 11:31:47 2015Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> create user tspitr identified by "tspitr";User created.SQL> grant dba,connect,resource to tspitr;Grant succeeded.SQL> create user test identified by "test";User created.SQL> grant dba,connect,resource to test;Grant succeeded.SQL> create or replace directory test_dump as '/yb_oradata/transport';Directory created.SQL> grant read,write on directory test_dump to public;Grant succeeded.[IBMP740-1:oracle]$impdp system/system directory=test_dump dumpfile=tspitr_test.dmp transport_datafiles=/yb_oradata/data_D-TEST_I-2168949517_TS-TEST_FNO-7_3bq349vo,/yb_oradata/data_D-TEST_I-2168949517_TS-TSPITR_FNO-6_3aq349v8Import: Release 10.2.0.4.0 - 64bit Production on Monday, 30 March, 2015 11:45:48Copyright (c) 2003, 2007, Oracle.  All rights reserved.Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsMaster table "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloadedStarting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01":  system/******** directory=test_dump dumpfile=tspitr_test.dmp transport_datafiles=/yb_oradata/transport/data_D-TEST_I-2168949517_TS-TEST_FNO-7_3bq349vo,/yb_oradata/transport/data_D-TEST_I-2168949517_TS-TSPITR_FNO-6_3aq349v8Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLKORA-39123: Data Pump transportable tablespace job abortedORA-00721: changes by release 10.2.0.5.0 cannot be used by release 10.2.0.3.0Job "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" stopped due to fatal error at 11:45:53

 

出错原因是因为源数据库的compatible=10.2.0.5.0,目标数据库的compatible=10.2.0.3.0这里在导出使用version=10.2.0.3.0导出元数据后再执行导出也是同样会报这个错误,因为这里不是逻辑导出,而是传输表空间,所以version参数不起作用。所以想修改源数据库的compatible参数为10.2.0.3.0,但在10g以后,compatible参数只能增大不能减少。
SQL> show parameter compatible

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 10.2.0.5.0

SQL> alter system set compatible='10.2.0.3.0' scope=spfile;

System altered.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 167772160 bytes
Fixed Size 1272600 bytes
Variable Size 109053160 bytes
Database Buffers 54525952 bytes
Redo Buffers 2920448 bytes
ORA-00201: control file version 10.2.0.5.0 incompatible with ORACLE version
10.2.0.3.0
ORA-00202: control file: '/u01/app/oracle/oradata/test/control01.ctl'

在将源数据库的compatible参数修改为10.2.0.3.0后无法启动数据库。

这里是从10.2.0.5(源数据库的compatible参数为10.2.0.5.0)向10.2.0.4(这里目标数据库中的compatible参数却为10.2.0.3.0,不是10.2.0.4.0)跨平台传输表空间不会成功,也就是从高版本向低版本传输表空间不能成功。但从低版本向高版本传输表空间是可以成功,例如下面的示例:
我们要将Linux平台上的源数据库中的tspitr与test表空间传输到AIX平台上。并在源主机上使用目录/u02/transport来存储被转换的数据文件。操作步骤如下:
1.将要被传输的表空间tspitr与test设置为只读

SQL> alter tablespace tspitr read only;Tablespace altered.SQL> alter tablespace test read only;Tablespace altered.

 

2.检查源平台与目标平台信息支不支持传输操作
数据库所支持的平台信息:

SQL> select platform_name,endian_format from v$transportable_platform;PLATFORM_NAME                                                                    ENDIAN_FORMAT-------------------------------------------------------------------------------- --------------Solaris[tm] OE (32-bit)                                                          BigSolaris[tm] OE (64-bit)                                                          BigMicrosoft Windows IA (32-bit)                                                    LittleLinux IA (32-bit)                                                                LittleAIX-Based Systems (64-bit)                                                       BigHP-UX (64-bit)                                                                   BigHP Tru64 UNIX                                                                    LittleHP-UX IA (64-bit)                                                                BigLinux IA (64-bit)                                                                LittleHP Open VMS                                                                      LittleMicrosoft Windows IA (64-bit)                                                    LittleIBM zSeries Based Linux                                                          BigLinux x86 64-bit                                                                 LittleApple Mac OS                                                                     BigMicrosoft Windows x86 64-bit                                                     LittleSolaris Operating System (x86)                                                   LittleIBM Power Based Linux                                                            BigSolaris Operating System (x86-64)                                                LittleHP IA Open VMS                                                                   Little

 

源平台:

SQL> select d.platform_name,endian_format from v$transportable_platform tp,v$database d where tp.platform_name=d.platform_name ;PLATFORM_NAME                                                                                         ENDIAN_FORMAT----------------------------------------------------------------------------------------------------- --------------Linux 64-bit for AMD                                                                                  Little

 

目标平台

SQL> select d.platform_name,endian_format from v$transportable_platform tp,v$database d where tp.platform_name=d.platform_name ;PLATFORM_NAME                                                                    ENDIAN_FORMAT-------------------------------------------------------------------------------- --------------AIX-Based Systems (64-bit)                                                       Big

 

3.确认要被传输的表空间是否是自包含表空间(TSPITR,TEST):

SQL> exec sys.dbms_tts.transport_set_check('TSPITR',true);PL/SQL procedure successfully completed.SQL> exec sys.dbms_tts.transport_set_check('TEST',true);PL/SQL procedure successfully

推荐站点

  • 腾讯腾讯

    腾讯网(www.QQ.com)是中国浏览量最大的中文门户网站,是腾讯公司推出的集新闻信息、互动社区、娱乐产品和基础服务为一体的大型综合门户网站。腾讯网服务于全球华人用户,致力成为最具传播力和互动性,权威、主流、时尚的互联网媒体平台。通过强大的实时新闻和全面深入的信息资讯服务,为中国数以亿计的互联网用户提供富有创意的网上新生活。

    www.qq.com
  • 搜狐搜狐

    搜狐网是全球最大的中文门户网站,为用户提供24小时不间断的最新资讯,及搜索、邮件等网络服务。内容包括全球热点事件、突发新闻、时事评论、热播影视剧、体育赛事、行业动态、生活服务信息,以及论坛、博客、微博、我的搜狐等互动空间。

    www.sohu.com
  • 网易网易

    网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。

    www.163.com
  • 新浪新浪

    新浪网为全球用户24小时提供全面及时的中文资讯,内容覆盖国内外突发新闻事件、体坛赛事、娱乐时尚、产业资讯、实用信息等,设有新闻、体育、娱乐、财经、科技、房产、汽车等30多个内容频道,同时开设博客、视频、论坛等自由互动交流空间。

    www.sina.com.cn
  • 百度一下百度一下

    百度一下,你就知道

    www.baidu.com