oracle报错ORA-00031:标记要终止的会话

oracle中编译一个包的时候发现,只要一编译就卡死了,后来使用《oracle查询、Kill锁资源的SQL语句》方法查锁的时候发现包中用到的一些资源一直处于死锁状态。后来通过alter system kill session的方法去解锁,却发现出现如下图1所示的问题:
ORA-00031:标记要终止的会话

后来通过连接上oracle数据库所在的系统,然后kill掉进程解决,方法如下:

(1)查询被锁资源的sid、serial#:

SELECT s.sid,
       s.serial#,
       v.*,
       ao.*
  FROM v$locked_object v,
       all_objects     ao,
       v$session       s
 WHERE v.object_id = ao.object_id
   AND s.sid = v.session_id;

(2)利用上面的SQL查询出sid和serial#以后,利用下面SQL去kill session:

-- 如有记录则表示lock,记录下SID和serial#,将记录下的SID和serial#替换下面的738,1429,即可接触lock。
ALTER SYSTEM KILL SESSION '738,1429';

(3)如果上面的kill session报如上图1的错误,那么再用下面的SQL去查处session对应的spid:

SELECT p.spid,
       s.osuser,
       s.program
  FROM v$session s,
       v$process p
 WHERE s.paddr = p.addr
   AND s.sid = 37; -- 替换成相应的session_id

(4)连上oracle数据库所在的系统(我这里是Linux系统),记录下上面查到的spid(假设这里查到的是1133),然后使用下面语句来kill掉进程:

kill -9 1133

等待一会,等进程kill成功以后,再去查锁即可发现资源已经被释放。如果oracle安装在Windows系统上,请使用Windows系统的kill进程的方式去杀掉进程。

时间: 2024-12-28 06:56:11

oracle报错ORA-00031:标记要终止的会话的相关文章

pl/sql developer-PL/SQL Developer 远程连接Oracle 报错无法解析指定的标识符

问题描述 PL/SQL Developer 远程连接Oracle 报错无法解析指定的标识符 环境: 虚拟机中安装CentOS 6.3 CentOS安装Oracle 11gr2 客户机Win7 问题介绍: 已经在CentOS 启动了实例,监听: 开放了1521端口:虚拟机跟客户机网络连通: 使用DBVisualizer可以连接成功目标实例: PL/SQL Dev连接就报错"ORA-12154: TNS:could not resolve the connect identifier specifi

oracle ORA-00031:session marked for kill(标记要终止的会话)解决方法_oracle

今天碰到一个问题,有一张表不能操作,很可能是被锁了,首先想到的是kill session,于是执行了下列的脚本找到是哪个session有问题: 查看表是否被锁 SELECT /*+ rule*/ a.sid, b.owner, object_name, object_type FROM v$lock a, all_objects b WHERE TYPE = 'TM' and a.id1 = b.object_id; 根据上面查询出的sid,找出对应的serial#: SELECT sid,se

Oracle报错ORA-00604 ORA-00376 数据库redo undo丢失恢复例子

运维DBA反映数据库存储故障,导致redo undo两个表空间数据文件丢失,数据库无法open启动 某集团的ebs系统因磁盘空间不足把redo和undo存放到raid 0之上,而且该库无任何备份.最终悲剧发生了,raid 0异常导致redo undo全部丢失,数据库无法正常启动(我接手之时数据库已经resetlogs过,但是未成功) 1.Oracle报错ORA-00604 ORA-00376 Sun Jul 27 11:31:27 2014 SMON: enabling cache recove

c++-win32 C++应用程序放到Server08下连接oracle报错

问题描述 win32 C++应用程序放到Server08下连接oracle报错 程序是C++的,连接本地Oracle数据库,方法为 CoInitialize(NULL);ConnectionPtr conn; try{ conn.CreateInstance(_uuidof(Connection)); conn->Open("Provider=OraOLEDB.Oracle.1;Data Source=ORACLE;Persist Security Info=false;Password=

项目从mysql迁移到oracle报错

问题描述 项目从mysql迁移到oracle报错 本来没有一点错误,迁移之后出现了很多,不知道哪位大神见过下面的问题: 17:23:54,967 ERROR BasicPropertyAccessor:118 - IllegalArgumentException in class: com.ebupt.dataWarehouse.entity.dataQualityMonitoring.MonTaskConEntity, setter method of property: TemporaryI

(C语言版)数据结构线性表从键盘输入元素实现相关功能,不报错,但执行意外终止

问题描述 (C语言版)数据结构线性表从键盘输入元素实现相关功能,不报错,但执行意外终止 #include #include #define MaxSize 50 typedef char ElemType; typedef struct{//struct结构体 ElemType data[MaxSize]; int length; }SqList; void InitList(SqList &L)//初始化线性表的方法,&是取地址符号,是定义指针符号,如int *b=&a:*a=4

hibernate连接oracle报错

问题描述 hibernate连接oracle报错 Exception in thread "main" java.lang.AbstractMethodError: Method oracle/jdbc/driver/OracleDatabaseMetaData.supportsNamedParameters()Z is abstract 解决方案 PB连接Oracle报错plsql 连接 oracle 报错:ora-12514 解决方案二: 你看看是不是你的驱动包的问题,该异常说的是

oracle 报错 ora-00905

问题描述 oracle 报错 ora-00905 report如下,求大神来看看 在行: 99 上开始执行命令时出错 - ALTER TABLE vet ADD CONSTRAINT vetpractice_vet_fk FOREIGN KEY (vetpractice_no, pet_no, owner_no) REFERENCES vetpractice (vetpractice_no, pet_no, owner_no) ON DELETE NO ACTION ON UPDATE NO A

sqlserver 转oracle 报错

问题描述 sqlserver 转oracle 报错 [Err] ORA-32031: illegal reference of a query name in WITH clause 解决方案 查询name的时候不合理的引用,, 解决方案二: Oracle 转换 SqlServer (转)