我在 Oracle 中注意到一些以前从未发生过的事情。虽然我现在经常做这种事很多年了。在这种情况下,它是一个 Oracle11 实例(Oracle 数据库 11g 企业版版本 11.2.0.1.0 - 准确地说是在 Linux 上运行的 64 位)。
我正在导入一个转储文件,同时我正在使用如下语句增加表空间:
alter tablespace example add datafile '/path/to/oradata/instance/exampleXX.dbf' size 31000m;
运行上述语句时有时会出现以下错误:
ERROR at line 1:
ORA-00060: deadlock detected while waiting for resource
我可以重新启动 alter tablespace 语句,它在第二次尝试时通常会正常运行。
我问为什么会这样,因为这对我来说很不寻常。它是否表示错误或阻碍文件系统故障?我知道同时运行导入和将数据文件添加到表空间可能对服务器有很多要求,但这是服务器有 4 个 CPU、64 GB 和几 TB 的 SAS raid10 可供使用。
顺便说一句,这不是生产系统。
相关跟踪文件输出:
Deadlock graph:
---------Blocker(s)-------- ---------Waiter(s)---------
Resource Name process session holds waits process session holds waits
TT-00000006-00000010 36 11 SX 38 142 S
TT-00000006-00000010 38 142 S 36 11 SX
session 11: DID 0001-0024-0000005D session 142: DID 0001-0026-00000068
session 142: DID 0001-0026-00000068 session 11: DID 0001-0024-0000005D
Rows waited on:
Session 11: no row
Session 142: no row
----- Information for the OTHER waiting sessions -----
Session 142:
sid: 142 ser: 30639 audsid: 0 user: 5/SYSTEM flags: 0x8000051
pid: 38 O/S info: user: example_user, term: UNKNOWN, ospid: 14589
image: example@example (DW00)
current SQL:
CREATE TABLE EXAMPLE ...
----- Error Stack Dump -----
ORA-00060: deadlock detected while waiting for resource
----- Current SQL Statement for this session (sql_id=6bvzdgdn8vqqt8) -----
alter tablespace ...
堆栈跟踪和内存转储可以提供更多信息,但我不是解决这些问题的专家。我所追求的是它可能是什么的想法,之前发生过这种情况的人可以做出有根据的猜测。如果它是一个错误,则表明文件系统可能有问题,或者 raid 控制器无法处理负载。为什么两条语句都在等待资源,为什么这个资源不可用。
根据这个网站(我通过一个非常简单的网络搜索找到的),这是因为你的会话与另一个冲突:
阅读该文章的更多内容,了解有关死锁的更多信息。
查看争用中的实际资源可能会有所帮助,但我猜测这两个操作都试图触及表空间元数据,因此将彼此锁定。一个很好的测试是重新安排你的任务,这样
alter tablespace
命令就不会有这么大的耗尽(创建数据文件):但是,在运行 11g 并具有您描述的资源的机器上,我建议您查看使用 ASM 而不是手动管理文件。ASM 使 DBA 的生活变得如此轻松(好吧,无论如何我的)。
好吧,这是一篇非常古老的帖子,但我在尝试用我的 Oracle 12c 服务器解决同样的问题时访问了该页面。最后是因为我达到了控制文件中配置的 200 个数据文件的默认限制:
我必须增加该值,然后我可以创建一个新表空间或将数据文件添加到现有表空间:
当两个会话通过尝试更新一行而互相阻塞时,就会发生死锁,该行已被另一个会话更新但尚未提交或回滚。可能涉及 2 个以上的会话,但主要思想是相同的。
http://dbpilot.net/2018/01/15/ora-00060-deadlock-detected-while-waiting-for-resource/
...