Oracle数据泵(Oracle Data Pump) 可以实现数据的高速移动,数据泵是基于数据库服务端的,它运行在数据库内部,而不是一个独立运行的客户端应用程序。
数据泵由三部分组成:命令行客户端(expdp和impdp)、数据泵API、元数据API。expdp和impdp调用数据泵API和元数据API共同完成数据的迁移。
数据泵移动数据有四种方式:数据文件复制(Data file copying)、直接路径(direct path)、外部表(external tables)、网络链接导入(network link import)
1.文件目录
Oracle使用目录对象(directory object)来管理DUMP文件、日志文件和SQL文件。
创建目录对象,确保数据库对目录有读写权限。
CREATE DIRECTORY DMP_DIR AS 'D:\DUMP' ;
2.导出工具(data pump export)
导出工具用于把数据库中的数据(包括元数据)导出成一系列的操作系统文件(dump file set),dump文件只能被导入工具执行导入。DUMP文件包括表的数据、元数据和控制信息等。
包括全库导出模式、模式导出(用户导出)、表导出模式、表空间导出模式、可移动表空间导出模式。
1.全库导出
expdp tuser directory = dmp_dir dumpfile=fulldb.dmp full = y ;
2.模式导出,下例导出用户cc和dd的对象
expdp ttm directory = dmp_dir dumpfile = userdum.dmp schemas = cc,dd ;
3.表导出模式
expdp system directory = dmp_dir dumpfile = dumptable.dmp tables = tuser.info,kk.sales:sales_p2 ;
--导出用户tuser的info表,用户kk的sales表的分区sales_p2的数据
4.表空间导出模式
expdp system directory = dmp_dir dumpfile=dumptbs.dmp tablespace=tbs1,tbs2 ;
5.可移动表空间导出模式
expdp system directory=dmp_dir dumpfile = dumptbs.dmp transport_tablespace = tbs1;
---仅仅导出表空间中表的元数据。
3.导入工具(data pump import)
导入工具用于把DUMP文件的数据导入目标数据库。
包括全库导入模式、模式导入、表导入、表空间导入、可移动表空间导入。
1.将用户eus的数据导入用户tt
impdp system directroy=dmp_dir dumpfile=eus.dmp remap_schema=eus:tt
2.表重命名
impdp eus directory=dmp_dir dumpfile = expsdata.dmp tables=eus.emt remap_table=eus.emt:empt;
3.从一个表空间导入另外一个表空间
impdp eus remap_tablespace = s_tbs:t_tbs directory = dmp_dir ;