有时我们有超过4-6人RDPed在SQL Management Studio中查看数据,或者从各个位置使用LINQpad,Toad等命中服务器,同时主要使用WebOrb开发ASP.NET和Flex。这不好吗?在某种意义上我们试图保持我们的实时制作应用程序稳定并且尽可能不受全球用户影响,这是不好的?
答案 0 :(得分:6)
最好的问候, 别
答案 1 :(得分:4)
最佳做法是单独的服务器。接下来最好,在同一台服务器上分开实例接下来最好,在一个实例上单独的数据库。
但是,无论选择何种隔离机制,我都不会让任何开发人员将RDP放入生产SQL Server(或生产任何东西)。使用带有工具的单独终端服务器及其中的所有内容。
答案 2 :(得分:3)
这取决于很多变量。将它们放在不同的服务器上通常会更好。这实际上取决于你如何使用sql server。如果您只拥有数据库,请不要使用许多管理工具,例如每晚进程来更改数据和其他可能正常的作业。您正冒着将代码从开发数据库开发到生产数据库的真正风险。将它们分离是更安全的,特别是对于创建sql server的dev实例所需的少量资金。
答案 3 :(得分:2)
您可以在同一个实例上安装dev和prod db。只需确保设置权限,以便开发人员无法触及prod db。否定是dev中长时间运行的查询会影响prod。 在SQL SERVER 2005中,更好的解决方案是使用dev“instance”和prod“instance”。 然后有人在你的开发实例上行为不端,并且只是打破了这个问题。 在SQL Server 2008中,您可以设置CPU使用计划,这有助于限制可以使用的资源量。你应该调查一下。
答案 4 :(得分:1)
我发现这是一种糟糕的做法,原因有以下几种:
首先假设您的一个开发人员搞砸了并做了一些最终会占用服务器所有处理能力的东西。哎呀,没有充分的理由罢工。
其次,开发人员可以轻松更改错误的数据库。糟糕的原因是哎呀呀。至少你可以通过不向开发者提供任何生产权来避免这种情况(你应该将其作为最佳实践。)
第三,如果数据库位于同一台服务器上,则必须具有不同的名称,这可能会使移动内容变得困难且容易出错。我认为这也意味着您通过源控制脚本正确部署的可能性较小。如果您选择将对象从一个数据库复制到另一个数据库,那么您也可能遇到问题。首先,如果对象中已存在数据,您可能会意外删除它(希望您有备份),或者您可能会移动新的表结构但却错过了PK和FKS以及默认值和触发器以及约束和索引等内容。向导可能需要更长的时间来执行移动,因为在后台它创建并填充新表,然后删除旧表并重命名新表而不是使用alter table。由于没有充分的理由,哎呀被贬低或严重减速。
答案 5 :(得分:1)
我倾向于同意“单独的服务器”人员,尽管我的公司实际上在本地机器上进行了大部分日常开发工作 - 因此我们在本地安装了SQL Server。当然,如果您正在开发报告或需要生产数据的东西,这可能会很痛苦。在这种情况下,这里的开发人员通常会获得导出的生产数据子集。
对于验收测试与部署,我们确实使用单独的实例。
开发人员可能不应该拥有生产访问权限,除非他们也是进行应用程序部署的人(就像我所在的小团队一样)。如果您最终在同一台服务器上使用单独的数据库,我至少会锁定RDP访问权限并单独授予对每个开发数据库的访问权限。这就是它在这里的工作原理 - 我目前没有任何服务器的管理员权限,并且只能管理专门针对我的团队的应用程序的数据库。
答案 6 :(得分:0)
这取决于您对实时服务的重视程度。我知道我不会相信我和我的胖手在与现场应用程序相同的硬件上运行SQL。
即使应用程序不是关键业务,并且应用程序不受数据限制,您也可以在未使用的桌面计算机上设置开发环境,那么为什么不这样做而不是冒险?
答案 7 :(得分:0)
我使用的设置通常是SQL Server本地实例上的DEV数据库(对我来说是开发版本,但Express可能也可以),这是SQL Server测试实例上的QA数据库。在我们的环境中,它位于W2K3的虚拟实例上 - 很快就会成为W2K8。生产数据库位于SQL Server的专用实例上或位于各种群集实例之一上。我们根本不混合PROD / QA / DEV。我使用RedGate SQL Compare来同步各种系统之间的模式,包括数据库的不同开发人员实例。
答案 8 :(得分:0)
团队没有任何管理员权限(SQL或Windows),并且他们的用户登录只是授予访问权限可能会破坏开发数据库并且它与之关联,这将是“OK”。文件,拒绝访问生产数据库
答案 9 :(得分:0)
出于其他应用程序测试原因,我们在单独的域上创建了生产服务器(它是虚拟服务器)的副本。这允许Windows服务器名称,SQL服务器名称,数据库名称完全相同(第三方应用程序上的大量设置需要此级别的配置才能使不同的进程工作。)。现在,我们可以通过创建生产服务器的精确虚拟映像来重建测试环境。
我对在虚拟机上运行SQL Server持怀疑态度,但它给了我们小公司很大的灵活性。我们认为我们的数据库是关键的,但它是供内部使用的,有一些停工时间只会让工人改变他们的午餐时间。