Oracle数据泵(Dump)导出、导入

本文详细介绍 Oracle 数据库中如何进行数据的导出与导入操作,包括本地与远程数据库之间的数据迁移过程。涵盖使用 expdp 和 impdp 命令进行指定表、整个模式及整个数据库的数据导出与导入,并介绍 DIRECTORY 对象创建、用户权限设置及跨表空间数据转移等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


导出、导入前准备

注:使用sys、system等系统用户操作! 
1)创建DIRECTORY目录对象

CREATE DIRECTORY exp_dir AS '/oracle/db/zone'; --存放dmp、log文件
  • 1

2)为使用户user_local授权该目录

GRANT READ, WRITE ON DIRECTORY exp_dir TO user_local;
  • 1

本地导出、本地导入

1:本地导出 
1)导出指定表

expdp user_local/user_local DIRECTORY=exp_dir DUMPFILE=tab.dmp LOGFILE=tab.log TABLES=USER_OFFICE  
--TABLES=表1,表2,表3等
  • 1
  • 2

2)导出整库(方案)

expdp user_local/user_local DIRECTORY=exp_dir  DUMPFILE=tab.dmp LOGFILE=tab.log SCHEMAS=user_local  
--SCHEMAS=用户(所有可操作表等)
  • 1
  • 2

3)导出全库

expdp system/orcl DIRECTORY=exp_dir DUMPFILE=tab.dmp LOGFILE=tab.log FULL=Y
  • 1

2:本地导入 
1)导入指定表

Impdp user_local/user_local DIRECTORY=exp_dir DUMPFILE=tab.dmp LOGFILE=tab.log TABLE_EXISTS_ACTION=APPEND TABLES=USER_OFFICE
  • 1

说明:TABLES=USER_OFFICE :可以不写 
TABLE_EXISTS_ACTION=APPEND :追加数据,数据不重复可多次导入 
当TABLE_EXISTS_ACTION=REPLACE时,则全量导入,该方法会直接删除表,然后重新创建该表并将数据全部写入

2)导入整库(方案)

impdp user_local/user_local DIRECTORY=exp_dir DUMPFILE=tab.dmp LOGFILE=tab.log SCHEMAS=user_local
  • 1

3)导入全库

impdp system/orcl DIRECTORY=exp_dir DUMPFILE=tab.dmp LOGFILE=tab.log FULL=Y
  • 1

不落地导入

1:说明 
远程数据库数据导入本地数据库! 
1)远程数据库: 
IP:192.168.1.200 
用户名:user_remote 
密码:user_remote_ 
实例名:orcl 
表空间:remote_space

2)本地数据库: 
用户名:user_local 
密码:user_local 
表空间:local_space

2:本地增加监听(REMOTE_ORCL)

REMOTE_ORCL =  
  (DESCRIPTION =  
    (ADDRESS_LIST =  
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.200)(PORT = 1521))  
    )  
    (CONNECT_DATA =  
      (sid = orcl)  
    )  
  )
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3:创建远程链接database link(source_db_link)

create database link source_db_link connect to user_remote identified by user_remote_ using 'REMOTE_ORCL'
  • 1

REMOTE_ORCL :上一步增加的监听名

4:远程库表(USER_OFFICE)导入本地库

impdp  user_local/user_local directory=exp_dir  logfile=tab.log network_link=source_db_link  TABLE_EXISTS_ACTION=APPEND 
tables=user_remote.USER_OFFICE remap_schema=user_remote:user_local REMAP_TABLESPACE=remote_space:local_space
  • 1
  • 2

注:若提示权限不足,可用sys系统用户将dba权限赋予本地用户user_local即可解决,或者将导入的用户连接改为‘system/orcl’ 
1)network_link=source_db_link :上一步建立的连接名 
2)TABLE_EXISTS_ACTION=APPEND :追加数据,不重复数据可多次导入 
注:可以将‘APPEND’改为‘REPLACE’,该方法将删除原表,然后重新创建该表并导入数据 
3)tables=user_remote.USER_OFFICE :表名,多张表用‘,’隔开 
4)remap_schema=user_remote:user_local :不同用户之间的数据搬移,写法:远程用户:本地用户,如果相同可以不写 
5)REMAP_TABLESPACE=remote_space:local_space :不同表空间之间数据的搬移,写法:远程表空间名:本地表空间名,如果相同可以不写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值