我正处于DevOps项目的中间,该项目使用各种DevOps工具自动部署不同代码堆栈和数据库的应用程序。我正在寻求有关自动化MS SQL数据库部署和后续更新的建议。
目前的方法是使用Terraform或Cloudify通过VM蓝图构建数据库VM。我目前有一个配置了MSSQLServer的虚拟机,可以对其编写sql文件脚本来实例化我的数据库。然而,一旦我按原理编写原始数据的脚本,我经常会耗尽内存。我知道,手动我可以在属性中增加内存等,或在CLI中使用sql文件。我也知道像DTS或BCP这样的东西,但我认为我正在寻找的是通过DevOps管道自动部署MS SQL DB的最佳方法的建议。目的是使用jenkins并通过power-shell部署脚本。
最初的想法是强制数据库所有者提供bak / mdf文件,后续更新是脚本化的。但我真的很感谢理事会关于商业方面的最佳方法,特别是如果你已经大规模地做到这一点,例如1000个应用程序。
如果它有助于我的管道的性质我采取的方法需要适用于小型DB的100MB和更大的 - 比如说高达1-2TB。
答案 0 :(得分:0)
另一种方法(截至2018年初)是使用SQL Server数据库克隆,它将一组数据库的完整字节副本还原为Windows虚拟硬盘驱动器(VHD),它支持克隆(差异磁盘)的传送可装载的复制品。克隆可以安装在传统的SQL Server实例或容器中,您可以查看Red Gate和Windocks的克隆支持。