oracle 数据泵出泵入(源用户和表空间与目标用户和表空间不一致)

oracle 导入导出(源用户和表空间与目标用户和表空间不一致)

  1. 数据泵出:
    在 cmd 上连接 sqlplus:

sqlplus /@127.0.0.1:1521/orcl as sysdba

1). 创建数据泵连接 oradatadir(数据泵名称)(目录没有则创建)

create or replace directory oradatadir as 'D:\mydata';

2). 将数据泵赋给 mydb1 用户

GRANT read,write ON DIRECTORY oradatadir TO mydb1;

3). 然后关闭 cmd,再次打开 cmd,在 cmd 上执行
expdp sys/sys@127.0.0.1:1521/orcl directory=oradatadir dumpfile=mydb1_20180716.dmp schemas=mydb1
后面不能加分号

  1. 数据泵导入 :

导出用户与目标用户名,表空间一致

impdp sys/sys@127.0.0.1:1521/orcl directory=oradatadir dumpfile=mydb1_20180716.dmp fromuser=mydb1 touser=mydb1

当导出的 dmp 文件用户名和表空间与即将导入的用户不一致 则需要用以下的方式导入:

impdp sys/sys@127.0.0.1:1521/orcl directory=oradatadir dumpfile=mydb1_20180716.dmp schemas=mydb1 remap_schema= mydb1:mydb2 remap_tablespace=mydb1:mydb2 remap_tablespace=COMMON_DATA:mydb2

参数说明:
schemas=mydb1 是定义 mydb1_20180716.dmp 中的导出用户名
remap_schema= mydb1:mydb2 是指定从 mydb1 用户导入到 mydb2 用户。
remap_tablespace=mydb1:mydb2 是指从源表空间 mydb1 导入到目标表空间 mydb2,可能有多个源表空间和目标表空间。