来由: 需要将表数据从一个库同步到另一个库(数据分发),之前有尝试过使用Kettle去抽数,但是数据量稍微大一点的时候太慢了... 有可能是本机性能的原因,然后就选择用navicat自带的同步工具。(测试环境需要用navicat(因为端口不通),生产环境直接用sqoop抽取过去就可以啦)
主要有两个知识点: Navicat数据传输 与 Navicat定时任务(VMSHELL未验证)
>>>>>>>>>Navicat数据传输
将数据从一个数据传输到另一个数据库(MySQL to MySQL) ,eg: 将 10.11.22.33:3306/demo1 数据库中的 student 表 传输到 10.22.33.55:3306、demo2 数据库中
1.打开Navicat,点击菜单栏中的工具,选择数据传输
2.选择需要同步的数据库信息,指定数据信息,然后再指定目标数据库信息
切记: 数据是从 源库中 传输到 目标库中 (A->>B)
3.定义传输时的高级设置信息 (这里使用的是默认设置,如下图【可根据自己的实际需求去定义勾选或取消以下选择项】)
4. 点击到信息日志页面,然后点击开始 则开始同步啦~ 会看到日志信息输出
5. 日志输出如下:(传输成功)
>>>>>>>>>Navicat定时任务
将定义好的sql语句,数据传输信息等定时执行。
定义的步骤如下:
1. 我们这里将传输数据来做示范,先将上面的传输数据信息定义保存为具体文件
2保存后,会发现我们多了一个 test 文件
3. 查看test文件的存储位置(这个不是必要的哈哈哈 但是了解一下也不赖吗)
先保存一个查询,命名为 2 ,然后查看这个查询的文件存储位置,路径如下: C:\Users\S0111\Documents\Navicat\MySQL\Servers\${CONNECT NAME}\${DBNAME}
4. MySQL目录下搜索test 文件 : 最后确定路径为 C:\Users\S0111\Documents\Navicat\MySQL\profiles
>>>>>>>>>开始定义定时任务:
1.选择工具栏中的 计划 --> 新建批处理作业
2. 选择需要定时执行的文件 ,也就是之前定义的 test
3.点击保存后,输入任务名称
4.开始定义任务相关信息 选定 test定时任务,然后点击 设置任务计划,看到如下信息(任务这一栏使用默认的配置即可)
5.配置计划 信息,点击下方的新建
6.定义任务执行时间,以及多长时间执行一次
接着点击 高级 ,配置计划的结束时间,不然就只会执行一次(这样才会周期执行,每天或者每周每月等等...)
7. 其他设置 (如果没有特殊要求 保持默认的设置即可)
8.保存任务信息,需要填写正在使用的这台电脑的开机密码,如果没有设置开机密码则不需要填写。
最后,我们再回到计划,就能看到我们刚刚设置定的定时任务信息了,每天的九点就会同步一次数据。