烂泥:oracle中有关expdp与impdp的使用整理

本文由秀依林枫提供友情赞助,首发于烂泥行天下

exp/imp可以在服务器端和客户端执行,并且备份文件也是可以在客户端产生。而expdp/impdp只能服务器上执行,同时备份文件只能存在服务器上面。

1. 创建用户及授权

create user ilanni identified by ilanni default tablespace ilanni;

grant connect,resource,create any view to ilanni;

2. 创建导出目录及授权

create directory exp_dir as ‘d:\test’;

(这个创建先后没有顺序,可以在用户未创建前创建,也可以在用户创建后创建。但是d:\test目录必须首先已经存在,或者已经创建)

grant read,write on directory exp_dir to ilanni;

3. 创建导入目录及授权

create or replace directory wpdp_dir as ‘d:\test’;

(这个创建先后没有顺序,可以在用户未创建前创建,也可以在用户创建后创建。但是d:\test目录必须首先已经存在,或者已经创建)

grant read,write on directory wpdp_dir to ilanni;

4. 导出dmp文件

expdp ilanni/topo@127.0.0.1:/xe schemas=ilanni dumpfile=ilanni_expdp.dmp logfile=ilanni_expdp.log directory=exp_dir

5. 导入dmp文件,从一个用户expdp导出再impdp导入到另一个用户

5.1 如果想导入的用户已经在数据库中存在:

a. 导出用户

expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp

b. 导入用户

impdp user2/pass2 directory=dumpdir dumpfile=user1.dmp remap_schema=user1:user2 exclude=user full=y;

5.2 如果想导入的用户在数据库中不存在:

a. 导出用户

expdp user1/pass1 directory=dumpdir umpfile=user1.dmp

b. 导入用户

impdp system/passsystem directory=dumpdir dumpfile=user1.dmp remap_schema=user1:user2 full=y;

user2会自动建立,其权限和使用的表空间与user1相同,但此时用user2无法登录,因为此是user2是锁定状态,而且还要必须修改user2的密码(详见8解释)

impdp ilanni/topo@127.0.0.1:/xe directory=wpdp_dir remap_schema=topo:ilanni  remap_tablespace=ilanni_test:ilanni dumpfile=ilanni_expdp.dmp logfile=ilanni_impdp.log

其中remap_schema字段中的topo为原来数据库用户,ilanni为现在数据库用户。remap_tablespace字段中的ilanni_test为原来数据库的表空间,ilanni为现在数据库的表空间。

6. 查询已经存在的导入目录

select * from dba_directories;

clip_image001

7. 删除已经存在导入目录

drop directory directory_name;

clip_image002

8. impd导入时,可以创建用户

impdp命令在导入数据时,如果用户存在,则会自动创建该用户,因为expdp导出的dmp文件中包含了创建用户的脚本信息(包括密码,缺省表空间,临时表空间等)。

impdp自动创建用户有一个前提条件,就是需要首先创建用户的缺省表空间和临时表空间,如果缺省表空间或者临时表空间不存在,则自动创建用户会失败,导致导入数据的失败。

在执行impdp之前,必须要创建导入目录,如下:

create directory wpdp_dir as ‘ d:\test ‘;

 impdp system/system@192.168.24.249:/orcl directory=wpdp_dir remap_schema=coss:ilanni remap_tablespace=ilanni_test:ilanni  dumpfile=ilanni.dmp logfile=ilanni.log

该导入语句中coss是原来dmp文件原来数据库用户,ilanni为要创建的用户。这个执行完毕后,新建的用户ilanni还处于锁定状态,密码还要修改。而且该用户还有DBA权限。

未经允许不得转载:烂泥行天下 » 烂泥:oracle中有关expdp与impdp的使用整理

赞 (0) 打赏

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

支付宝扫一扫打赏

微信扫一扫打赏