首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析Orphan事务锁定

解析Orphan事务锁定
EN

Database Administration用户
提问于 2022-04-11 10:39:39
回答 1查看 446关注 0票数 1

我的Server版本是2019 (RTM),我遇到了一个新的锁定问题。

一个SSIS包正在运行。过了一会儿,它被ID为(-2)的会话挂起。我知道这种类型的会话属于孤立事务,但我不知道如何解决它。包是事务性的,事务是DTC。

首先,我在活动监视器中检查了会话的细节,它是:

代码语言:javascript
复制
sys.sp_describe_first_result_set

对我来说毫无意义。为什么是系统程序?

然后,我尝试使用以下方法杀死孤儿会话:

代码语言:javascript
复制
Select req_transactionUOW
 from master..syslockinfo
 where req_spid = -2

KILL '93ED58CC-5D18-4A08-82FC-1AE9A40E4E3C'

哪个'93ED58CC-5D18-4A08-82FC-1AE9A40E4E3C'SELECT查询的输出。

但是它杀死了包会话和孤立事务。

EN

回答 1

Database Administration用户

发布于 2022-06-25 10:03:43

通过执行此脚本,您可以找到任何打开的事务。

代码语言:javascript
复制
USE TestDB
Go
DBCC OPENTRAN 

执行之后,您可以像这样查看孤立的事务:

代码语言:javascript
复制
Transaction information for database 'TestDB'.

Replicated Transaction Information:

Oldest distributed LSN : (0:0:0)

Oldest non-distributed LSN : (5523658:5048:2)

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

如您所见,我们在数据库中有一个开放的孤立事务,它与CDC对象和清理作业相关。我们可以禁用CDD并再次启用它。

代码语言:javascript
复制
USE TestDB
go
exec sys.sp_cdc_disable_db

因为我们对对象进行了手动清理,所以我们应该禁用并启用SQL Server来完成CDC对象和设置的完整清理。一旦完成,您可以再次检查任何打开的事务。

如果这会导致事务日志大小出现问题,此技巧可能会帮助您手动清理CDC。在再次工作之后,您可能希望将日志文件缩小到适当的大小,以获得一些磁盘空间。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/310778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档