Oracle使用实例:exp和expdp导出数据

EXP和EXPDP是Oracle提供的两种数据导出工具。

关于exp和expdp

EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。

实践场景

导出数据库orcl(服务名)的所有表和数据,其普通用户:scott/tiger, 管理员:system/manager

该实践暂不考虑关于根据用户、表或表空间等因素条件导出,只是导出全库。

如果在客户端使用exp时,需要已安装Oracle Client,确保可以使用exp工具。同样使用imp导入工具也是类似。

exp方式

这种方式很简单,打开命令终端cmd,输入:

 exp scott/tiger@orcl file=d:\expdata.dmp full=y

其中:

scott/tiger@orcl – 用户名/密码@服务名
file=d:\expdata.dmp – 导出路径和导出文件名
full=y – 导出整个数据库

更多参数说明可以使用exp -help进行查看

导入也很简单,同样命令:

imp scott/tiger@orcl file=d:\expdata.dmp full=y ignore=y

expdp方式

expdp方式步骤稍微复杂一些,不过不要害怕。

1.管理员用户登陆sqlplus

打开cmd,输入:

 sqlplus system/manager@orcl

或输入:

 sqlplus scott/tiger@orcl as sysdba

以上都可以,因为要创建目录,请使用管理员身份这样才有权限,另外要指明登陆的数据库服务名orcl,否则后续导出时可能找不到目录。

2.创建逻辑导出目录

sqlplus下,在SQL>后输入:

create directory dpdata as 'D:\expdpdata';

其中,dpdata就是我们创建的一个目录代号而已,后面执行命令用得着,而’D:\expdpdata’是我们要导出文件存放的目录。
创建成功后,可以通过下面命令进行查看:

select * from dba_directories;

需要注意的是,执行命令并不是真正创建目录,需要手动在该路径下创建目录,否则后续导出会不成功。

3.给导出操作用户赋予在指定目录的操作权限

如果我们后续就用system用户导出,这一步可以省略,但是如果我们用scott用户导出,那么在SQL>后输入:

grant read, write on directory dpdata to scott;

4.导出整个数据库

执行完上述操作,我们可以退出sqlplus回到cmd窗口,执行下面的命令:

expdp system/manager@orcl directory=dpdata dumpfile=expdpfile.dmp full=y

其中:

system/manager@orcl – 用户名/密码@服务名
directory=dpdata – 导出目录
dumpfile=expdpfile.dmp – 导出文件名
full=y – 导出整个数据库

更多参数说明可以使用expdp -help进行查看

上面的命令是用管理员用户导出全库的,如果我们想指定导出某个模式(schema)下的数据表(即某个用户的数据库对象集合),可以使用如下命令参数控制:

expdp system/manager@orcl directory=dpdata dumpfile=expdpfile.dmp schemas=scott

expdp scott/tiger@orcl directory=dpdata dumpfile=expdpfile.dmp

这样就导出scott下所有表和数据。

5.说说导入impdp

需要说的是,要导入的数据库一定要首先创建好相应的用户,和导出时用的用户一致赋予相应权限。
cmd命令如下:
全库导入

impdp system/manager@orcl directory=dpdata dumpfile=expdpfile.dmp full=y

指定用户导入

impdp system/manager@orcl directory=dpdata dumpfile=expdpfile.dmp schemas=scott

impdp scott/tiger@orcl directory=dpdata dumpfile=expdpfile.dmp

就这么多,大家动动手试试看。
除此之外,导出导入工具还有很多参数功能可选,尤其有并行操作,提高数据库备份的效率。

你可能感兴趣的:(数据库)