日期:2014-05-16 浏览次数:20495 次
很久以前做的实例,现在重新整理一下。
假设我们要传输下面的表空间:
Tablespace |
Datafile |
licz_1 |
/oradata/orcl/licz01.dbf |
licz_2 |
/oradata/orcl/licz02.dbf |
步骤1:确定系统是否支持和字节串是支持传输表空间
这个步骤适应于不于系统间的表空间的传输,如果是相同系统平台则不需要这步,否则用下面的查询判断表空间传输是否支持:
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 IA (32-bit) Little
目标系统查询结果:
PLATFORM_NAME ENDIAN_FORMAT
------------------------------- --------------
Microsoft Windows IA (32-bit) Little
注意:我们看到查询结果是两个系统PLATFORM_NAME和ENDIAN_FORMAT的bit和ENDIAN_FORMAT是相同,所以这两个平台间可以相互表空间传输,不需要转换表空间集,否则要需要转换表空间集。
步骤2:选择一个独立的表空间集
在这可传输集的外面可能存在逻辑或物理对象信赖,你只能传输一个独立的表空间集,下面情况是违反表空间集的独立性的:
l 一个索引在这个表空间里而这个表在表空间的外部,注意:如果表空间中的表相应的索引在表空间的外面,这不违例
l 分区表的一部分在表空间集里
l 一个参照完整性约束在表上。当在传输表空间集时,你可以选择是否包括完整性约束,如果你不考虑传输约束,这表空间的独立性不受影响,否则这是违例的
l 在表空间中有指向外部的lob字段
l An XML DB schema (*.xsd) that was registered by user A imports a global schema that was registered by user B, and the following is true: the default tablespace for user A is tablespace A, the default tablespace for user B is tablespace B, and only tablespace A is included in the set of tablespaces.
<