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

Oracle数据库EXP/IMP导出导入

2016-08-23 15:56 405 查看
我们在做项目过程中,经常会将Oracle数据库从这台机器迁移到另一台机器,这时就需要使用到Oracle的EXP/IMP命令,本篇文章主要介绍Oracle的EXP/IMP命令,主要是怕时间久了,到时候再复习起来容易一些。

Oracle数据导入导出imp/exp就相当于逻辑(数据的)备份与恢复,支持客户端与服务器操作。

exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,

imp命令可以把dmp文件从本地导入到远处的数据库服务器中。

执行环境:在客户端与服务端的shell状态下DOS(命令行)中执行

一、数据导出EXP

1、全库方式,导出整个数据库中所有的对象,但并不包括sys用户中的对象,即数据字典无法导出。

exp user/pwd@db_name full=y file=D:\database.dmp log=D:\database.log

2、用户方式:导出某一用户下所有的对象,授权了权限的用户可以导出其他用户所拥有的对象。作为全库导出的补充应用

exp user/pwd@db_name owner=(system,sys) file=D:\owner.dmp log=D:\owner.log

3、表方式:只导出某一用户下指定的表,而不是所有的表。

exp user/pwd@db_name tables=(tb1,tb2) file= D:\table.dmp log=e:\table.log

4、补充:将数据库中的表table1中的字段filed1以"00"打头的数据导出

exp user/pwd@db_name tables=(table1) query=" where filed1 like '00%'" file=D:\query.dmp log=d:\query.log

  

上面是常用的导出,更多参数exp help=y 查看

二、数据导入IMP

1、全部导入

imp user/pwd@db_name full=y file=D:\database.dmp log=d:\impdatabase.log ignore=y

2、用户模式
imp user/pwd@db_name file=D:\database.dmp fromuser=cyzgz touser=cyzgz
这样用户cyzgz的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据。

3、选择表导入 将D:\table.dmp中的表table1 导入

imp user/pwd@db_name file=D:\table.dmp log=d:\imptable.log tables=(table1) 

如果源表已经存在,导入时报错。在后面加上 ignore=y 就可以了。

我们一般情况要先将表彻底删除,然后导入。或创建和原表一样结构的临时表然后导入到临时表中。

备注:语句执行中可能碰上的问题:

***EXP-00091 正在导出有问题的统计信息 

原因:字符集问题

解决:exp命令加statistics=none选项

expdp/impdp (数据泵)是Oracle10G新引入的工具.它不但包括了imp/exp的功能,还进行了扩充与加强,其速度也更快。但只能在数据库服务端运行。该功能我将在下一篇博文"Oracle数据库EXPDP/IMPDP导出导入"中介绍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle exp imp 导出 导入