sql-server – 将SQL Server数据库更改从测试服务器部署到生产服务器

我有一个运行SQL Server的高可用性生产服务器.它经常被数百名用户读/写.

我在测试服务器上有一个完整的数据库副本,并在该环境中进行所有开发.每隔几周,将对前端应用程序和数据库本身进行重大更改(例如,新存储过程,新列,新表).

因为生产服务器上的数据始终是最新的,所以当我想要更改数据库模式时,我不想丢失该数据.当前部署更改的过程是:

>备份生产服务器并暂停它
>将其恢复到测试服务器中
>在测试服务器中进行所有数据库更改
>备份测试服务器
>将新版本还原到生产服务器并取消暂停

这些步骤似乎令人费解,并在生产服务器上造成不必要的停机.我想要做的是在后台更新生产服务器数据库,同时仍然允许用户继续读/写数据库.

到目前为止,我可以看到您可以使用复制数据库向导或使用脚本进行更改,但他们似乎想要在生产服务器上删除/创建数据库以进行更改.如何实现更新生产服务器数据库的不太严格的方法?

最佳答案
对于只是架构更改,在备份整个数据库(即使只有一个表已更改?),在不同环境中还原和测试更改,然后再次备份和还原时,中断生产并让它们等待是非常浪费的.获得一个工具来进行实时模式比较/部署,以保持两个环境同步,而不需要额外繁重的工作,只需更改实际更改的对象.我的选择是Red Gate SQL Compare,但还有很多其他功能和价格点:

> http://thebertrandfamily.com/2012/04/20/re-blog-the-cost-of-reinventing-the-wheel/

通过使模式更改向后兼容和/或分阶段部署,可以最大限度地减少需要进行的全面测试.几年前我给出了一些提示:

> Adding a new column
> Dropping a column
> Renaming an entity
> Changing a relationship

转载注明原文:sql-server – 将SQL Server数据库更改从测试服务器部署到生产服务器 - 代码日志