关于Linux下使用expdp和impdp命令对Oracle数据库进行导入和导出操作

说明:本次导入和导出采用expdp和impdp命令进行操作,这2个命令均需要在服务器端进行操作


http://www.cnblogs.com/huacw/p/3888807.html


一、    从Oracle数据库导出dmp文件

1.以Linux的Oracle用户登录主机,然后创建导出文件的存放目录/home/oracle/dump(可自定义)
mkdir  -p  /home/oracle/dump

2.以Oracle数据库的sys用户登录(登录命令为sqlplus sys/Xnyqsys167@192.168.100.167:1521/xnsde as sysdba)后执行如下命令

create directory dpdata1 as '/home/oracle/dump';                             #创建导出文件的存放目录
#create or replace directory dpdata1 as '/home/oracle/dump';        #用于修改已创建的目录(请根据实际情况选择性执行)

select * from dba_directories where directory_name='DPDATA1';     #查看导出文件的存储位置
grant read,write on directory dpdata1 to syssde;                                #对用户进行授权


3.退出Oracle的sys用户,以linux的oracle用户登录,并执行如下命令
expdp syssde/xnyq34#$@192.168.100.167:1521/xnsde  DIRECTORY=DPDATA1  schemas=syssde   dumpfile=syssde.dmp

 

#排除不需要导出的表

expdp syssde/xnyq34#$@192.168.100.167:1521/xnsde  DIRECTORY=DPDATA1  schemas=syssde  dumpfile=syssde.dmp EXCLUDE=TABLE:\"IN\(\' a4_sys_log\',\' a4_sys_enter\'\)\"




4. 切换到/home/oracle/dump查看已导出的文件

   

二、         将导出的dmp文件导入到另一个Oracle数据库

 

登录要导入dmp文件的本地数据库

 

1.查看当前数据库中数据文件的存储位置:select name from v$datafile;

 

2.创建表空间syssde和sde

createtablespace  syssde  DATAFILE  '/u01/app/oradata/a4orcl/syssde.dbf' size 3000m

createtablespace  sde  DATAFILE  '/u01/app/oradata/a4orcl/sde.dbf' size 3000m

 

注意:创建表空间时请使用第1步查询到的数据文件的地址

 

3.创建用户syssde和sde

createuser syssde  identifiedby  xnyq34#$  default tablespace syssde;

createuser sde  identifiedby sde  defaulttablespace sde;

 

4.给用户syssde和sde授权

grantdba, connect to syssde;

grantdba, connect to sde;

 

5.查看本地directory_path的地址,并将要导入的dmp文件放到该目录下,如果Linux和Windows路径不兼容,可采用如下命令进行修改

 

select* from dba_directories where directory_name='DPDATA1';       #查看DPDATA1的路径

#create or replace directory dpdata1 as '/home/oracle/dump';     #用于修改dpdata1的路径(请根据实际情况选择性执行)

 

6.导入dmp文件(使用前几步创建的用户和密码)

 

impdp syssde/xnyq34#$@ORCL11G DIRECTORY=dpdata1 DUMPFILE=syssde.dmp SCHEMAS=syssde

 

#使用sys用户导入时

impdp \"sys/'sys123'@192.168.100.168:1521/a4orcl as sysdba\"   DIRECTORY=dpdata1  DUMPFILE=syssde20170907.dmp  SCHEMAS=syssde


#将192.168.100.167数据库的syssde用户的部分数据导入到192.168.100.168数据库的cqsde用户下

impdp \"sys/'sys34#$'@192.168.100.168:1521/a4orcl as sysdba\"   DIRECTORY=dpdata1  DUMPFILE=syssde20170906.dmp  remap_schema=syssde:cqsde remap_tablespace=syssde:cqsde

 

PS:在使用expdp和impdp命令时,注意不要把DIRECTORY放到最后,不然会出现导出和导入失败的情况。

posted @ 2017-09-08 11:29  foreverfriends  阅读(9274)  评论(0编辑  收藏  举报