暂无图片
更新表时出现此数据库错误:ORA-00054:资源正忙并且正在使用指定的NOWAIT进行获取,或者超时已过期,怎么解决?
我来答
分享
Tom
2021-09-16
更新表时出现此数据库错误:ORA-00054:资源正忙并且正在使用指定的NOWAIT进行获取,或者超时已过期,怎么解决?

更新表时出现此数据库错误:ORA-00054:资源正忙并且正在使用指定的NOWAIT进行获取,或者超时已过期,怎么解决?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
JiekeXu
暂无图片

有锁,别人占用了,等他提交或者回滚,或者找出来 杀掉他。用下面语句查查看。

select s.SID,s.SERIAL#,s.MACHINE,s.TYPE,l.TYPE,l.CTIME,l.BLOCK,l.REQUEST,l.LMODE,
       decode(l.lmode,
              0,
              'None',
              1,
              'Null',
              2,
              'Row-S (SS)',
              3,
              'Row-X (SX)',
              4,
              'Share',
              5,
              'S/Row-X (SSX)',
              6,
              'Exclusive',
              substr(to_char(l.lmode), 1, 13)) as "Locked Mode",
       DECODE(L.TYPE,
              'MR',
              'File_ID:' || L.ID1,
              'TM',
              t.NAME,
              'TX',
              'USN:' || to_char(TRUNC(L.ID1 / 65536)) || 'RWO:' ||
              nvl(r.NAME, 'None'),
              L.ID1) as LOCK_ID1,
       'alter system kill session ''' || s.SID || ',' || s.SERIAL# || ''';' as "Kill"
  from v$process p
 inner join v$session s
    on s.PADDR = p.ADDR
 inner join v$lock l
    on l.SID = s.SID
  left join sys.obj$ t
    on l.ID1 = t.obj#
  left join sys.obj$ r
    on s.ROW_WAIT_OBJ# = r.obj#
 where 1 = 1
   and l.TYPE != 'MR' 
-- and l.TYPE  = 'TM'
   and l.lmode = 3
 order by s.SID;

复制
暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
Uncopyrightable

找个漆黑无人打扰的夜晚进行操作,好使~

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
请教一个Win+Oracle 11.2.0.1连接的问题
回答 1
监听日志可以备份后清理一下,alter是否还有其他错误,比如:process连接数达到最大限制。如果有,修改最大连接数重启数据库。
安装oracle后创建用户必须要加C##
回答 1
如下:创建CDB用户则需要加C,PDB用户则不需要。Connectedto:OracleDatabase19cEnterpriseEditionRelease19.0.0.0.0ProductionV
在使用正则表达式查询数据时,为什么使用通配符格式正确,却没有查找出符合条件的记录?
回答 1
已采纳
在Oracle中存储字符串数据时,可能会不小心把两端带有空格的字符串保存到记录中,而在查看表中记录时,Oracle不能明确地显示空格,数据库操作者不能直观地确定字符串两端是否有空格。例如,使用LIKE
请问一下,oracle user_segments表的segment_name 字段以BIN$开头的是什么?
回答 1
是回收站里的数据段,可以使用showrecyclebin查看到回收站里的表
关于自动数据库诊断监视器 (ADDM),哪两个语句是正确的?(选择两个)
回答 1
已采纳
B.它在创建每个AWR快照后自动运行,并且至少需要两个快照才能进行分析。ADDM会在创建每个AWR快照后自动运行,以分析数据库的性能问题。为了进行准确的分析,它至少需要两个AWR快照作为输入。通过比较
oracle删除归档日志
回答 10
脚本是可以执行的,建议写脚本的时候,可以使用变量存储日志路径,增加脚本灵活性。faild可能是因为使用操作系统命令删除了归档日志,而在rman控制文件中还存在这些归档日志条目的原因。你也可以在脚本执行
请问11g库最大scn是多少?
回答 1
已采纳
应该是2的48次方,最大值是:281,474,976,710,656(281万亿)
oracle服务宕机了,日志如下,请问各位大佬如何处理?
回答 2
已采纳
你这日志太乱了,看起来是swap被占用导致,pctofmemoryswappedin[0.15%]pctofmemoryswappedout[5.65%].可能是数据库大页的问题。1检查内存占用率。2
Oracle数据库查询报错:ORA-01722 invalid number
回答 2
已采纳
如果发生ORA01722错误,可能的原因有两种:1)执行的sql语句中包含显示或者隐式的类型转换,将字符串转换到数字类型的时候失败,(因为)字符内容包含非数字字符。解决方法:检查SQL语句是否包含对字
oracle 的sql和mysql的一样吗?
回答 2
已采纳
大多数SQL语法是一样的,少数不一样,例如查看表的列desctocr;则是一样的,但是查看建表语句:MySQL中showcreatetabletocr;就可以,但是Oracle中需要使用dbmsmet