我用 Navicat 的这些技能少加了好多班,也为公司挣了不少w

今天又用 Navicat 解决了一个数据同步的需求,财务又到账一笔收入.......

本文我将结合我过去的实践,给大家推荐一款数据库的运维工具。给大家呈现一下竟然可以用 Navicat 解决这些实际问题 。

熬了几个夜,毫无保留地将这些技能分享,只为博的一个赞,哈哈哈......

功能概览,本文也算是 Navicat 功能解读,并配合实际案例展开。

核心功能

描述

数据传输

将 A 处的数据传输到 B 处。

数据同步

将 A 处的数据和 B 处的数据进行比较,找出差异进行同步。

结构同步

将 A 处的结构和 B 处的结构进行比较,包括函数、存储过程等。可以导出对应脚本

转储、备份

将数据进行导出。(结构和数据、数据)

快速生成数据

快速生成测试数据;性能压测生成数据

服务器监控

监控服务器的配置数据

逆向工程

快速生成 ER 图

其他功能

......

以上功能,将结合实际案例,以图文并茂的方式进行演示。

 一、数据传输

这里解释一下数据传输的概念:简单理解为将 A 里面的数据都传输到 B 中。

 如下所示:将数据库 database1 传输到数据库 database2 中。

图片

1.1 需求场景

场景

描述

数据库服务商更换

第一年购买了阿里云的 MySQL 数据库,由于价格原因原因等, 第二年换成华为云的 MySQL。需要将阿里云 MySQL 的数据迁移到华为云 MySQL 数据库

数据库资源升级

A 数据库对应存储资源快满了,将其数据库中的数据迁移到资源更好的 B 数据库中

资源安全升级

由于安全等,将环境 A 的数据库迁移到环境 B 中

数据初始化

新项目系统基础数据从预发环境迁移到正式环境等

场景还有很多,不一一举例,那么用 Navicat 如何实现这一需求呢,请往下看

1.2 Navicat 演示数据传输

以测试例子进行举例说明

第一步:找到数据传输

图片

第二步:确定数据传输方向。

图片

这一步,确定好方向。方向反了就是事故了。

第三步:高级配置设置(特殊场景配置)

图片

第四步:其他选型配置设置

图片

如图已经标注注意点

第五步:开始执行

图片

创建前删除目标对象: 如果目标库中有对应的表,勾选上会被删除。如果不勾选,那么第一个遇到错误时继续则必须要勾选,否则执行创建创建的检查存在就直接停止了。不再继续了。

第六步:执行结果

图片

通过这几步,数据就传输完成了。

1.3 注意事项

  1. 注意同步方向, 要明确从哪里到哪里。

  2. 默认情况,从源到目标,目标库中的对应存在会删除被删除,包括数据和结构。如果目标表里面的数据不应该被删除,则这种传输方式会是一种事故,特别注意。 数据同步是一种覆盖的传输。

数据传输务必仔细,拉其他人一起确认 review。可以对旧的库先做备份,这样确保万无一失。

1.4 其他工具

像上面的这种情况其实还有很多其他工具可以实现的。 

工具

优势

劣势

dump

  1. 可以dump整个库

  2. 也能dump特殊几个表

比较粗粒度;

数据库厂商

工具成熟

  1. 付费

  2. 需要网路白名单配置

当然还有其他工具,不再举例。

1.5 小结

  1. 如果你只需同步部分字段到目标表,这个工具将是一个不错的选择

  2. 目标库是全新的,将旧的数据库都传输到新的库;不需太多的设置,直接采用默认就好了。

  3. 按批传输,效率比较高。

如果目标库存在表,也存在数据,要找出差异呢?只同步差异呢? 

这是我四五年前遇到的一个升级问题。还记得那些加班的夜晚,直到我遇到 Navicat 这个技能。

二、数据同步

2.1 需求场景

我曾用这个数据同步功能做过两个数据库的差异对比!

下面是发布在 CSDN 的博客文章,是2018年,一晃 6年过去了.....

图片

场景

描述

系统升级,找到灰度与生产之间的配置数据差异。

找到差异进行执行

当年做 saas 产品,都是先升级产品,再去升级定制的企业; 每次做产品迭代时都要找到大量差异数据进行执行。在没有这个能力之前都是手动处理,非常麻烦。

2.2 Navicat 演示数据同步

第一步:选择数据同步

图片

第二步:确认数据同步的方向

图片

第三步:填写配置

图片

第四步:比较差异

图片

根据实际情况,勾选具体项目。

特别说明:这种比较是十分消耗资源的操作。 不建议用同步方式去做数据传输。因为会有比较过程。

2.3 注意事项

这是同步过程,需要特别注意,否则会出问题! 会有删除、更新的情况。 这步操作一定要慎重处理。虽然工具很好用,但一旦操作错误,会是重大故障

当然,除了数据同步以外, 数据库常常会存储过程(函数)同步等。 以前做saas 产品,升级的时候会遇到存储过程的升级,所以也会非常麻烦。 找出差异脚本估计是我那一个周的工作,但是自从学会下面这个功能以后,老板都对我刮目相看了。

三、结构同步

比较两个数据库之间的结构差异,包括表、视图、函数(存储过程) 等

3.1 需求场景

这个是用得最多的一种能力。 因为产品常常升级,因此会经常遇到增加字段、增加索引、增加函数等。 对于传统项目开发,每次升级都是比较大的改动,常常会伴随大量的数据库变更。因此要正确、无遗留地整理出 SQL 升级脚本并不是一件简单的事情。有了这个功能后,我解放了。

场景

描述

系统升级,需要升级表结构、比如增加了一个字段;需要升级函数、索引等等

通过比较找到与线上数据库之间的差异,形成 DDL 脚本。快速升级到线上。

根据 DDL 脚本,可以编写出对应的回滚脚本

3.2 Navicat 演示结构同步

第一步:确定数据源。

图片

第二步:确定对象,包括数据表、视图、函数等;这一步会生成脚本

图片

生成差异脚本,需要进行详细的比对,防止不必要的变更

图片

最后一步:检查执行结果

图片

3.3 注意事项

注意:可以反向生成回滚脚本,这是我的经典操作之一。 这样到了线上出了问题,可以通过回滚脚本进行回滚,不一定要手动去整理写出回滚脚本。

这一步,我会关注 DELETE、DROP 语句,通过搜索找出这些语句。重点 review。

任何的变更都是很重要的,务必升级前拉会做好 review 。

四、转储 & 备份 & 导出向导 & 快速复制一张表

备份数据是一种非常好的行为! 这些功能,可以备份表、存储过程等。

4.1 需求场景

场景

描述

出于安全角度,备份数据

备份一张表、备份一个库等,“有备无患”

4.2 Navicat 演示

转储 SQL 文件

可以选择结构和数据、只有结构。 可以选择针对一个表、或者一个库;不能编辑具体字段。

图片

备份

备份选型,功能更加丰富。可以选择对象(表、视图、函数)等

图片

图片

导出向导

导出向导功能,将数据导出更多的格式,真的比想象更强大!

图片

快速复制一张表

当需要对一张表做更新操作,为了保证安全,可以快速复制一张表,做备份。

图片

4.3 小结

这些运维工具都是十分方便。 在做一些高危操作的时,常常可以通过备份来达到“有备无患”。

五、快速生成测试数据

5.1 需求场景

场景

描述

测试同学需要进行性能测试,以前需要写程序,写脚本才能快速生成大量数据

快速生成压测数据

开发一个新表,需要造一些数据做功能验证

快速生成测试数据

5.2 Navicat演示

第一步:找到工具入口

图片

第二步:确定表需要生成的数据量

图片

第三步:可以根据高级选项,对生成的数据进行定制!

图片

提效工具,真的太赞了!!!

5.3 小结

可以将这个功能推荐给你的测试朋友们,比手写脚本快太多了。要是早知道这个功能,也不至于加班了

六、其他功能

6.1 服务器监控

知道 mysql 服务器运行时候的配置信息。可以快速进行调整。

除非你了解这些变量,否则不要修改它们!!!

图片

图片

6.2 逆向工程 or ER 图

对于快速了解一个系统的表示非常方便的

图片

6.3 全局查找

全局搜索,查找关键字。但用的比较少。

图片

其他功能就不再一一介绍了。感兴趣的可以自行下载进行研究。

七、最后总结

  • 保持对数据的敬畏之心,任何的数据变更都要慎重。数据变更做好 review

  • 上面功能,建议先自行练习和测试,熟悉后再到生成环境使用

纸上得来终觉浅,绝知此事要躬行!


文章已经同步发布到微信公众号:面汤放盐

我用 Navicat 的这些技能少加了好多班,也为公司挣了不少w (qq.com)

掘金技术:我用 Navicat 这些技能少加了好多班,也为公司挣了不少w - 掘金 (juejin.cn)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/710465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue中动态引入图片

分析 很多时间,不管是vue2,还是vue3开发中都会遇到,动态渲染图片的功能,但是为什么我们直接将图片的路径直接赋值给变量的时候,图片渲染不出来,而通过require引入加载图片后却能正常渲染呢?主要…

华为HarmnyOS TypeScript基础语法快速入门

华为HarmnyOS TypeScript基础语法快速入门 一、JavaScript、TypeScript、ArkTS二、TypeScript基础语法1. 基础类型2. 条件语句3. 函数4. 类5. 模块6. 迭代器 一、JavaScript、TypeScript、ArkTS ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS&am…

Axios入门

1.概念 Axios是一个开源的可以用在浏览器和node.js的异步通信框架,他的主要功能是实现Ajax异步通信 2.Axios入门程序 2.1.准备json格式的文件 {"name": "小明","address": {"street": "雁塔","city"…

动画原理:表面形变算法的思考与总结

前言: 之前我的文章 Mesh形变算法_mesh算法-CSDN博客就有大致的讨论过,介绍的也比较粗略!现在主要是想在Triangulated Surface Mesh Deformation方向上更深入的讨论一下!结合今年我对这一块的学习谈谈我的理解~ 下面要介绍大致几…

MySQL(基础篇)——函数、约束

一.函数 1.定义 函数是指一段可以直接被另一段程序调用的程序或代码。 2.字符串函数 常见如下: -- 字符串拼接 SELECT CONCAT(hello,MySql) AS CONCAT -- 将字符串全部转为小写 SELECT LOWER(HEllo MYSql) AS LOWER -- 将字符串全部转为大写 SELECT UPPER(Hello…

环境配置 |Jupyter lab/Jupyter Notebook 安装与设置

ipynb使用Jupyterlab/Jupyter Notebook 来编写Python程序时的文件,在使用时,可以现转换为标准的.py的python文件 1.Jupyter Lab 1.1.下载安装 环境:Linux pip install jupyterlab 1.2.使用 jupyter lab 点击后进入 1.3.jupyter lab更换内核 因为我的是在anac…

178文章复现:基于matlab的微震图像去噪

文章复现:基于matlab的微震图像去噪,利用同步压缩连续小波变换进行自动微震去噪和起始检测,SS-CWT 可对时间和频率变化的噪声进行自适应过滤,可以去除小幅值信号中的大部分噪声,检测地震事件并估算地震发生时间。程序已…

数据结构之树结构(上)

存储方式 数组存储方式的分析 优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。 缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效…

小(2)型土石坝安全监测设施配置详解

小(2)型土石坝的安全监测是确保大坝稳定、安全运行的重要环节。为此,合理配置安全监测设施显得尤为重要。以下是对小(2)型土石坝安全监测设施配置的详细介绍。 一、渗流量监测 渗流量是反映大坝安全状况的关键指标之一。为准确监测渗流量,我们采用仪器量…

day05_用户管理minIO角色分配(页面制作,查询用户,添加用户,修改用户,删除用户,用户头像,查询所有角色,保存角色数据)

文章目录 1 用户管理1.1 页面制作1.2 查询用户1.2.1 需求说明1.2.2 后端接口需求分析SysUserSysUserDtoSysUserControllerSysUserServiceSysUserMapperSysUserMapper.xml 1.2.3 前端对接实现思路sysUser.jssysRole.vue 1.3 添加用户1.3.1 需求说明1.3.2 页面制作1.3.3 后端接口…

ChatGPT-4 AI 绘图魔力释放

最近刚开通了 ChatGPT4,正好要设计一个网站图标,想测试一下它AI绘图的能力,让它根据文字描述生成一个想象中的图标 (PS:如果想体验 GPT4 文生图,可以看这个教程 如何升级 ChatGPT 4.0) 第1次交…

【三维重建】【SLAM】SplaTAM:基于3D高斯的密集RGB-D SLAM

题目:SplaTAM: Splat, Track & Map 3D Gaussians for Dense RGB-D SLAM 地址:spla-tam.github.io 机构:CMU(卡内基梅隆大学)、MIT(美国麻省理工) 总结:SplaTAM,一个新…

ywtool network命令

一.network功能介绍 network功能就是通过脚本的方式配置IP信息,分为4项: (1) 配置单网卡(2)配置br网桥(单网卡)(3)配置bond(两张网卡)(4)配置ovs网桥(单网卡) 日志文件:/var/log/ywtools/ywtools-network.log/usr/local/ywtools/config/config.ini中network参数:…

从预训练到通用智能(AGI)的观察和思考

1.预训练词向量 预训练词向量(Pre-trained Word Embeddings)是指通过无监督学习方法预先训练好的词与向量之间的映射关系。这些向量通常具有高维稠密特征,能够捕捉词语间的语义和语法相似性。最著名的预训练词向量包括Google的Word2Vec&#…

项目实现json字段

有些很复杂的信息,我们一般会用扩展字段传一个json串,字段一般用text类型存在数据库。mysql5.7以后支持json类型的字段,还可以进行sql查询与修改json内的某个字段的能力。 1.json字段定义 ip_info json DEFAULT NULL COMMENT ip信息, 2.按…

应用存储与持久化数据卷

1、PV 引入场景: ① Deployment 管理的 pod,在做镜像升级的过程中,会产生新的 pod并且删除旧的 pod ,新旧 pod 之间如何复用数据? ② 宿主机宕机的时候,如何实现带卷迁移? ③ 多个 pod 之间&…

Redis 之三:发布订阅(pub/sub)

概念介绍 Redis 发布订阅 (pub/sub) 是一种消息通信模式,它允许客户端之间进行异步的消息传递 Redis 客户端可以订阅任意数量的频道。 模型中的角色 在该模型中,有三种角色: 发布者(Publisher):负责发送信…

[分类指标]准确率、精确率、召回率、F1值、ROC和AUC、MCC马修相关系数

准确率、精确率、召回率、F1值 定义: 1、准确率(Accuracy) 准确率是指分类正确的样本占总样本个数的比例。准确率是针对所有样本的统计量。它被定义为: 准确率能够清晰的判断我们模型的表现,但有一个严重的缺陷&…

在Windows系统中启动Redis服务

前言 Redis是一个开源、高性能的键值对数据库,常用于缓存、消息队列等场景。本文将详细指导您如何在Windows系统上启动Redis服务。 第一步:确认Redis安装 确保您已经在Windows系统上成功安装了Redis。官方提供了预编译好的Windows版本,您可…

低代码中的可视化表单:效率与灵活兼备的设计工具

近年来,随着数字化转型的加速推进,企业对于高效率、灵活性和可定制性的软件开发需求不断增长。传统的软件开发过程通常需要耗费大量的时间和资源,而低代码开发平台的出现为企业提供了一种更加快速和灵活的解决方案。在低代码开发平台中&#…