impdp工具

Oracle Data Pump(以下简称数据泵)是Oracle 10g开始提供的一种数据迁移工具,同时也被广大DBA用来作为数据库的逻辑备份工具和体量较小的数据迁移工具。与传统的数据导出/导入工具,即exp/imp工具相比,数据泵更为高效和安全,数据泵主要包含以下三个部分:

操作系统命令行客户端,expdpimpdp

DBMS_DATAPUMP PL/SQL包(也被认为是Data Pump API);

DBMS_METADATA PL/SQL包(也被认为是Metadata API)。

DBMS_DATAPUMP包主要执行实际数据的导出和导入工作,expdp和impdp命令也是通过命令行调用该包当中的存储过程实现数据导出导入功能,这个包是数据泵当中最核心的部分;
DBMS_METADATA包主要提供当数据导出导入用于元数据移动时,对元数据内容的提取、修改和重新创建的功能。

本文主要讨论的是命令行工具expdpimpdp。关于数据泵更详细的内容可以参考官方文档说明:

主要说明

数据泵操作系统命令行分为导出工具expdp,导入工具impdp,对比早期版本的数据导出导入工具而且有着较大的效率性能提高,主要包含以下优点:

支持并行地进行数据导出和导入任务;

支持暂停、重启动任务;

支持更多的对象类型的过滤;

支持导入任务中元数据对象的修改、重映射;

支持预估导出任务所需的空间大小需求,以便合理规划存储导出任务数据的路径。

环境准备

操作系统(OS)CentOS Linux release 7.5.1804 (Core)

数据库版本(Oracle Database):Oracle Database 11g R2(11.2.0.4.0)

同时配置了示例SCHEMA和解锁了用户SCOTTHR

创建数据泵导出导入目录

SYS@dbabd> create directory datapump as '/data/app/datapump'; Directory created. SYS@dbabd> select directory_name,directory_path from dba_directories; DIRECTORY_NAME DIRECTORY_PATH ------------------------------ --------------------------------------------- SUBDIR /data/app/oracle/product/11.2.0/db_1/demo/schema/order_entry//2002/Sep SS_OE_XMLDIR /data/app/oracle/product/11.2.0/db_1/demo/schema/order_entry/ DATAPUMP /data/app/datapump LOG_FILE_DIR /data/app/oracle/product/11.2.0/db_1/demo/schema/log/ MEDIA_DIR /data/app/oracle/product/11.2.0/db_1/demo/schema/product_media/ DATA_FILE_DIR /data/app/oracle/product/11.2.0/db_1/demo/schema/sales_history/ XMLDIR /data/app/oracle/product/11.2.0/db_1/rdbms/xml ORACLE_OCM_CONFIG_DIR /data/app/oracle/product/11.2.0/db_1/ccr/hosts/dbabd/state DATA_PUMP_DIR /data/app/oracle/admin/dbabd/dpdump/ ORACLE_OCM_CONFIG_DIR2 /data/app/oracle/product/11.2.0/db_1/ccr/state 10 rows selected

授予用户读写目录权限

SYS@dbabd> grant read,write on directory datapump to scott; Grant succeeded. SYS@dbabd> grant read,write on directory datapump to hr; Grant succeeded.

授予用户DATAPUMP_EXP_FULL_DATABASE角色和DATAPUMP_IMP_FULL_DATABASE角色权限
为了使scott和hr用户有导出/导入全库的权限,所以授予这两个用户DATAPUMP_EXP_FULL_DATABASE角色和DATAPUMP_IMP_FULL_DATABASE角色权限

SYS@dbabd> grant DATAPUMP_EXP_FULL_DATABASE to scott; Grant succeeded. SYS@dbabd> grant DATAPUMP_IMP_FULL_DATABASE to scott; Grant succeeded. SYS@dbabd> grant DATAPUMP_EXP_FULL_DATABASE to hr; Grant succeeded. SYS@dbabd> grant DATAPUMP_IMP_FULL_DATABASE to hr; Grant succeeded. expdp工具

Oracle Data Pump Export(以下简称为export)是数据泵用于将数据和元数据从数据库中导出并存储在操作系统上一组转储文件集的工具(对应操作系统命令为expdp)。导出的转储文件集只能通过数据泵导入工具impdp进行导入,文件集可以在本系统进行导入同时也支持在其他系统上进行导入。文件集包含一个或多个文件,这些文件分别存储了表实际数据、对象元数据和控制信息,文件集存储格式为专有的二进制格式。

由于expdp工具是服务端而非客户端工具,因此DBA必须为导出操作用户指定目录对象来存储转储文件集,目录对象是数据库对象,在操作系统层面对应的文件路径。

工作方式

expdp命令行工具主要有三种工作方式:

命令行方式(Command-Line Interface)
通过命令行方式直接为expdp指定相应的参数文件进行导出任务。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c5f5211542d385175e71281df8fffac0.html