数据库知识:Oracle中传输表空间

发表于:2007-05-26来源:作者:点击数: 标签:
Oracle中的传输表空间功能,用来将一个实例中的表空间和数据文件移到另一个实例中。 执行起来方便,快捷。但是要使用该功能有一些限制:需要两个平台一致,必须有相同的字符集和多语言字符集。 要求两个实例的db block size 大小相等,如不相等则需要兼容9.0

Oracle中的传输表空间功能,用来将一个实例中的表空间和数据文件移到另一个实例中。 执行起来方便,快捷。但是要使用该功能有一些限制:需要两个平台一致,必须有相同的字符集和多语言字符集。

要求两个实例的db block size 大小相等,如不相等则需要兼容9.0以上等。

具体步骤如下:

 

SQL> --example表空间试验
            SQL> connect sys/system as sysdba
            Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.2.0
            Connected as SYS
            SQL> execute dbms_tts.transport_set_check('EXAMPLE',TRUE);
            PL/SQL procedure successfully completed
            SQL> SELECT * FROM TRANSPORT_SET_VIOLATIONS;
            VIOLATIONS
            --------------------------------------------------------------------------------
            SQL> --如果上面的查询可以查到记录,则说明不适合表空间传输条件, 需要根据实际
            SQL> --情况将对象移到别的表空间;
            SQL>
            C:\Documents and Settings\hawk>exp userid='sys/system as sysdba' transport_table
            space=y tablespaces=EXAMPLE file ='d:\a.dmp';
            Export: Release 10.1.0.2.0 - Production on 星期三 7月 12 14:46:27 2006
            Copyright (c) 1982, 2004, Oracle.  All rights reserved.

 

连接到: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production

With the Partitioning, OLAP and Data Mining options

已导出 ZHS16GBK 字符集和 AL16UTF16 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\ora10g\oradata\ora10g\EXAMPLE01.DB
            F d:\EXAMPLE01.DBF
            已复制         1 个文件。

 

C:\Documents and Settings\hawk>imp userid='sys/system as sysdba' file='d:\a.dmp'
            transport_tablespace=y datafiles='d:\EXAMPLE01.DBF'
            Import: Release 10.1.0.2.0 - Production on 星期三 7月 12 15:00:31 2006
            Copyright (c) 1982, 2004, Oracle.  All rights reserved.
            连接到: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
            With the Partitioning, OLAP and Data Mining options

经由常规路径由 EXPORT:V10.01.00 创建的导出文件

即将导入可传输的表空间元数据...

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入

. 正在将 SYS 的对象导入到 SYS

IMP-00017: 由于 ORACLE 错误 29349, 以下语句失败:

"BEGIN sys.dbms_plugts.beginImpTablespace('EXAMPLE',6,'SYS',1,0,8192,1,438"

"998,1,2147483645,8,128,8,0,1,0,8,3914340468,1,33,320552,NULL,0,334814,NULL,"

"NULL); END;"

IMP-00003: 遇到 ORACLE 错误 29349

ORA-29349: 表空间 'EXAMPLE' 已存在

ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1728

ORA-06512: 在 line 1

IMP-00000: 未成功终止导入

 

--因为测试是在同一个实例中进行,所以出现上面的表空间已存在错误.

 

SQL> alter tablespace example read write;

 

Tablespace altered

 

C:\Documents and Settings\hawk>

原文转自:http://www.ltesting.net