导入dmp全文件或指定表至Oracle

为了便于定位生产问题,常常会需要导入一些运维提供的 dmp 数据文件,生产数据整体往往过大,可以酌情考虑仅导入需要的部分表数据...

所属分类 数据库

相关标签 Oracle数据导入

dmp导入

导入dmp文件的命令非常简单。

先创建数据库用户和表空间,这里不再赘述。

以全文件导入为例。

-- 帐号名与密码 可以追加服务名 一般在本地单板上处理可以忽略
-- full=Y 可选 全文件导入
-- ignore=Y 建议选择 忽略创建过程报错 
-- fromuser=serv 源用户 生产的数据库用户可能和本地不同名
-- touser=mebugs 导入用户 本地数据库用户
imp 'mebugs/mebugs' file=/home/oracle/Mebugs_Table.dmp full=Y ignore=Y fromuser=serv touser=mebugs 

导入指定表时,如果表存在需要先 drop 掉,否则会出错。

sqlplus -s mebugs/mebugs
drop table me_bugs_user;
exit

导入命令

imp 'mebugs/mebugs' file=/home/oracle/Mebugs_Table.dmp tables=me_bugs_user ignore=Y fromuser=serv touser=sdujsn 
-- tables参数支持制定多个表
imp 'mebugs/mebugs' file=/home/oracle/Mebugs_Table.dmp tables=(me_bugs_user,me_bugs_role) ignore=Y fromuser=serv touser=sdujsn 

同理多表导入时,这些表也不能存在。

其他

生产数据多库数据如果不同步(存在差异),现在需要已A库为基准,B库存在的数据更新到A库(B库多余的忽视)。

  1. 首先导入B库
  2. 将B库导入完成后,备份表,删掉导入的表
  3. 导入A库
  4. 执行同步
-- 先导入B库
-- 拷贝一个备份表
create table me_bugs_user as select * from  me_bugs_user_bak;
-- 删掉源表,然后导入A库
drop table me_bugs_user;
-- 执行同步(数据量大的话,需要检查和添加索引)
UPDATE me_bugs_user T1 SET (T1.SENTERPRISEID, T1.SGROUPID, T1.SPNPN, T1.SSERVICENO, T1.SDEPARTMENTID, T1.SUSERNAME, T1.NNETWORKTYPE, T1.SPROPERTY) = (SELECT T2.SENTERPRISEID, T2.SGROUPID, T2.SPNPN, T2.SSERVICENO, T2.SDEPARTMENTID, T2.SUSERNAME, T2.NNETWORKTYPE, T2.SPROPERTY FROM t_sobest_mem_bak T2 WHERE T1.NAME=T2.NAME) WHERE T1.NAME in (select NAME from me_bugs_user_bak);
-- 删除备份表
drop table t_sobest_mem_bak;

米虫

做一个有理想的米虫,伪全栈程序猿,乐观主义者,坚信一切都是最好的安排!

本站由个人原创、收集或整理,如涉及侵权请联系删除

本站内容支持转发,希望贵方携带转载信息和原文链接

本站具有时效性,不提供有效、可用和准确等相关保证

本站不提供免费技术支持,暂不推荐您使用案例商业化

发表观点

提示

昵称

邮箱

QQ

网址

当前还没有观点发布,欢迎您留下足迹!

同类其他

数据库

Linux下Oracle数据库配置日志目录及统一迁移

很多运维人员习惯采用默认安装的方式安装Oracle数据库,而Oracle日志默认放置在/opt目录下,绝大多数Linux环境的大磁盘往往挂载在/home,因此经常会出现磁盘空间不足的情况,采用本文配置可指定并迁移日志

Oracle数据库基础实用维护命令集

Linux系统下的Oracle数据库实用常用的维护命令整理,本文内容偏向运维,主要包含:基础启动重启、表空间维护、数据库角色与用户维护、字符集配置等,并给出各类场景的实例语句

ORA-00257: archiver error. Connect internal only, until freed.

登录Oracle报错 ORA-00257: archiver error. Connect internal only, until freed. 由于归档日志(archive log)已满引起的。

Oracle存储过程Procedure基础语法

存储过程是个好东西,WEB工程在架构阶段会设计很多存储过程,后续在架构中开发需求的时候,反而会直接写SQL完成各项诉求。所以说,这玩意儿略微有那么一点点伪高端。

Oracle数据库MERGE INTO语句条件入库

Oracle 9i版本引入MERGE INTO语句,其主要用于实现条件入库能力,用于解决对于已有数据更新升级的情况,即可实现不存在数据则插入,存在数据则更新的分支判断形式的更新能力

MongoDB通过$lookup实现多表连接查询

对于数据库而言,多表连接操作可以算的上是基本操作,在 MongoDB 通过 $lookup 聚合查询可以实现多表左连接查询,在后续的版本中 $lookup 得到了一系列的增强,实现更为复杂的关联查询

选择个人头像

昵称

邮箱

QQ

网址

评论提示

  • 头像:系统为您提供了12个头像自由选择,初次打开随机为你选择一个
  • 邮箱:可选提交邮箱,该信息不会外泄,或将上线管理员回复邮件通知
  • 网址:可选提交网址,评论区该地址将以外链的形式展示在您的昵称上
  • 记忆:浏览器将记忆您已选择或填写过得信息,下次评论无需重复输入
  • 审核:提供一个和谐友善的评论环境,本站所有评论需要经过人工审核