确定哪些平台之间可以搬移表空间:
SQL> select platform_name from v$transportable_platform;
PLATFORM_NAME
----------------------------------------
Solaris[tm] OE (32-bit)
Solaris[tm] OE (64-bit)
Microsoft Windows IA (32-bit)
Linux IA (32-bit)
AIX-Based Systems (64-bit)
HP-UX (64-bit)
HP Tru64 UNIX
HP-UX IA (64-bit)
Linux IA (64-bit)
HP Open VMS
Microsoft Windows IA (64-bit)
IBM zSeries Based Linux
Linux 64-bit for AMD
Apple Mac OS
Microsoft Windows 64-bit for AMD
Solaris Operating System (x86)
IBM Power Based Linux
已选择17行。
搬移表空间具有以下限制:
将ORCL 数据库中的 TBS01 表空间搬移到 DEMO 数据库中,步骤如下:
(1) 确定自包含表空间集合。自包含表空间集合是指具有关联的表空间集合。当搬移表空间时,如果在两个表空间之间存在关联关系,则必须同时搬移这两个表空间。
例:表空间A 包含了EMP 表,而表空间B 包含了表EMP 的索引IND_EMP,如果要搬移表空间B,则必须同时搬移表空间A,此时表空间A和B为自包含表空间集合。
违反自包含表空间集合规则的常见情况如下:
SQL> conn system/orcl@orcl
已连接。
SQL> execute sys.dbms_tts.transport_set_check('TBS01',true)
PL/SQL 过程已成功完成。
SQL> select * from sys.transport_set_violations;
VIOLATIONS
--------------------------------------------------------------------------------
Index SCOTT.IND_EMPNO in tablespace TBS01 points to table SCOTT.EMP in tablespac
e USERS
Index SCOTT.IND_DNAME in tablespace TBS01 points to table SCOTT.DEPT in tablespa
ce USERS
SQL> drop index scott.ind_empno;
索引已删除。
SQL> drop index scott.ind_dname;
索引已删除。
SQL> execute sys.dbms_tts.transport_set_check('TBS01',true)
PL/SQL 过程已成功完成。
SQL> select * from sys.transport_set_violations;
未选定行
(2) 生成要搬移的表空间集合。
SQL> alter tablespace tbs01 read only;
表空间已更改。
SQL> host expdp system/orcl@orcl directory=dump_dir dumpfile=transport.dmp trans
port_tablespaces=tbs01
Export: Release 10.2.0.1.0 - Production on 星期一, 05 1月, 2009 14:04:24
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01": system/********@orcl directory=dum
p_dir dumpfile=transport.dmp transport_tablespaces=tbs01
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型 TRANSPORTABLE_EXPORT/TABLE
处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
已成功加载/卸载了主表 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01"
******************************************************************************
SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 的转储文件集为:
D:/DUMP/TRANSPORT.DMP
作业 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" 已于 14:04:47 成功完成
(3) 传送转储文件和数据文件到目标数据库。
SQL> host copy d:/orcl/tbs01.dbf d:/demo/tbs01.dbf
已复制 1 个文件。
(4) 插入表空间到目标数据库。
SQL> host impdp system/orcl@demo directory=dump_dir dumpfile=transport.dmp trans
port_datafiles=d:/demo/tbs01.dbf remap_schema=scott:hr
Import: Release 10.2.0.1.0 - Production on 星期一, 05 1月, 2009 14:30:55
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已成功加载/卸载了主表 "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01"
启动 "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01": system/********@demo directory=dum
p_dir dumpfile=transport.dmp transport_datafiles=d:/demo/tbs01.dbf remap_schema=
scott:hr
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型 TRANSPORTABLE_EXPORT/TABLE
处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
作业 "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" 已于 14:31:05 成功完成
SQL> alter tablespace tbs01 read write;
表空间已更改。