Azure SQL 数据库部署“ALTER DATABASE 失败,因为无法在数据库上放置锁”

问题描述 投票:0回答:1

我自己有点陷入困境。

我们一直在使用 Azure DevOps 发布管道将 DacPac 部署到我们所有的内部测试数据库环境。其中一些是 Azure SQL 数据库,其他是设置为部署代理的真实计算机/VM 上的 SQL Server 数据库。

所有数据库都是相同的,因此我们最终使用相同的 DacPac 来部署它们。出现问题的原因是使用 SQL Server 数据库部署任务。

除了不断出现的一个问题之外,该过程运行良好。 托管 SQL Server 数据库实例的虚拟机之一始终无法部署,并显示

ALTER DATABASE failed because a lock could not be placed on database

我可以跳上服务器,终止 SQL Server 上的所有进程,然后尝试再次运行该版本,它最终会起作用。奇怪的是,我在登录服务器并打开 SSMS 时看到的进程通常只是我自己的。有时存在现有进程,但这些进程不会导致其他服务器出现问题。

我不太擅长 SQL 服务器管理,所以说实话,任何适用于我们自动化流程的步骤/建议都将不胜感激。

sql-server azure-pipelines cicd azure-pipelines-release-pipeline database-deployment
1个回答
0
投票

感谢大家的评论,帮助我理解问题并解决问题。

解决方案是将

/p:ScriptDatabaseOptions=false
添加到我的 SqlPackage.exe 部署命令中。 (我在发布管道中添加了其他参数)。

无论如何,我都不希望通过 DacPac 部署来更改数据库设置,所以这对我来说是一个很好的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.