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

时间:2024-01-13 16:52:14

说明:本次导入和导出采用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放到最后,不然会出现导出和导入失败的情况。