Azure Synapse无服务器内置池数据库删除失败:数据库正在使用中
问题:Azure Synapse无服务器池删除数据库提示“正在使用中”失败
尝试删除Azure Synapse无服务器内置池中创建的SQL数据库DataverseEnriched时,持续收到错误:
执行查询失败。错误:无法删除数据库,因为它当前正在使用中。
跟踪ID:3742517f-6b04-4b48-99e9-a1626d07ad8d
执行以下SQL语句仍无法解决问题:
USE [master]; GO DROP DATABASE [DataverseEnriched]; GO
错误原因
- 数据库存在活跃连接:未关闭的查询会话、ETL作业、报表工具或应用程序正在访问该数据库,占用资源导致无法删除。
- Synapse无服务器池会话延迟:无服务器池的连接会话可能不会立即断开,即使切换到
master库,后台仍可能存在维持的连接。
解决方法
1. 终止活跃连接后删除
执行以下SQL先终止目标数据库的所有活跃会话,再执行删除操作:
USE [master]; GO -- 生成并执行终止连接的命令 DECLARE @killCmd varchar(8000) = ''; SELECT @killCmd = @killCmd + 'KILL ' + CONVERT(varchar(5), session_id) + ';' FROM sys.dm_exec_sessions WHERE database_id = DB_ID('DataverseEnriched'); EXEC(@killCmd); GO -- 删除数据库 DROP DATABASE [DataverseEnriched]; GO
2. 关闭外部依赖连接
- 关闭所有连接到
DataverseEnriched的查询窗口。 - 暂停正在访问该数据库的ETL流程、报表工具或应用程序,确保没有外部连接占用。
3. 通过Azure门户强制删除
如果SQL命令无效,可尝试门户操作:
- 进入Azure Synapse工作区,找到对应的无服务器SQL池。
- 在数据库列表中选中
DataverseEnriched,点击删除按钮,按照提示完成操作。门户会自动处理大部分活跃连接问题。
内容的提问来源于stack exchange,提问作者Patterson
相关产品推荐
相关产品推荐

