在PL/SQL操作了一条delete语句用于删除这张1.4亿条数据的表,执行了12个小时还没删完

(经DB指导,量级大的需要使用truncate table table_name 进行删除)

--查询当前进程 
SELECT l.session_id sid,
s.serial#,
l.locked_mode 锁模式,
l.oracle_username 登录用户,
l.os_user_name 登录机器用户名,
s.machine 机器名,
s.terminal 终端用户名,
o.object_name 被锁对象名,
s.logon_time 登录数据库时间
FROM v$locked_object l, all_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY sid, s.serial#;

查询发下 SID为962的对象被锁了

尝试使用   alter system kill session 'SID,SERTAL';   杀掉会话进程

alter system kill session '962,23413';

提示了 ORA-00031: 标记要终止的会话

经查 :如果出现题目的错误,则说明在数据库级不能杀掉该死锁进程,需要到操作系统级来处理了。如下图所示:

①可以通过下列语句查询: 
select a.spid,b.sid,b.serial#,b.username 
from v$process a,v$session b 
where a.addr=b.paddr 
and b.status='KILLED';
 
②如果利用上面的命令杀死一个进程后,进程状态被置为"killed",但是锁定的资源很长时间没有被释放,那么可以在OS级再杀死相应的进程(线程),首先执行下面的语句获得进程(线程)号: 
select b.spid,a.osuser,b.program 
  from v$session a,v$process b 
 where a.paddr=b.addr 
   and a.sid=962    --962就是上面的sid
 
[root@crb-db1 ~]# su - oracle            --切换到oracle 用户
Last login: Thu Jun 10 10:59:03 CST 2021 on pts/0
[oracle@crb-db1 ~]$ ps -ef | grep smon --SMON(system monitor process)系统监控后台进程

--ps命令将某个进程显示出来

       --grep命令是查找

                    --中间的|是管道命令 是指ps命令与grep同时执行

                    --grep命令是查找,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

                   --grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

                   --select  *  from   v$session  where  sid=962;     根据sid查addr

                   --select  *  from  v$process where  addr='0000000508DF6488'    查pid

UID      :程序被该 UID 所拥有

PID      :就是这个程序的 ID 

PPID    :则是其上级父程序的ID

C          :CPU使用的资源百分比

STIME :系统启动时间

TTY     :登入者的终端机位置

TIME   :使用掉的CPU时间。

CMD   :所下达的是什么指令

UID            PID       PPID   C  STIME    TTY        TIME                          CMD
oracle 1819 1779 0 12:59 pts/1 00:00:00 grep --color=auto smon
oracle 10125 1 0 2020 ? 00:15:06 ora_smon_orcl
[oracle@crb-db1 ~]$ ps -ef | grep 55754 --55754 即第②步根据SID查询出的spid
oracle 1821 1779 0 12:59 pts/1 00:00:00 grep --color=auto 55754
oracle 55754 1 1 Jun09 ? 00:16:26 oracleorcl (LOCAL=NO)
[oracle@crb-db1 ~]$ kill -9 55754
[oracle@crb-db1 ~]$
[oracle@crb-db1 ~]$ ^C
[oracle@crb-db1 ~]$ timed out waiting for input: auto-logout
[root@crb-db1 ~]# timed out waiting for input: auto-logout
Connection closing...Socket close. Connection closed by foreign host. 成功解决

【Linux/Oracle】ORA-00031:标记要终止的会话 解决的更多相关文章

  1. 【转】ora-00031:session marked for kill(标记要终止的会话)解决方法

    今天碰到一个问题,有一张表不能操作,很可能是被锁了,首先想到的是kill session,于是执行了下列的脚本找到是哪个session有问题: select object_name, machine, ...

  2. 【ORACLE 】 ORA-00031 标记要删去的会话(解决)

    在使用Oracle的过程中,会有使用了锁(for update)但又忘记释放锁的情况.这是就需要用到KILL语句了.(如果不知道KILL语句怎么用,可参考: http://www.cnblogs.co ...

  3. ORA-00031: session marked for kill 标记要终止的会话

    原文转载处:http://moonsoft.itpub.net/post/15182/203828 一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长 ...

  4. Linux Oracle bash: “sqlplus / as sysdba”: command not found 解决方法

    bash: sqlplus: command not found 解决方法 注:本文来源于 <   bash: sqlplus: command not found 解决方法   > 1: ...

  5. Oracle ORA

    ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 OR ...

  6. Oracle Ora 错误解决方案合集

    注:本文来源于 < Oracle学习笔记 --- Oracle ORA错误解决方案 > ORA-00001: 违反唯一约束条件 (.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发 ...

  7. oracle错误:1067进程意外终止

    oracle错误:1067进程意外终止我Oracle安装完了之后可以运行的 ,过了一段时间不可以了,就上网找了一下,原来是自己的ip已经改变.我一直使用IP地址的. 将D:\oracle\produc ...

  8. Linux oracle数据库自动备份自动压缩脚本代码

    Linux oracle数据库备份完成后可以自动压缩脚本代码. 复制代码代码如下: #!/bin/bash #backup.sh #edit: www.jbxue.com ##系统名称 sysname ...

  9. Parse Fatal Error at line 41 column 24: 元素类型 "url-pattern" 必须由匹配的结束标记 "</url-pattern>" 终止

    1.错误描述 严重: Parse Fatal Error at line 41 column 24: 元素类型 "url-pattern" 必须由匹配的结束标记 "< ...

随机推荐

  1. 初识python: os 模块

    偷下懒,直接看代码吧: #!/user/bin env python # author:Simple-Sir # time:2019/8/21 16:38 # os 模块 import os # os ...

  2. 前后端分离 导致的 静态页面 加载 <script type="module" > 报CORS 跨域错误,提示 blocked by CORS policy

    1.前言 静态页面 加载 <script type="module" > 报CORS 跨域错误,提示Access to script at ftp:///xxx.js ...

  3. 简单的sdn防火墙

    github仓库 演示视频 本次实验建立的拓扑 使用到的 pox 指令介绍,参考pox控制器学习笔记 1. forwarding.l2_learning 使OpenFlow交换机充当L2学习交换机的一 ...

  4. What's The Next|Kube-OVN 社区线上 Meetup 预告!

    ​ ​ Kube-OVN 社区线上Meetup 直播预约通道已开启! 活动时间 2021年8月26日(周四)19:00-20:30 活动介绍 8月26日,Kube-OVN 社区 Meetup 将通过线 ...

  5. 【刷题-PAT】A1101 Quick Sort (25 分)

    1101 Quick Sort (25 分) There is a classical process named partition in the famous quick sort algorit ...

  6. java有四种访问权限

    Java面向对象的封装性是通过对成员变量和方法进行访问控制实现的,访问控制分为4个等级:私有.默认.保护和公有,具体规则如下表:

  7. python -m详解

    温馨提示: 本篇演示环境是Python 3.8 先python --help看下python -m参数的解释: -m mod : run library module as a script (ter ...

  8. redis集群运维

    Redis 的数据类型? Redis 支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及 zsetsorted set(有序集合) redis优势 速度快, ...

  9. 人口信息普查系统-JavaWeb-五

    今天分享人口普查系统删除查询前端代码 <%@ page language="java" contentType="text/html; UTF-8" pa ...

  10. 带你十天轻松搞定 Go 微服务系列(八、服务监控)

    序言 我们通过一个系列文章跟大家详细展示一个 go-zero 微服务示例,整个系列分十篇文章,目录结构如下: 环境搭建 服务拆分 用户服务 产品服务 订单服务 支付服务 RPC 服务 Auth 验证 ...