暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle的EXP、IMP命令导入导出数据

原创 michaelliu 2023-05-17
358

Oracle的EXP、IMP命令导入导出数据

EXP:
①全库备份
exp system/123456@prod full=y file=~/backup/database.dmp log=~/backup/database.log buffer=80960000 —不包括sys用户 即数据字典没有导出
如想导出sys和system用户对象和数据字典,则:
exp \’/ as sysdba\’ owner=sys file=sys.dmp buffer=80960000 —在服务器本地导出sys

②用户备份
exp system/123456@prod owner=tom file=tom.dmp buffer=80960000
exp \’/ as sysdba\’ owner=tom file=tom.dmp buffer=80960000

③表备份
exp tom/tom@prod tables=mail,class file=mc.dmp buffer=80960000

④表级别带where条件的数据导出
exp tom/tom@prod tables=mail query=\”where id>\500\” file=mail500.dmp buffer=80960000 ——linux平台
exp tom/tom@prod tables=mail query=’where id”>”500’ file=mail500.dmp buffer=80960000 —–windows平台

IMP:
向下兼容—–全库数据>用户>表>where条件的表 > 大于号 映射含义:包含的意思

①全库导入
imp system/123456@prod full=y file=database.bmp log=data.log buffer=80960000 ignore=y 注意不要造成数据重复 system用户下的表不会被数据重复,只需注意手动建成的用户的数据

②利用全库备份导入一个用户
imp system/123456@prod fromuser=tom touser=tom file=database.dmp log=data.log buffer=80960000 ignore=y
提前建好tom用户和分配权限
imp system/123456@prod fromuser=tom touser=jerry file=database.dmp log=data.log buffer=80960000 ignore=y
利用全库备份导入某一个表
imp system/123456@prod fromuser=tom touser=jerry tables=mail file=database.dmp log=database.log buffer=80960000 ignore=y
— 全备导入tom用户下的mail表到jerry用户下

③利用用户备份—-导入用户数据
imp jerry/jerry@prod file=jerry.dmp buffer=80960000 ignore=y;
前提用户存在,权限够—导入整个用户

imp jerry/jerry@prod tables=mail,c file=jerry.dmp buffer=80960000 ignore=y;
—导入特定的表

④利用where条件导出的数据导入
imp jerry/jerry@prod tables=mail file=m500.dmp buffer=80960000 ignore=y;
—-直接导入where筛选出来的行数

补充:
1.提高导入导出速度
exp/imp导入导出加速—可加选项 direct=y (直接路径导出) 或者设置buffer size的大小 buffer=2000000 (数据缓冲)

2.数据库对象有主外键约束
这发生在将几个包含表的DMP文件分别导入数据库时,不符合主外键约束, 数据便会导入失败;解决办法: 先导入主表, 再导入依存表;disable目标导入对象的主外键约束, 导入数据后, 再enable它们

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论