oracle数据库导入导出命令!

59 篇文章 0 订阅

Oracle数据导入导出imp/exp 
功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。
 
大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。
 Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接
 (通过Net Configuration Assistant添加正确的服务命名,其实你可以想成是客户端与服务器端 修了条路,然后数据就可以被拉过来了)
 这样你可以把数据导出到本地,虽然可能服务器离你很远。
 你同样可以把dmp文件从本地导入到远处的数据库服务器中。
 利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用。
 
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
 DOS中可以执行时由于 在oracle 8i 中  安装目录\$ora10g\BIN被设置为全局路径,
 该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
 oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。
 SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。
 
下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。
数据导出:
 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
   exp system/manager@TEST file=d:\daochu.dmp full=y
 2 将数据库中system用户与sys用户的表导出
   exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
 3 将数据库中的表table1 、table2导出
   exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) 
 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
   exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like  '00%'\"
  
     上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
                     不过在上面命令后面 加上 compress=y  就可以了

数据的导入
 1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
   imp system/manager@TEST  file=d:\daochu.dmp
   上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
   在后面加上 ignore=y 就可以了。
 2 将d:\daochu.dmp中的表table1 导入
 imp system/manager@TEST  file=d:\daochu.dmp  tables=(table1) 
 
 基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。
 
注意:
 你要有足够的权限,权限不够它会提示你。
 数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。

 

数据导出:
exp hkb/hkb@boss_14 full=y file=c:\orabackup\hkbfull.dmp log=c:\orabackup\hkbfull.log;

导出注意事项:导出的是当前用户的的数据,当前用户如果有DBA的权限,则导出所有数据!

同名用户之间的数据导入:
imp hkb/hkb@xe  file=c:\orabackup\hkbfull.dmp log=c:\orabackup\hkbimp.log full=y

不同名之间的数据导入:
imp system/test@xe fromuser=hkb touser=hkb_new file=c:\orabackup\hkbfull.dmp

log=c:\orabackup\hkbimp.log;



oracle导入导出数据库

张映 发表于 2011-06-29

分类目录: oracle

一,赋予导入,导出权限

oracle导入,导出数据库,要有权限,下面是我把导入,导出的权限付给tank这个用户

grant EXP_FULL_DATABASE,IMP_FULL_DATABASE to tank

二,导出数据库和表

1,导出全库

exp tank/tank@TEST file=/home/zhangying/ora_bak/test.dump full=y

2,导出tank这个用户的表

exp tank/tank@TEST file=/home/zhangying/ora_bak/test_tank.dump owner=tank

3,导出部分表

exp tank/tank@TEST file=/home/zhangying/ora_bak/test_part.dump tables=TEST1,TEST2 compress=y

Export: Release 10.2.0.1.0 - Production on Wed Jun 29 11:51:02 2011

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

Export done in US7ASCII character set and AL16UTF16 NCHAR character set

server uses WE8ISO8859P1 character set (possible charset conversion)

About to export specified tables via Conventional Path ...

. . exporting table TEST1

. . exporting table TEST2 0 rows exported

Export terminated successfully without warnings.

exp tank/tank@TEST file=/home/zhangying/ora_bak/test_part.dump tables=(TEST1,TEST2)

bash: 在未预料的“(”附近出现语法错误

网上有很多tables=(TEST1,TEST2)这样的写法,oracle 10g这样种写法肯定是不行的。

4,导出表中的部分数据

exp tank/tank@TEST file=/home/zhangying/ora_bak/test_part.dump tables=TEST QUERY=\" where city=2 \"

EXP-00019: failed to process parameters, type 'EXP HELP=Y' for help

EXP-00000: Export terminated unsuccessfully

不要忘了加上\,不然会报错的,网上有很多是这样写的,QUERY=" where city=2 "是不加\的,但这样写是报错的,至少oracle 10g是报错的。

三,导入数据库表

1,整库导入

imp tank/tank file=/home/zhangying/ora_bak/test.dump full=y

2,导入部分表

imp tank/tank file=/home/zhangying/ora_bak/test.dump tables=TEST1,TEST2

如果导出时就是部分表,那就不用指定表了。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值