`
wsql
  • 浏览: 11789885 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

对一个DROP MV 语句长时间无返回的处理步骤。

 
阅读更多

接到客户电话说一个drop mview语句 花了4个小时没有结果。
客户说建立一个MV但觉得不对想删除但删除语句一直无返回。

我按如下步骤对库进行检查。


SQL> set head off
SQL> select sid,OPNAME,sofar,TOTALWORK,trunc(sofar/totalwork*100,2)||'%' as perwork,elapsed_seconds,message
2 from v$session_longops where sofar!=totalwork;


57
Rowid Range Scan
453033 934531
48.47%
446
Rowid Range Scan: SGREPORTS.SUMMARY: 453033 out of 934531 Blocks done

26
Table Scan
8829 57660
15.31%
36
Table Scan: CNSADMIN.CNSRPT_AUDIT: 8829 out of 57660 Blocks done


15
SYS_EXPORT_FULL_41
21238 47705
44.51%
18308
SYS_EXPORT_FULL_41: EXPORT : 21238 out of 47705 MB done

46
Rowid Range Scan
9288 66726
13.91%
91

Rowid Range Scan: REPORTER.REPORTER_STATUS_MV: 9288 out of 66726 Blocks done

109
Rowid Range Scan
8068 94717
8.51%
16
Rowid Range Scan: REPORTER.REPORTER_STATUS_MV: 8068 out of 94717 Blocks done

36
Sort Output
72807 74632
97.55%

1488
Sort Output: : 72807 out of 74632 Blocks done


已选择6行。

没发现DROP MV语句。

SQL> select * from dba_blockers;

221


SQL> select sql_address from v$session where sid =221

SQL_ADDRESS
----------------
00

表示没有事务在运行。但有可能保有锁。

SQL>
SQL> SELECT
2 a.session_id, username,type,mode_held,mode_requested,
3 lock_id1,lock_id2
4 FROM
5 sys.v_$session b,
6 sys.dba_blockers c,
7 sys.dba_lock a
8 WHERE
9 c.holding_session=a.session_id AND
10 c.holding_session=b.sid
11 /

221 REPORTER
USER
Exclusive
None
0
1264

221 REPORTER
USER
Exclusive
None
44178
0


221 REPORTER
USER
Row-X (SX)
None
212
0

221 REPORTER
USER
Exclusive
None
65537

173202


果然在221语句上有锁。

分析:一定是客户在建立MV时设定了刷新,所以对应的JOB启动。但没等待JOB刷新结束,客户又启动了DROP MV.
SQL> set head on
SQL>
select * from dba_jobs_running;

SID JOB FAILURES LAST_DATE
---------- ---------- ---------- --------------
LAST_SEC THIS_DATE
------------------------------------------------ --------------
THIS_SEC INSTANCE
------------------------------------------------ ----------
36 305 0 04-10月-08
07:24:46 05-10月-08
07:24:50 0

221 1264     -----这个就是那个造成DROP MV BLOCK的JOB。



SID JOB FAILURES LAST_DATE
---------- ---------- ---------- --------------
LAST_SEC THIS_DATE
------------------------------------------------ --------------
THIS_SEC INSTANCE
------------------------------------------------ ----------


SQL> select * from dba_jobs where job=1264;

未选定行



SQL> select s.sid,s.serial#,s.username,s.status,p.spid
2 from v$session s, v$process p
3 where s.sid in (221) and s.paddr = p.addr;

SID SERIAL#
---------- ----------
USERNAME STATUS
------------------------------------------------------------ ----------------
SPID
------------------------
221 27367
REPORTER ACTIVE
23087

果然有一个JOB HANG到这了。
alter system kill session '221,27367';
from OS:
kill -9 23087
一切OK了。
分享到:
评论

相关推荐

    经典SQL语句大全

    注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。因为这样可以避免 top的字段如果是逻辑索引的,查询的结果后实际...

    数据库操作语句大全(sql)

    注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。因为这样可以避免 top的字段如果是逻辑索引的,查询的结果后实际...

    sql经典语句一部分

    注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。因为这样可以避免 top的字段如果是逻辑索引的,查询的结果后实际...

    PL/SQL Developer8.04官网程序_keygen_汉化

    即当一个对数据库的查询操作返回一组结果集时,用游标来标注这组结果集,以后通过对游标的操作来获取结果集中的数据信息。这里特别提出游标的概念,是因为它在PL/SQL的编程中非常的重要。  定义游标的语法结构如下...

    PLSQLDeveloper下载

    即当一个对数据库的查询操作返回一组结果集时,用游标来标注这组结果集,以后通过对游标的操作来获取结果集中的数据信息。这里特别提出游标的概念,是因为它在PL/SQL的编程中非常的重要。定义游标的语法结构如下: ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    2. oracle11G自带一个卸载批处理\app\Administrator\product\11.2.0\dbhome_1\deinstall\deinstall.bat 3. 运行该批处理程序将自动完成oracle卸载工作,最后手动删除\app文件夹(可能需要重启才能删除) 4. 运行...

    数据库基础实验的实验报告附图

    9. 重新定义一个简单表,然后用SQL语言DROP语句删除该表结构; 10. 用SQL语言CREATE INDEX语句定义表STUDENT的SNAME字段的降序索引; 11. 用SQL语言CREATE INDEX语句定义表SC的GRADE字段的升序索引; 12. 用SQL语言DROP...

    oracle实验报告

    例3 建立一个批命令文件对查询到的数据以报表的形式输出并将其保存到指定的文件中。 处理方法:利用SQL*PLUS语言工具(也可以使用其他文本编辑器)建立批命令的.SQL文件。在“SQL>”提示符下,使用EDIT命令在”E:\”...

    MYSQL培训经典教程(共两部分) 2/2

    MySQL的安装 27 2.1 MYSQL系统的安装布局 28 2.1.1 二进制安装 28 2.1.2 RPM安装 28 2.1.3 源代码安装 28 2.1.4总结 29 2.2 安装MYSQL系统的分发 29 2.2.1 在Windows下的安装一个二进制分装 29...

    MYSQL培训经典教程(共两部分) 1/2

    MySQL的安装 27 2.1 MYSQL系统的安装布局 28 2.1.1 二进制安装 28 2.1.2 RPM安装 28 2.1.3 源代码安装 28 2.1.4总结 29 2.2 安装MYSQL系统的分发 29 2.2.1 在Windows下的安装一个二进制分装 29...

    Oracle8i_9i数据库基础

    §4.1.2 创建一个新视图 128 §4.1.3 删除一个视图 130 §4.1.4 改变视图 131 §4.2 实体视图(MATERIALIZED VIEW) 131 §4.2.1 创建实体视图 131 §4.2.2 创建实体视图日志 137 §4.2.3 修改实体视图 139 §4.2.4 ...

    SQL培训第一期

    当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值;如果表之间有匹配行,则整个结果集行包含基表的数据值。 1.6.4.2 语法 select A.*, B.* from student_A A full outer join student_B B on A.Uuid...

    数据库基础

    §4.1.2 创建一个新视图 128 §4.1.3 删除一个视图 130 §4.1.4 改变视图 131 §4.2 实体视图(MATERIALIZED VIEW) 131 §4.2.1 创建实体视图 131 §4.2.2 创建实体视图日志 137 §4.2.3 修改实体视图 139 §4.2.4 ...

    ORACLE 常用手册导入导出

    2. 完成恢复可能需要很长时间。恢复只能用import方法进行,所以需要的时间包括: a. create database及所有的tablespace: 以每2分钟初始化一个2G的数据文件来计算,建立一个400G的Oracle数据库需要约6.7个小时。 b...

    ORACLE大表分区

    -- @PARAM NUMBER BACKINTERVAL----取值范围为[3600,7*86400],表数据回迁时的循环步长,即一次回迁多长时间的数据,单位为秒; -- @PARAM VARCHAR2 PARTWEEKDAY-----取值范围为(SUN,MON),PARTINTERVAL为7时起作用,指定...

    SQL sever 实训

    --计算有多少种产品(假设为x),然后显示一条信息:共有X种产品 DECLARE @X int SET @X =(SELECT COUNT (*) FROM Product ) PRINT '共有'+convert (char(2),@x)+'种产品。' GO --编写计算n!(n=20)的程序,并...

    Oracle 主要配置文件介绍

    initSID.ora 每个数据库实例都有一个初始化 参数文件 其缺省 存放的路径为 $ORACLE_BASE/admin/<SID>/pfile 其名称为 init<SID>.ora 如 cams 实 例 对 应 的 参 数 文 件 为 initcams.ora 缺 省 存 放 ...

    Java学习笔记-个人整理的

    {12.13.6}drop}{177}{subsection.12.13.6} {12.13.7}rename}{177}{subsection.12.13.7} {12.14}SQL脚本}{177}{section.12.14} {12.15}Transaction}{177}{section.12.15} {12.16}char与varchar2}{178}{section....

Global site tag (gtag.js) - Google Analytics