天天看点

dmp导入数据 oracle_Oracle数据泵导入导出常用参数指南

dmp导入数据 oracle_Oracle数据泵导入导出常用参数指南

作者 | kf_dbd

来源 | 咖啡逗不逗(ID: kf_dbd)

转载请联系授权 | (微信ID:xh870545795)

大家好,我是 kf_dbd,很高兴又和大家见面了,今天分享一个数据泵参数的介绍文章。本文首发于微信公众号【咖啡逗不逗】,欢迎点击上方蓝字关注我吧!

首先, 相信大家都知道数据泵的作用,所以在这里就不做详细说明,Oracle Database 10g引入了最新的数据泵(Data Dump)技术,本篇文章主要介绍数据泵一些导入(impdp)导出(expdp)参数及其作用,以11.2.0.4.0版本数据库为例: 登陆数据库:

[[email protected] ~]$sqlplus / as sysdbaSQL> create or replace directory EXP as '/home/u01/expdp';--创建数据泵工作路径(前提/home/u01/expdp路径存在,不存在可新建)SQL>grant read,write on directory EXP to scott;--给权限
           

1.数据导出(expdp): 1)按用户导

[[email protected] ~]$expdp scott/[email protected] schemas=scott dumpfile=expdp.dmp DIRECTORY=EXP logfile=expdp.log
           

2)按表名导

[[email protected] ~]$expdp scott/[email protected] TABLES=emp,dept DIRECTORY=EXP dumpfile=expdp.dmp logfile=expdp.log;--还可以根据表的查询条件导:[[email protected] ~]$expdp scott/[email protected] TABLES=emp DIRECTORY=EXP dumpfile=expdp.dmp logfile=expdp.log QUERY=\"where DEPTNO\='20'\"--注意转义符号
           

3)按表空间导

[[email protected] ~]$expdp \"\/ as sysdba\" DIRECTORY=EXP DUMPFILE=tablespace.dmp TABLESPACES=temp,users
           

4)导出整个数据库

[[email protected] ~]$expdp \"\/ as sysdba\" DIRECTORY=exp DUMPFILE=full_%U.dmp FULL=y parallel=4 filesize=500m compression=all cluster=n
           

相关参数介绍: PARALLEL:  指定执行导出操作的并行进程个数,默认值为1,并行度设置不应该超过CPU数的2倍。 FILESIZE:  指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制) %U.dmp:  “%U”表示自动生成递增的序列号。无需输入多个文件名称 。 注:一般以上三个参数结合使用提高数据泵导出效率。 COMPRESSION :压缩,有四个参数值 ALL :对导出的元数据和表数据都进行压缩,得到的导出文件是最小的,耗时也是最长的。

DATA_ONLY :仅对表数据进行压缩,对于大数据量的导出效果明显,会比METADATA_ONLY方式得到更小的压缩文件。

METADATA_ONLY :仅对元数据进行压缩,而不会对表数据进行压缩,这种压缩执行后效果一般不是很明显,不过速度比较快。

NONE :不进行任何的压缩,导出后的文件也是最大的。

DEFAULT :默认方式,即不指定COMPRESSION参数,会采用默认的压缩方式 METADATA_ONLY。 FULL: 指定数据库模式导出,默认为N,FULL={Y | N}为Y时,表示执行数据库导出。 QUERY :   用于指定过滤导出数据的where条件,还有content、exclude、include、sample等相关过滤参数。 CLUSTER: 在RAC环境下如果PARALLEL参数设置大于1,进程会在RAC的各个节点上进行导出,如果导出目录不共享的话就会报错。解决方法:设置为共享的directory或者导出语句添加cluster=n选项,指定只在本地导出; 下图列举了一些导出参数分类,供大家参考:

dmp导入数据 oracle_Oracle数据泵导入导出常用参数指南

2.数据导入(impdp): 1)导入用户(从用户scott导入到用户scott)

[[email protected] ~]$impdp scott/[email protected] directory=exp dumpfile=expdp.dmp schemas=scott
           

2)导入表(从scott用户中把表dept和emp导入到system用户中)

[[email protected] ~]$impdp \"\/ as sysdba\" directory=EXP dumpfile=expdp.dmp tables=scott.dept,scott.emp remap_schema=scott:system
           

3)导入表空间

[[email protected] ~]$impdp \"\/ as sysdba\" directory=exp dumpfile=tablespace.dmp tablespaces=example
           

4)导入数据库

[[email protected] ~]$impdp \"\/ as sysdba\" directory=exp dumpfile=full_%U.dmp full=y parallel=4
           

例:全库备份,把原来的scott用户导入test用户

[[email protected] ~]$impdp \" / as sysdba \" directory=exp dumpfile=full_%U.dmp schemas=scott remap_schema=scott:test  transform=oid:n logfile=full.log parallel=4 data_options=skip_constraint_errors
           

相关参数介绍: SCHEMAS: 要导入的用户,默认为当前用户。 REMAP_SCHEMA: =source_schema:target_schema 将原用户导入目标用户。 TRANSFORM: 该选项用于指定是否修改建立对象的DDL语句.要应用于适用对象的元数据转换。 有效的关键字为: OID, PCTSPACE, SEGMENT_ATTRIBUTES 和 STORAGE。 TRANSFORM=transfor m_name:value[:object_type]  Transform_name用于指定转换名,其中SEGMENT_ATTRIBUTES用于标识段属性(物理属性,存储 属性,表空间,日志等息),STORAGE用于标识段存储性,VALUE用于指定是否包含段属性或段存储属 性,object_type用于指定对象类型。 DATA_OPTIONS: 在导入过程中使用外部表访问方法时,设置DATA_OPTIONS参数的值为SKIP_CONSTRAINT_ERRORS允许发生非延迟约束错误时继续载入,如果没有这个选项,默认将回滚整个操作,这个参数对延迟约束没有影响,但一旦检测到还是引起回滚,如果对象有唯一性索引或约束,不能使用APPEND提示,它可能会对性能产生负面影响。在导出过程中,如果XMLTYPE列以CLOB格式存储,它们会被自动导出为非压缩的CLOB,如果是以对象--关系,二进制或CLOB格式组合存储,默认将以压缩格式导出,设置DATA_OPTIONS参数的值为XML_CLOBS指定所有XMLTYPE列都以非压缩CLOB格式导出,导入/导出必须使用相同的XML方案,作业版本必须设置为11.0.0或更高。 下图列举了一些导入参数分类,供大家参考:

dmp导入数据 oracle_Oracle数据泵导入导出常用参数指南

好了,文章就写到这里,这是咖啡逗的第一篇文章,不足或者错误之处请大家指正,以后会不定期写一些工作上遇到的各种问题,边学习边记录,在此和大家交流学习沟通,如有兴趣可点击关注,一起讨论学习相关知识。希望本文对大家或多或少有点帮助!

继续阅读