【Oracle数据泵导入和导出】利用EXPDP和IMPDP导出和导入数据 | 您所在的位置:网站首页 › impdp导入指定用户指定表 › 【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_ONLYDUMPFILE:转储文件名称注意数据泵导入时,转储文件被存放在 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:hrremap_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表: |
CopyRight 2018-2019 实验室设备网 版权所有 |