oracle11导出导入dmp详解


一、基本原则

  • 导出什么表空间,导入也要什么表空间。
  • 导出什么用户,导入也要什么用户。
  • 使用exp导出需用imp导入
  • 使用expdb导出需用impdb导入

二、导出

DIRECTORY:转储文件和日志文件所在的目录,默认为DATA_PUMP_DIR
schemas:导出的表空间名
exclude:排除某些表
DUMPFILE:数据导出后保存到哪个文件上
compression:压缩

2.1.expdp

本地导出

expdp 导出的用户名/密码@实例 DIRECTORY=DATA_PUMP_DIR \
exclude=PROCEDURE,FUNCTION,STATISTICS DUMPFILE=导出后的文件名 compression=all

示例:

expdp db_user/db_pwd@orcl \
      DIRECTORY=DATA_PUMP_DIR \
      exclude=PROCEDURE,FUNCTION,STATISTICS \
      DUMPFILE=db_user_20210630.dmp \
      query=T_LOG_EXCEPTION_STACK:'" where 1=2"',\
          T_LOG_DATA_MODIFY:'" where 1=2"',\
          T_LOG_USER_OPERATE:'" where 1=2"',\
          T_LOG_INTERFACE_MESSAGE:'" where 1=2"',\
          TP_DATASET_LOG:'" where 1=2"',\
          T_LOG_COMMON_INFO:'" where 1=2"' \
      compression=all

远程导出

expdp 导出用户名/导出密码@OracleIP:端口/实例 DIRECTORY=DATA_PUMP_DIR schemas=PROJECT \
exclude=PROCEDURE,FUNCTION DUMPFILE=project.20210630.dmp compression=all

三、导入

3.1.创建表空间

sqlplus / as sysdba
select file_name from dba_data_files;		#查看表空间文件的位置
#test为表空间名字,100m代表初始大小,autoextend on表示自动扩展
create tablespace test datafile '/u01/app/oradata/test/test.dbf' size 200m autoextend on NEXT 50M MAXSIZE 31G;

3.2.创建用户、授权

create user 用户名 identified by 密码 default tablespace 表空间名;
grant connect, resource,IMP_FULL_DATABASE  to 用户名;
grant read,write on directory DATA_PUMP_DIR to 用户名;
ALTER USER 用户名 QUOTA UNLIMITED ON 表空间名;	#给用户授权能访问表空间

3.3.将dmp文件上传到DATA_PUMP_DIR下

DATA_PUMP_DIR是数据库默认的路径,我们把文件放在这些目录下就能读到,查看DATA_PUMP_DIR文件的路径,sql命令模式下执行

SQL> select * from dba_directories;

在这里插入图片描述

3.4.开始导入

impdp(使用expdp导出时用这种方式)

impdp 导入的用户名/密码 schemas=导出的用户名 \
directory=DATA_PUMP_DIR dumpfile=导入的dmp文件名 \
remap_schema=导出的用户名:导入的用户名 \
REMAP_TABLESPACE=导出的表空间:导入的表空间 \
EXCLUDE=STATISTICS TRANSFORM=segment_attributes:n \
table_exists_action=replace \
logfile=日志文件名

解释:

TRANSFORM=segment_attributes:n	#忽略expdp导出时附带的相关表空间和存储子句约束

table_exists_action #决定是否覆盖,有如下4个值

skip 是如果已存在表,则跳过并处理下一个对象;
append是为表增加数据;
truncate是截断表,然后为其增加新数据;
replace是删除已存在表,重新建表并追加数据

imp

格式
imp 用户名/密码@oracle所在机器的IP:端口/实例
file:指定dmp文件所在的绝对路径
fromuser:表示该dmp是由哪个用户导出
touser:表示要导入到哪个用户

imp db_test/123456@192.168.2.1:1528/db_test file=/u01/app/oracle/admin/ecsdb/dpdump/oracle2020515.dmp 
fromuser=suser touser=db_test constraints=N ignore=y
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值