设为首页 收藏本站
查看: 898|回复: 0

[经验分享] oracle 数据的导入和导出

[复制链接]

尚未签到

发表于 2016-7-22 09:13:13 | 显示全部楼层 |阅读模式
  

 
oracle 11G版本参考:http://ethanwooblog.iyunv.com/blog/1397429
1、命令行的导入导出命令
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命 令可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用
 
导出:exp user/pwd@orcl file=d:\data0409.dmp rows=y log=d:\log0409.txt
 
导入: imp user/pwd@orcl file=d:\data0409.dmp full=y log=d:\imp_log0409.txt
 
建议:养成在导入导出时输出日志文件的习惯,发生错误时方便分析错误来源
 
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能否连上。
 
 
 
 
PL/SQL Developer 导出数据脚本、数据
 
1、如果只导出表的结构(建表语句),不导出表的数据,可用Tools--Export User Objects
选中要导出的表,设置好导出的路径和各个参数后,点击Export就OK
 
PS:这种方式只能导出属于这个用户的表,其他用户的表不能导出,建议用命令行导出(exp, imp)
 
2、如果想将表结构,表的数据,触发器,函数之类的全部导出,可用Tools--Export Tables
 
选中要导出的表(可选多个),导出方式有三种:
 
Oracle Export,Sql Insert,pl/sql developer
第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广
 
第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob),如果有,会提示不能导出,可以用第一种和第三种方式导出。
 
第三种是导出为.pde格式的,.pde为Pl/sql developer自有的文件格式,只能用Pl/sql developer自己导入导出;不能用编辑器查看,效率不知道怎么样
 
PS:只有“Oracle Export”方式导出再导入后,表结构和索引结构没有发生变化,另两种方式都改变了索引类型。
 
导入的情况和导出一样
 
1.完整的导出整个数据库表结构即dmp文件方法:
Tools-->Export Tables ,选择Oracle Export 默认选项即可,在Output file选择一个输出目标
点击Export,即可导出表结构
 
比较:这样导出的dmp文件大小比直接用exp命令导出的文件要小
 
 
2.导出表中数据:
Tools-->Export Tables :选择SQL Inserts 遇到大字段(clob,blob)会出问题导不出来,在此可以
选择需要导出的表,在Output file中选择导出的目标,点击Export即可导出,在此有几个选项
可以去掉所有的可选项直接导出
 
3.导出数据库中所有的或是所选表的数据库建表脚本:
Tools-->Export User Objects去掉下面三个include *可选项,选择Single file)在Output file
中选择输出目标,点击Export即可
 
 
 
exp本地导出与imp本地导入
exp命令:
1 exp username/psw@TEST file=d:test.dmp full=y
2 exp username/psw@TEST file=d:test.dmp owner=(ly)
3 exp username/psw@TEST file= d:test.dmp tables=(grid1,grid2) 
1其中一是将Test(与某一数据库对应的oracle服务名)数据库进行整体导出
2将属于用户ly的所有表导出
3将表grid1,与grid2导出
d:test.dmp是导出的文件地址
imp命令:
1 imp system/psw@TEST file=d:test.dmp
2 imp system/psw@TEST full=y file=d:test.dmp ignore=y
3 imp system/psw@TEST file=d:test.dmp tables=(grid1)ignore=y表示如果被导入的数据库中某个表已经存在就忽略不导入那个表
3表示只导入grid1这个表
在导入导出前要先测试下对应的数据库是否是通的:tnsping test来测试,同样test是服务名
所有命令可在cmd下执行

用exp/imp远程操作数据库
对ORACLE数据库进行远程操作,假设数据库在192.168.1.110上,具体方法如下:
一、在客户端创建和服务端对应的服务名
方法1:
修改tnsnames.ora文件
加入远程服务器的命名:
Sql代码 
TEST_ORCL =   
(DESCRIPTION =   
    (ADDRESS_LIST =   
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.110)(PORT = 1521))   
    )   
    (CONNECT_DATA =   
      (SERVICE_NAME = orcl)   
    )   
)
方法2:
在oracle客户端,打开net manager。
创建一个服务命名TEST_ORCL,主机IP为:192.168.1.110,服务名orcl,端口1521

二、测试远程服务器是否畅通
进入到cmd后,执行命令:tnsping TEST_ORCL。
三、远程操作数据库
导出:
Sql代码 
1:exp username/password@TEST_ORCL file=bak_filepath 
2:exp username/password@TEST_ORCL full=y file=bak_filepath
username 用户名,password 密码,TEST_ORCL 客服端服务名,bak_filepath 备份文件存放的路径
导入:
Sql代码 
1:imp username/password@TEST_ORCL file=bak_filepath full=y 
2:imp username/password@TEST_ORCL/database_name file=bak_filepath full=y 
3:imp username/password@TEST_ORCL file=bak_filepath fromuser=fromadmin touser=toadmin
username 用户名,password 密码,TEST_ORCL 客服端服务名,bak_filepath 备份文件存放的路径
fromadmin 备份数据的用户名,toadmin 还原数据库的用户名。database_name 还原到那个数据库上
full=y 将数据库整体导出,包括表结构等。


  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-247636-1-1.html 上篇帖子: Oracle中随机抽取N条记录 下篇帖子: Oracle jobs(DBMS_JOB and DBMS_SCHEDULER)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表