我想知道这是否可能以及我需要达到什么程度的专业知识。我有3个数据库都建立在SQL Server 2k8R2平台上。 2位于同一服务器上,1位于链接到同一网络的另一台服务器上。一个是发展(你知道一个很棒的,你可以打破,咬,踢没有人看...等)另一个是舞台,最后生产。我想知道我是否可以设置某种类型的镜像,这将允许我在所有3个镜像中持续进行程序化更改。例如,如果我要在我的开发数据库上开发一个新表和SPROC。测试并确保一切正常并正常工作,有没有办法当我提交我的更改以使该表及其密钥,索引,FK和我创建的SPROC在其他2个数据库中自动生成而无需我重新编写脚本并运行它们。原谅我的无知,我知道我可以编写更改脚本并加载每个更改并运行脚本来生成我创建的所有内容,但我希望能够实时实现这一点。这是一个可以轻松完成的无痛过程吗?我不关心只在程序代码中复制表中的数据。任何帮助是极大的赞赏。
非常感谢, 约翰
答案 0 :(得分:3)
这是一个非常糟糕的主意,而不是您应该如何处理从开发到暂存和生产的更改。根据定义,您希望开发环境和生产环境之间没有连接(理想情况下,它们应该使用不同的安全凭证来防止意外更改)。
[另请注意:数据库镜像需要SQL Server 2008企业版]
相反,请使用Visual Studio 2008 GDE数据库项目附加组件(或现在内置于VS 2010)。或者,使用Redgate's synchronisation tools。两者都可以整合到您的自动构建过程中。
Visual Studio 2010:Working with Database Projects
数据库项目的一个很好的功能是,除了能够在现场更新数据库之外,它们还可以生成更新目标数据库所需的脚本架构更改,而无需实际应用它们。
更新:我目前在类似于以下内容的工作流程中使用VS2010数据库项目:
答案 1 :(得分:0)
您应该考虑更多传统的开发,构建和部署工具,如Visual Studio数据库版,Red Gate工具,DBGhost,Team City等。这些是为此工作而设计的工具。
出于各种原因,镜像可能不是一个可行的选择。镜像阶段到生产对我来说没有多大意义,因为这些环境的重点在于您可以独立部署它们并且它们不相互依赖。你甚至没有提到测试环境(也许测试是你使用的阶段?)。在测试环境中,您通常还需要能够重新部署,回滚和修补更改和数据。我怀疑镜像会阻碍而不是帮助测试。