1.技术概述
数据泵技术是基于PL/SQL的DBMS_DATAPUMP提供的
通过两个方式可以使用 一个是命令行模式 一个是基于WEB的企业级别图像界面管理工具完成数据的迁移。
1)数据泵与IMP/EXP的区别
是基于IMP/EXP的,但是比IMP/EXP速度块 单线程比EXP快2倍 比IMP快15-45倍,并且支持多线程。
在导出的文件中 以XML的形式存储DDL语句
2)主表
主表是一个创建在运行数据泵作业的用户模式中的比较小的表,该表用于维护所有作业的目录,存储当前输出或者输入数据实体的状态以及在泵文件中的位置,作业运行的参数以及每一个工作进程的状态,重启信息等。 在设置FILESIZE限制文件大小,必须保证文件可以存储主表信息。
2.使用
客户进程(Client Process)
影子进程(Shadow process)
主控制进程(master control process:MCP)
工作者进程(workder process)
创建目录 SQL> CREATE DIRECTORY dpump_dir as '/home3/oracle/ora10/pumpdata';
赋予目录的权限 SQL> GRANT READ,WRITE TO DIRECTORY dpump_dir to scott;
命令行下导出 $ DATA_PUMP_DIR=dpump_dir
$ export DATA_PUMP_DIR
数据泵导出 $expdp scott/tiger tables=emp dumpfile=emp.dmp DIRECTORY=dpump_dir
WINDOWS 2000 下导出
c:/>expdp scott/tiger dumpfile=scott directory=dpump_dir
使用数据泵完成数据导入
c:/>impdp scott/tiger dumpfile=scott directory=dpump_dir
3.利用数据泵技术进行表空间的传输
1)检查数据所在的平台
select d.platform_name,endian_format
from v$stransportable_platform tp,v$database d
where tp.platform_name=d.platform_name;
2)检查表空间的字包含性
execute dbms_tts.transport_set_check('sales_1,'true'); 返回值为空 表示没有约束关系
select * from transport_set_violations;
进一步要求必须有SYS用户进行。检查表空间和其他表空间之间是否有约束关系。
3)设置表空间为只读 SQL> alter tablespace sales_1 read only;
4)用数据泵导出表空间 expdp system/password dumpfile=sales.dmp directory = dpump_dir tansport_tablespaces=sales_1
5)如果转换的平台不同 必须使用RMAN在原来的平台上进行文件类型的转换
rman target sys/sales
RMAN> convert tablespace sales_1,sales_2 to platform 'mircrosoft windows nt' format '/temp/%u';
6)将转换后的文件传输到目标平台上
7)导入表空间
impdp system/oracle dumpfile=sales.dmp directory-dpump_dir transport_datafiles=/salesdb/sales_1.dbf
8)将表空间设置成为READ WRITE
ALTER TABLESPACE sales_1 READ WRITE;