oracle_expdp数据迁移

create DIRECTORY datadump as '/home/oracle/'; --创建目录对象位置(建议放在归档目录下)

grant read,write on DIRECTORY datadump to yyq; ---给应用用户授予读写权限

select * from DBA_DIRECTORIES;--查询数据字典视图查看数据库所有的目录对象,

expdb yyq/yyqDIRECTORY ='datadump' DUMPFILE=yyq.dmp; ---此命令会在已定义的目录(/home/oracle)中产生导出的文件(yyq.dmp)

 

导出用户

expdp  yyq/yyq directory=dump_backup dumpfile=yyq%U.dmp logfile=yyq.log PARALLEL=4 schemas=yyq;

导入用户

impdp  yyq/yyq directory=dump_backup dumpfile=yyq%U.dmp logfile=yyq.log PARALLEL=4  remap_schema=yyq:yyq;

二 ,expdp导出模式有5种:

   a,全库导出模式(Full Export Mode),使用参数FULL指定,用户需具有DATAPUMP_EXP_FULL_DATABASE角色。

   b,模式(用户)导出模式(Schema Mode),使用参数SCHEMAS指定,是默认的导出模式。

   c,表导出模式(table Mode),使用参数tables指定,如果指定了参数transportable=always,则只有对象的元数据被导出。

   d,表空间导出模式(Tablespace Mode),使用参数TABLESPACES指定,导出指定表空间中所有表及其依赖对象的元数据和行数据。

重要参数:

COMPRESSION=[ALL|DATA_ONLY|METADATA_ONLY|NONE] 指明转存文件中数据进行压缩,DATA_ONLY只对行数据进行压缩,METADATA_ONLY只对元数据进行压缩,none表示不压缩,默认为METADATA_ONLY. 

CONTENT=[all|metadate_only|data_only] 默认为all, all表示导出对象的元数据,data_only只导出对象的行数据,metadata_only只导出对象的元数据。

DUMPFILE 转存导出文件名称,包含目录对象名,默认值为expdat.dmp.

DIRECTORY 指定转存文件和日志文件所在位置的目录对象,该对象由DBA预先创建。

eg: expdp yyq/yyqDIRECTORY=datadump DUMPFILE=yyq.dmp COMPRESSION=METADATA_ONLY CONTENT=METADATA_ONLY

ESTIMATE=[BLOCKS|STATISTICS] 估计导出作业中每个表中的数据占用磁盘空间大小的方法

ESTIMATE_ONLY=[YES|NO] 指定导出作业占用磁盘空间大小是是否真正进行导出操作,默认为NO。

EXCLUDE 指定导出操作中要排除的对象类型和对象元数据。

FILESIZE 转存文件的最大尺寸。FILESIZE=100[B|KB|MB|GB|TB]

eg: expdp yyq/yyq DIRECTORY=datadump DUMPFILE=yyq.dmp EXCLUDE=VIEW,PACKAGE,FUNCTION  FILESIZE=50MB

FULL是否进行全数据库导出,包含所有行数据与元数据。FULL=[YES|NO],默认为no.

INCLUDE 指定导出操作中导出的对象类型和对象元数据。

eg:expdp yyq/yyq SCHEMAS=yyq DUMPFILE=yyq.DMP DIRECTORY=datadump LOGFILE=expdp.log INCLUDE=TABLE:"IN ('SYS_USER','SYS_ORG')" INCLUDE=INDEX:"LIKE 'EMP%'"  INCLUDE=PROCEDURE

JOB_NAME 指定导出作业名称,

LOGFILE 导出日志名称,默认为export.log.

PARALLEL 指定导出作业是最大的并行进程个数,默认为1.

eg:expdp yyq/yyq DIRECTORY=datadump LOGFILE=expdp.log JOB_NAME=par4_job  DUMPFILE=yyq%u.dmp PARALLEL=4  

QUERY 导出操作中select语句中的数据过滤条件。

eg:expdp yyq/yyq DIRECTORY=datadump DUMPFILE=yyq.DMP LOGFILE=expdp.log  QUERY='SYS_USER:"WHERE ID>100 AND USER_CODE=010623"'

REUSE_DUMPFILES =[YES|NO]指定是否覆盖同名的转存文件,默认为no.

SAMPLE 指定导出数据的百分比。

eg:expdp yyq/yyq DIRECTORY=datadump DUMPFILE=yyq.DMP SAMPLE=70 REUSE_DUMPFILES=YES

SCHEMAS 指定用户导出及用户列表。

eg: expdp system/system  DIRECTORY=datadump DUMPFILE=yyq.DMP SCHEMAS=yyq,HR,OS

STATUS 指定显示导出作业状态的时间间隔,默认为0,

eg:expdp yyq/yyq DIRECTORY=datadump  SCHEMAS=yyq,HR  STATUS=300

TABLES 指定表模式导出及表名称列表。

eg: expdp yyq/yyq DIRECTORY=datadump DUMPFILE=yyq.DMP tables=sys_user,sys_org

TABLESPACES 指定表空间模式及表空间名称列表。

eg: expdp yyq/yyq DIRECTORY=datadump DUMPFILE=yyq.DMP TABLESPACES=tbs1,tbs2

示例:

1,表导出模式:

 例1:导出用户yyq下的sys_user表和sys_org表,转存文件为yyq.dmp,日志文件为expdp.log,作业名称exp_user_org,导出操作启动3个进程。

 expdp yyq/yyq DIRECTORY=datadump DUMPFILE=yyq.DMP  LOGFILE=expdp.log  tables=sys_user.sys_org JOB_NAME=exp_user_org  PARALLEL=3 

例2:在表导出模式中,可以预先估计导出数据(不包含元数据)占用空间的大小,其结果写入日志文件中,同时终端显示。

expdp yyq/yyq DIRECTORY=datadump ESTIMATE_ONLY=yes tables=sys_user,sys_org locations  LOGFILE=EXP.LOG

2,用户导出模式,如果导出其他用户模式需要具备DATAPUMP_EXP_FULL_DATABASE角色,默认导出当前用户的所有对象的元数据及行数据。

expdp yyq/yyq  DIRECTORY=datadump DUMPFILE=yyq.DMP LOGFILE=EXP.LOG SCHEMAS=yyqJOB_NAME=EXP_JOB

3,表空间导出模式

expdp yyq/yyq  DIRECTORY=datadump DUMPFILE=yyq.DMP tablespace=yyq_dat

4,数据库导出模式

expdp yyq/yyq DIRECTORY=datadump DUMPFILE=yyq.DMP FULL=yes NOLOGFILE=YES

5,参数文件方式导出

 创建一个文件exp.txt,其内容为:DIRECTORY=datadump DUMPFILE=yyq.DMP tables=sys_user,sys_org

然后在命令行执行:expdp yyq/yyq PARFILE=D:\exp.txt

 

三, IMPDP导入模式5种

   a,全库导入模式(Full Export Mode),使用参数FULL指定,用户需具有DATAPUMP_EXP_FULL_DATABASE角色。

   b,模式(用户)导入模式(Schema Mode),使用参数SCHEMAS指定,是默认的导出模式。

   c,表导入模式(table Mode),使用参数tables指定,如果指定了参数transportable=always,则只有对象的元数据被导出。

   d,表空间导入模式(Tablespace Mode),使用参数TABLESPACES指定,导出指定表空间中所有表及其依赖对象的元数据和行数据。

CONTENT=[all|metadate_only|data_only] 默认为all, all表示导入对象的元数据,data_only只导入对象的行数据,metadata_only只导入对象的元数据。 DIRECTORY  DUMPFILE 

NOLOGFILE=[YES|NO] 是否生成导入日志,默认NO.

REMAP_SCHEMA=yyq:frsana 从用户yyq的所有对象导入到frsana用户中。跨用户导入

eg: >expdp system/passwd SCHEMAS=yyqDIRECTORY=datadump DUMPFILE=yyq.DMP  ---导出yyq用户的所有对象

>impdp system/passwd  DIRECTORY=datadump DUMPFILE=yyq.DMP  REMAP_SCHEMA=yyq:frsana  --将yyq用户的所有对象导入到frsana用户中

REMAP_TABLE 导入过程中重命名表

eg: impdp yyq/yyq  DIRECTORY=datadump DUMPFILE=yyq.DMP TABLES=yyq.SYS_USER REMAP_TABLE=yyq.SYS_USER:USER --将表sys_user改为表user

REMAP_TABLESPACE 将源表空间所有对象导入目标表空间中

eg: impdp yyq/yyq  DIRECTORY=datadump DUMPFILE=yyq.DMP REMAP_TABLESPACE=tbs1:tbs6  --将表空间tbs1的所有对象导入tbs6中。

REUSE_DATAFILES=[Y|N] 导入过程中,创建表空间时是否使用已经存在的数据文件,

eg:  impdp yyq/yyq  DIRECTORY=datadump DUMPFILE=yyq.DMP FULL=YES LOGFILE=IMP.LOG  REUSE_DATAFILES=YES

SCHEMAS 用户导入模式

eg: impdp yyq/yyq  DIRECTORY=datadump DUMPFILE=yyq.DMP  SCHEMAS=yyqLOGFILE=IMP.LOG 

SKIP_UNUSABLE_INDEXES =[YES|NO] 指定导入操作是是否跳过不可使用的索引。

STREAMS_CONFIGURATION =[yes|no] 指定是否导入存储文件中生成的流元数据。

TABLE_EXISTS_ACTION=[SKIP|APPEND|TRUNCATE|REPLACE] 指定导入过程中要创建的表已经存在时该如何操作,默认为skip。追加导入

示例:

表导入模式:

impdp yyq/yyq  DIRECTORY=datadump DUMPFILE=yyq.DMP TABLES=SYS_USER,SYS_ORG  CONTENT=DATA_ONLY --表已经存在,只导数据

impdp yyq/yyq  DIRECTORY=datadump DUMPFILE=yyq.DMP TABLES=SYS_USER,SYS_ORG  NOLOGFILE=Y --导入表的元数据及行数据

impdp yyq/yyq  DIRECTORY=datadump DUMPFILE=yyq.DMP TABLES=SYS_USER,SYS_ORG  QUERY='SYS_USER:"where id<100"' --只导入符合条件的数据

impdp yyq/yyq  DIRECTORY=datadump DUMPFILE=yyq.DMP TABLES=SYS_USER TABLE_EXISTS_ACTION=APPEND  --向表中追加数据

用户到入模式:

 

impdp system/passwd  DIRECTORY=datadump DUMPFILE=yyq.DMP  REMAP_SCHEMA=yyq:frsana  --将yyq用户的所有对象导入到frsana用户中,跨用户

 

四,EXP/IMP导出与导入数据4种

全库模式:使用参数FULL,用户具有EXP_FULL_DATABASE角色或IMP_FULL_DATABASE角色。

表空间模式:使用参数TABLESPACE,指定参数TRANSPORT_TABLESPACE可以只导出表空间的所有元数据。

用户模式:使用参数OWNER,授权用户可以从指定用户模式中的对象导出,或指定FROMUSER参数将转存文件中指定的用户模式的内容导入数据库中。

表模式:使用参数TABLES,指定表或分区导出到转存文件。

BUFFER 设置数据缓冲区大小。

DIRECT 指定是否使用直接路径,默认N。

FILE 指定导出的转存文件。

CONSTRAINTS 指定是否导出约束条件,默认Y。

GRANTS 指定是否导出权限,默认Y。

INDEXES 指定是否导出索引,默认Y。

PARFILE 指定参数文件名称。

QUERY 指定查询条件,导出符合条件的数据。

TRIGGERS 指定是否导出触发器,默认Y.

exp导出:

eg: exp system/password  FULL=y FILE='D:\BACKUP\exp.dmp' --全库导出

exp system/password  OWNER=yyq,hr  FILE='D:\BACKUP\exp.dmp' GRANTS=Y COMPRESS=Y --用户对应模式的所有对象元数据及行数据

exp system/password  TABLES=SYS_USER  FILE='D:\BACKUP\exp.dmp' QUERY=\' WHERE id<100 \' 

imp导入:

COMMIT 指定是否导入一组数据后提交,默认N全表导入提交,

DESTROY 指定是否覆盖数据库原有数据文件,默认N.

DATA_ONLY 指定是否是只导入数据,默认是导入元数据和行数据,默认N.

fromuser 指定导入的用户名列表。

IGNORE 指定是否忽略导入过程中创建对象时发生错误,默认N.

ROWS 指定是否导入行数据。

TOUSER 指定导入的用户模式列表。

USERID 指定连接数据库的用户名和口令。

LOG 指定一个日子文件。

PARFLIE 指定存放参数文件。

GRANTS 指定是否导入权限,默认Y.

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值