1

我们目前在客户端机器上使用 SQL CE 数据库,然后使用 MS SQL 的合并复制/RDA 功能将它们的数据同步到中央服务器。所涉及的数据量很小,中央服务器通常会在大约 95% 的时间内处于空闲状态 - 它仅在数据传入时才真正处于活动状态,并且通常每天/每周同步一次。

相对于 SQL 服务器工作负载/我们正在谈论的数据量(最大为 100 MB),为此的 SQL 标准许可成本很大。我想知道是否有一个开源替代品(mySQL 或类似的)我们可以用作我们的 .NET 应用程序的后端数据存储。我的背景是 Windows Server Admin,对 Linux 来说相对较新,但很乐意尝试并学习一些新技能,只要它不会太难。如果还有其他选择也很好。

4

1 回答 1

1

好吧,这是一个相当开放的问题,所以我将为您提供一些关于您可以开始研究的指南。

  • 客户端嵌入式数据库。仅根据我的理解,可以嵌入 MySQL 作为嵌入式服务器,对于客户端而言,MySQL 可能是多余的。但是,有很多替代方案。Berkely 数据库系统曾经是这样的一个点。还有其他选择。请记住,您不希望在客户端使用完整的 sql 服务器,您正在寻找轻量级的东西。您可以在此处阅读有关伯克利的信息:http ://en.wikipedia.org/wiki/Berkeley_DB以及此处的替代方案:单文件,用于 Java 的持久、排序键值存储(替代 Berkeley DB)。他们提到 SQLite 可能只是你的胡同。因此,简而言之,您可以在这里使用一整套开源工具。

  • 后端数据库。MySQL 会很好地完成这项工作,甚至 PostgreSQL。我上次查看时 PostegreSQL 似乎支持更多的企业功能,但这可能已经改变。就开源而言,这两个是您在 SQL Server 市场上的主要参与者。在您的场景中,任何一个都可以。PostgreSQL 和 MySQL 都可以在 Windows 上运行,因此您不必安装 Linux,尽管我建议您将时间花在 Linux 上,因为我拥有它是非常值得的,而且您得到的安心也很好。

如果您切换到 MySQL/PostgreSQL,那么您有一个主要的症结,即您拥有的当前 RDA/复制技术将不受这些数据库的支持,您可能需要研究如何从头开始实现这一点。因此,虽然可以替换后端甚至前端数据库,但数据的复制会有点问题,但并非不可能。

使用这些技术进行一些测试,然后您将需要决定如何替换该复制。

于 2013-01-15T12:26:05.310 回答