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