异构数据库同步问题
这段时间一直忙于处理数据库同步的问题。由于公司新引进一个OA系统,旧的OA系统一时也不能淘汰,所以需要实现两台服务器的数据库同步。旧OA是基于.Net开发的,用的数据库是SqlServer,新OA是用PHP开发的,用的数据库是MySql。
由于是第一次遇到这种问题,在网上搜索了一下,东西倒是挺多的,自己总结了大概有三种方案:
1、用SqlSever2008(或Sqlserver2005)的SQL Server Business Intelligence Development Studio,在里面新建一个SSIS包等(参考资料:http://blog.csdn.net/zjcxc/article/details/1202876)。同时我还参阅了一些其他资料,通过在SqlServer2005的SQL Server Business Intelligence Development Studio中配置了,倒是可以实现数据库的复制,但要实现同步,这方面的资料自己没有找到,于是看了一本SqlServer2008英文电子书,里面有一些编写SSIS包的简单例子,不过要弄懂自己还欠火候。所以暂时没有采用这种方案。
2、安装一个MySQL ODBC 驱动,我这里安装的是MySQL ODBC 5.1 Driver,在本地计算机上为MySQL建立一个ODBC系统数据源。并且要在SqlServer 2008数据库服务器上创建一个链接数据库
---1、在本地计算机上为MySQL建立一个ODBC系统数据源,选择数据库为TD_OA ,数据源名称为:eis
---2、创建链接数据库
EXEC sp_addlinkedserver
@server='MySQLTest',
@srvproduct = 'MySQL',
@provider = 'MSDASQL',
@datasrc = 'eis',
@location = null,
@provstr = 'DRIVER={MySQL ODBC 5.1 Driver};Server=远程连接的MySQl数据库服务器;Database=数据库;User=用户名;Password=密码;',
@catalog = NULL
---测试实例 查询
select * from openquery(MySQLTest,'SELECT * FROM TD_OA.ZStudent')
到这里让我看到了一写希望,在这里可以在SqlServer中用sql语句实现对远程的MySQL数据的操作了。我试了,可以实现插入。
但是要满足双方服务器上的数据库能够同步,我打算写一个触发器实现,就像在在本机的Sqlserver服务器上实现对两个SQL数据库的同步一样(这个之前做了实验,编写的触发器能够顺利执行)。但是在这里编写好触发器之后,总是报一下错误:
问了孟哥,弄了半天没解决。于是找到一个解决方案:http://www.cnblogs.com/chnking/archive/2007/04/04/699891.html
按照解决方案中的说法,又配置了两台服务器的相关地方。忙了半天仍然为了解决,于是又放弃了这个同步方案。
3、用PHP或者ASP编写脚本。参考资料:http://server.it168.com/server/2005-11-02/20051102005501.shtml
其实自己也查过在ASP.NET中用C#来写一个访问的MySql数据库,但是感觉PHP实现要简单些。于是果断采用PHP编写脚本。
现在终于可以实现从SqlServer 导入数据到MySql数据库上了。现在这个任务还没有圆满结束,先发文总结一下这段时间做的事情。时间仓促,写的不太具体。任务完后会再详细描述。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?