oracle 数据库导入导出

一、expdp/impdp和exp/imp的区别

1、exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。

2、expdp和impdp是服务端的工具程序,他们只能在oracle服务端使用,不能在客户端使用。

3、imp只适用于exp导出的文件,不适用于expdp导出文件;impdp只适用于expdp导出的文件,而不适用于exp导出文件。


二、exp/imp导入导出方法

exp导入

1.导出整个数据库通用命令:

exp 数据库用户名/数据库密码@数据库别名 file=E:\目录\文件名.dmp

例如:exp user/passwd@orcl  file=d:\export.dmp

2.导出部分表通用命令

exp 数据库用户名/数据库密码@数据库别名 GRANTS=Y TABES=(要导出的表1, 要导出的表2,...) file=E:\目录\文件名.dmp

例如:exp user/passwd@orcl grants=y tables=(table1,table2) file=d:\table.dmp

imp导入

imp 导入库用户名/导入库密码@导入库别名 file=E:\目录\文件名.dmp  fromuser=dmp文件的导出库 touser=dmp文件的导入库导入库

例如:imp user/passwd@orcl file=d:\table.dmp fromuser=导出用户名 touser=导入用户名

imp system/123456@orclbak file=d:\iom.dmp fromuser=ogg touser=test 

imp tms/[email protected] file=d:\ZBTMS2021031701.DMP fromuser=ZBTMS touser=tms


三、expdp/impdp的导入导出

3.1 expdp导出步骤

创建逻辑目录:

在服务器上创建真实的目录

用sys管理员登录sqlplus;

create directory dump_dir as 'd:\test\data';  --创建逻辑目录 不会在OS上创建真正的目录,所以要先在服务器上创建真实的目录

select * from dba_directories; --查看管理员目录,检查是否存在

grant read,write on directory dump_dir to user; --用sys管理员给你的指定用户赋予在该目录的操作权限。

3.2 用expdp导出dmp,有五种导出方式

1.全量导出数据库(full=y)

expdp user/passwd@orcl dumpfile=expdp.dmp directory=dump_dir full=y logfile=expdp.log;

2.按用户导出(schemas=user)

expdp user/passwd@orcl schemas=user dumpfile=expdp.dmp directory=dump_dir logfile=expdp.log;

3.按表空间导出(tablespace=tbs1)

expdp sys/passwd@orcl tablespace=tbs1 dumpfile=expdp.dmp directory=dump_dir logfile=expdp.log;

4.导出表(tables=table1,table2)

expdp user/passwd@orcl tables=table1,table2 dumpfile=expdp.dmp directory=dump_dir logfile=expdp.log;

5.按查询条件导出(tables=table1='where 条件')

expdp user/passwd@orcl tables=table1='where 条件' dumpfile=expdp.dmp directory=dump_dir logfile=expdp.log;

3.3 impdp导入步骤

如果不是同一台服务器,需要先将上面的dmp文件下载到目标服务器上,参照"expdp导出步骤",建立逻辑目录;

导入实例:

impdp tms/tms123@orcl remap_schema=zbtms:tms remap_tablespace=zbtms:tms directory=dump_dir dumpfile=ZBTMS2021031701.DMP

说明:

remap_schema 当导出导入用户不一致时,zbtms为导出用户,tms 为导入用户

remap_tablespace 当导出导入表空间不一致时,zbtms为导出表空间,tms 为导入表空间

directory=dump_dir 指定逻辑目录

dumpfile=ZBTMS2021031701.DMP 需要导入的文件,不能携带路径,需放在指定逻辑目录下


用impdp命令导入,对应导出的五种方式

1.全量导入数据库(full=y)

impdp user/passwd@orcl directory=dump_dir dumpfile=expdp.dmp full=y;

2.按用户导入

impdp user/passwd@orcl schemas=user directory=dump_dir dumpfile=expdp.dmp logfile=impdp.log; --用户同名 导入导出用户名相同

--remap_schema参数相当于imp工具中的fromuser和touser参数,可以实现将一个用户的数据导入到另一个用户中

impdp user/passwd@orcl remap_schema=user1:user2 directory=dump_dir dumpfile=expdp.dmp logfile=impdp.log; --用户不同 user1导出用户名 user2导入用户名

3.导入表空间;

impdp sys/passwd@orcl tablespaces=tbs1 directory=dump_dir dumpfile=expdp.dmp logfile=impdp.log; --表空间名称相同

impdp sys/passwd@orcl remap_tablespace=tbs1:tbs2 directory=dump_dir dumpfile=expdp.dmp logfile=impdp.log; --表空间名称不同 tbs1导出表空间名 tbs2导入表空间名

4.导入表

从A用户中把表table1和table2导入到B用户中;

impdp user/passwd@orcl tables=A.table1,A.table2 remap_schema=A:B directory=dump_dir dumpfile=expdp.dmp logfile=impdp.log;

将表空间TBS01、TBS02、TBS03导入到表空间A_TBS,将用户A的数据导入到B,并生成新的oid防止冲突;

impdp user/passwd@orcl remap_tablespace=TBS01:A_TBS,TBS02:A_TBS,TBS03:A_TBS remap_schema=A:B FULL=Y transform=oid:n directory=dump_dir dumpfile=expdp.dmp logfile=impdp.log

5.追加数据

--table_exists_action:导入对象已存在时执行的操作。有效关键字:SKIP,APPEND,REPLACE和TRUNCATE

impdp user/passwd@orcl directory=dump_dir dumpfile=expdp.dmp schemas=user table_exists_action=replace logfile=impdp.log;

你可能感兴趣的:(oracle 数据库导入导出)