oracle中怎样导入数据库文件

作者&投稿:产烁 (若有异议请与网页底部的电邮联系)
如何在oracle中导入dmp数据库文件~

--如何在oracle中导入dmp数据库文件?

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命 令可以把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所包裹的类,完成导入导出功能。

下面介绍的是导入导出的实例。
数据导出:
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 将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file= d:\data
ewsmgnt.dmp tables=(inner_notify,notify_staff_relat)

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
imp aichannel/aichannel@HUST full=y file=file= d:\data
ewsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
补充:ignore=y 会告诉数据库不用创建已有的表。
如果已有的表中有数据,要导入的表中的数据和已有的表中的数据有重复的话,会发生主键冲突。
2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

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

一. 导出工具 exp

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

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

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

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

$exp test/test123@appdb
Enter array fetch 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 要导出的表名
. . exporting table 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.

3. 导出工具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\' and sal\<1600\" file=/directory/scott2.dmp

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

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

$exp parfile=username.par file=/directory1/username_1.dmp,/directory1/username_2.dmp filesize=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
(c) 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=y grants=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以上的大表时, 记得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地址的对应关系

win2000: winnt\system32\drivers\etc\hosts

1、登录到要导入的数据库及用户。
2、依次点击“工具”——“导入表”。

3、上方选择“oracle导入”,下方找到.dmp的文件,然后点击“导入”等待完成即可。命令导入:
1、win键+R键,进入命令提示符。
2、进到.dmp文件所在文件夹:

3、输入如下命令;
imp 被导入用户名/密码@实例名 file=文件名.dmp log=日志.dmp fromuser=导出用户 touser=导入用户
4、 输入后按回车键,等待导入完成即可。

可用图形界面或者命令导入:

图形界面需要借助第三方工具plsql,方法如下:

1、登录到要导入的数据库及用户。

2、依次点击“工具”——“导入表”。

3、上方选择“oracle导入”,下方找到.dmp的文件,然后点击“导入”等待完成即可。

命令导入:

1、win键+R键,进入命令提示符。

2、进到.dmp文件所在文件夹:

3、输入如下命令:

imp 被导入用户名/密码@实例名 file=文件名.dmp log=日志.dmp fromuser=导出用户 touser=导入用户

输入后按回车键,等待导入完成即可。

说明:第三点中中文部分,请根据实际情况填写。



1、登录到要导入的数据库及用户。

2、依次点击“工具”——“导入表”。

3、上方选择“oracle导入”,下方找到.dmp的文件,然后点击“导入”等待完成即可。命令导入:

1、win键+R键,进入命令提示符。

2、进到.dmp文件所在文件夹:

3、输入如下命令;

imp 被导入用户名/密码@实例名 file=文件名.dmp log=日志.dmp fromuser=导出用户 touser=导入用户

4、  输入后按回车键,等待导入完成即可。



 导出
导出具体的分为:导出表,导出方案,导出数据库三种方式。
导出使用exp命令来完成的,该命令常用的选项有:
userid: 用于指定执行导出操作的用户名,口令,连接字符串
tables: 用于指定执行导出操作的表
owner: 用于指定执行导出操作的方案
full=y: 用于指定执行导出操作的数据库
inctype: 用于指定执行导出操作的增量类型
rows: 用于指定执行导出操作是否要导出表中的数据
file: 用于指定导出文件名
Oracle 笔记
23

 导出表
1.导出自己的表
exp userid=scott/tiger@myoral tables=(emp,dept) file=d:\e1.dmp
2.导出其它方案的表
如果用户要导出其它方案的表,则需要dba的权限或是exp_full_database的权限,比如system就可以导出scott的表
E:\oracle\ora92\bin>exp userid=system/manager@myoral tables=(scott.emp) file=d:\e2.emp
特别说明:在导入和导出的时候,要到oracle目录的bin目录下。
3. 导出表的结构
exp userid=scott/tiger@accp tables=(emp) file=d:\e3.dmp rows=n
4. 使用直接导出方式
exp userid=scott/tiger@accp tables=(emp) file=d:\e4.dmp direct=y
这种方式比默认的常规方式速度要快,当数据量大时,可以考虑使用这样的方法。
这时需要数据库的字符集要与客户端字符集完全一致,否则会报错...
 导出方案
导出方案是指使用export工具导出一个方案或是多个方案中的所有对象(表,索引,约束...)和数据。并存放到文件中。
1. 导出自己的方案
exp userid=scott/tiger@myorcl owner=scott file=d:\scott.dmp
2. 导出其它方案
如果用户要导出其它方案,则需要dba的权限或是exp_full_database的权限,比如system用户就可以导出任何方案
exp userid=system/manager@myorcl owner=(system,scott) file=d:\system.dmp
 导出数据库
导出数据库是指利用export导出所有数据库中的对象及数据,要求该用户具有dba的权限或者是exp_full_database权限
增量备份(好处是第一次备份后,第二次备份就快很多了)
exp userid=system/manager@myorcl full=y inctype=complete file=d:\all.dmp
导入
 介绍
导入就是使用工具import将文件中的对象和数据导入到数据库中,但是导入要使用的文件必须是export所导出的文件。与导
出相似,导入也分为导入表,导入方案,导入数据库三种方式。
imp常用的选项有
userid: 用于指定执行导入操作的用户名,口令,连接字符串
tables: 用于指定执行导入操作的表
formuser: 用于指定源用户
touser: 用于指定目标用户
file: 用于指定导入文件名
full=y: 用于指定执行导入整个文件
inctype: 用于指定执行导入操作的增量类型
rows: 指定是否要导入表行(数据)
ignore: 如果表存在,则只导入数据
 导入表
1. 导入自己的表
imp userid=scott/tiger@myorcl tables=(emp) file=d:\xx.dmp
2. 导入表到其它用户
要求该用户具有dba的权限,或是imp_full_database
imp userid=system/tiger@myorcl tables=(emp) file=d:\xx.dmp touser=scott
3. 导入表的结构
Oracle 笔记
24

只导入表的结构而不导入数据
imp userid=scott/tiger@myorcl tables=(emp) file=d:\xx.dmp rows=n
4. 导入数据
如果对象(如比表)已经存在可以只导入表的数据
imp userid=scott/tiger@myorcl tables=(emp) file=d:\xx.dmp ignore=y
 导入方案
导入方案是指使用import工具将文件中的对象和数据导入到一个或是多个方案中。如果要导入其它方案,要求该用户具有dba
的权限,或者imp_full_database
1. 导入自身的方案
imp userid=scott/tiger file=d:\xxx.dmp
2. 导入其它方案
要求该用户具有dba的权限
imp userid=system/manager file=d:\xxx.dmp fromuser=system touser=scott
 导入数据库
在默认情况下,当导入数据库时,会导入所有对象结构和数据,案例如下:
imp userid=system/manager full=y file=d:\xxx.dmp

如果你要是有客户端软件,就可以直接导出了,而不用书写命令行导出了,而且还能保证不会出错

用imp命令


畜牧兽医猪毕业论文参考(2)
文中所列,只是在教学过程中的初步做法和体会,还不够成熟,也可能有错误,如何更好的使用多媒体课件辅助中兽医学教学,有待中兽医教育工作者继续不断的探索和实践。 参考文献: [1]杨修国.多媒体辅助教学利弊分析[J].电脑知识与技术,2014,10(12):2859-2860. [2]胡元亮.中兽医学[M].科学出版社,2013,1-7. [...

金希澈的资料
SBS<8对1> (080121 080128 080204 080211 080225(嘉宾:金在中、朴有天)...)固定MCMISALA JIN 的音乐date 希澈嘉宾 080314晟民的天方地轴 希澈嘉宾 080314 SBS真实游戏愚人节特辑 080401强仁亲密朋友 希澈嘉宾 080430利特恩赫 KissTheRadio 希澈嘉宾 080430SBS人气歌谣告别MC 080504KBS2TV 寻笑人观众嘉宾 080504...

“公主”希澈的资料
2013-03-23 super junior中希澈为什么叫公主??? 3 2009-08-14 大家快来看看希澈公主的这些剪辑都是出自哪里? 4 2006-06-19 金希澈为什么叫"公主" 21 2007-11-23 爱希澈公主的来 6 2014-10-05 希澈公主和韩庚 2007-06-27 希澈公主上的节目《做吧GO》是哪期? 2 2010-03-19 了解金希澈 41...

拼多多电商erp软件?
电商erp软件前十名分别是用友、SAP、金蝶、O RACLE(甲骨文)、浪潮、鼎捷软件、I NFOR、Aisino、Microsoft(微软)、NEWGRAND(新中大)。1、用友 用友创立于1988年,总部位于中国北京,是中国企业数智化服务和软件国产化自主创新品牌。用友云E RP:用友云ERP,包括大型企业数字化平台NC Cloud,中型及中...

谢通门县17222347636: oracle中怎样导入数据库文件 -
禽赖脑安: 可用图形界面或者命令导入: 图形界面需要借助第三方工具plsql,方法如下: 1、登录到要导入的数据库及用户. 2、依次点击“工具”——“导入表”.3、上方选择“oracle导入”,下方找到.dmp的文件,然后点击“导入”等待完成即可.命令导入:1、win键+R键,进入命令提示符. 2、进到.dmp文件所在文件夹: 3、输入如下命令: 1imp 被导入用户名/密码@实例名 file=文件名.dmp log=日志.dmp fromuser=导出用户 touser=导入用户 输入后按回车键,等待导入完成即可.说明:第三点中中文部分,请根据实际情况填写.

谢通门县17222347636: oracle怎样导入数据库 -
禽赖脑安: 方法一:利用PL/SQL Developer工具导出: 菜单栏---->Tools---->Export Tables,如下图,设置相关参数即可: 方法二:利用cmd的操作命令导出,详情如下: 1:G:\Oracle\product\10.1.0\Client_1\NETWORK\ADMIN目录下有个tnsname.ora文...

谢通门县17222347636: 怎么把数据库导入到oracle里面的?
禽赖脑安: 用sqlserver2000自带的导入导出数据工具,将access表中的数据导入到oracle中去下面是我在一个人的博客中找到的注意事项,你可以看一看1.导入的时候access中的表名必须是大写的,否则导进去之后,因为sqlplus运行到后台的时候会把所有...

谢通门县17222347636: 怎样把数据库导入到Oracle中,用的是PL/SQL? -
禽赖脑安: 能说的再详细一下吗 导入数据的话,可以使用 imp 或者 data dump 这两种

谢通门县17222347636: oracle 怎么把从别人然电脑上拷贝下来的数据库,导入到自己电脑里oracle. -
禽赖脑安: 我只导过9i的版本,你看看用不用得上吧1、导入的数据应该是一个后缀为dmp的文件2、要注意oracle的版本是不是相同的,不然会不兼容3、要导入的话,在电脑的cmd命令行输入:imp 用户名/密码@你要导入到哪个数据库的名称 file=dmp文件...

谢通门县17222347636: oracle数据库怎么把一个库里面的数据导入到另外一个库 -
禽赖脑安: 导入数据库备份文件,打开pl/sql developer ,点击tool(工具)----》import ..然后把你的备份文件导入就可以了,刷新tables ,就可以看到表了

谢通门县17222347636: 如何在oracle中导入dmp数据库文件 -
禽赖脑安: imp导入:1. 获取帮助 imp help=y2. 导入一个完整数据库 imp system/manager file=bible_db log=dible_db full=y ignore=y3. 导入一个或一组指定用户所属的全部表、索引和其他对象 imp system/manager file=seapark log=seapark fromuser=seapark...

谢通门县17222347636: Oracle数据库中如何实现导入文本数据的功能 -
禽赖脑安: 测试方法:Dos 下输入 C:\>sqlplus username/password@serviceName 2、然后使用 Oracle 的 sqlldr 命令进行数据的导入 前期条件 1)Oracle 数据库端必须已经建好了需要导入的数据表的结构 2)一个数据源文件 下面例子中为制表符分隔的文本...

谢通门县17222347636: 如何将一个文本文件中的数据加载到oracle数据库中 -
禽赖脑安: 将文本文件导入Oracle中需要用sqlloader的方式. 1、在数据库中创建相应的表. 如,文本文件内容为:1 2 3 4create table test (id int, name varchar2(10), sex varchar2(10));2、在电脑中某路径下编写ctrl文件,以c盘data目录为例,添加如下...

谢通门县17222347636: Oracle如何导入数据?
禽赖脑安: 方法1.可以在工具里面选择导入,然后选择你导入的库.再选择你导入 的文件 方法2.你打开a.sql然后复制里面的语句去新库执行

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网