我们在过程中替换旧系统。那里将是一个周期的时间与两个运行的应用程序。用户将能够用任何一种系统和面临的挑战是以能够保持他们的数据库的同步。

新系统ASP.NET 和遗产是维生素b6.这两个运行在SQL服务器上的数据库。目前还不清楚在这个时候,如果该数据库将在同一个服务器房间,让我们单独相同的国家。

这两个解决方案上的表迄今为止是:

  1. 网服务,坐在每个机和由其他应用程序。
    • 需要修改的保存方法的基类(es?) 对于本地的对象。这是侵入性的,并可能是一个问题,当涉及到交换它。
  2. 一个单一窗口服务,投票的每个数据库和作品出什么改变和转发适于更为合适。

    • 需要改变模式在这两个应用程序,以确保他们有一个上次修改时间(日期)在所有表所以我们可以做一个周期性的选择在任何给定的时间间隔。

这两个解决方案似乎是合理的。这两个方案都有优点和缺点。业务要求不超过2秒钟的延迟(!) 之间的更新一个系统,并看到它在其他。这可能是一个伸展目标,但它的东西要目标。

其他人已经提出了一些建议但否决了(我愿意重新审议):

  • 数据库触发器(blugrh)
  • 管或其他旅(似乎是一个大锤和太复杂的一切换解决方案)
  • 修改所有的存储程序(编辑.)
  • SSIS(不知道足够关于这个呢)

更好的任何想法,你可能有。

编辑:N.B。该模式是完全不同的。

有帮助吗?

解决方案 4

在结束这个是解决与服务.它的工作真的很好。

其他提示

2秒钟以上,这是一个非常紧的时间表,并且我猜你的windows的应用程序解决方案可能不切,如果没有数以百计的变化或任何在同一时间,并且投票的时间已经几乎每一秒来希望使其在2.

是的数据库,使用同样的结构?如果是这样,我看起来在执行复制。

编辑

后意见和另外的模式完全不同,我不得不说真的我看到两组行动。

  1. 修改数据储存办法在应用程序,使插入/更新/删除两个表格中。优势:立即的,没有外部的过程中分享。缺点:必须修改所有代码,难以禁用等。

  2. 创建一个同步的应用为你提到的、同步改变的数据。优势:可以简单地禁止转移后完成。缺点:非常复杂的编写,尤其是如果有大量的表格。此外,没有那么快,2秒,将是非常难以完成

我个人将拒绝这个想法的用户使用系统simulataneously.你打算怎么解决的问题,如果用户1改变记录的1在系统1和2的用户改变的记录1中以不同的方式在系统中2?

另外,如果你不需要人们使用新的系统,他们不会。变革的阻力是非常非常强,在大多数组织。

我会建议,而不是你推出新系统,并要求所有要使用它,并每小时发送数据旧的系统,在需要恢复对于任何理由。

我看不出有任何合理方式获得2次同步。这是一个荒唐的要求和业务方面应该告诉这么在没有明确条款。

有时你只需要打回去当业务用户想要的东西不合理的。

什么你描述一下这里让我感觉像在一场噩梦!我想你应该第一个开始使每个人都清楚,这是不可能(或者至少是非常昂贵)的认为能够允许用户更新所有的数据通过2个不同的应用程序有2种不同的数据库,在整个过渡过程!我不是谈论2秒钟的延时...

根据我的基本战略应该逐步开关的数据更新的权利和可能性,从传统到新的应用程序。用户将能够看到的数据从两侧,但将能够更新这只有通过一个应用程序。

(incidentaly,这种方法还将迫使用户在交换逐渐为新版本,避免了 预期和令人讨厌的阻力问题已经暴露@HLGEM)

一旦这条规则是明确接受的,你能再实现以下步骤。

  1. 设定的所有程序,允许数据从遗留系统的数据库,以新的数据库。我猜你会需要运行他们几次在未来几个月内...
  2. 设定的所有程序,允许数据传输的其他方式(反向数据传输)
  3. 在这里,你应该已经确定同质群体中的表格比可以一起移动。合并以前的编码方式,你就能获得对这些群体的"数据传输过程"和"逆向转让"之一。

然后,对于每个这些小组

  1. 把你的更新限制通过代码或在数据库中的级别
  2. 运行你的"数据传输"的程序
  3. 安排你的"反向移送"程序作为一种触发新的数据库中

我猜第一类的数据,你就可以转移将被列表不包含任何外键。

这种方式工作,你会逐渐从一个局势,你有

  • 读写遗留的应用程序+只读的 新的应用程序

  • 只读遗留的应用程序+read/write 新的应用程序。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top