写在前面

之前刚写了一篇关于IDEA 集成数据库的操作,IDEA毕竟是一个专注 Java 代码开发的工具,里面集成了很多的插件服务、包括数据库,但和Navicate 专注数据库的客户端软件,很多功能是 IDEA比拟不了的 ,下面就介绍几种Navicate中几种高级操作

一、查询相关

1.1、简单查询

这里就不演示了,一些简单条件、函数查询等

1.2、全文检索查询

全文检索,模糊查询(尽量不要这样检索,太慢)

二、Table 操作

这里包括了,修改表结构,新建表,表的权限设置

2.1、import/export Wizard(格式化数据导入导出,txt、json、sql等)

2.2、trancate/delete table

2.3、数据链接快捷方式

三、高级工具操作

3.1、数据传输 - Data Transfer

将数据,迁移至其他数据库或文件(指定格式)中,A --> B,会把A库中所有表及其数据,Copy到 B库或者B文件中(对B先删后备份),

可以实现跨库转(Mysql、Oracle、MongoDb等等)…

3.2、Data Synchronization - 数据同步

同步数据时,要先保证数据库表的结构一致,至少主键一致,如果主键一致其他字段不一致,会选择一致的列导入
并生成 部署脚本…

3.3、Structure Synchronization - 结构同步

这里会比较 Source DB 与 Target DB 的改变,以及包括同步脚本,这里需要注意的是:这里也会同步数据库的字符集,
同步表结构的时候,先定义数据库的字符集
数据库的字符集和表、字段的字符集可以完全不一样,尽量要保持一致

四、数据备份(两种方案)

这里要注意事务和表锁机制,备份前可供参考

杜绝一切不加事务或者表锁机制的备份,因为不控制数据的话,我们根本无法把握我们备份的数据情况

4.1、简单备份


设置好备份安全机制后,可导出一份数据文件,当前时间为文件名,nb3为后缀名的数据文件

这个文件是可以解析的,解析后就是SQL(structure + data + transaction + lock),如下()

数据恢复操作,可以基于xxxx.nb3,或者 解析后的 sql 文件

需要注意的是,

4.2、定时备份

计划 》新建批处理作业 》设计批处理

注意:这里的批处理作业是基于 任务、事件等等,你可以先手动新建备份,保存,在设计批处理时,在指定这个备份任务,即可完成定时备份

五、定时任务

这里包括定时备份,定时同步
需要注意的是:

  • 定时任务是定时执行脚本,脚本是维护在客户端的,不会在服务端留存执行备份任务的
  • 还要考虑执行的时机(批量脚本,是否对现有数据库的影响?事务?表锁等等)

5.1、定时备份

可参考以上

5.2、定时同步(data、structure)

代写

六、需要注意

Navicate 虽然强大,但实际中,有些环境是不允许我们用客户端连接的,这里的一些操作至少让我们知道数据库中有某种实现,Navicate 作为客户端只是把它页面集成了

基本实现
包括查询,导入导出(相关函数 + lock + transaction)
数据传输(本地库的备份到目标库的导入而已)
定时任务(只是本地维护了一份脚本,可以是bat或shell + lock + transaction)

这里我总结一份基于脚本或者mysql shell操作这里所有的实现,可供那些无法使用navicate的场景实现这些操作,在此链接