首页 > Linux操作系统 > Linux操作系统 > 有关Data Pump的学习
Data Pump:简介
1、进行数据和元数据迁移的服务器端工具
2、通过DBMS_DATAPUMP调用
3、提供新一代的导入导出工具:EXPDP、IMPDP、基于WEB的界面
4、原有的exp和imp工具的超集。
Data Pump Export and Import: 简介
这两个工具是oracle10g数据库的新工具。虽然他们的功能和原来的exp和imp工具很类似,但是他们是单独的产品。
导出工具用来导出数据和元数据到一系列操作系统文件成为dump文件集。导入工具用来将存储在导出的dump文件集中的数据和元数据导入到目标系统。
data pump API在服务器端访问文件而不是在客户端。
这个工具也可以被用来从远程数据库目录导出到dump文件集,或者使用配制文件从原数据库导入到目标数据库目录。成为网络方式,这个方式对于只读的数据源特别有效。
每个导入导出操作的核心是控制表(MT),这是在执行导入导出作业的时候创建的。管理这个作业的所有信息。
MT在基于文件的到处作业期间生成,并作为最后一步操作写到dump文件中。相反的,加载MT到当前用户是基于文件的导入操作的第一步,被用来决定导入时创建所有对象的次序。
备注:MT是数据导入导出正常或异常中止时重启服务的关键。正常情况下在导入导出作业完成之后删除。
Data Pump Export and Import: 优点
Data Pump自动决定使用的数据获取的方法:直接路径获取或者外部表的方式。
可以重启Data Pump操作。
可以使用EXCLUDE, INCLUDE, and CONTENT参数限制对象的选择。
可以为迁移的对象定义数据库版本(使用VERSION参数),这个参数是为将来的版本保留的。
可以使用PARALLEL参数定义最大数量的活跃的线程。
可以使用ESTIMATE_ONLY参数统计将会使用多少空间,而不必实际到处数据。
网络方式允许从远程数据库导出直接导入到dump文件集,通过使用源数据库的dblink实现。
在导入期间,可以修改目标数据文件的文件名、模式和表空间等。
Data Pump 文件位置
有三种类型的文件通过Data Pump管理:
DUMP文件包含迁移的数据和元数据
LOG文件记录与操作相关的信息。
SQL文件记录导出的SQLFILE操作。
因为Data Pump是基于server端而不是基于客户端的,所以Data Pump文件是指对oracle目录的相对路径,由于安全原因不支持绝对路径。
可以单独定义每个dump文件、日志文件和sql文件的位置,如果单独定义,则通过(:)分隔目录和文件名。
使用Data Pump导入导出客户端提供的DIRECTORY参数。
可以使用环境变量DATA_PUMP_DIR定义目录对象,而不是使用DIRECTORY参数,如果没有直接的指定目录就会到环境变量中查询该环境变量。
备注:以上每一种情况中,都必须有足够的操作系统权限,对于导出操作,需要对所有文件的写权限,对于导入操作,需要对dump文件的读权限和对日志文件和sql文件的写权限。
Data Pump文件的命名和大小
DUMPFILE参数定义dump文件的名字和目录(可选),多个文件,之间需要用逗号分割或者使用分别的DUMPFILE参数定义。文件名可以包含变量%U。%U暗示会产生多个文件,%U代表从01开始的两位的自动增长的数量。如果没有定义这个参数,默认使用expdat.dmp,默认情况下,创建的导出文件时自动扩展的。
如果定义了FILESIZE,每个文件大小都是FILESIZE,且不能扩展。如果需要更多的dump空间且提供使用%U参数,则新文件自动产生,大小是FILESIZE。否则客户端将收到一个提示增加新文件。如果定义了%U参数,则文件的初始数量等于PARALLEL参数。
先前存在的文件不会被覆盖,会提示错误然后任务结束。
Data Pump工具的界面和模式
界面:
1、命令行方式允许定义大部分的导出参数。
2、参数文件方式可以定义所有的命令行可以使用的参数,唯一的例外是PARFILE参数。
3、交互式命令行可以在登陆后提示,可以录入不同的命令,这个方式在命令行方式和参数文件方式执行时可以通过Ctrl+C切换到交互方式。对于一个正在执行的任务和已经停止的任务同样可以使用交互式的命令。
4、可以使用web界面的方式,从数据库控制页面进行操作。
模式:
.完全
.用户
.表
.表空间
.传输表空间
Data Pump 过滤
以前的imp和exp工具可以选择包括或者不包括索引、触发器、grant、约束等,新的导入导出操作可以选择包括或者不包括实际存在的任何对象。
eg:
EXCLUDE=VIEW
EXCLUDE=PACKAGE
EXCLUDE=INDEX:"LIKE ’EMP%’"
不包含所有的视图,包和所有开头三个字母是EMP的索引。
CONTENT参数用来设置导入导出数据、元数据还是都需要。
eg:
CONTENT = ALL | METADATA_ONLY | DATA_ONLY
QUERY参数的操作与原来的expimp参数类似,有两个完美的提高:可以查询表名,只用于表,且同样可以在导入的时候使用。
备注:
EXCLUDE和INCLUDE参数不能同时使用,当指定CONTENT=DATA_ONLY的时候,无论EXCLUDE还是INCLUDE都不能使用。
Data Pump Import 转换
因为对象元数据保存成XML格式,所以在导入的时候很容易修改,导入时支持若干种转换:
REMAP_DATAFILE用来在不同的文件系统的平台间迁移数据。
REMAP_TABLESPACE允许对象从一个表空间移动到另一个表空间。
REMAP_SCHEMA提供了原来的FROMUSER /TOUSER作用,改变对象的拥有者。
TRANSFORM参数,可以定义存储子句,对于目标数据库有特别的存储特性的操作特别有效。
eg:
REMAP_DATAFILE = ’C:oradatatbs6.f’:’/u1/tbs6.f’
TRANSFORM = SEGMENT_ATTRIBUTES|STORAGE:{y|n}[:TABLE|INDEX]
Data Pump 任务监控视图
DBA_DATAPUMP_JOBS:标示所有活跃的数据导入导出操作(不管状态)。同时显示所有的MT表的信息。可以使用任务的信息查询到活跃的任务然后停止任务、改变并行性,或者监控进程。可以使用MT表的信息,重启或者停止一个任务或者删除任何不再需要的MT表。
DBA_DATAPUMP_SESSIONS:标示用于该任务的用户进程。
V$SESSION_LONGOPS:在该动态视图中包含了对数据传输的登记,包括传输的大小并周期性的更新实际的数量传输。
备注:如果你没有标示任务名称,任何时候使用不同的界面导入导出,会自动生成一个唯一的名字。使用
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/51862/viewspace-180636/ ,如需转载,请注明出处,否则将追究法律责任。