oracle 11g expdp impdp详细使用方法

Posted 流浪的松竹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 11g expdp impdp详细使用方法相关的知识,希望对你有一定的参考价值。

11G中有个新特性,当表无数据时,不分配segment,以节省空间

解决方法如下图:

技术分享

二、oracle10g以后提供了expdp/impdp工具,同样可以解决此问题

1、导出expdp工具使用方法:

首先建立directory -- expdir(导入导出都要建立,对应的E:/exp文件夹如果不存在,需要手工建立)

技术分享

导出语法:

技术分享

如果只是要导出某些表,可以使用include

C:\Users\ganjh>expdp eas/[email protected]_localhost schemas=eas dumpfile=expdp2.dmp
directory=expdir include=table:\"like \‘CT%\‘\"

2、导入impdp工具使用方法:

首先建立directory -- data_bak

技术分享

导入语法:

C:\Users\ganjh>impdp eas/[email protected]_localhost directory=db_bak dumpfile=EXPDP.
DMP FULL=y;

从一个用户expdp导出再impdp导入到另一个用户

如果想导入的用户已经存在:
1. 导出用户 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp
2. 导入用户 impdp user2/pass2 directory=dumpdir dumpfile=user1.dmp REMAP_SCHEMA=user1:user2 EXCLUDE=USER full=y;

如果想导入的用户不存在:
1. 导出用户 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp
2. 导入用户 impdp system/passsystem directory=dumpdir dumpfile=user1.dmp REMAP_SCHEMA=user1:user2 full=y;
3. user2会自动建立,其权限和使用的表空间与user1相同,但此时用user2无法登录,必须修改user2的密码

--------------------------------------------------------- Linux环境 ---------------------------------------------------------------------

Oracle11g中,exp默认不能导出空表。用传统的exp,imp进行异构平台数据库迁移会比较麻烦。不过可以使用expdp、impdp进行迁移。

把64位windows 2003的Oracle11gR2数据库迁移到64位Linux redhat Enterprise 5中,可以使用expdp、impdp进行迁移数据。

如:Windows为A服务器,Linux为B服务器,数据库用户为test,把A服务器的数据迁移到B服务器中

在A服务器操作:

1、

SQL> create directory expdp_dir as ‘D:\mzl\backup ‘;

SQL> grant read,write on directory expdp_dir to test;

2、在windows目录创建目录D:\mzl\backup

3、在DOS命令窗口导出:

expdp test/test DIRECTORY=expdp_dir DUMPFILE=test.dmp logfile=testexpdp.log

在B服务器中操作:

4、SQL> create directory impdp_dir as ‘/home/Oracle/impdp_dir‘;

  SQL> grant read,write on directory impdp_dir to test;

1、 在系统中需要有/home/oracle/impdp_dir目录,在impdp_dir目录下必须有读写权限

(chmod 777 impdp_dir)

5、用ftp把A服务器导出的数据上传到B服务器的/home/oracle/impdp_dir目录中

在A服务器中配置好B服务器的服务器名,在A服务器导入数据

6、在DOS命令窗口导出:

imppdp test/[email protected]_database DIRECTORY=impdp_dir DUMPFILE=test.dmp logfile=testimpdp.log

(这里注意大小写,如果test.dmp在linux中为大写,必须更改为大写。Linux区分大小写)

11G中有个新特性,当表无数据时,不分配segment,以节省空间

解决方法如下图:

技术分享

二、oracle10g以后提供了expdp/impdp工具,同样可以解决此问题

1、导出expdp工具使用方法:

首先建立directory -- expdir(导入导出都要建立,对应的E:/exp文件夹如果不存在,需要手工建立)

技术分享

导出语法:

技术分享

如果只是要导出某些表,可以使用include

C:\Users\ganjh>expdp eas/[email protected]_localhost schemas=eas dumpfile=expdp2.dmp
directory=expdir include=table:\"like \‘CT%\‘\"

2、导入impdp工具使用方法:

首先建立directory -- data_bak

技术分享

导入语法:

C:\Users\ganjh>impdp eas/[email protected]_localhost directory=db_bak dumpfile=EXPDP.
DMP FULL=y;

从一个用户expdp导出再impdp导入到另一个用户

如果想导入的用户已经存在:
1. 导出用户 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp
2. 导入用户 impdp user2/pass2 directory=dumpdir dumpfile=user1.dmp REMAP_SCHEMA=user1:user2 EXCLUDE=USER full=y;

如果想导入的用户不存在:
1. 导出用户 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp
2. 导入用户 impdp system/passsystem directory=dumpdir dumpfile=user1.dmp REMAP_SCHEMA=user1:user2 full=y;
3. user2会自动建立,其权限和使用的表空间与user1相同,但此时用user2无法登录,必须修改user2的密码

--------------------------------------------------------- Linux环境 ---------------------------------------------------------------------

Oracle11g中,exp默认不能导出空表。用传统的exp,imp进行异构平台数据库迁移会比较麻烦。不过可以使用expdp、impdp进行迁移。

把64位windows 2003的Oracle11gR2数据库迁移到64位Linux redhat Enterprise 5中,可以使用expdp、impdp进行迁移数据。

如:Windows为A服务器,Linux为B服务器,数据库用户为test,把A服务器的数据迁移到B服务器中

在A服务器操作:

1、

SQL> create directory expdp_dir as ‘D:\mzl\backup ‘;

SQL> grant read,write on directory expdp_dir to test;

2、在windows目录创建目录D:\mzl\backup

3、在DOS命令窗口导出:

expdp test/test DIRECTORY=expdp_dir DUMPFILE=test.dmp logfile=testexpdp.log

在B服务器中操作:

4、SQL> create directory impdp_dir as ‘/home/Oracle/impdp_dir‘;

  SQL> grant read,write on directory impdp_dir to test;

1、 在系统中需要有/home/oracle/impdp_dir目录,在impdp_dir目录下必须有读写权限

(chmod 777 impdp_dir)

5、用ftp把A服务器导出的数据上传到B服务器的/home/oracle/impdp_dir目录中

在A服务器中配置好B服务器的服务器名,在A服务器导入数据

6、在DOS命令窗口导出:

imppdp test/[email protected]_database DIRECTORY=impdp_dir DUMPFILE=test.dmp logfile=testimpdp.log

(这里注意大小写,如果test.dmp在linux中为大写,必须更改为大写。Linux区分大小写)

 

  1. create temporary tablespace EAS_T_NSKFTEST_STANDARD tempfile ‘F:\oradata\oradata\orcltest\EAS_T_NSKFTEST_STANDARD‘ size 500M  
  2. autoextend on next 50M maxsize 2048M extent management local;  
  3. create tablespace EAS_D_NSKFTEST_STANDARD datafile ‘F:\oradata\oradata\orcltest\EAS_D_NSKFTEST_STANDARD‘ size 2048M  
  4. autoextend on next 100M maxsize 5000M extent management local;  
  5. create temporary tablespace EAS_D_NSKFTEST_TEMP2 tempfile ‘F:\oradata\oradata\orcltest\EAS_D_NSKFTEST_TEMP2‘ size 500M  
  6. autoextend on next 50M maxsize 2048M extent management local;  
  7. create user nskftest identified by kingdee default tablespace EAS_D_NSKFTEST_STANDARD temporary tablespace EAS_T_NSKFTEST_STANDARD;  
  8. grant connect,resource,dba to nskftest; 
  9. impdp nskftest/kingdee directory=db_bak dumpfile=XWY_SCHEMAS20150717.dmp REMAP_SCHEMA=nskf:nskftest remap_tablespace=EAS_D_NSKF_STANDARD:EAS_D_NSKFTEST_STANDARD remap_tablespace=EAS_T_NSKF_STANDARD:EAS_T_NSKFTEST_STANDARD remap_tablespace=EAS_D_NSKF_TEMP2:EAS_D_NSKFTEST_TEMP2 EXCLUDE=USER full=y; 














以上是关于oracle 11g expdp impdp详细使用方法的主要内容,如果未能解决你的问题,请参考以下文章

Oracle11g数据库迁移到Oracle12C的PDB(使用impdp/expdp)

通过expdp和impdp将Oracle11g数据导入到oracle10g中

EXPDP/IMPDP

通过expdp和impdp将Oracle11g数据导入到Oracle10g中

Oracle 11g 数据泵技术详解(expdp impdp)

oracle命令expdp