我们目前在客户端计算机上使用SQL CE数据库,然后使用MS SQL的合并复制/ RDA功能将其数据同步到中央服务器。涉及的数据量很小,中央服务器通常会在大约95%的时间内处于空闲状态 - 它仅在数据传入时才有效,并且通常每天/每周同步。
相对于SQL服务器工作负载/我们正在讨论的数据量(大约100个MB的数量级),SQL标准许可成本很高。我想知道的是,如果有一个开源替代品(mySQL或类似的),我们可以将其用作.NET应用程序的后端数据存储。我的背景是Windows Server Admin,因此对Linux来说相对较新,但很高兴能够开始学习一些新技能,只要它不会非常困难。如果有任何其他选择也会很棒。
答案 0 :(得分:1)
这是一个非常开放的问题,所以我将就你可以开始研究的内容给出一些指导。
客户端嵌入数据库。 MySQL可以从我对MySQL的理解中嵌入,因为嵌入式服务器对于客户来说可能是过度的。但是有一堆替代品。一旦这样的观点成为Berkely数据库系统。还有其他选择。请记住,您不希望客户端上有一个完整的SQL服务器,您正在寻找轻量级的东西。您可以在这里阅读有关伯克利的信息:http://en.wikipedia.org/wiki/Berkeley_DB以及此处的替代方案:Single-file, persistent, sorted key-value store for Java (alternative to Berkeley DB)。他们提到SQLite可能只是你的小巷。简而言之,您可以在这里使用一大堆开源工具。
后端数据库。 MySQL将很好地完成这项工作,甚至是PostgreSQL。 PostegreSQL似乎支持更多的企业功能,但上次我看起来可能已经改变了。就开源而言,这两者是SQL服务器市场的主要参与者。在你的场景中,任何一个都可以。 PostgreSQL和MySQL都在Windows上运行,所以你不必安装Linux虽然我建议你把时间花在Linux上,因为我觉得它值得付出努力,你得到的安心是好的。
如果切换到MySQL / PostgreSQL,有一个主要的问题,那么这些数据库将不支持您当前的RDA /复制技术,您需要从头开始查看如何实现这一点。因此,虽然可以替换后端甚至前端数据库,但数据的复制会有一些问题,但并非不可能。
使用这些技术进行一些测试,然后您需要决定如何替换复制。