Starting from 11 GB, oracle supports cross-platform table space transfer.
View the list of supported platforms. If the endian format of the source and target databases is inconsistent, You need to convert
SQL col platform_name Solaris OE ( Solaris OE ( Microsoft Windows IA ( Linux IA ( AIXBased Systems ( HPUX ( HPUX IA ( Linux IA ( HP Microsoft Windows IA ( Linux x86 Microsoft Windows x86 IBM HP IA Solaris Operating System (x86 Apple Mac OS (x86 rows selected.
Restrictions on using the transfer tablespace:
1. The source database and target database must be of the same character set and National Character Set
SQL col parameter col value NLS_CHARACTERSET AL32UTF8NLS_NCHAR_CHARACTERSET AL16UTF16NLS_RDBMS_VERSION ..
2. all tablespace objects to be transmitted must be self-contained. meaning: If the objects in Table A reference the objects in Table B, both table A and B must be included in the transpotable set.
But don't worry. Check the DBMS_TTS package.
Start the experiment below:
Source: windows oracle 11203 64bit
Target: OEL 6.3 oracle 11203 64bit
Platform, endian check:
Source:
SQL V$TRANSPORTABLE_PLATFORM tp, V$ tp.PLATFORM_NAME Microsoft Windows x86
SQL col platform_name d.PLATFORM_NAME, ENDIAN_FORMAT V$TRANSPORTABLE_PLATFORM tp, V$ d tp.PLATFORM_NAME Linux x86 Little
SQL DBMS_TTS.TRANSPORT_SET_CHECK(SQL successfully completed.
View the execution result in the TRANSPORT_SET_VIOLATIONS view. If any dependent object is not in the provided tablespace, a detailed prompt is displayed.
SQL
Generate a tablespace set for transmission:
SQL TABLESPACE ERM directory erm_dump_dir ,write directory erm_dump_dir Microsoft Corporation. expdp systempassword dumpfileerm_tts.dmp directoryERM
Use RMAN convert to convert the file format:
C:\Windows\system32>rman target /11.2.0.3.0 - Production Fri May 24 14:41:32 2013(c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.(DBID=1977612728)> convert tablespace ERM to platform 'Linux x86 64-bit' 'e:\%N%f';24-MAY-13=194 ==00006 name=E:\APP\SUSU\ORADATA\ERMDB\ERM01.=E:\, elapsed : 00:00:0324-MAY-13
Copy the files exported from the transport tablespace set and expdp generated by rman convert to the target database.
I copied it here
[oracle@db1 dumpdir]$ /s01/app/oracle/
Next, operate on the target database:
RMAN> convert datafile db_file_name_convert ,-MAY- name=/s01/app/oracle/dumpdir/=/s01/app/oracle/oradata/DB11G/: ::-MAY--MAY-=/s01/app/oracle/fast_recovery_area/DB11G/autobackup/2013_05_24/o1_mf_s_816275177_8sy4cc2w_.bkp comment=-MAY-
[oracle@db1 dumpdir]$ impdp system/password directory=ERM_DUMP_DIR dumpfile=ERM_TTS.DMP transport_datafiles=/s01/app/oracle/oradata/DB11G/erm01w.dbf remap_schema=.. - Production on Fri May :: , , Oracle and/.. -. successfully loaded/.: system
Success! Query
Select * from erm. test; Chinese characters are not garbled