【问题标题】:How to achieve zero downtime deployment with database schema changes如何通过数据库架构更改实现零停机部署
【发布时间】:2011-05-08 09:50:57
【问题描述】:

我需要在执行数据库架构更改时为我的电子商务网站实现零停机部署。数据库是sql server 2005。有人可以验证以下步骤是否可行吗?请提供您的建议。

  1. 主体数据库将为请求提供服务,更改将复制到镜像数据库。
  2. 部署前,停止从主体到镜像的复制过程。
  3. 对镜像执行数据库架构更改。
  4. 暂停一下,将主体设为只读。
  5. 再次将更改从主体复制到镜像。
  6. 将请求路由到镜像(执行角色切换)
  7. 对原始主体执行数据库架构更改(现在是角色切换后的镜像)。

【问题讨论】:

    标签: sql-server-2005 web-applications deployment replication downtime


    【解决方案1】:

    我对第 5 步的可行性和实用性都存有疑问 - 如果主体是只读的并且存在角色切换,您为什么要尝试复制更改?

    【讨论】:

    • 在镜像中更新数据库架构更改时,主体将有一些需要复制到镜像的新数据。主体在短时间内被设为只读,以便在第 5 步执行复制时主体数据库中没有新记录。
    • 我明白了。然后,您需要检查 SQL Server 是否支持具有不同架构的数据库之间的复制(如果支持,我会感到惊讶,但我可能错了)。
    • 发现 2 个引用表明具有不同架构的数据库之间支持复制 - 如果订阅者上的只读是可以的,那么可以使用事务复制复制发布者上的索引视图(参考:eggheadcafe.com/software/aspnet/34233735/…) .或者可以使用存储过程(参考:sqldev.org/sql-server-replication/…)一个使用存储过程和
    • 啊,索引视图。没想到这一点,但我明白为什么它会起作用。这将需要您在第 2 步之前添加一个额外的步骤,即构建索引视图(否则,当您希望恢复复制时,它可能无法及时准备好)。
    猜你喜欢
    • 2017-04-08
    • 2017-12-18
    • 2017-01-01
    • 2017-02-16
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    相关资源
    最近更新 更多