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'
Zend 错误 SQLSTATE[HY000] [1045]
SQLSTATE[HY000] [2002] 连接被拒绝 |