Oracle中用exp/imp命令快速导入导出数据
from: http://blog.csdn.net/wangchunyu11155/article/details/53635602

【用 exp 数 据 导 出】:

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 filed1like '00%'\”

上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。不过在上面命令后面 加上 compress=y 就可以了。

【用 imp 数 据 导 入】:

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)

基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。

功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。
大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。

Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接
(通过net8 assistant中本地–>服务命名添加正确的服务命名
其实你可以想成是客户端与服务器端修了条路,然后数据就可以被拉过来了)
这样你可以把数据导出到本地,虽然可能服务器离你很远。
你同样可以把dmp文件从本地导入到远处的数据库服务器中。
利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用。

执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
DOS中可以执行时由于 在oracle 8i 中 安装目录\ora81\BIN被设置为全局路径,
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用Java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。

注意:
你要有足够的权限,权限不够它会提示你。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。


详细参考如下:

一. 导出工具 exp

  1. 它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/bin

    exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移

    它有三种模式:
    a. 用户模式: 导出用户所有对象以及对象中的数据;
    b. 表模式: 导出用户所有表或者指定的表;
    c. 整个数据库: 导出数据库中所有对象。

  2. 导出工具exp交互式命令行方式的使用的例子

$exp test/test123@appdb
Enter arrayfetch buffer size: 4096 > 回车
Export file: expdat.dmp > m.dmp 生成导出的文件名
(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3
Export table data (yes/no): yes > 回车
Compress extents (yes/no): yes > 回车
Export done in ZHS16GBK character set and ZHS16GBK NCHAR character set
About to export specified tables via Conventional Path …
Table(T) or Partition(T:P) to be exported: (RETURN to quit) >cmamenu 要导出的表名
. . exportingtable CMAMENU 4336 rows exported
Table(T) or Partition(T:P) to be exported: (RETURN to quit) >要导出的表名n
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > 回车
Export terminated successfully without warnings.

  1. 导出工具exp非交互式命令行方式的例子

$exp scott/tiger tables=(emp,dept) file=/directory/scott.dmp grants=y

说明:把scott用户里两个表emp,dept导出到文件/directory/scott.dmp

$exp scott/tiger tables=emp query=“where job=‘salesman’ andsal<1600” file=/directory/scott2.dmp

说明:在exp里面加上导出emp的查询条件job=‘salesman’ and sal<1600

 (但我个人很少这样用,还是把满足条件的记录生成临时表后,再exp会方便一些)

$expparfile=username.par file=/directory1/username_1.dmp,/directory1/username_2.dmpfilesize=2000M log=/directory2/username_exp.log

参数文件username.par内容
userid=username/userpassword
buffer=8192000
compress=n
grants=y

说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改

  filesize指定生成的二进制备份文件的最大字节数(可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)

二.导入工具 imp

  1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin

imp导入工具将EXP形成的二进制系统文件导入到数据库中.

它有三种模式:a.   用户模式: 导出用户所有对象以及对象中的数据;b.   表模式: 导出用户所有表或者指定的表;c.   整个数据库: 导出数据库中所有对象。只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入imp步骤:
(1) create table   (2) insert data   (3)create index (4) create triggers,constraints

2.导入工具imp交互式命令行方式的例子
$ imp
Import: Release 8.1.6.0.0 - Production on 星期五 12月 7 17:01:08 2001
© Copyright 1999 Oracle Corporation. All rights reserved.
用户名: test
口令:****
连接到: Oracle8i Enterprise Edition Release 8.1.6.0.0 -64bit Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
导入文件: expdat.dmp> /tmp/m.dmp
输入插入缓冲区大小(最小为 8192 ) 30720>
经由常规路径导出由EXPORT:V08.01.06创建的文件
警告: 此对象由 TEST 导出, 而不是当前用户
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
只列出导入文件的内容(yes/no):no>
由于对象已存在, 忽略创建错误(yes/no):no> yes
导入权限(yes/no):yes>
导入表数据(yes/no):yes>
导入整个导出文件(yes/no):no> yes
. 正在将TEST的对象导入到 SCOTT
. . 正在导入表 “CMAMENU” 4336行被导入
成功终止导入,但出现警告。

3.导入工具imp非交互式命令行方式的例子

$ imp system/manager fromuser=jones tables=(accts)
$ imp system/manager fromuser=scott tables=(emp,dept)
$ imp system/manager fromuser=scott touser=joe tables=emp
$ imp scott/tiger file = expdat.dmp full=y
$ imp scott/tiger file = /mnt1/t1.dmp show=n buffer=2048000 ignore=n commit=ygrants=y full=y log=/oracle_backup/log/imp_scott.log
$ imp system/manager parfile=params.dat
params.dat 内容
file=dba.dmp show=n ignore=n grants=y fromuser=scott tables=(dept,emp)

4.导入工具imp可能出现的问题

(1) 数据库对象已经存在
一般情况, 导入数据前应该彻底删除目标数据下的表, 序列, 函数/过程,触发器等;
数据库对象已经存在, 按缺省的imp参数, 则会导入失败
如果用了参数ignore=y, 会把exp文件内的数据内容导入

此时,
如果(目标)表【即被导入的表】有唯一关键字的约束条件, 不合条件将不被导入
如果(目标)表【即被导入的表】没有唯一关键字的约束条件, 将引起记录重复

(2) 数据库对象有主外键约束
不符合主外键约束时, 数据会导入失败
解决办法: 先导入主表, 再导入依存表
(或)disable目标导入对象的主外键约束, 导入数据后, 再enable它们???
(3) 权限不够
如果要把A用户的数据导入B用户下, A用户需要有imp_full_database权限

(4) 导入大表( 大于80M ) 时, 存储分配失败
默认的EXP时, compress = Y, 也就是把所有的数据压缩在一个数据块上.
导入时, 如果不存在连续一个大数据块, 则会导入失败.
导出80M以上的大表时, (e x p )记得compress=N, 则不会引起这种错误.

(5) imp和exp使用的字符集不同
如果字符集不同, 导入会失败, 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息.
导入完成后再改回来.

(6) imp和exp版本不能往上兼容
imp可以成功导入低版本exp生成的文件, 不能导入高版本exp生成的文件
根据情况我们可以用
$ imp username/password@connect_string
说明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora
定义的本地或者远端数据库的名称
注意事项:
UNIX:/etc/hosts 要定义本地或者远端数据库服务器的主机名
win98: windows\hosts 和IP地址的对应关系

EXP可以导出成多个DUMP文件

很多DBA还没有意识到Export可以使用多个数据文件来存储被导出的数据。如果单个磁盘卷没有足够的空间,或者数据库超出了操作系统中单个文件的大小限制,它很容易将导出数据分割成多个文件。

早在Oracle 8i开始,FILE参数就可以容纳用逗号分开的多个文件路径。FILESIZE参数让你指定在转移到下一个文件之前,多少数据可以写到单个文件中。如果Export用光了FILE列表中的名字,它会提示额外的文件名。

比如,让我们假设全部的数据库导出需要6G的空间,并且操作系统中单个文件大小的限制是2G。你要将导出文件放在/exp文件系统下的prod目录中。这个参数文件应该包含下面的内容:

FILE=/exp/prod/exp01.dmp,/exp/prod/exp02.dmp,/exp/prod/exp03.dmp
  FILESIZE=2G

在Oracle 10g中,新的Data Pump export(expdp)使用方式类似但是略有改变。输出文件路径不再像早期版本中那样写死,相反,使用Directory对象指到操作系统中的目录。 FILE参数被DUMPFILE参数取代,并且为了方便使用,你可以指定通配符来自动产生文件名而不是全部列出来。

在Oracle 10g中,如果你要创建一个叫做EXPDIR的Directory指向/exp/prod目录,上面的例子中的参数会变成这样:

DUMPFILE=expdir:exp%U.dmp
  FILESIZE=2G

在Export过程中文件名exp01.dmp、exp02.dmp和exp03.dmp会自动产生。

分类: Oracle数据库
好文要顶 关注我 收藏该文
wq3435
关注 - 4
粉丝 - 12
+加关注
0 0
« 上一篇:Linux下更改oracle客户端字符集和服务端字符集
» 下一篇:Kafka剖析(一):Kafka背景及架构介绍
posted @ 2017-12-11 18:30 wq3435 阅读(15890) 评论(0) 编辑 收藏

exp数据导出,imp数据导入相关推荐

  1. R语言数据导出(数据保存、导出、持久化到本地指定目录文件)、使用foreign包的write.dta函数将dataframe导出为Stata格式dta文件

    R语言数据导出(数据保存.导出.持久化到本地指定目录文件).使用foreign包的write.dta函数将dataframe导出为Stata格式dta文件 目录

  2. R语言数据导出(数据保存、导出、持久化到本地指定目录文件)、保存为txt、csv、tsv、xls、xlsx、dta、sas、sps格式文件

    R语言数据导出(数据保存.导出.持久化到本地指定目录文件).保存为txt.csv.tsv.xls.xlsx.dta.sas.sps格式文件 目录

  3. c 控制mysql数据导出_MySql数据库导入导出的三种方式

    第一种: 使用mysql自带的Workbench可视化工具进行操作,如图: 选择好以后按  start Export 选择好以后按  start import 第二种: 使用Navicat 右键点击转 ...

  4. hive表中的数据导出:表数据的导出7种方式

    将hive表中的数据导出到其他任意目录,例如linux本地磁盘,例如hdfs,例如mysql等等 insert导出 1)将查询的结果导出到本地 :第一种 insert overwrite local ...

  5. python数据导出excel_python 数据生成excel导出(xlwt,wlsxwrite)代码实例

    这篇文章主要介绍了python 数据生成excel导出(xlwt,wlsxwrite)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 话不多 ...

  6. python数据导出excel_Python-将数据表中数据导出到excel

    '''需求:写一个函数,随便输入一个表名,把这个表里面所有的数据,导出到excel里面 思路: 1.'select * from %s' ,查出这个表所有的数据 2.再把所有的数据写到excel xl ...

  7. 根据实体excel导入导出百万数据,可修改表头名称

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 表格导入导出实现效果展示 根据实体类导出模板 读取表格数据 导出数据为excel 进阶:修改表格导出的列头 controll ...

  8. Oracle导出数据库数据为dmp文件(存在空表情况)

    目的:将数据库数据导出,以便其他人导入自己的数据库中 问题:库中存在空表,导出dmp文件提示失败或是用不了 1.找出对应库的空表(数据库执行) select 'alter table '||table ...

  9. WPF 数据库数据导出为Datatable,Datatable导出为Excel

    安装Excel包 2.将数据库内容导为DataTable类型 System.Data.DataTable data_table = new System.Data.DataTable("My ...

  10. hive分区、数据加载、数据导出、数据类型

    一.hive分区 1.特点: 分区表与其他表不同点在于,分区字段的值为表目录下的子目录格式 ,为: 分区字段=值 2.建表语句 create database learn2; CREATE TABLE ...

最新文章

  1. 关于印发《会计电算化管理办法》等规章的通知
  2. 最新发布丨金融新基建系列报告:银行业六大中期趋势展望
  3. 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台
  4. flex 组建重写
  5. 靶场练习第二十五天~vulnhub靶场之Raven-2
  6. 第二课 决策树与随机森林
  7. JBox2D手机游戏引擎介绍(附jbox2d官网网址)
  8. 指定范围内每个数的所有真约数
  9. Linux集群在银行信息化中的应用(2)
  10. 区块链 以太坊 验证区块
  11. hibernate两张表关联查询
  12. cvc降噪和主动降噪_蓝牙耳机降噪功能CVC好还是DSP?
  13. Ambari-Agent心跳丢失:Failed to connect to https://xx.xx.xx:8440/ca due to
  14. win7安装.Net Framework 4,出现错误码(1603,0x80070643)
  15. python切片原理_彻底理解Python list切片原理
  16. 微信小程序开发学习笔记一
  17. 控件不能正确注册错误
  18. 61二次型—— 化二次型为标准形、矩阵的合同变换求二次型的标准形
  19. 吊打面试官、分享这份MySQL开发魔典,从入门到通关白皮书
  20. docker实现quagga_docker中安装quagga详细介绍

热门文章

  1. 一周 AIGC 丨白宫宣布首个 AI 监管计划,中国 AI 领域或面临美国全面投资禁令...
  2. Sorry, name can only contain URL-friendly characters and name can no longer contain capital letters.
  3. ST-Link能检测到单片机并且时有时无,无法烧录程序
  4. Burp Suite下载
  5. 华熙生物、昊海生科、爱美客半年报PK,医美三剑客谁最强?
  6. 左耳朵耗子:996不是福气,努力也未必成功(转载自陈浩的blog -- 酷壳)
  7. editplus 注册码
  8. JPA - @Where注解 - 添加条件查询
  9. 蓝桥杯真题跑步锻炼(Excel快速准确解法)
  10. python正则表达式初识(七)_Python正则表达式初识(七)