您的位置:首页 > 数据库 > Oracle

Oracle数据泵 expdp、impdp工具的使用

2017-09-29 09:58 561 查看
expdp/impdp 是 Oracle 10g 推出的导入导出工具,功能丰富,操作比较复杂。

我在日常使用的也只是基本功能,所以这里我只介绍简单功能的使用过程。

expdp

登录Oracle数据库 system 用户 (按用户dobyjin导出dmp文件)

创建导出dmp文件目录

create or replace directory mydir as 'F:/dump' ;
-- mydir和F:/dump中的'dump'名称不一定相同。这句话只是将目录dump和mydir映射起来,
-- 所以F盘下要有dump文件夹,用来存放dmp文件。




查询目录

select * from dba_directories;
--通过这条语句可以查看到刚才创建的目录名称和目录路径


授权目录

grant connect,dba to dobyjin;
-- 授权用户dobyjin dba权限
grant read,write on directory mydir to dobyjin; --(需要oracle系统管理员操作)
-- 授权用户dobyjin读写目录文件权限


执行导出操作

-- 打开cmd命令窗口(导出命令是在cmd下输入的,不是sqlplus中!!!语句后面不要加“;” !!!)
/*版本问题:如果是从低版本导出,导入到高版本中可以忽略 VERSION=X.X.X.X.X参数;
如果是从高版本导出,导入到低版本中,导出时必须指定版本。建议每次导出时,预先获取导入数据库版本,加上
VERSION参数*/
expdp dobyjin/dobyjin dumpfile=test.dmp logfile=test.log directory=mydir compression=ALL
-- 参数说明: dumpfile是导出文件的名称,可以自定义;logfile是日志,名称可以自定义;directory是之前创建的目录名称(查询目录中的DIRECTORY_NAME);compression是[压缩参数]


查询Oracle数据库版本

select version from v$instance;
select * from v$version;


压缩参数

impdp

导入操作与导出步骤基本一致

从一个用户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 TABLE_EXISTS_ACTION=REPLACE


如果想导入的用户不存在:

1. 导出用户
expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp


2. 导入用户
impdp system/passsystem directory=dumpdir dumpfile=user1.dmp REMAP_SCHEMA=user1:user2 FULL=Y TABLE_EXISTS_ACTION=REPLACE


3. user2会自动建立,其权限和使用的表空间与user1相同,但此时用user2无法登录,必须修改user2的密码

ps:如果导入过程中报错,找不到表空间错误,命令加入REMAP_TABLESPACE=user1:user2即可;TABLE_EXISTS_ACTION决定导入时对表的操作。

参数说明资料:http://czmmiao.iteye.com/blog/2041703

http://www.cnblogs.com/eastsea/archive/2014/09/11/3905092.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 数据库