yangtingkun
===========================================================
EXPDP转化表空间
===========================================================

在使用EXP/IMP进行数据的迁移,经常会需要转换表空间的操作。

这里介绍10g的数据泵是如何进行表空间的转换的。

EXP转换表空间:http://yangtingkun.itpub.net/post/468/455820

EXP转化表空间(二):http://yangtingkun.itpub.net/post/468/456284


前面两篇文章介绍了EXP/IMP在导出、导入表的时候,如何转换原有的表空间。

对于表包含多个段的情况,EXP/IMP工具没有完全实现表空间存储参数的转化,因此使得转化表空间变得十分困难。

而数据库EXPDP/IMPDP由于采用了DBMS_METADATA来获取源数据,因此在转化表空间的时候可以完整的全部替换。解决了分区表、LOB表以及包含OVERFLOW段的索引组织表的表空间转化问题。

使用数据泵进行操作使得问题变得十分简单,只需要导入的时候执行指定一个参数就可以了:

SQL> CREATE TABLE T_PARTITION (ID NUMBER, NAME VARCHAR2(30))
2 PARTITION BY RANGE (ID)
3 (PARTITION P1 VALUES LESS THAN (100) TABLESPACE EXAMPLE,
4 PARTITION P2 VALUES LESS THAN (MAXVALUE) TABLESPACE EXAMPLE);

表已创建。

SQL> INSERT INTO T_PARTITION SELECT ROWNUM, TABLE_NAME FROM DBA_TABLES;

已创建1640行。

SQL> COMMIT;

提交完成。

数据泵导出这个表:

E:>expdp yangtk/yangtk directory=d_output dumpfile=t_partition.dp tables=t_partition

Export: Release 10.2.0.1.0 - Production on 星期二, 21 10, 2008 0:33:07

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
启动
"YANGTK"."SYS_EXPORT_TABLE_01": yangtk/******** directory=d_output dumpfil
e=t_partition.dp tables=t_partition
正在使用 BLOCKS 方法进行估计
...处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA使用 BLOCKS 方法的总估计: 192 KB处理对象类型 TABLE_EXPORT/TABLE/TABLE
. .
导出了 "YANGTK"."T_PARTITION":"P2" 44.82 KB 1541

. .
导出了 "YANGTK"."T_PARTITION":"P1" 6.804 KB 99 已成功加载/卸载了主表 "YANGTK"."SYS_EXPORT_TABLE_01"
******************************************************************************
YANGTK.SYS_EXPORT_TABLE_01
的转储文件集为
:
E:DMPT_PARTITION.DP
作业 "YANGTK"."SYS_EXPORT_TABLE_01" 已于 00:33:29 成功完成

下面删除测试表:

SQL> DROP TABLE T_PARTITION PURGE;

表已删除。

在使用数据泵导入的时候指定参数REMAP_TABLESPACE参数来转化表空间:

E:>impdp yangtk/yangtk directory=d_output dumpfile=t_partition.dp remap_tablespace=example:yangtk

Import: Release 10.2.0.1.0 - Production on 星期二, 21 10, 2008 0:35:37

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
已成功加载/卸载了主表
"YANGTK"."SYS_IMPORT_FULL_01"启动 "YANGTK"."SYS_IMPORT_FULL_01": yangtk/******** directory=d_output dumpfile
=t_partition.dp remap_tablespace=example:yangtk
处理对象类型
TABLE_EXPORT/TABLE/TABLE处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. .
导入了 "YANGTK"."T_PARTITION":"P2" 44.82 KB 1541

. .
导入了 "YANGTK"."T_PARTITION":"P1" 6.804 KB 99 作业 "YANGTK"."SYS_IMPORT_FULL_01" 已于 00:35:39 成功完成

检查分区表的表空间信息:

SQL> SELECT TABLE_NAME, PARTITION_NAME, TABLESPACE_NAME
2 FROM USER_TAB_PARTITIONS
3 WHERE TABLE_NAME = 'T_PARTITION';

TABLE_NAME PARTITION_NAME TABLESPACE_NAME
------------------------------ ------------------------------ --------------------
T_PARTITION P1 YANGTK
T_PARTITION P2 YANGTK

对于10g以上版本,通过数据泵的REMAP_TABLESPACE可以轻易的转化导入表的表空间信息,不用在导入直接手工提前建表了。

yangtingkun 发表于:2008.10.20 23:39 ::分类: ( ORACLE ) ::阅读:(1225次) :: 评论 (0)

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)

 authimage


切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最新评论...
最多阅读文章...
最多评论文章...
博客统计...
Blog信息
网站链接...