Focus On Oracle

Installing, Backup & Recovery, Performance Tuning,
Troubleshooting, Upgrading, Patching

Oracle Engineered System


当前位置: 首页 » 技术文章 » 备份恢复

Oracle DataPump

DATAPUMP

从10g开始Oracle引入了数据泵(Datapump)功能,她比之前传统的导出导入(exp imp)工具有了很多改进,是服务器端工具。采用并行可以在很短的时间内传输大量的数据。她实际上是通过job的方式在运行,我们可以很容易的去停止、启动、查看她,也能更好的去监控。数据泵的功能也在不断完善,12c中压缩算法有了改进,视图也可以作为表导出,日志信息也丰富了。


数据泵主要组件

dbms_datapump 通过这个包去驱动数据的导出和导入,也称为Data Pump API
dbms_metadata 通过这个包我们可以获取对象的元数据(对象的定义),也称为Metadata API
客户端命令行工具 expdp,impdp
数据泵的优势
失败后可以重启失败的job
性能有了很大提升(采用并行。参数parallel)
粒度更细(导出时选择性高多。参数exclude,include)
可以监控job的运行情况
重新映射功能(映射数据文件,表空间,映射用户。参数remap_datafile,remap_tablespace,remap_schemas)
通过网络可以直接把远端数据库装载到本地(参数network_link)
数据泵能做的事情
复制、迁移数据库
在异构平台上传输数据
数据逻辑备份
通过传输表空间迁移到不同平台的数据库
数据整理(通过这个,可以消除数据碎片,减小cluster_factor)
获取对象的定义(存储过程,包,表,索引,函数等)
数据泵的文件
dmp文件 - 存放元数据和数据
log文件 - 导出/导入日志
sql文件 - 存放DDL语句的内容
数据泵工作原理
数据泵job用一个主表(master table),一个主进程(master process),多个工作进程(worker processes)去工作并跟踪进度。数据泵Master Process,也称Master Control Process(MCP),进程的名字是DMnn(Data Pump Master Process),一个job只有一个主进程,她控制着整个数据库的工作,主要做一下工作:
创建并控制job
创建和管理worker processes
监控job和log的进程
维护master table中的job状态、进度、重启信息等
管理dmp文件集的文件
主进程(Master process)会创建一个Master Table(在执行导出的用户下创建),这个主表包含了导出数据的信息,job的信息等。导出成功后这个表会被删除,如果失败,这个表会保留。导入时也会也同样会创建这样一张表。

主表(Master table),在导出/导入时会创建一个Master表,这个表主要用于控制job,导入导出成功后会删除,如果失败,这个表会保留。

工作进程(worker process)进程的名字是DWnn(Data Pump Worker Process),也是真正的工作者,她会更新Master Table里的job信息。你可能有多个工作进程,根据你用的并行参数决定。

客户端进程(client processes)这个就是你的客户端命令expdp impdp

数据泵导出/导入所需的权限
这2个角色的权限也是很大的,授权的时候需谨慎。
DATAPUMP_EXP_FULL_DATABASE
DATAPUMP_IMP_FULL_DATABASE

数据泵导出

分为四种模式:数据库、用户、表空间、表

database

expdp system/password directory=dpump full=y dumpfile=data.dmp filesize=2G parallel=2 logfile=expdp.log

schema

expdp sys/password schemas=hr directory=dpump dumpfile=data.dmp logfile=schema.log

tablespace

expdp system/password directory=dpump tablespaces=users dumpfile=data.dmp logfile=tbs.log

table

expdp hr/password directory=dpump tables=employees dumpfile=data.dmp content=metadata_only


数据泵导入

database

impdp system/password directory=dpump full=y dumpfile=data.dmp parallel=8 logfile=impdp.log

schema    

impdp system/password directory=dpump schemas=HR remap_schema=HR:HR_TEST parallel=8 logfile=impdp.log 


常用参数
directory 指定目录
filesize 指定导出文件大小,如果超过该值,会分隔到多个文件
parfile   指定导出参数文件
content   导出内容,可也是ALL, METADATA_ONLY or DATA_ONLY
compression 压缩功能
exclude/include 排除指定是否导出/导入某特定对象
query    指定表导出满足条件的数据
estimate_only 只是评估,不做真正的导出
network_link 可以通过dblink的方式远程导出/导入,在服务器端空间不足的情况下很实用
remap_schema 将对象从一schema映射到另外一schema
remap_tablespace 将表空间映射到另外一表空间
parallel 指定并行度
cluster 这个默认值是YES,如果导出的目录在RAC节点中不共享,导出时会报错,可以将这个参数设置为N。当然也可以使用ASM磁盘组用作导出目录。
flashback_scn/flashback_timeTime 导出某时间点之前的数据

有用的视图
DBA_DATAPUMP_JOBS
DBA_DATAPUMP_SESSIONS
V$SESSION_LONGOPS

12c数据泵expdp新增参数
ABORT_STEP
Stop the job after it is initialized or at the indicated object.
Valid values are -1 or N where N is zero or greater.
N corresponds to the object's process order number in the master table.

ACCESS_METHOD
Instructs Export to use a particular method to unload data.
Valid keyword values are: [AUTOMATIC], DIRECT_PATH and EXTERNAL_TABLE.

COMPRESSION_ALGORITHM
Specify the compression algorithm that should be used.
Valid keyword values are: [BASIC], LOW, MEDIUM and HIGH.

ENCRYPTION_PWD_PROMPT
Specifies whether to prompt for the encryption password [NO].
Terminal echo will be suppressed while standard input is read.

KEEP_MASTER
Retain the master table after an export job that completes successfully [NO].

LOGTIME
Specifies that messages displayed during export operations be timestamped.
Valid keyword values are: ALL, [NONE], LOGFILE and STATUS.

METRICS
Report additional job information to the export log file [NO].

VIEWS_AS_TABLES
Identifies one or more views to be exported as tables.
For example, VIEWS_AS_TABLES=HR.EMP_DETAILS_VIEW.

12c数据泵impdp新增参数
ABORT_STEP
Stop the job after it is initialized or at the indicated object.
Valid values are -1 or N where N is zero or greater.
N corresponds to the object's process order number in the master table.

ACCESS_METHOD
Instructs Import to use a particular method to load data.
Valid keyword values are: [AUTOMATIC], CONVENTIONAL, DIRECT_PATH and EXTERNAL_TABLE.

ENCRYPTION_PWD_PROMPT
Specifies whether to prompt for the encryption password [NO].
Terminal echo will be suppressed while standard input is read.

KEEP_MASTER
Retain the master table after an import job that completes successfully [NO].

LOGTIME
Specifies that messages displayed during import operations be timestamped.
Valid keyword values are: ALL, [NONE], LOGFILE and STATUS.

MASTER_ONLY
Import just the master table and then stop the job [NO].

METRICS
Report additional job information to the import log file [NO].

VIEWS_AS_TABLES
Identifies one or more views to be imported as tables.
For example, VIEWS_AS_TABLES=HR.EMP_DETAILS_VIEW.
Note that in network import mode, a table name may be appended
to the view name.

Reference

11g http://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_overview.htm#SUTIL100

12c http://docs.oracle.com/database/121/SUTIL/GUID-17FAE261-0972-4220-A2E4-44D479F519D4.htm#SUTIL100



关键词:expdp 

相关文章

expdp on physical standby
如何查看expdp/exp dmp文件信息
Unix/Windows平台数据泵备份常用脚本
Oracle DataPump
Top