千家信息网

数据泵---EXPDP

发表于:2024-12-01 作者:千家信息网编辑
千家信息网最后更新 2024年12月01日,EXPDP/IMPDP只能在数据库服务器段运行特点:采用路径上载和直接路径装入技术,提高了执行效率可以在数据库服务器端多线程并行执行大量数据的导入与导出可以使用DBMS_DATAPUMP PL/SQL
千家信息网最后更新 2024年12月01日数据泵---EXPDP

EXPDP/IMPDP只能在数据库服务器段运行

特点:

采用路径上载和直接路径装入技术,提高了执行效率

可以在数据库服务器端多线程并行执行大量数据的导入与导出

可以使用DBMS_DATAPUMP PL/SQL API建立、检测和调整数据库导出、导入任务

数据泵技术具有重新启动作业的能力

注意:EXPDP实用程序与EXP实用程序相互之间不相容

创建目录对象

使用CREATE DIRECTORY语句创建目录对象

create or replace directory dumpdir as 'xxxxxx'

使用GRANT语句为用户授予目录对象读写权限。

grant read,write on directory to hr;

可以查询数据字典视图DBA_DIRECTORIES查看数据库所有的目录对象

select * from DBA_DIRECTORIES;


导出模式

全库导出模式

通过FULL指定,导出整个数据库。用户需要具有DATAPUMP_EXP_FULL_DATABASE 角色

模式导出模式--------将一个或多个模式中的对象元数据几行数据导出到转储文件中

通过参数SCHEMAS指定,是默认的导出模式。导出指定模式中的所有对象

有DATAPUMP_EXP_FULL_DATABASE 角色------可以指定要进行导出的角色列表,包括导出模式的定义以及模式具有的系统权限

没有DATAPUMP_EXP_FULL_DATABASE 角色--------只能导出用户对应的模式。不能导出SYS模式的对象,如果没有在导出模式中明确指出,参照的模式对象不会被导出

表导出模式

通过参数TABLES指定,导出指定模式中指定的所有表,分区,及其依赖对象。

如果指定了参数TRANSPORTABLE=ALWAYS,则只有对象元数据被导出。

如果要导出的表不属于当前用户模式,需要具有DATAPUMP_EXP_FULL_DATABASE角色。

注意:表中的列的数据类型定义不会被导出,因此需要在目标数据库中也具有列的数据类型的定义。

参照模式中的对象不会被导出。


表空间导出模式---------是将一个或多个表空间的所有表及其依赖对象的元数据及行数据导出到转储文件

通过参数TABLESPACES指定,导出指定表空间中所有表以及其依赖对象的元数据和行数据


传输表空间导出模式

通过参数TRANSPORT_TABLESPACES指定,导出指定表空间中所有表及其依赖对象的元数据

表空间包含的数据文件需要单独导出进行复制。

传输表空间导入的时候需要导入包含表空间元数据的转储文件,并指定相应的数据文件。

表空间传输模式的导出一旦停止就无法重新开始,而且不能并行进行表空间传输模式的导出。

传输表空间的导出模式不支持加密列的导出。

不能将导出的传输表空间导入低版本的数据中。


命令参数----可以使用expdp help=y 获得,太多了不想枚举



交互命令        Ctrl+C组合键进入交互式命令模式        常用                add_file                exit_client                filesize                help                kill_job                parallel                start_job                status                stop_job示例 1        导出hr模式下employees表和departments表,        转储文件为emp_dept.dmp ,        日志文件名称emp_dept.log,        作业名称为emp_dept_job,        导出操作启动3个进程        (可以使用query参数设置导出条件,知道出符合条件的行与列数据)expdp hr/hrdirectory=dumpdir tables=employees,departments dumpfile=emp_dept.dmp logfile=emp_dept.log jobname=emp_dept_job parallel=3示例 2        导出hr.employees表中部门号大于50且工资大于7000元的员工信息expdp hr/hr directory=dumpdir dumpfile=exp2.dmp tables=employees nologfile=y query='employees:"where department>50 and salary>7000"'示例 3        在导出hr.employees,hr.departments,hr.locations 数据之前估计所需空间的大小expdp hr/hr directory=dumpdir estimate_only=yes tables=employees,departments,locations logfile=estimate.log示例 4          导出hr模式下的所有对象的元书库以及行数据expdp hr/hr directory=dumpdir dumpfile=hr.dmp logfile=hr.log schemas=hr job_name=exp_hr_schema示例 5         导出example,users表空间中的所有表及其依赖对象的元数据和行数据expdp hr/hr directory=dumpdir dumpfile=tsp.dmp tablespaces=example,users示例 6        导出example,users表空间中所有元数据expdp hr/hr directory=dumpdir dumpfile=tts.dmp transport_tablespaces=example,users transport_full_check=y示例 7        将当前数据全部导出,不写日志文件expdp hr/hr directory=dumpdir dumpfile=expfull.dmp  full=yes nologfile=yes



0