ORACLE数据导出和导入解读Word下载.docx
- 文档编号:7457917
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:14
- 大小:27.13KB
ORACLE数据导出和导入解读Word下载.docx
《ORACLE数据导出和导入解读Word下载.docx》由会员分享,可在线阅读,更多相关《ORACLE数据导出和导入解读Word下载.docx(14页珍藏版)》请在冰点文库上搜索。
(1)E(ntiredatabase),
(2)U(sers),or(3)T(ables):
(2)U>
3
Exporttabledata(yes/no):
yes>
Compressextents(yes/no):
ExportdoneinZHS16GBKcharactersetandZHS16GBKNCHARcharacterset
AbouttoexportspecifiedtablesviaConventionalPath...
Table(T)orPartition(T:
P)tobeexported:
(RETURNtoquit)>
cmamenu
要导出的表名
..exportingtable
CMAMENU
4336rowsexported
要导出的表名n
Exportterminatedsuccessfullywithoutwarnings.
3.导出工具exp非交互式命令行方式的例子
$expscott/tigertables=(emp,dept)file=/directory/scott.dmpgrants=y
说明:
把scott用户里两个表emp,dept导出到文件/directory/scott.dmp
$expscott/tigertables=empquery=\"
wherejob=\'
salesman\'
andsal\<
1600\"
file=/directory/scott2.dmp
在exp里面加上导出emp的查询条件job='
salesman'
andsal<
1600
(但我个人很少这样用,还是把满足条件的记录生成临时表后,再exp会方便一些)
$expparfile=username.parfile=/directory1/username_1.dmp,/directory1/username_2.dmpfilesize=2000Mlog=/directory2/username_exp.log
参数文件username.par内容
userid=username/userpassword
buffer=8192000
compress=n
grants=y
username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改
filesize指定生成的二进制备份文件的最大字节数
(可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)
二.导入工具imp
imp导入工具将EXP形成的二进制系统文件导入到数据库中.
只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入
imp步骤:
(1)createtable
(2)insertdata
(3)createindex(4)createtriggers,constraints
2.导入工具imp交互式命令行方式的例子
$imp
Import:
Release8.1.6.0.0-Productionon星期五12月717:
01:
082001
(c)Copyright1999OracleCorporation.
Allrightsreserved.
用户名:
test
口令:
****
连接到:
Oracle8iEnterpriseEditionRelease8.1.6.0.0-64bitProduction
WiththePartitioningoption
JServerRelease8.1.6.0.0-Production
导入文件:
expdat.dmp>
/tmp/m.dmp
输入插入缓冲区大小(最小为8192)30720>
经由常规路径导出由EXPORT:
V08.01.06创建的文件
警告:
此对象由TEST导出,而不是当前用户
已经完成ZHS16GBK字符集和ZHS16GBKNCHAR字符集中的导入
只列出导入文件的内容(yes/no):
no>
由于对象已存在,忽略创建错误(yes/no):
yes
导入权限(yes/no):
yes>
导入表数据(yes/no):
导入整个导出文件(yes/no):
.正在将TEST的对象导入到SCOTT
..正在导入表
"
CMAMENU"
4336行被导入
成功终止导入,但出现警告。
3.导入工具imp非交互式命令行方式的例子
$impsystem/managerfromuser=jonestables=(accts)
$impsystem/managerfromuser=scotttables=(emp,dept)
$impsystem/managerfromuser=scotttouser=joetables=emp
$impscott/tigerfile=expdat.dmpfull=y
$impscott/tigerfile=/mnt1/t1.dmpshow=nbuffer=2048000ignore=ncommit=ygrants=yfull=ylog=/oracle_backup/log/imp_scott.log
$impsystem/managerparfile=params.dat
params.dat内容
file=dba.dmpshow=nignore=ngrants=yfromuser=scotttables=(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生成的文件
根据情况我们可以用
$impusername/password@connect_string
connect_string是在/ORACLE_HOME/network/admin/tnsnames.ora
定义的本地或者远端数据库的名称
注意事项:
UNIX:
/etc/hosts
要定义本地或者远端数据库服务器的主机名
win98:
windows\hosts
和IP地址的对应关系
win2000:
winnt\system32\drivers\etc\hosts
你可以通过这个链接引用该篇文章:
引用到我的博客:
0|
收藏到我的博客
收藏到我的博客
安装OracleCilent后,在任何一台Cilent包含exp/imp两个工具,可以完成数据的导出/导入。
程序在$ORACLE_HOME\bin下
基本使用方法:
导出
expuser/pass@SIDfile=FILEfull=[y|n]owner=(OWNER1,OWNER2)tables=(TABBLE1,TABLE2)query=\"
WHERECLAUSE\"
compress=[y|n]
参数说明:
file=导出文件名称
owner=导出该用户的表
tables=导出的表
query=导出的表的条件,即where部分,并且\"
\"
不要省略
compress=是否对导出数据进行压缩
例:
expnpmdb/npmoptr@tjnpmfile=d:
\tpd_msc.dmptables=(tpd_msc)query=\"
wherescan_start_time=\"
2006-9-1510:
00:
00\"
导入
impuser/pass@SIDfile=FILEtables=(TABLE1)ignore=[y|n]
file=要导入进来的文件
tables=导入的表
ignore=是否忽略错误,比如表存在
impnpmdb/npmoptr@tjnpmfile=d:
\tpd_msc.dmptables=(tpd_msc)
Oracle数据导入导出imp/exp命令
Postedon2007-02-0909:
35jason_lb阅读(14382)评论(14)
编辑收藏所属分类:
数据库技术、网文摘抄
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。
利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。
执行环境:
可以在SQLPLUS.EXE或者DOS(命令行)中执行,
DOS中可以执行时由于在oracle8i中
安装目录ora81BIN被设置为全局路径,
该目录下有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中
expsystem/manager@TESTfile=d:
daochu.dmpfull=y
2将数据库中system用户与sys用户的表导出
daochu.dmpowner=(system,sys)
3将数据库中的表inner_notify、notify_staff_relat导出
expaichannel/aichannel@TESTDB2file=d:
datanewsmgnt.dmptables=(inner_notify,notify_staff_relat)
4将数据库中的表table1中的字段filed1以"
00"
打头的数据导出
daochu.dmptables=(table1)query="
wherefiled1like'
00%'
"
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面加上compress=y来实现。
数据的导入
1将D:
daochu.dmp中的数据导入TEST数据库中。
impsystem/manager@TEST
file=d:
daochu.dmp
impaichannel/aichannel@HUSTfull=y
datanewsmgnt.dmpignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上ignore=y就可以了。
2将d:
daochu.dmp中的表table1导入
impsystem/manager@TEST
daochu.dmp
tables=(table1)
基本上上面的导入导出够用了。
不少情况要先是将表彻底删除,然后导入。
注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。
可以用tnspingTEST来获得数据库TEST能否连上。
附录一:
给用户增加导入数据权限的操作
第一,启动sql*puls
第二,以system/manager登陆
第三,createuser用户名IDENTIFIEDBY密码(如果已经创建过用户,这步可以省略)
第四,GRANTCREATEUSER,DROPUSER,ALTERUSER,CREATEANYVIEW,
DROPANYVIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATESESSION
TO用户名字
第五,运行-cmd-进入dmp文件所在的目录,
impuserid=system/managerfull=yfile=*.dmp
或者impuserid=system/managerfull=yfile=filename.dmp
执行示例:
F:
WorkOracle_Databackup>
impuserid=test/testfull=yfile=inner_notify.dmp
屏幕显示
Release8.1.7.0.0-Productionon星期四2月1616:
50:
052006
(c)Copyright2000OracleCorporation.
Oracle8iEnterpriseEditionRelease8.1.7.0.0-Production
JServerRelease8.1.7.0.0-Production
V08.01.07创建的文件
导出服务器使用UTF8NCHAR字符集(可能的ncharset转换)
.正在将AICHANNEL的对象导入到AICHANNEL
INNER_NOTIFY"
4行被导入
准备启用约束条件...
附录二:
Oracle不允许直接改变表的拥有者,利用Export/Import可以达到这一目的.
先建立import9.par,
然后,使用时命令如下:
impparfile=/filepath/import9.par
例import9.par内容如下:
FROMUSER=TGPMS
TOUSER=TGPMS2
(注:
把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
file==/backup/ctgpc_20030623.dmp
log==/backup/import_20030623.log
以下我自己补充:
1.在导入导出命令中加上feedback=1000可以让过程显示一个不断增多的“...”,以改变以往的闪烁的光标
安装目录\ora81\BIN被设置为全局路径,
oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。
数据导入:
\daochu.dmp中的数据导入TEST数据库中。
\daochu.dmp
\daochu.dmp中的表table1导入
\daochu.dmp
tables=(table1)
下面这句是执行将c盘的oracle的备份的用户qhmis导入到用户qhmis的数据库
impqhmis/qhmis@qhmis
file='
c:
qhmis20060224.dmp'
ignore=n
grants=y
full=y
expqhmis/qhmis@qhmis
d:
\backup\qhmis\qhmis20060526.dmp'
full=n
\daochu.dmp中
\daochu.dmpfull=y
\daochu.dmpowner=(system,sys)
3将数据库中的表table1、table2导出
\daochu.dmptables=(table1,table2)
\daochu.dmptables=(table1)
query=\"
上面是常用的导出,用winzip把dmp文件可以很好的压缩,不过在上面命令后面加上compress=y
就可以了
导出
expuserName/passWord@实例file=./test1.dmpowner=userName
导入
impuserName/passWord@实例file=./test1.dmpfromuser=userNametouser=username
转:
35jason_lb阅读(16244)评论(15)
SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ORACLE 数据 导出 导入 解读