我使用SQL Server 2008作为RDBMS在IIS7上安装了Web应用程序。
在将来的ASP.NET代码和数据库架构升级过程中,需要获得0次停机时间。 我需要为此得到正确的场景。
我有2个Web服务器和2个SQL服务器和一个HTTP负载平衡器,它可以切换networking后端服务器的Web请求。
主要目标是使第一个Web服务器和数据库服务器启动并运行,在第二台服务器上更新代码和数据库模式,然后将所有请求切换到第二台服务器,然后是主要问题 – 如何从第一台数据库第二台复制数据升级)。
这种情况取决于您对“零宕机时间”的定义 – 通过在两台SQL服务器之间设置复制,可以非常容易地完成拆分 – >升级 – >故障恢复 – >恢复scheme,这也为您提供了冗余。
这与上面描述的非常类似:当您执行升级时,您将分离复制对并升级其中一个(以及几个应用程序服务器),将负载切换到升级的一组机器,然后升级其他机器并重新build立复制。 需要注意的是,在升级窗口期间,您可能仍然需要停止接受更改 (插入/更新)(至less在升级后的服务器正在运行之前),否则您将会收到一个裂脑情景, “老”系统将在“新”系统中丧失。
根据您所谈论的模式更改的types以及您的应用程序编写得如何,您可以在不停机的情况下进行一些更改(添加新的表格/视图,添加列等等通常可以在没有停机的情况下完成,前提是你的应用程序不会在表格中的列数发生变化时吓倒)。
我对你的build议是,如果有必要的话,你要坚持要有适当的维护时间来进行所有的更改/升级,包括停机时间。 很less有系统需要真正的24x7x365,如果你遇到意想不到的问题,最好是系统离线,有足够的时间来解决问题或恢复你的修改,而不是用愤怒的用户因为他们没有预料到停电而窒息你的脖子