Oracle中的传输表空间功能用来将一个实例中的表空间和数据文件移到另一个实例中 执行起来方便快捷但是要使用该功能有一些限制需要两个平台一致必须有相同的字符集和多语言字符集
要求两个实例的db block size 大小相等如不相等则需要兼容以上等
具体步骤如下
SQL> example表空间试验SQL> connect sys/system as sysdbaConnected to Oracle Database g Enterprise Edition Release Connected as SYSSQL> execute dbms_ttstransport_set_check(EXAMPLETRUE);PL/SQL procedure successfully completedSQL> SELECT * FROM TRANSPORT_SET_VIOLATIONS;VIOLATIONSSQL> 如果上面的查询可以查到记录则说明不适合表空间传输条件 需要根据实际SQL> 情况将对象移到别的表空间;SQL> C:\Documents and Settings\hawk>exp userid=sys/system as sysdba transport_tablespace=y tablespaces=EXAMPLE file =d:\admp;Export: Release Production on 星期三 月 :: Copyright (c) Oracle All rights reserved
连接到: Oracle Database g Enterprise Edition Release Production
With the Partitioning OLAP and Data Mining options
已导出 ZHSGBK 字符集和 ALUTF NCHAR 字符集
注: 将不导出表数据 (行)
即将导出可传输的表空间元数据
对于表空间 EXAMPLE
正在导出簇定义 正在导出表定义 正在导出表 REGIONS 正在导出表 COUNTRIES 正在导出表 LOCATIONS 正在导出表 DEPARTMENTS 正在导出表 JOBS 正在导出表 EMPLOYEES 正在导出表 JOB_HISTORY 正在导出表 CUSTOMERS 正在导出表 WAREHOUSES 正在导出表 ORDER_ITEMS 正在导出表 ORDERS 正在导出表 INVENTORIES 正在导出表 PRODUCT_INFORMATION 正在导出表 PRODUCT_DESCRIPTIONS 正在导出表 PROMOTIONS 正在导出表 ORDERS_QUEUETABLE 正在导出表 AQ$_ORDERS_QUEUETABLE_S 正在导出表 AQ$_ORDERS_QUEUETABLE_T 正在导出表 AQ$_ORDERS_QUEUETABLE_H 正在导出表 AQ$_ORDERS_QUEUETABLE_G 正在导出表 AQ$_ORDERS_QUEUETABLE_I 正在导出表 STREAMS_QUEUE_TABLE 正在导出表 AQ$_STREAMS_QUEUE_TABLE_S 正在导出表 AQ$_STREAMS_QUEUE_TABLE_T 正在导出表 AQ$_STREAMS_QUEUE_TABLE_H 正在导出表 AQ$_STREAMS_QUEUE_TABLE_G 正在导出表 AQ$_STREAMS_QUEUE_TABLE_I 正在导出表 TIMES 正在导出表 PRODUCTS 正在导出表 CHANNELS 正在导出表 PROMOTIONS 正在导出表 CUSTOMERS 正在导出表 COUNTRIES 正在导出表 SUPPLEMENTARY_DEMOGRAPHICS 正在导出表 CAL_MONTH_SALES_MV 正在导出表 FWEEK_PSCAT_SALES_MV 正在导出表 SALES 正在导出表 COSTS 正在导出表 MVIEW$_EXCEPTIONS 正在导出表 ONLINE_MEDIA 正在导出表 PRINT_MEDIA 正在导出引用完整性约束条件 正在导出触发器 结束导出可传输的表空间元数据
成功终止导出 没有出现警告
C:\Documents and Settings\hawk>C:\Documents and Settings\hawk>C:\Documents and Settings\hawk>copy D:\system\orag\oradata\orag\EXAMPLEDBF d:\EXAMPLEDBF 已复制 个文件
C:\Documents and Settings\hawk>imp userid=sys/system as sysdba file=d:\admp transport_tablespace=y datafiles=d:\EXAMPLEDBFImport: Release Production on 星期三 月 :: Copyright (c) Oracle All rights reserved连接到: Oracle Database g Enterprise Edition Release Production With the Partitioning OLAP and Data Mining options
经由常规路径由 EXPORT:V 创建的导出文件
即将导入可传输的表空间元数据
已经完成 ZHSGBK 字符集和 ALUTF NCHAR 字符集中的导入
正在将 SYS 的对象导入到 SYS
IMP: 由于 ORACLE 错误 以下语句失败:
BEGIN sysdbms_plugtsbeginImpTablespace(EXAMPLESYS
NULLNULL
NULL); END;
IMP: 遇到 ORACLE 错误
ORA: 表空间 EXAMPLE 已存在
ORA: 在 SYSDBMS_PLUGTS line
ORA: 在 line
IMP: 未成功终止导入
因为测试是在同一个实例中进行所以出现上面的表空间已存在错误
SQL> alter tablespace example read write;
Tablespace altered
C:\Documents and Settings\hawk>