一 expdb/impdb
data pump有以下三个部分组成:
客户端工具:expdb/ impdb
data pump api (即DBMS_DATAPUMP)
metadata api (即DBMS_METADATA)
默认情况下,用户可导出/导入自己schema下的数据,但如果要导出/导入其他schema下的数据,必须要把以下两个角色赋予改用户:
DATAPUMP_EXP_FULL_DATABASE
DATAPUMP_IMP_FULL_DATABASE
sys,sysdba账户和dba角色默认拥有以上两个角色。
1、导入方法:
数据文件拷贝:这种最快的方法,dumpfile里面只包含元数据,在操作系统层面拷贝数据文件,相关参数有:TRANSPORT_TABLESPACES, TRANSPORTABLE=ALWAYS
直接路径加载:这是除了拷贝文件之外最快的方法,除非无法用(比如BFILE), 否则用用这种方法
外部表:第1,2种方法无法使用的情况下,才会使用外部表
传统路径加载:只有在以上所有方法都不可用的情况下,才会使用传统路径加载,这种方法性能很差
1.1 当执行expdb/impdb 时,柒拾是起了job 执行导出导入工作,一个Data Pump job 由以下三部分组成:
主进程(master process):控制整个job, 是整个job的协调者;
主表(master table):记录dumpfile 里数据库对象的元信息,expdb结束时将它写入dumpfile里,impdb开始时读取他,这样才能知道dunmpfile里的内容;
工作进程(worker processes):执行导出到日工作,根据实际情况自动创建多个工作进程并执行,但不能超过参数PARALLEL定义的个数。
2 优点
断点记录:master tanle 在数据泵的作用,保存运行过程中的要处理的对象信息、正在处理的对象信息;
可以只处理某些对象,或者不处理某些对象,或者只处理某些对象下满足条件的数据
不实际导出的情况下,估计结果占用空间。
通过数据库链接,将远程数据库导出到存储文件
通过数据库连接,将远程主机其他数据库导入到当前主机的数据库,实现跨平台迁移。
导入时,可以修改导入数据所在的schema名称、表空间名称以及数据文件名称
通过采样,导出部分数据
只导出元数据,不到处实际数据,可以指定是否压缩
可以进行并操作。
在屏幕的输出、logfile里都能看到当前data pump job 的运行情况, 在数据库里也可以查询视图:DBA_DATAPUMP_JOBS,USER_DATAPUMP_JOBS, or DBA_DATAPUMP_SESSIONS。
对于时间比较长的job, 可以在动态视图V$SESSION_LONGOPS查看当前job完成情况以及预估多久能全部完成, 具体字段的意义如下:
USERNAME - job owner
OPNAME - job name
TARGET_DESC - job operation
SOFAR - megabytes transferred thus far during the job
RORALWORK - estmated number of megabytes in the job
UNITS - megabytes (MB)
MESSAGE - a formatted status message of the form: 'job_name: operation_name : nnn out of mmm MB done'
3 五种模式
"Full Export Mode" //设置full=y(默认为n),导出全部库
"Schema Mode" //导出一个或多个schema(参数SCHENAS),默认导出当前用户的schema,只有拥有DATAPUMP_EXP_FULL_DATABASE角色才能导出其他Schemas
"Table Mode"
"Tablespace Mode"
"Transporttable Tablespace Mode"
目录对象