是否有任何人将任何相同的SQL Server数据库(具有唯一数据)从单个本地服务器移动到单个基于Internet的服务器的经验?
我们目前有10家公司正在使用我们的Windows应用程序,该应用程序使用SQL Server 2008进行数据存储,但我们发现维护数据库并确保它们备份等是一个令人头痛的问题,因为它们都在单独的本地LAN上。 / p>
我们现在正在研究将客户群增加到40-50个组织的前景,还需要报告所有组织的数据。
如果我们在自己的基于互联网的服务器上创建50个相同的数据库,我们可以在不进行太多重新设计的情况下实现这一目标,但这是最好的方法吗?
或者我们是否应该将所有数据库合并为一个并创建一个额外的列以识别组织,以便他们只看到自己的数据?
每个组织有2-10名工作人员,每年输入约5000-10000条记录,其中包括20个主要字符和字母的字段,所以它不是太大。
任何指导都将不胜感激。
答案 0 :(得分:1)
您可能会发现重新构建整个应用程序只允许访问组织专栏所标识的数据进行更多的开发工作,并且如果没有经过全面测试,可能会将数据从一个组织泄漏到另一个组织
此外,您可能会发现在单个服务器上拥有大量数据库可能有助于在以后进行扩展,因为您可以将某些数据库移到另一台服务器上。 对于备份,单个维护计划可以备份SQL Server上的所有数据库。
从长远来看,我认为这可能是最好的解决方案,而不了解更多关于数据库和应用程序执行细节以及计划的增长情况。
答案 1 :(得分:1)
您最有可能更好地保持数据库分开。我们遇到了类似的问题,需要向客户保证他们的数据不会与其他人混在一起(出现安全问题)是主要问题,尽管将一些客户转移到另一台服务器的能力也很好。此外,对于单独的数据库,您可以对一个客户进行少量修改,而不会影响所有客户(无论是针对自定义解决方案还是不同版本,如果不想升级等)。
我们创建了一个“全局”数据库来跟踪每个客户的信息(包括他们的数据所在的数据库名称和服务器)。然后,您可以针对该问题执行大多数高级查询,并且很少需要遍历每个单独的客户数据库。
我们还创建了一些脚本/批处理程序,可以针对所有(或给定的)数据库运行SQL查询,以便可以非常快速地对50多个数据库运行更新或报告查询,而无需任何额外的工作。这些脚本绝对值得开发,并且可能会有第三方应用程序执行相同的操作。
答案 2 :(得分:0)
如果所有数据库都包含一些具有相同数据的公共表,则最佳解决方案是将所有数据库合并为一个数据库,并按新组织列对每个组织的不同数据进行分区。