Teradata 7423:HY000] 对象已锁定,现在等待。交易中止

Posted

技术标签:

【中文标题】Teradata 7423:HY000] 对象已锁定,现在等待。交易中止【英文标题】:Teradata 7423 : HY000] Object already locked and NOWAIT. Transaction Aborted 【发布时间】:2020-09-01 05:56:09 【问题描述】:

我的 Teradata 版本是 15.00。

我收到 Teradata 错误 7423:[HY000] 对象已锁定,现在等待。在确定表被锁定后,事务中止。

-- 使用此命令测试表是否被锁定以进行更新/插入/删除。

Lock Table DB1.TABLE1 write nowait
Select * from DB1.TABLE1;

我已经尝试了一些方法,但我无法将锁定的桌子从痛苦中解救出来。

    我试图释放 DB 存档锁,这通常是阻塞问题的根本原因。但是我自己的会话被一只看不见的手/幽灵挡住了,即使 ViewPoint 也无法检测到它。 我中止了 2 次表更新尝试,我认为这是阻塞问题,但没有帮助

由于这个表锁定问题,我无法执行表更新语句。

UPDATE DB1.TABLE1
SET UpdatedDate = CURRENT_TIMESTAMP
,LastRunDate = CURRENT_TIMESTAMP
,Status = 'P'
WHERE PackageID = 100001;

我仍然可以从此表中选择数据:

Select * from DB1.TABLE1;

感谢您提供任何提示/建议。真的很感激。

【问题讨论】:

如果 Viewpoint/QueryMonitor 无法显示阻塞会话,这通常是由于剩余的备份锁,您是否在远程控制台中使用showlocks 进行了检查?假设您仍在 TD15 中运行 ARC,您是如何尝试使用 ARC 脚本或 SQL release lock dbname.tablename, override; 来发布它的? 我在 TD Studio 上使用了 SQL:LOGGING ONLINE ARCHIVE OFF FOR PROD_DB;但是这个命令被一个未知进程阻止了,ViewPoint 无法告诉我。 这可能不会删除锁,它只是切换备份模式,因此它被ARC锁阻止 【参考方案1】:

我使用了这个 SQL,它释放了一个数据库的锁:

release lock db_name, override;

有趣的是发布存档日志不起作用:

为 DB_NAME 关闭在线存档;

【讨论】:

以上是关于Teradata 7423:HY000] 对象已锁定,现在等待。交易中止的主要内容,如果未能解决你的问题,请参考以下文章

SQLSTATE[HY000] [1049] 未知数据库 'laravel'

错误 [HY000] 一般错误:无效的文件 dsn ''

Zend 错误 SQLSTATE[HY000] [1045]

SQLSTATE[HY000] [2002] 连接被拒绝 |

CPanel SQLSTATE[HY000] [1045] 拒绝用户访问

debian, mysql 错误 2002 (HY000), phpmyadmin