【Oracle数据泵导入和导出】利用EXPDP和IMPDP导出和导入数据

1. EXPDP和IMPDP简介

❑ 数据泵导出——使用工具EXPDP将数据库对象的元数据Meta-Data(对象结构)或数据导出到转储文件中。

❑ 数据泵导入——使用工具IMPDP将转储文件中的元数据及其数据导入到Oracle数据库中。

EXPDP和IMPDP属于逻辑备份与恢复。其逻辑备份的二进制文件成为转储文件,以dmp格式存储。

EXPDP和IMPDP都是服务端程序,因此转储文件只能放在由DIRECTORY对象指定的特定数据库服务器操作系统目录中。

EXPDP和IMPDP使用前要先创建DIRECTORY对象,如:

--创建目录
CREATE OR REPLACE DIRECTORY dmpdir AS 'D:\ORACLE\BAKEUP';
--授权用户
GRANT READ,WRITE ON DIRECTORY dmpdir TO human;

EXPDP和IMPDP可以导出和导入的对象:

  • 用户模式
  • 表空间
  • 全数据库

通过在命令提示符窗口中输入EXPDP HELP命令,可以查看EXPDP的帮助信息。

基本语法:expdp/impdp 用户名/密码 DIRECTORY=目录名称 DUMPFILE=文件名.dmp

  • DIRECTORY:指定转储文件所在的目录
  • CONTENT:用于指定要导出的内容
    • CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
    • 只导出表结构:CONTENT=METADATA_ONLY
    • 只导出数据:CONTENT=DATA_ONLY
  • DUMPFILE:转储文件名称

注意数据泵导入时,转储文件被存放在 DIRECTORY对象所对应的OS目录中,而不能直接指定转储文件所在的OS目录中。

2. EXPDP、IMPDP应用

2.1 导入导出例子

导入导出

  • 用户模式
  • 表空间
  • 全数据库

(1)准备工作:创建目录并授权

SQL>create or replace directory DUMP_DIR as 'F:\oracle\dump';
SQL>grant read,write on directory DUMP_DIR to scott; 

(2)导出、导入表

导出表——导出scott模式下的dept表和emp表,存放目录为dump_dir,转储文件名称为tab.dmp。

expdp scott/tiger directory=dump_dir dumpfile=tab.dmp tables=dept,emp

导入表——导入同一模式的表

impdp scott/tiger directory=dump_dir dumpfile=tab.dmp tables=scott.dept, scott.emp

导入表——导入其他模式的表:将scott模式下的数据导入到hr模式下

impdp system/pwd123 directory=dump_dir dumpfile=tab.dmp tables=scott.dept, scott.emp remap_schema=scott:hr

remap_schema:重新映射表中的模式名,将源模式 scott 映射为目标模式 hr 

(3)导出、导入模式

导出模式——模式导出是导出元数据和行数据

expdp system/pwd123 directory=dump_dir dumpfile=schema.dmp schemas=system,scott

导入模式——导入同一模式

impdp scott/tiger directory=dump_dir dumpfile=schema.dmp schemas=scott

导入模式——导入其他模式

impdp system/pwd123 directory=dump_dir dumpfile=tab.dmp schemas=scott remap_schema=scott:system

(4)导出、导入表空间

导出表空间

expdp system/pwd123 directory=dump_dir dumpfile=tablespace.dmp tablespaces=example

导入表空间

impdp system/pwd123 directory=dump_dir dumpfile=tablespace.dmp tablespaces=example

(5)导出、导入全数据库

导出全数据库

expdp system/pwd123 directory=dump_dir dumpfile=full.dmp full=y

导入全数据库

impdp system/pwd123 directory=dump_dir dumpfile=full.dmp full=y

2.2 移动表空间

使用EXPDP和IMPDP还可以实现移动表空间,即将表空间从一个数据库移动到另一个数据库中。在Oracle 10g前,移动表空间只能在相同的操作系统平台之间进行。在Oracle 11g中,不仅允许在相同平台之间移动表空间,而且允许在不同平台之间移动表空间。

2.3 实验

实验要求:

1、应用数据泵导出工具expdp将HR模式导出到转储文件;

2、创建eHR用户,利用第一步生成的转储文件,将模式对象导入到eHR模式,

3、应用数据泵导出工具expdp将eHR模式下的employees表导出到转储文件;

4、删除eHR模式下的employees表,利用步骤3生成的转储文件恢复employees表。

实验过程:

1、应用数据泵导出工具expdp将HR模式导出到转储文件

--在SYS模式下,授权HR用户创建目录的权限
GRANT CREATE ANY DIRECTORY TO hr;
--在SYS模式和HR模式下都可以创建目录
create or replace directory DUMP_DIR as 'D:\oracle\dump';

然后在windows命令行窗口输入:

expdp hr/hr directory=dump_dir dumpfile=hr_schema1.dmp schemas=hr

那么在该目录下就可以看到日志文件和转储文件:

2、创建eHR用户,利用第一步生成的转储文件,将模式对象导入到eHR模式

-- Create the user 
create user eHR
  identified by eHR
  default tablespace USERS
  temporary tablespace TEMP
  profile DEFAULT
  password expire
  quota 20m on users;
--为eHR用户授权CREATION SESSION系统权限
GRANT CREATE SESSION TO eHR; 
--注意登录时大小写要一致

然后在windows命令行窗口输入:

impdp hr/hr directory=dump_dir dumpfile=hr_schema1.dmp schemas=hr remap_schema=hr:ehr

提示权限不够,可以更换连接的用户:

impdp system/xe directory=dump_dir dumpfile=hr_schema1.dmp schemas=hr remap_schema=hr:ehr

然后登录eHR用户,可以看到hr模式下的表等。

3、应用数据泵导出工具expdp将eHR模式下的employees表导出到转储文件

在windows命令行窗口输入:

expdp system/xe directory=dump_dir dumpfile=eHR_employees_table.dmp tables=eHR.employees

同样在目录在可以看到转储文件和日志文件:

4、删除eHR模式下的employees表,利用步骤3生成的转储文件恢复employees表

DROP TABLE eHR.employees CASCADE CONSTRAINTS; --级联删除所有引用了该表主键的外键关联记录。
--注意没有删除引用无法删除表

此时eHR模式下的employees表被删除了:

接下来利用步骤3生成的转储文件恢复employees表,即应用数据泵导入根据把表对象导入到eHR模式:

impdp system/xe directory=dump_dir dumpfile=eHR_employees_table.dmp tables=eHR.employees

刷新后重新看到employees表:

  • 23
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
expdpimpdpOracle数据库提供的工具,用于进行数据导出导入操作。下面是使用expdpimpdp工具进行数据导入导出的步骤: 1. 导出数据(使用expdp): - 打开命令行窗口或终端,并登录到Oracle数据库。 - 运行以下命令来导出数据: ``` expdp username/password@database_name DIRECTORY=directory_name DUMPFILE=dumpfile_name LOGFILE=logfile_name ``` 其中,`username`是要导出数据的用户,`password`是用户的密码,`database_name`是数据库的名称,`directory_name`是导出文件的目录,`dumpfile_name`是导出文件的名称,`logfile_name`是日志文件的名称。 - 根据需要,可以添加其他选项来指定要导出的表、模式、数据过滤条件等。 2. 导入数据(使用impdp): - 打开命令行窗口或终端,并登录到Oracle数据库。 - 运行以下命令来导入数据: ``` impdp username/password@database_name DIRECTORY=directory_name DUMPFILE=dumpfile_name LOGFILE=logfile_name ``` 其中,`username`是要导入数据的用户,`password`是用户的密码,`database_name`是数据库的名称,`directory_name`是导入文件的目录,`dumpfile_name`是导入文件的名称,`logfile_name`是日志文件的名称。 - 根据需要,可以添加其他选项来指定要导入的表、模式、数据过滤条件等。 需要注意的是,导出导入的用户需要具有相应的权限才能执行这些操作。另外,导出导入的文件可以是二进制文件(.dmp)或压缩文件(.dpb)。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值