DataDump基础框架及参数介绍

expdp/impdp工具看起来很像exp/imp,这里郑重的说明,这是两个不同的工具。通过expdp dump出来的文件,imp是无法dump进去库里,反之,亦然。
一、oracle数据库泵工具组件
1、命令行客户端 expdp和impdp
2、data pump api==>dbms_datapump pl/sql包

3、metadata api==>dbms_metadata pl/sql包

下面的结构图是11g,我这边文章是参考10gR2,中间可能有点出入

DataDump基础框架及参数介绍_第1张图片

三者之间的关系:
在命令行上使用一些参数,expdp和impdp客户端利用dbms_datapump包提供的proc来执行导出导入;
dbms_datapump和dbms_metadata包可不通过数据泵客户端来独立使用;

数据库泵有两种方法加载和卸载表数据:direct path和external tables

数据泵利用a master table、a master process、worker processes来工作和保证工作进度的跟踪

job工作进度的跟踪==>
一个主表会被用来跟踪正在被传输的data和metadata的job
1、对于export的job,master表记录dump文件里本地数据库的对象。在执行export期间建立和维护master表。在export job结束后,master表的内容被写入到dump文件集里。
2、对于import的job,master表从dump文件集里被加载和用来控制导入到目标库本地对象的操作顺序。
master表被创建在执行expdp/impdp操作schema下。因此,用户要有tablespace quota权限来创建它;master表的名字和创建job的名字是一样的,因此,不能指定job名字与schema下的table或view名一样。
master表是保留还是删除,依赖如下的情况
a)、Upon successful job completion, the master table is dropped.
b)、 If a job is stopped using the STOP_JOB interactive command, the master table is retained for use in restarting the job.
c)、 If a job is killed using the KILL_JOB interactive command, the master table is dropped and the job cannot be restarted.
d)、If a job terminates unexpectedly, the master table is retained. You can delete it if you do not intend to restart the job.
e)、 If a job stops before it starts running (that is, it is in the Defining state), the master table is dropped.

job执行过程的监控
v$session_longops视图是数据泵传输表数据(export and import)维护的接口。它包含了估算传输数据的大小和周期性的更新实际的数据传输的量;此视图在评估table里的信息后才会出现相关信息。具体v$session_longops视图的信息,请查看官方文档参考手册
查询impdp/expdp的运行情况==>
set linesize 200;
col username for a25;
col opname for a25;
col total for a20;
col remain for a15;
col sofar for a20;
SELECT sl.username,
       sl.opname,
       sl.target_desc,
       sl.totalwork||sl.UNITS as total,
       sl.SOFAR||sl.UNITS as sofar,
       sl.TOTALWORK - sl.SOFAR||sl.UNITS AS remain
  FROM v$session_longops sl ;

泵的文件类型
1、dump文件包含了被移动的数据和元数据
2、记录相关操作的日志文件
3、SQLFILE操作的sql ddl操作的记录文件;SQLFILE操作在impdp里的SQLFILE参数指定的,所有的结果将在SQLFILE参数文件指定的文件里;

dump,log,sql file放置位置的指定
因为data pump是基于server端的,data pump要求之定义个文件夹目录作为文件夹对象,即一个文件对象映射一

你可能感兴趣的:(ORACLE基本概念)