Oracle Transporting Tablespaces

Oracle Transporting Tablespaces 


实验目的:
将源库TTS表空间数据,快速迁移到目标数据库;

实验环境说明:
源  库:11.2.0.4.0    PLATFORM_NAME:Linux x86 64-bit              compatible: 11.2.0.4.0
目标库:11.2.0.4.0    PLATFORM_NAME:Microsoft Windows x86 64-bit  compatible: 11.2.0.4.0

源  库
创建测试数据;
create tablespace tts datafile '/u01/app/oracle/oradata/orcl/tts01.dbf' size 1M;
create user tts identified by tts default tablespace tts;
grant connect,resource,dba to tts;
conn tts/tts
create table t1 as select level as id from dual connect by level<=10;

1:源库和目标库,查看操作系统平台
Task 1: Determine if Platforms are Supported and Determine Endianness

SELECT d.PLATFORM_NAME, ENDIAN_FORMAT FROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE d WHERE tp.PLATFORM_NAME = d.PLATFORM_NAME;

The following is the query result from the source platform:
PLATFORM_NAME                       ENDIAN_FORMAT
------------------------------------          --------------
Linux x86 64-bit                             Little

The following is the result from the destination platform:
PLATFORM_NAME                        ENDIAN_FORMAT
------------------------------------           --------------
Microsoft Windows x86 64-bit           Little

2:源库,查看准备传输表空间是否自包含
Task 2: Pick a Self-Contained Set of Tablespaces

SQL> EXECUTE SYS.DBMS_TTS.TRANSPORT_SET_CHECK('tts,', TRUE);
PL/SQL procedure successfully completed.

SQL> SELECT * FROM SYS.TRANSPORT_SET_VIOLATIONS;
no rows selected

3:源库,准备元数据和数据文件
Task 3: Generate a Transportable Tablespace Set

SQL> ALTER TABLESPACE tts READ ONLY ;
SQL> create directory data1_pump_dir as '/home/oracle/test';
SQL> grant read,write on directory data1_pump_dir to tts;
---select status,tablespace_name from dba_tablespaces where tablespace_name like '%TTS%';
---alter tablespace tts read write;

[oracle@chen test]$ expdp system/oracle dumpfile=tts.dmp directory=data1_pump_dir transport_tablespaces=tts transport_full_check=y logfile=tts.log

Export: Release 11.2.0.4.0 - Production on Mon Jul 10 15:13:00 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01":  system/******** dumpfile=tts.dmp directory=data1_pump_dir transport_tablespaces=tts transport_full_check=y logfile=tts.log 
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Master table "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 is:
  /home/oracle/test/tts.dmp
******************************************************************************
Datafiles required for transportable tablespace TTS:
  /u01/app/oracle/oradata/orcl/tts01.dbf
Job "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at Mon Jul 10 15:13:59 2017 elapsed 0 00:00:53

---TRANSPORT_FULL_CHECK
---该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N.

4:将元数据和数据文件上传到目标数据库上;
D:\>cd BACKUP\test
D:\BACKUP\test 的目录
2017/07/10  15:13            90,112 tts.dmp
2017/07/10  15:13             1,205 tts.log
2017/07/10  15:12         1,056,768 tts01.dbf

5:目标库,查看支持的操作系统平台信息
SQL> set long 1000
SQL> col platform_name for a36
SQL> SELECT * FROM V$TRANSPORTABLE_PLATFORM ORDER BY PLATFORM_NAME;
PLATFORM_ID PLATFORM_NAME                        ENDIAN_FORMAT
----------- ------------------------------------ --------------
          6 AIX-Based Systems (64-bit)           Big
         16 Apple Mac OS                         Big
         21 Apple Mac OS (x86-64)                Little
         19 HP IA Open VMS                       Little
         15 HP Open VMS                          Little
          5 HP Tru64 UNIX                        Little
          3 HP-UX (64-bit)                       Big
          4 HP-UX IA (64-bit)                    Big
         18 IBM Power Based Linux                Big
          9 IBM zSeries Based Linux              Big
         10 Linux IA (32-bit)                    Little
         11 Linux IA (64-bit)                    Little
         13 Linux x86 64-bit                     Little
          7 Microsoft Windows IA (32-bit)        Little
          8 Microsoft Windows IA (64-bit)        Little
         12 Microsoft Windows x86 64-bit         Little
         17 Solaris Operating System (x86)       Little
         20 Solaris Operating System (x86-64)    Little
          1 Solaris[tm] OE (32-bit)              Big
          2 Solaris[tm] OE (64-bit)              Big


20 rows selected.


6:目标库,创建目录和用户
创建用户及directory:
SQL> create directory trans as 'D:\BACKUP\test';
SQL> grant read,write on directory trans to public;
SQL> create user trans_user identified by trans;
SQL> grant connect,resource to trans_user;

7:目标库rman 转换数据文件适应当前操作系统平台:

D:\>rman target sys/oracle
恢复管理器: Release 11.2.0.4.0 - Production on 星期一 7月 10 15:29:45 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
已连接到目标数据库: CHENJCH (DBID=579646690)

RMAN> convert datafile 'D:\BACKUP\test\tts01.dbf' to platform='Microsoft Windows
 x86 64-bit' from platform='Linux x86 64-bit' db_file_name_convert='D:\BACKUP\te
st\tts01.dbf','D:\app\Administrator\oradata\chenjch\tts01.dbf';

启动 conversion at target 于 10-7月 -17
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=69 设备类型=DISK
通道 ORA_DISK_1: 启动数据文件转换
输入文件名=D:\BACKUP\TEST\TTS01.DBF
已转换的数据文件 = D:\APP\ADMINISTRATOR\ORADATA\CHENJCH\TTS01.DBF
通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:01
完成 conversion at target 于 10-7月 -17

D:\>cd D:\app\Administrator\oradata\chenjch
D:\app\Administrator\oradata\chenjch>dir
D:\app\Administrator\oradata\chenjch 的目录
......
2017/07/10  15:31         1,056,768 TTS01.DBF
......

8:目标库:导入数据
d:\> impdp dumpfile=tts.dmp logfile=tts.log directory=trans transport_datafiles=D:\app\Administrator\oradata\chenjch\tts01.dbf remap_schema=tts:trans_user

Import: Release 11.2.0.4.0 - Production on 星期一 7月 10 15:35:33 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
用户名: sys/oracle as sysdba
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Produc
tion
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "SYS"."SYS_IMPORT_TRANSPORTABLE_01"
启动 "SYS"."SYS_IMPORT_TRANSPORTABLE_01":  sys/******** AS SYSDBA dumpfile=tts.d
mp logfile=tts.log directory=trans transport_datafiles=D:\app\Administrator\orad
ata\chenjch\tts01.dbf remap_schema=tts:trans_user
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型 TRANSPORTABLE_EXPORT/TABLE
处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
作业 "SYS"."SYS_IMPORT_TRANSPORTABLE_01" 已于 星期一 7月 10 15:35:58 2017 elapsed 0 00:00:12 成功完成

9:目标库:将导入的表空间置为read write
SQL> select status,tablespace_name from dba_tablespaces where tablespace_name like '%TTS%';
STATUS    TABLESPACE_NAME
--------- ------------------------------
READ ONLY TTS

SQL> alter tablespace tts read write;
表空间已更改。

SQL> select status,tablespace_name from dba_tablespaces where tablespace_name like '%TTS%';
STATUS    TABLESPACE_NAME
--------- ------------------------------
ONLINE    TTS

10:验证数据
SQL> conn trans_user/trans
已连接。
SQL> select * from tab;
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
T1                                TABLE

SQL> select * from t1;
        ID
----------
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
已选择10行。


在选择使用传输表空间之前建议先仔细看一下使用传输表空间有哪些限制

Limitations on Transportable Tablespace Use

http://docs.oracle.com/cd/E11882_01/server.112/e25494/tspaces.htm#ADMIN10140


欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!



请使用浏览器的分享功能分享到微信等