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

oracle数据库导出和oracle导入数据的二种方法(oracle导入导出数据)
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了oracle导入导出数据的二种方法,利用PL/SQL Developer工具导出和利用cmd的操作命令导出的出方法,大家参考使用吧
方法一:利用PL/SQL Developer工具导出:菜单栏----&Tools----&Export Tables,如下图,设置相关参数即可:
方法二:利用cmd的操作命令导出,详情如下:1:G:\Oracle\product\10.1.0\Client_1\NETWORK\ADMIN目录下有个tnsname.ora文件,内容如下: 代码如下:CMSTAR =& (DEscriptION =&&& (ADDRESS_LIST =&&&&& (ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.13.200)(PORT = 1521))&&& )&&& (CONNECT_DATA =&&&&& (SERVICE_NAME = cmstar)&&& )& )&
其中:CMSTAR为数据库名,HOST为IP地址,所以可以仿效上面的例子手动添加数据录连接。
2:用cmd进入命令行输入:tnsping cmstar就是测试172.18.13.200是否连接成功
3:导入与导出,如下:数据导出:1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中exp system/manager@TEST file=d:\daochu.dmp full=y2将数据库中system用户与sys用户的表导出expsystem/manager@TESTfile=d:\daochu.dmpowner=(system,sys)3将数据库中的表table1、table2导出expsystem/manager@TESTfile=d:\daochu.dmptables=(table1,table2)4将数据库中的表table1中的字段filed1以"00"打头的数据导出expsystem/manager@TESTfile=d:\daochu.dmptables=(table1)query=\"wherefiled1like'00%'\"
上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。不过在上面命令后面加上compress=y就可以了
数据的导入
1将D:\daochu.dmp中的数据导入TEST数据库中。impsystem/manager@TESTfile=d:\daochu.dmp上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。在后面加上ignore=y就可以了。
2将d:\daochu.dmp中的表table1导入impsystem/manager@TESTfile=d:\daochu.dmptables=(table1)
注意事项:导出dmp数据时需要有导出表的权限的用户,否则不能导出。
PL/SQL Developer是Oracle数据库中用于导入或导出数据库的主要工具,本文主要介绍了利用PL/SQL Developer导入和导出数据库的过程,并对导入或导出时的一些注意事项进行了说明,接下来我们就一一介绍。
导出步骤:
1 tools -&export user object 选择选项,导出.sql文件。
2 tools -&export tables-& Oracle Export 选择选项导出.dmp文件。
导入步骤:
注:导入之前最好把以前的表删除,当然导入另外数据库除外。1 tools-&import tables-&SQL Inserts 导入.sql文件。2 tools-&import talbes-&Oracle Import然后再导入dmp文件。
一些说明:
Tools-&Export User Objects导出的是建表语句(包括存储结构)。Tools-&Export Tables里面包含三种导出方式,三种方式都能导出表结构以及数据,如下:Oracle ExportSql Insertpl/sql developer
第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广 。第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob,long),如果有,会提示不能导出(提示如下: table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead)。第三种是导出为.pde格式的,.pde为Pl/sql developer自有的文件格式,只能用Pl/sql developer自己导入导出,不能用编辑器查看。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具oracle基础
--如何在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&&file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
&&&exp&&file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
&&&&exp&&file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1中的字段filed1以&00&打头的数据导出
&&&exp&&file=d:\daochu.dmp tables=(table1) query=\& where filed1
like '00%'\&
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。
数据的导入
1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
&&&imp&&file=d:\daochu.dmp
&&&imp&&full=y file=file= d:\data\newsmgnt.dmp ignore=y
&&&上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
&&&在后面加上 ignore=y 就可以了。
&补充:ignore=y 会告诉数据库不用创建已有的表。
如果已有的表中有数据,要导入的表中的数据和已有的表中的数据有重复的话,会发生主键冲突。
2 将d:\daochu.dmp中的表table1 导入
imp&&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
说明: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交互式命令行方式的例子
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
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3104次
排名:千里之外Oracle数据库中正确的导入dmp数据库文件
阅读:1769次&&&时间: 08:13:50&&
其实在Oracle数据导入与导出imp/exp的实际操作和Oracle数据还原和备份的实际操作很相似。我们大家都知道exp命令可以把相关的数据从远程Oracle数据库的服务器导出到本地的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\newsmgnt.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\newsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。 注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
给用户增加导入数据权限的操作
第一,启动sql*puls
第二,以system/manager登陆
第三,create user 用户名 IDENTIFIED BY 密码(如果已经创建过用户,这步可以省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字
第五, 运行-cmd-进入dmp文件所在的目录,
imp userid=system/manager full=y file=*.dmp
或者 imp userid=system/manager full=y file=filename.dmp
F:\Work\Oracle_Data\backupimp&userid=test/test&full=y&file=inner_notify.dmp&
Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation. All rights reserved.
连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With&the&Partitioning&option &JServer&Release&8.1.7.0.0&-&Production&
经由常规路径导出由EXPORT:V08.01.07创建的文件
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)
正在将AICHANNEL的对象导入到 AICHANNEL
正在导入表 &INNER_NOTIFY& 4行被导入
准备启用约束条件...
成功终止导入,但出现警告。附录二:
Oracle数据库 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
先建立import9.par,
然后,使用时命令如下:
imp&parfile=/filepath/import9.par&
例 import9.par 内容如下:
FROMUSER=TGPMS&TOUSER=TGPMS2&ROWS=Y&INDEXES=Y&GRANTS=Y&CONSTRAINTS=Y&BUFFER=409600&file==/backup/ctgpc_.dmp &log==/backup/import_.log&
上述的相关内容就是对Oracle数据库导入dmp数据库文件的描述,希望会给你带来一些帮助在此方面。
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
Copyright &
All Rights Reserved2008年 总版技术专家分年内排行榜第二
2010年 总版技术专家分年内排行榜第四2009年 总版技术专家分年内排行榜第五2007年 总版技术专家分年内排行榜第六
本帖子已过去太久远了,不再提供回复功能。&  dmp一般用来备份数据库或者导入数据库,一般用exp命令导出,imp导入。
  前提首先安装好oracle10g数据库 或者 安装oracle11g数据库
  安装完之后还得①设置oracle监听器配置,②创建用户配置用户权限,③创建表空间(这些都具备了的可以忽略!!!!!)
  没有的话要先设置,怎么配置,自己百度,这里就不多说了。
  导入dmp文件
  在命令行下执行:imp pg/pg@pgfs110 imp 用户名/口令 回车 填写导入文件路径:EXPDAT.DMP&c:\a.dmp
  输入插入缓冲区大小:默认不填 回车
  只列出导入文件的内容: 回车
  忽略创建错误:yes
  导入权限:yes
  导入表数据:yes
  导入整个导出文件:yes 等待...成功终止导入,但出现警告。
  导出dmp文件
  exp username/password@服务名 file=文件路径+文件名
例如:我的数据库orcl的用户名和密码都是root,服务名为orcl我要导出到D盘下的orcl.dmp文件,可以这样写: exp root/root@orcl
file=d:\orcl.dmp
  1、首先要下载安装Debugging Tools这个工具。
  2、安装好了以后,在开始菜单下面的可以找得到一个【Debugging Tools for Windows
(x86)】文件夹下面就会出现如下图所示:WinDbg点击进入。
  3、运行WinDbg以后如下图所示:
  4、在WinDbg中点击【File】-----【Open Crash Dump】选择.DMP文件打开。
  5、在打开文件的时候会提示会打开一个工作区域是否在开启。点击【Yes】。
  6、打开了.DMP文件以后如下图所示:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)}

我要回帖

更多关于 linux 查找文件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信