文章目录
背景
一个项目的产品迭代,因为迭代过程中两套系统同时使用,两套系统设计使用的数据库不同,从Sqlserver改到mysql了,所以需要将sqlserver的业务数据定时同步到mysql中。
思路
当问题产生了,作为一个合格的码农,第一时间就是想着做一个程序实现数据同步,但是处于自身不叫懒惰,总觉得写个程序太累了,于是想到网上找一找有没有提供工具的人,最后也是无功而返,然后就想到了用 DBLink(Oracle 里面是这个名字),所有就有了如下解决办法。
解决方案
方案
按照如下步骤实现能够解决这个问题
- 创建一个连接服务器能够连接到mysql
- 使用sqlserver代理中的作业定时执行
实施
前提
数据库服务器已经安装了sqlserver,这个不强调了,不会装的自己网上搜索吧。
安装mysql链接程序
下载后就一路下一步安装就行了。
创建ODBC源
- 第一步
按照如下路径查找ODBC源配置程序
控制面板
----> 系统和安全
----> 管理工具
----> ODBC 数据源(64 位)
如果你的电脑是Win10或者是11,你又不知道如何打开控制面板,或者找不到对应的东西,请尝试使用一下路径: 控制面板\系统和安全\管理工具
-
第二步
双击运行,切换tab到第二个 系统DSN
记住,这个一定是在sqlserver服务器上操作,不要在客户端电脑上操作,那样是没用的
-
第三步 配置链接
添加一个新的链接
录入mysql的链接信息后,点击test测试一下,如果一切都是对的,会提示成功信息
创建链接服务器(SqlServer)
如下图 服务器对象
--> 连接服务器
--> 新建
如下图录入信息
切换到 安全性 录入完信息后点击确定
测试DBLink是否好用
按照如下语法根据实际情况编写sql即可
select * from openquery(你的链接名称, 'sql语句')
如果能够查询到你想要的数据,表示成功了。
创建SqlServer 作业
-
新建一个作业 (注意所有者尽量是管理员,避免后面执行sql时权限不足)
-
选择左侧的 步骤
-
新建步骤,随便输入一个名称
-
类型选择T-SQL(需要其他类型,自行摸索吧)
-
在下面空白区域输入你的sql语句
- 因为这个需求时需要同步sql数据到mysql,所以我这里的sql语句就是通过dblink将sqlserver的数据更新|插入到mysql中
-
注意一下空白区域上边的数据库,要选择对应的业务数据库,然后确定。
-
-
选择左侧的 计划
根据你的需要设计执行时间周期已经是否自行删除
- 通知,报警这类如果有需要可以配置邮箱,进行通知。如果没有需要,现在可以按下确定,创建完成作业了。
运行作业
鼠标右键刚才创建的作业,点击 “作业开始步骤”,会出现如下图
根据提示确定作业是否执行成功。
查看作业运行日志
鼠标右键作业,选择 “查看历史记录”,如下图能看到历史执行情况
资料与引用
对我有帮助作用的资料
https://blog.csdn.net/weixin_43926268/article/details/109846295
https://blog.csdn.net/q3498233/article/details/16809511
https://blog.csdn.net/weixin_39381833/article/details/103621121
https://blog.csdn.net/q3498233/article/details/16809511