本文主要介绍了oracle中EXP和IMP的详细用法。有需要的朋友可以参考一下。
基本语法和实例:
1、实验:
主要有三种方式(完全、用户、表)
1.完成:
EXP系统/管理器缓冲区=64000 FILE=C:\FULL。DMP FULL=Y
如果要执行完全导出,您必须拥有特殊权限。
2.用户模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\ SONIC。DMP车主=索尼克
这样,用户SONIC的所有对象都输出到文件中。
3.表格模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\ SONIC。DMP所有者=音速表=(音速)
这样就导出了用户SONIC的表音。
2、IMP:
有三种模式(完整、用户、表格)
1.完成:
IMP系统/管理器缓冲区=64000 FILE=C:\FULL。DMP FULL=Y
2.用户模式:
IMP SONIC/SONIC BUFFER=64000 FILE=C:\ SONIC。DMP FROMUSER=SONIC TOUSER=SONIC
这样,用户SONIC的所有对象都导入到文件中。您必须从USER和TOUSER指定参数才能导入数据。
3.表格模式:
EXP SONIC/SONIC BUFFER=64000 FILE=C:\ SONIC。DMP所有者=音速表=(音速)
这样就导入了用户SONIC的table SONIC。
ORACLE数据库有两种备份方法。第一种是物理备份,实现了数据库的完全恢复,但是数据库必须运行在归档模式下(业务数据库运行在非归档模式下),需要庞大的外部存储设备,比如磁带库。第二种备份是逻辑备份,业务数据库采用逻辑备份。这种方法不需要数据库以背靠背的方式运行,不仅备份简单,而且不需要外部存储设备。
数据库逻辑备份方法
ORACLE数据库的逻辑备份可以分为三种模式:表备份、用户备份和完整备份。
表格模式
在用户模式下备份指定的对象(表)。商业数据库通常使用这种备份方法。
如果备份到本地文件,请使用以下命令:
exp ICD main/ICD rows=y indexes=n compress=n buffer=65536
反馈=100000 volsize=0
file=exp _ ICD main _ CSD _ yyyymmdd . DMP
log=exp _ ICD main _ CSD _ yyyymmdd . log
tables=ICD main . common information,icdmain.serviceinfo,icdmain.dealinfo
如果直接备份到磁带设备,请使用以下命令:
exp ICD main/ICD rows=y indexes=n compress=n buffer=65536
反馈=100000 volsize=0
file=/dev/rmt0
log=exp _ ICD main _ CSD _ yyyymmdd . log
tables=ICD main . common information,icdmain.serviceinfo,icdmain.dealinfo
注意:如果磁盘空间允许,应该先备份到本地服务器,然后再复制到磁带。为了提高速度,尽量不要直接备份到磁带设备。
用户状态
在特定用户模式下备份所有对象。商业数据库通常使用这种备份方法。
如果备份到本地文件,请使用以下命令:
exp ICD main/ICD owner=ICD main rows=y indexes=n compress=n buffer=65536
反馈=100000 volsize=0
file=exp_icdmain_yyyymmdd.dmp
log=exp_icdmain_yyyymmdd.log
如果直接备份到磁带设备,请使用以下命令:
exp ICD main/ICD owner=ICD main rows=y indexes=n compress=n buffer=65536
反馈=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_yyyymmdd.log
注意:如果磁盘有空间,建议先备份到磁盘,再复制到磁带。如果数据库数据量较小,可以使用这种方法进行备份。
以下为详细的导入导出实例:
一、数据导出:
1.完全导出数据库测试,将用户名系统密码管理器导出到d: \ daochu.dmp。
exp system/manager @ TEST file=d:\ Dao Chu . DMP full=y
2.导出数据库中的系统用户和系统用户的表。
exp system/manager @ TEST file=d:\ Dao Chu . DMP owner=(system,sys)
3.导出数据库中的表table1和table2。
exp system/manager @ TEST file=d:\ Dao Chu . DMP tables=(表1,表2)
4.导出数据库表1中字段filed1以“00”开头的数据
exp system/manager @ TEST file=d:\ Dao Chu . DMP tables=(table 1)query=' where file D1 like ' 00% ' '
以上是常用的导出,压缩我不是很在意。用winzip压缩dmp文件可以很好。
但是只需在上面的命令后添加compress=y。
二、数据的导入
1.将d: \ daochu.dmp中的数据导入到测试数据库中。
imp system/manager @ TEST file=d:\ Dao Chu . DMP
上面可能有问题,因为有些表已经存在了,然后它会报错,表就不会导入了。
只是在它后面加上ignore=y。
导入二维表格table 1:\ Dao Chu . DMP
imp system/manager @ TEST file=d:\ Dao Chu . DMP tables=(table 1)
基本上以上进出口就够了。在许多情况下,我会完全删除该表,然后再导入它。
注意:
你得有足够的权限,权限不够会提示你。
数据库何时可以连接。您可以使用tnsping TEST来获取数据库测试是否可以连接。
oracleimp/exp命令使用
例如,将数据库服务abc的psd下的table1、table2和table3、user user和password导出到d:\data目录。导出文件名为test.dmp,语句为:
exp user/PSD @ ADC file=d:\ data \ test . DMP tables=(table 1,table2,table3).
恢复上述文件的语句是:
exp/PSD @ ADC full=yfile=d:\ data \ test . DMP注意:如果备份文件中的所有表都恢复了,需要加上full=y,如果只需要恢复table1,语句为:
exp user/PSD @ ADC file=d:\ data \ test . DMP tables=table 1 .也就是说,您必须指出要倾倒哪些信息,是全部还是部分表格。
以下是别人的经历摘录。
执行环境:可以在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完全导出数据库测试,将用户名系统密码manager导出到d: \ daochu.dmp中的expsystem/manager @ TEST file=d:\ Dao Chu . DMP full=y。
2导出数据库中的系统用户表和系统用户表。
exp system/manager @ TEST file=d:\ Dao Chu . DMP owner=(system,sys)
3导出数据库中的表inner_notify、notify _ staff _ relate。
exp aichannel/aichannel @ test db 2 file=d:\ data \ newsmgnt . DMP tables=(inner _ notify,notify _ staff _ relat)
4导出数据库表1中字段filed1以“00”开头的数据
exp system/manager @ TEST file=d:\ Dao Chu . DMP tables=(table 1)query=' where file D1 like ' 00% ' '
以上是常用的导出。对于压缩,dmp文件可以用winzip很好地压缩。
您还可以在上述命令后添加compress=y。
数据导入
将1d: \ daochu.dmp中的数据导入到测试数据库中。
imp system/manager @ test file=d:\ Dao Chu . dmimp ai channel/ai channel @ HUST full=yfile=file=d:\ data \ newsmgnt . DMP ignore=y上面可能有问题,因为有些表已经存在了,然后会报错,表不会导入。
只是在它后面加上ignore=y。
将2d中的表table 1:\ Dao Chu . DMP导入imp system/manager @ testfile=d:\ Dao Chu . DMP tables=(table 1)
基本上以上进出口就够了。在许多情况下,应该首先完全删除该表,然后再导入。
注意:
操作员必须有足够的权限,权限不够会提示。
数据库何时可以连接。您可以使用tnsping TEST来获取数据库测试是否可以连接。
附录一:
增加用户导入数据权限的操作。
首先,启动sql*puls。第二,以系统/管理员身份登录。第三,创建由密码标识的用户名(如果您已经创建了一个用户,可以省略这一步)
第四,将create user,drop user,alter user,create any view,drop any view,exp _ full _ database,imp _ full _ database,DBA,connect,resource,Session授予第五个用户名,run -cmd-输入dmp文件所在的目录,imp userid=system/manager full=yfile=*。DMP或imp userid=system/manager full=yfile=filename . DMP
执行示例:
f:\ Work \ Oracle _ Data \ backup imp userid=test/test full=y file=inner _ notify . DMP
屏幕显示
导入:版本8 . 1 . 7 . 0 . 0-生产于2006年2月16日星期四16:50:05(c)版权所有2000 Oracle corporation。保留所有权利。
连接到:Oracle 8i企业版8.1.7.0.0版-生产
使用分区选项
JServer版本8.1.7.0.0 -生产
通过常规路径导出由EXPORT:V08.01.07创建的文件。
ZHS16GBK字符集和ZHS16GBK NCHAR字符集的导入已经完成。
导出服务器使用UTF8 NCHAR字符集(可能的ncharset转换)
.将AICHANNEL的对象导入AICHANNEL.导入表' INNER_NOTIFY '导入4行以启用约束.导入已成功终止,但出现警告。
附录二:
不允许Oracle直接更改表的所有者,这可以通过使用Export/Import来实现。首先,建立import9.par,然后,使用以下命令:imp par file=/file path/import9.par示例import 9 . par如下:
FROMUSER=TGPMS
TOUSER=TGPMS2(注意:将表的所有者从FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)
行数=Y
索引=Y
赠款=Y
约束=Y
缓冲区=409600
file==/backup/CT GPC _ 2003 06 23 . DMP log==/backup/import _ 2003 06 23 . log
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。