用户要求删除一个数据库的用户 GREENPASS,在删除的过程中,报错如下:

drop user GREENPASS * ERROR at line 1: ORA-04021: timeout occurred while waiting to lock object NEWDR.HNDR_SMS_LOG

处理过程

1. 首先查询NEWDR.HNDR_SMS_LOG,这是一个'PROCEDURE';

2. 现在报错,不能对此对象进行锁定。

3. 看看什么会话在访问此对象:

select B.SID, b.USERNAME, b.MACHINE   FROM V$ACCESS A, V$SESSION B WHERE A.SID = B.SID    and a.OBJECT = 'HNDR_SMS_LOG'    and a.TYPE = 'PROCEDURE';

SID USERNAME     MACHINE ---------- ------------ -------------------        520 NEWDR        WORKGROUP\BONC02

4. 根据sid获取操作系统的进程号

select spid os_sid   from v$process where addr = (select paddr from v$session where sid = &oracle_sid);

old 3: where addr = (select paddr from v$session where sid = &oracle_sid) new   3:  where addr = (select paddr from v$session where sid = 520)

OS_SID ------------ 29360

5. 询问业务人员,可以直接杀掉进程

ps -ef|grep 29360 kill -9 29360

6. 重新尝试 SQL> drop user GREENPASS; 用户已丢弃

-----------------------------------------------

sid 为 520 对应的语句 部分如下:

INSERT /*+ APPEND */                                                   INTO FACT_INFO_USER_BEFORE                                               (ACCT_MONTH,                                                            USER_NO,                                                               DEVICE_NUMBER,                                                         SERVICE_CODE,                                                          AREA_ID,                                                               CITY_ID,                                                               USER_DINNER,                                                           INNET_MONTH,                                                           AVG_ARPU,                                                              ACCT_ARPU,                                                             IS_ACCT,                                                               USER_TYPE,                                                             EXPIRE_MONTH)                                                         SELECT /*+ USE_HASH(A,B,C,D,E,F,G)*/                                    :B1,                                                                   C.USER_NO,                                                             C.DEVICE_NUMBER,                                                       C.TELE_TYPE,                                                           C.AREA_NO,                                                             C.CITY_NO,                                                             C.USER_DINNER,                                                         C.INNET_MONTH,                                                         A.AVG_FEE,                                                             B.ALL_FEE,                                                             NVL2(B.USER_NO, '1', '0'),                                             (CASE                                                                    WHEN F.CLUBMEM_LEVEL_SUB_CODE_LAST IN ('1', '2') AND                        F.CLUBMEM_LEVEL_SUB_CODE = '1' AND G.USER_NO IS NULL THEN          '1'                                                                   WHEN F.CLUBMEM_LEVEL_SUB_CODE_LAST IN ('1', '2') AND                        F.CLUBMEM_LEVEL_SUB_CODE = '2' AND G.USER_NO IS NULL THEN          '2'                                                                   WHEN F.CLUBMEM_LEVEL_SUB_CODE = '3' AND C.INNET_MONTH >= 4 AND              A.AVG_FEE >= D.HIGH_STANDARD AND G.USER_NO IS NULL THEN            '3'                                                                   WHEN C.INNET_MONTH >= 4 AND A.AVG_FEE >= D.HIGH_STANDARD AND                G.USER_NO IS NULL THEN                                             '4'                                                                   WHEN C.INNET_MONTH >= 4 AND A.AVG_FEE < D.HIGH_STANDARD AND                 A.AVG_FEE >= D.HIGH_STANDARD * 0.8 AND E.USER_TYPE <= '5' AND           G.USER_NO IS NULL THEN                                             '5'                                                                   WHEN C.INNET_MONTH >= 4 AND A.AVG_FEE < D.HIGH_STANDARD AND                 A.AVG_FEE >= D.HIGH_STANDARD * 0.8 AND E.USER_TYPE > '5' THEN       '6'                                                                   WHEN C.INNET_MONTH >= 4 AND A.AVG_FEE < D.HIGH_STANDARD * 0.8 AND           A.AVG_FEE >= 30 THEN                                               '6'

ORA-04021 timeout occurred while waiting to lock object的更多相关文章

  1. ORA-04021:timeout occurred while waiting to lock object

    编译某存储过程 ORA-04021 timeout occurred while waiting to lock object stringstringstringstringstring Cause ...

  2. 关于ORA-04021解决办法(timeout occurred while waiting to lock object)

    某个应用正在锁定该表或者包 表为 select b.SID,b.SERIAL#,c.SQL_TEXT from v$locked_object a, v$session b, v$sqlarea c ...

  3. org.eclipse.jdi.TimeoutException:Timeout occurred while waiting for packet 1983.occurred

    eclipse 增大junit内存配置 现象:eclipse在junit测试的时候出现如下错误 org.eclipse.jdi.TimeoutException:Timeout occurred wh ...

  4. Timeout occurred while waiting for latch: class 'ACCESS_METHODS_DATASET_PARENT'

    前些天某个SQL Server数据库的错误日志爆出如下错误: Timeout occurred while waiting for latch: class 'ACCESS_METHODS_DATAS ...

  5. Timeout occurred while waiting for latch: class 'COLUMNSTORE_ROWGROUP_COLLECTION'

    今天发现线上数据库主从延迟严重: SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server, dr_state.da ...

  6. org.eclipse.jdi.TimeoutException: Timeout occurred while waiting for packet 421. occured resuming VM.

    环境: 导入excel的时候,会根据路径,读取EXCEL的数据. 原因: 电脑上的防火墙关闭

  7. 【我的Android进阶之旅】解决AndroidStudio编译时报错:Timeout waiting to lock artifact cache .

    1. 错误描述 今天在Android Studio中,使用gradle命令的时候,出现了如下所示的错误: D:\GitLab Source\XTCLint>gradlew clean uploa ...

  8. Eclipse项目导入Android Stuio 配置出现 Timeout waiting to lock buildscript class cache for build file 'H:\studioproject\Generic_SN\build.gradle'

     Eclipse项目导入Android Stuio 配置出现 Error:Timeout waiting to lock buildscript class cache for build file  ...

  9. android studio :Timeout waiting to lock daemon addresses registry

    一.开发中 android studio 突然遇到下面的错误提示: Error:Timeout waiting to lock daemon addresses registry. It is cur ...

随机推荐

  1. C#使用quartz.net定时问题

    因工作需要需要完成定时查询数据..因此在了解之后完成了一个demo 所需要的dll在该地址下载 http://pan.baidu.com/s/1sjNQLXV 首先引入quartz这个dll... 在 ...

  2. html中的空格显示问题

    像这种,从后台查询出来的数据中间有好几个空格,但在页面上显示的时候就只剩一个空格了,这种显示肯定是不合适的,相关的html代码如下: <c:forEach items="${list} ...

  3. 编写安装中断7ch的中断例程:将一个以0结尾的字符串,转化为大写

    中断的安装程序: assume cs:code code segment start: mov ax, cs mov ds, ax mov si, offset chstr mov es, ax mo ...

  4. android共享内存

    在android下不能通过shm_open使用共享内存. 网上有好多关于android下使用Ashmem实现共享内存的,但经过尝试该方法可以mmap出内存,但是和另一个进程没有实现共享. 具体的使用方 ...

  5. 第二章:UNIX标准化及实现

    本章节介绍个UNIX编程环境的标准化的进展,对ISO C,POSIX和Single UNIX Specification三个主要标准进行了说明 本章后面部分介绍了限制的具体实例. 我学习本章的心得是: ...

  6. Docker-Dockerfile格式

    1.FROM //指定基于那个基础镜像 格式FROM<image>或者FROM<image>:<tag> 例如: FROM centos FROM centos:l ...

  7. UVA 1395 (kruskal)

    /* 最大路与最小路的问题: 这道题看似简单,但是若不知道思路将无法写出. 思路:最小生成树很容易求出,但是最大值与最小值只差很难保证是最小的, 比如:1 5 5 6 100 101 很明显101 - ...

  8. glusterfs 中的字典查询

    glusterfs文件系统是一个分布式的文件系统,但是与很多分布式文件系统不一样,它没有元数服务器,听说swift上也是应用了这个技术的.glusterfs中每个xlator的配置信息都是用dict进 ...

  9. 使用"立即执行函数"(Immediately-Invoked Function Expression,IIFE)

    一.原始写法 模块就是实现特定功能的一组方法. 只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块. function m1(){ //... } function m2(){ // ...

  10. python logging模块详解[转]

    一.简单将日志打印到屏幕: import logging logging.debug('debug message') logging.info('info message') logging.war ...