Oracle数据导入导出imp/exp
功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份.
大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失).
这样你可以把数据导出到本地,虽然可能服务器离你很远.
你同样可以把dmp文件从本地导入到远处的数据库服务器中.
利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用.
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出.
oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件.
SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能.
下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单.
数据导出:
①. 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩.
不过在上面命令后面 加上 compress=y 就可以了
数据的导入
①. 将D:\daochu.dmp 中的数据导入 TEST数据库中.
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入.
在后面加上 ignore=y 就可以了.
基本上上面的导入导出够用了.不少情况我是将表彻底删除,然后导入.
注意:
你要有足够的权限,权限不够它会提示你.
数据库时可以连上的.可以用tnsping TEST 来获得数据库TEST能否连上.
导出注意事项:导出的是当前用户的的数据,当前用户如果有DBA的权限,则导出所有数据!
同名用户之间的数据导入:
不同名之间的数据导入:
log=c:\orabackup\hkbimp.log;
Oracle导出导出有两中方式:第一段:利用exp imp导出导入;第二段:利用Oracel数据泵expdp impdp导出导入.
第一段:利用exp imp导出导入
exp imp 语法如下:
exp:
①.) 将数据库orcl完全导出
imp:
①.) 将备份文件bak.dmp导出数据库
如果数据表中表已经存在,会提示错误,在后面加上ignore=y就可以了.
解决办法:
①.、设置deferred_segment_creation参数为false后,无论是空表,还是非空表,都分配segment.
在sqlplus中,执行如下命令:
SQLalter system set deferred_segment_creation=false;
查看:
SQLshow parameter deferred_segment_creation;
该值设置后,只对后面新增的表起作用,对之前建立的空表不起作用,并且注意要重启数据库让参数生效.
使用 ALLOCATE EXTEN可以为数据库对象分配Extent,语法如下:
alter table table_name allocate extent
构建对空表分配空间的SQL命令:
SQLselect 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
批量生成要修改的语句.
然后执行这些修改语句,对所有空表分配空间.
此时用exp命令,可将包括空表在内的所有表导出.
第二段:利用expdp impdp导出导入
在Oracle10g中exp imp被重新设计为Oracle Data Pump(保留了原有的 exp imp工具)
数据泵与传统导出导入的区别;
expdp导出数据:
①.、为输出路径建立一个数据库的directory对象.
create or replace directory dumpdir as 'd:\';
可以通过:select * from dba_directories;查看.
grant read,write on directory dumpdir to test_expdp;
expdp test_expdp/test_expdp directory=dumpdir dumpfile=test_expdp_bak.dmp logfile=test_expdp_bak.log schemas=test_expdp
注意:这句话在cmd窗口中运行,并且最后不要加分号,否则会提示错误.因为这句话是操作系统命令而不是SQL.
impdp导入数据:
①.、给将要进行数据导入的用户授权访问.
grant read,write on directory dumpdir to test_impdp;
impdp test_impdp/impdp directory=dumpdir dumpfile=test_expdp_bak.dmp remap_schema=test_expdp:test_impdp
①.、首先通过tode创建或者克隆新的数据库用户,如下图所示.
以上就是土嘎嘎小编为大家整理的oracle如何将库导出相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!