我用Navicat的这些技术少加了好多班,也为公司挣了不少w
今天又用Navicat处理了一个数据同步的需求,财务又到账一笔收入…….
本文我将结合我曩昔的实践,给我们引荐一款数据库的运维东西。给我们出现一下竟然能够用Navicat处理这些实际问题 。
熬了几个夜,毫无保留地将这些技术分享,只为博的一个赞,哈哈哈……
功用概览
| 中心功用 | 描绘 |
|---|---|
| 数据传输 | 将A处的数据传输到B处。主要是表和数据 |
| 数据同步 | 将A处的数据和B处的数据进行比较,找出差异进行同步。主要是表和数据 |
| 结构同步 | 将A处的结构和B处的结构进行比较,包含函数、存储进程等。能够导出对应脚本 |
| 转储、备份 | 将数据进行导出。(结构和数据、数据) |
| 快速生成数据 | 快速生成测验数据;性能压测生成数据 |
| 服务器监控 | 监控服务器的装备数据 |
| 逆向工程 | 快速生成ER图 |
| 其他功用 | 打印数据表信息等 |
以上功用,将结合实际事例,以图文并茂的方法进行解说。
一、数据传输
这里解释一下数据传输的概念:从A到B,数据传输是单向的,行将A里面有的数据都传输到B中。
如下所示:将数据库database1传输到数据库database2中。
1.1需求场景
| 场景 | 描绘 |
|---|---|
| 数据库服务商替换 | 第一年购买了阿里云的MySQL数据库,由于价格原因原因等,第二年换成华为云的MySQL。需求将阿里云MySQL的数据迁移到华为云MySQL数据库 |
| 数据库资源晋级 | A数据库对应存储资源快满了,将其数据库中的数据迁移到资源更好的B数据库中 |
| 资源安全晋级 | 由于安全等,将环境A的数据库迁移到环境B中 |
| 数据初始化 | 新项目系统基础数据从预发环境迁移到正式环境等 |
场景还有许多,纷歧一举例,那么用 Navicat 如何实现这一需求呢,请往下看。
1.2Navicat演示数据传输
以测验比方进行举例说明
第一步:找到数据传输
第二步:确认数据传输方向
这一步,确认好方向。方向反了便是事故了。
第三步:高档装备设置。(特殊场景确实高档)
第四步:其他选型装备设置
如图现已标注留意点。
第五步:开始履行
创立前删去方针方针:假如方针库中有对应的表,勾选上会被删去。假如不勾选,那么第一个遇到错误时持续则必须要勾选,否则履行创立创立的查看存在就直接停止了。不再持续了。
第六步:履行成果
经过这几步,数据就传输完成了。
1.3留意事项
- 留意同步方向,要明确从哪里到哪里。
- 默认状况,从源到方针,方针库中的对应存在会删去被删去,包含数据和结构。假如方针表里面的数据不应该被删去,则这种传输方法会是一种事故,特别留意。数据同步是一种掩盖的传输。
数据传输必须仔细,拉其他人一起承认。能够对旧的库先做备份,这样确保满有把握。
1.4其他东西
像上面的这种状况其实还有许多其他东西能够实现的。
| 东西 | 优势 | 下风 |
|---|---|---|
| dump | 1. 能够dump整个库 |
- 也能dump特殊几个表 | 1. 比较粗粒度; | | 数据库厂商 | 东西成熟 | 1. 付费
- 需求网路白名单装备 |
当然还有其他东西,不再举例。
1.5小结
- 假如你只需同步部分字段到方针表,这个东西将是一个不错的挑选
- 方针库是全新的,将旧的数据库都传输到新的库;不需太多的设置,直接采用默认就好了。
- 由于是按照批进行数据传输的,效率比较高。
假如方针库存在表,也存在数据,要找出差异呢?只同步差异呢?这是我四五年前遇到的一个晋级问题。还记得那些加班的夜晚,直到我遇到Navicat这个技术。
二、数据同步
2.1需求场景
我曾用这个数据同步功用做过两个数据库的差异比照!下面是发布在CSDN的博客文章,是2018年,一晃6年曩昔了…..
| 场景 | 描绘 |
|---|---|
| 系统晋级,找到灰度与生产之间的装备数据差异。 | 找到差异进行履行 |
当年做saas产品,都是先晋级产品,再去晋级定制的企业;每次做产品迭代时都要找到很多差异数据进行履行。在没有这个才能之前都是手动处理,十分麻烦。那些加班的业务真的久久不能忘记……
2.2Navicat演示数据同步
第一步:挑选数据同步
第二步:承认数据同步的方向
第三步:填写装备
第四步:比较差异
这一步:能够依据上一步的选型进行承认。依据实际状况,可与偶把删去、更新去掉。
特别说明:这种比较是十分耗费资源的操作。不主张用同步方法去做数据传输。由于会有比多进程会十分的慢。
2.3留意事项
这是同步进程,需求特别留意,否则会出问题!会有删去、更新的状况。这不操作一定要稳重处理。虽然东西很好用,但一旦操作错误,会是严重毛病!
当然,除了数据同步以外,数据库常常会存储进程(函数)等。曾经saas产品,晋级的时候会遇到存储进程的晋级,所以也会十分麻烦。找出差异脚本估计是我那一个周的作业,但是自从学会下面这个功用今后,老板都对我刮目相看了。
三、结构同步
比较两个数据库之间的结构差异,包含表、视图、函数(存储进程)等
3.1需求场景
这个是用得最多的一种才能。由于产品常常晋级,因而会经常遇到增加字段、增加索引、增加函数等。对于传统的瀑布开发模式,因而每次晋级都是比较大的改动,常常会伴随很多的数据库改变。因而要正确、无留传地收拾出SQL晋级脚本并不是一件简单的作业。有了这个功用后,我解放了。
| 场景 | 描绘 |
|---|---|
| 系统晋级,需求晋级表结构、比方增加了一个字段;需求晋级函数、索引等等 | 经过比较找到与线上数据库之间的差异,构成DDL脚本。快速晋级到线上。 |
依据DDL脚本,能够编写出对应的回滚脚本,这也是我最初常常做的作业之一。
3.2Navicat演示结构同步
第一步:确认数据源。
第二步:确认方针,包含数据表、视图、函数等;这一步会生成脚本
生成差异脚本,需求进行具体的比对,避免不必要的改变到了线上。
最终一步:查看履行成果
3.3留意事项
留意:能够反向生成回滚脚本,这是我的经典操作之一。这样到了线上出了问题,能够经过回滚脚本进行回滚,纷歧定要手动去收拾写出回滚脚本。
这一步,我会重视DELETE、DROP句子,经过查找找出这些句子。重点Review。
任何的改变都是很重要的,必须晋级前拉会做好review作业。
四、转储&备份&导出导游&快速复制一张表
备份数据是一种十分好的行为!这些功用,能够备份表、存储进程等。
4.1需求场景
| 场景 | 描绘 |
|---|---|
| 出于安全视点,备份数据 | 备份一张表、备份一个库等,“有备无患” |
3.2Navicat演示
转储SQL文件
能够挑选结构和数据、只有结构。能够挑选针对一个表、或许一个库;不能修改具体字段。
备份
备份选型,功用更加丰富。能够挑选方针(表、视图、函数)等
导出导游
导出导游功用,将数据导出更多的格局,真的比幻想更强大!
快速复制一张表
当需求对一张表做更新操作,为了保证安全,能够快速复制一张表,做备份。
3.3小结
这些运维东西都是十分便利的。在做一些高危操作的时,常常能够经过备份来到达“有备无患”。这些功用也深得我心!
五、快速生成测验数据
5.1需求场景
| 场景 | 描绘 |
|---|---|
| 测验同学需求进行性能测验,曾经需求写程序,写脚本才能快速生成很多数据 | 快速生成压测数据 |
| 开发一个新表,需求造一些数据做功用验证 | 快速生成测验数据 |
5.2Navicat演示
第一步:找到东西入口
第二步:确认表需求生成的数据行
第三步:能够依据高档选型,对生成的数据进行定制!
提效东西,真的太赞了!!!
5.3小结
能够将这个功用引荐你的测验朋友们,由于很棒,比首要脚本快太多了。要是早知道这个功用,也不至于加班了。
六、其他功用
6.1服务器监控
知道mysql服务器运转时候的装备信息。能够快速进行调整。除非你了解这些变量,否则不要修改它们
6.2逆向工程orER图
对于快速了解一个系统的表示十分便利的
6.3大局查找?
大致定位为大局查找,查找关键字。但用的比较少。
其他功用就不再一一介绍了。感谢的能够自行下载进行研究。
七、最终总结
- 坚持对数据的敬畏之心,任何的数据改变都要稳重。生成数据更需求做好review作业
- 上面功用,主张先自行操练和测验,然后再到生成环境运用
纸上得来终觉浅,绝知此事要躬行!



























