mysql导入数据比原来多_Oracle和MySQL的数据导入,差别为什么这么大
经常会有一些朋友咨询我一些数据库的问题,我注意到一个很有意思的现象,凡是数据导入的问题,基本上都是Oracle类的,MySQL类的问题脑子里想了下竟然一次都没有。
我禁不住开始思考这个未曾注意的问题:
为什么Oracle导入数据会碰到很多的问题?
我们来梳理一下这个问题,分别从导出导入的方式来聊聊。
首先Oracle导出的文件格式就没打算让你拿来即用,导出文件叫做dump,换句话说可以理解这是一个二进制文件。当然实际上这个文件还是有很多的方式去抓取一些关键的信息,比如dump头部的信息可以通过strings来解析得到,我甚至在多年前碰到一个比较棘手的问题,DBA直接vim修改dump文件,这个操作风险和成本是比较高的。
导出有哪些工具呢,主要有exp,expdp这两个工具,expdp的导出性能相对来说可以更加充分利用系统资源,导出的效率更高。exp相对来说对于一些小表还是比较省事的,expdp的导出是基于服务端模式的,也就是你需要做一些数据库层的配置才可以,这无疑增加了一些技术门槛。
不知道大家注意到一个问题没有,那就是Oracle提供了SQL*Loader的工具导入,但是却没有一直提供一种简单有效的导出csv的工具,在导出的时候算是各路英雄汉使尽各种技艺,结合数据字典,结合文本过滤来完成。
MySQL的导出方法相对比较简单,设计思路很有意思,导出的文件就是可以直接打开,可以直接修改的SQL文件。这个设计在很多应用场景中简直绝了,对于开发同学是非常友好的。
导出工具原生的有mysqldump,新版本的是mysqlpump(总体感觉性价比不是很高),当然还有一些补充的第三方工具,比如mydumper之类的。
所以导出这件事情,对于开发同学本身是有一个门槛的,而且在隔行如隔山的情况下,很多同学使用expdp导出的时候都一头雾水。从安全性来看,这个二进制文件是原汁原味的,从灵活性来看,MySQL基于SQL文本的方式是比较便捷。
导出的部分其实不是最主要的,产生隔阂最大的是导入的部分,也是提出问题最多的。
MySQL有什么数据导入工具,可以理解没有,就是SQL文本,你想怎么执行都可以。包括工具mysqldump,mysqlpump导出的文件都是如此,mydump有个配套的myloader算是一个小小的例外。
Oracle有什么导入工具,有,而且是配套的,exp对应imp,expdp对应impdp
常见的数据导入问题有:
1)提示用户创建失败,导入失败
2)提示表空间不存在,导入失败
3)导入时如果创建的数据文件空间不足,导入失败
4)导入时的用户权限不足,导入失败
所以我要导入一个dump文件,如果是exp导出的,解析成本还算低一些。
而如果是expdp导出的,通常很多开发同学都会一脸懵逼。
1)导入要输入一个目录,什么是目录,不是系统目录吗?
2)如果数据库用户已经存在,已经存在10张表,导入的时候默认会直接忽略这10章表,除非你手工删除或者选择额外的选项,比如replace或者truncate等。
3)表空间源端和目标端环境不一致,要想知道到底有哪些表空间不一致,解析dump文件实话说不是很方便,有一个高级选项是remap_tablespaces
4)数据导入之后,业务同学发现有些表还是访问不了,不好,需要重新分配下权限。
通常来说,如果要导入一个dump,在Oracle侧其实是一件很严肃的事情,我们需要创建目录:
create directory dump_data as '/data/dump_data';
grant read,write on directory dump_data to xxxx;
配置表空间存储,有哪些表空间,哪些表空间需要映射,在数据导入之前,这些信息其实是不好提取的。我通常采用的方式是做下预导入,就是找个干净的环境,然后默认选项导入,看看哪些表空间报错,哪些用户报错,把这些信息提取出来,然后重新拼接一个导入命令。
在这个基础上我去构建相关的表空间和数据文件的细节。
对于数据文件,我不大喜欢自动扩展的方式,而是喜欢预创建出来,然后加上自动扩展。
最后就是文件导入
impdp system/xxxx directory=dump_data dumpfile=test.DMP logfile=impdp_test.log remap_tablespace=TEST_DATA1:DATA,TEST_DATA2:DATA,TEST_INDEX1:IDX,TEST_INDEX2:IDX
对于Oracle DBA来说,这应该是再正常不过的事情了,而且有很多地方要做到细致周到的多,但是这样一个过程对于一个外行来说,成本就很高了。
总是有一种感觉,Oracle就像汽车里面的宝马一样,操控性很好,提供了很多专业有效的管理方式。
而Oracle的角色通常都是百GB起,TB上下,这样的数据量管理,就得适配出各种工具特点和特性。我觉得这些工具一直在追求的是更加高效和安全,可能从这个角度理解,Oracle的维护管理模式是需要专人来完成的。
MySQL的管理方式很适合互联网这种变化快,而且数据量相对要小一些的环境。在易用性和学习门槛方便简直是做到了极致,比如你要到处一些有特色的insert语句(比如按照主键排序,显示完全列名等),都可以通过mysqldump很容易实现。
mysql导入数据比原来多_Oracle和MySQL的数据导入,差别为什么这么大相关推荐
- mysql和oracle表的互导_oracle到mysql的导数据方式(适用于任意数据源之间的互导)...
为了生产库释放部份资源, 需要将API模块迁移到mysql中,及需要导数据. 尝试了oracle to mysql工具,迁移时报错不说,这么大的数据量,用这类简陋的工具不大可靠. 意外发现平时用的ht ...
- mysql大数据表无主键_oracle转mysql 表没有主键
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- mysql数据库熟悉表空间数据文件_Oracle表空间和数据文件
Oracle创建表空间 1.创建普通表空间create tablespace oracle_tablespacedatafile Oracle创建表空间 1.创建普通表空间 create tables ...
- 如何将mysql导出数据泵_Oracle数据库之ORACLE 数据泵导入导出数据
本文主要向大家介绍了Oracle数据库之ORACLE 数据泵导入导出数据,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 一.摘要 在平常备库和数据库迁移的时候,当遇到大的数据库 ...
- Linux下MySQL数据库的备份与还原,mysql快速导入导出数据库实例演示,解决mysql大数据量数据库导出慢的问题
MySQL 数据库的备份与还原 第一章:数据库的导入与导出 ① 数据库的导出 ② 大数据量下 mysqldump 的导出优化 ③ 数据库的导出 第一章:数据库的导入与导出 ① 数据库的导出 需要用到 ...
- mysql导入数据表越来越慢,快速解决mysql导数据时,格式不对、导入慢、丢数据的问题...
快速解决mysql导数据时,格式不对.导入慢.丢数据的问题 如果希望一劳永逸的解决慢的问题,不妨把你的mysql升级到mysql8.0吧,mysql8.0默认的字符集已经从latin1改为utf8mb ...
- python 数据导入mysql_用python批量向数据库(MySQL)中导入数据
用python批量向数据库(MySQL)中导入数据 现有数十万条数据,如下的经过打乱处理过的数据进行导入 数据库内部的表格的数据格式如下与下面的表格结构相同Current database: pyth ...
- mysql如何植入到oracle_分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节...
1:MSSQL SQL语法篇: BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | vie ...
- mysql导入工具 行提交_使用命令行工具mysqlimport导入数据
Usage: mysqlimport [OPTIONS] database textfile - mysqlimport 程序是一个将以特定格式存放的文本数据(如通过"select * in ...
最新文章
- windows下增加python的库搜索路径
- tar方式安装oracle11g
- tensorflow随笔-简单CNN(卷积深度神经网络结构)
- CVPR 2019 开源论文 | 基于空间自适应归一化的图像语义合成
- 学python就业到底如何_学习python后,就业如何?
- 想系统化提升自己产品能力,就要读这些书籍
- Qt官方文档阅读笔记-对官方Star Delegate Example实例的解析
- 修改完/etc/fstab后重新挂载方法
- 【kafka】Apache Kafka 0.11版本新功能简介
- 下列哪种不是python元组的定义方式_python笔试题
- 统计素数并求和python_Python练习题4.2统计素数并求和
- CTF中简单杂项小结
- 深入理解JVM - 类文件的结构
- iphone好的网站总结
- 阶乘之和取后六位以及有趣的计时函数。
- 美国华盛顿州立大学计算机排名,华盛顿州立大学计算机科学computer science专业排名第251~300名(2020THE泰晤士高等教育世界大学排名)...
- 复变函数不挂科——3小时学完复变函数与积分变换(猴博士复变函数学习笔记2)
- 1月22日服务器例行维护公告,1月22日维护更新公告
- wap手机广告形式有哪些形式——手机站点广告代码
- 【istioctl】multicluster mesh 管理源码走读
热门文章
- 最初级且依赖于硬件的计算机语言是,大一计算机考试练习题
- php object添加到数组,PHP Object转换为数组array
- android 悬浮球简书,轻松自制flyme悬浮球
- [蓝桥杯][基础练习VIP]分解质因数
- 高并发图片实时渲染技术在阿里妈妈的大规模应用
- 西南大学网络教育学院计算机答案,西南大学网络与继续教育学院课程《数字信号处理》2018年春季大作业机考 答案.doc...
- 12. Excel数据可视化看板--动态销售月报看板
- 青海师范大学云上健身计算机学院,尹君-欢迎光临青海师范大学计算机学院
- php使用5.2.,请问php5.2.5版本的$_FILES函数的用法?
- deepfake 图片_DeepFake克星来了!简单2步算法,造假图像无处可逃