欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle 导入/出数据泵总结

程序员文章站 2024-03-13 17:13:39
...

最近在做一些数据库相关工作,需要频繁用到一些数据导入/出的操作,在这简单总结一下:

 

导入/出数据时,存在两种方式:1. imp/exp  2.impdp/expdp

两种推荐使用第二种,即impdp/expdp方式,原因在于其导入/出效率较于第一种高太多。

 

需要注意的是,在导入/出的时候,两种方式操作的文件格式是不同的。

因此切记不要用impdp命令来导入exp命令导出的dmp文件。

 

下面以impdp/expdp为例介绍导入/出操作流程

导出(expdp):

1.进入sqlplus,并以dba权限登陆。

sqlplus /nolog;
conn / as sysdba;

2.创建导出目录

create or replace directory dpdata as '/home/oracle/dmp';

 3.给导出目录赋权限

grant read,write on directory dpdata to test;
--语法格式:grant 权限内容(多个以逗号隔开) on directory 目录名称(即步骤2中创建的目录名) to 用户名

4.导出

1)按用户导
expdp test/[email protected] schemas=test dumpfile=expdp.dmp DIRECTORY=dpdata;
--格式:expdp 用户名/密码@数据库实例名称 schemas=名称(一般为用户名) dumpfile=导出文件名 DIRECTORY=导出目录;

2)按表名导
expdp test/[email protected] TABLES=aaa,bbb dumpfile=expdp.dmp DIRECTORY=dpdata;
--格式:expdp 用户名/密码@数据库实例名称 TABLES=表名称(多个以逗号分隔) dumpfile=导出文件名 DIRECTORY=导出目录;

3)导整个数据库
expdp test/[email protected] DIRECTORY=dpdata DUMPFILE=expdp.dmp FULL=y;
--格式:expdp 用户名/密码@数据库实例名称 DIRECTORY=导出目录 dumpfile=导出文件名 FULL=y/n(是否导出整个数据库);

4)按查询条件导
expdp test/[email protected] DIRECTORY=dpdata DUMPFILE=expdp.dmp Tables=emp query='WHERE deptno=20';
--格式:expdp 用户名/密码@数据库实例名称 DIRECTORY=导出目录 dumpfile=导出文件名 Tables=表名称 query=条件语句;