- 浏览: 340725 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (198)
- HIBERNATE (8)
- JAVA (13)
- 数据库 (24)
- SPRING (1)
- LINUX (0)
- 需求管理 (3)
- 职业提升 (6)
- 团队建设 (1)
- 日常用到语句 (1)
- FLEX (6)
- 用户体验 (3)
- 设计模式 (6)
- weblogic (2)
- PowerDesigner (3)
- HTML (7)
- ANT (7)
- 工具. (1)
- bat (5)
- 存储过程 (1)
- strus2 (1)
- DWR (2)
- jfreechart (4)
- 上线测试优化 (17)
- JVM (9)
- 工具使用 (2)
- 算法 (3)
- 私事 (0)
- 数据库-Oracle session (1)
- 软件开发 (5)
- 产品 (2)
- 项目管理 (4)
- oracle语句 (1)
- IntelliJ IDEA (4)
- GRAILS (10)
- Groovy (1)
- JS (1)
- DUBBO (1)
- JAVA EXCEL (3)
- netty websocket (1)
- kafka (1)
- 秘钥体系 (2)
- golang (6)
- gradle (1)
- spring cloud (0)
最新评论
-
wujt:
...
Grails_数据库逆向工程插件 db-reverse-engineer -
yy8093:
我也遇到这个问题,不过并不觉得是个好的方法。。。。不过最后也确 ...
关于dubbo服务产生异常之:Caused by: com.alibaba.dubbo.remoting.TimeoutException: Waiting s -
wujt:
# ----- Execute The Requested C ...
jconsole基础配置(原创) -
gaowei52306:
你好,请问remotedir="/home/dmwe ...
Ant FTP -
抢街饭:
ant生成日志 在命令行也能看见 怎么去做啊
ant生成日志
ORACLE阻塞
案例一:
34.//SYS窗口
35.
36.SQL> select c.terminal||' ('''||a.sid||','||c.serial#||''') is blocking '||b.sid
37.||','||d.serial# block_msg, a.block
38. 2 from v$lock a,v$lock b,v$session c,v$session d
39. 3 where a.id1=b.id1
40. 4 and a.id2=b.id2
41. 5 and a.block>0
42. 6 and a.sid <>b.sid
43. 7 and a.sid=c.sid
44. 8 and b.sid=d.SID
45. 9 ;
46.
47.BLOCK_MSG BLOCK
48.---------------------------------------- ----------
49.HWANG ('138,305') is blocking 153,15 1
50.
51.SQL> select sid,serial#,username from v$session where username is not null;
52.
53. SID SERIAL# USERNAME
54.---------- ---------- ------------------------------
55. 136 179 SYS
56. 138 305 SCOTT
57. 153 15 SCOTT
58.
59.//这个时候可以杀掉那个BLOCKER
60.
61.SQL> alter system kill session'138,305';
62.
63.System altered.
64.
65.//SCOTT窗口1
66.
67.SQL> select * from t2;
68.select * from t2
69.*
70.ERROR at line 1:
71.ORA-00028: your session has been killed
用到的语句:
select c.terminal || ' (''' || a.sid || ',' || c.serial# ||
''') is blocking ' || b.sid || ',' || d.serial# block_msg,
a.block
from v$lock a, v$lock b, v$session c, v$session d
where a.id1 = b.id1
and a.id2 = b.id2
and a.block > 0
and a.sid <> b.sid
and a.sid = c.sid
and b.sid = d.SID;
select sid,serial#,username from v$session where username is not null;
案例2:
oracle锁阻塞的会话
CREATE OR REPLACE VIEW SYS.V_LOCK AS
SELECT DECODE(request,0,'Holder: ','Waiter: ')||sid sess,
id1, id2, lmode, request, type
FROM V$LOCK
WHERE (id1, id2, type) IN
(SELECT id1, id2, type FROM V$LOCK WHERE request>0)
ORDER BY id1, request;
案例3:
查询Oracle中的阻塞锁(以及阻塞在哪个数据上)的SQL
Select '节点 ' || a.INST_ID || ' session ' || a.sid || ',' || a_s.SERIAL# ||
' 阻塞了 节点 ' || b.INST_ID || ' session ' || b.SID || ',' || b_s.SERIAL# blockinfo,
a.INST_ID,
a_s.SID,
a_s.SCHEMANAME,
a_s.MODULE,
a_s.STATUS,
a.type lock_type,
a.id1,
a.id2,
decode(a.lmode,0,'none',1,null,2,'row-S (SS)',3,'row-X (SX)',4,'share (S)',5,'S/Row-X (SSX)',6,'exclusive (X)') lock_mode,
'后为被阻塞信息' ,
b.INST_ID blocked_inst_id,
b_s.SID blocked_sid,
b.TYPE blocked_lock_type,
decode(b.request,0,'none',1,null,2,'row-S (SS)',3,'row-X (SX)',4,'share (S)',5,'S/Row-X (SSX)',6,'exclusive (X)') blocked_lock_request,
b_s.SCHEMANAME blocked_SCHEMANAME,
b_s.MODULE blocked_module,
b_s.STATUS blocked_status,
b_s.SQL_ID blocked_sql_id,
obj.owner blocked_owner,
obj.object_name blocked_object_name,
obj.OBJECT_TYPE blocked_OBJECT_TYPE,
case
when b_s.ROW_WAIT_OBJ# <> -1 then
dbms_rowid.rowid_create(1,
obj.DATA_OBJECT_ID,
b_s.ROW_WAIT_FILE#,
b_s.ROW_WAIT_BLOCK#,
b_s.ROW_WAIT_ROW#)
else
'-1'
end blocked_rowid, --被阻塞数据的rowid
decode(obj.object_type,
'TABLE',
'select * from ' || obj.owner || '.' || obj.object_name ||
' where rowid=''' ||
dbms_rowid.rowid_create(1,
obj.DATA_OBJECT_ID,
b_s.ROW_WAIT_FILE#,
b_s.ROW_WAIT_BLOCK#,
b_s.ROW_WAIT_ROW#) || '''',
NULL) blocked_data_querysql
from gv$lock a,
gv$lock b,
gv$session a_s,
gv$session b_s,
dba_objects obj
where a.id1 = b.id1
and a.id2 = b.id2
and a.BLOCK > 0 --阻塞了其他人
and b.request > 0
and ((a.INST_ID = b.INST_ID and a.sid <> b.sid) or
(a.INST_ID <> b.INST_ID))
and a.sid = a_s.sid
and a.INST_ID = a_s.INST_ID
and b.sid = b_s.sid
and b.INST_ID = b_s.INST_ID
and b_s.ROW_WAIT_OBJ# = obj.object_id(+)
order by a.inst_id,a.sid
案例一:
34.//SYS窗口
35.
36.SQL> select c.terminal||' ('''||a.sid||','||c.serial#||''') is blocking '||b.sid
37.||','||d.serial# block_msg, a.block
38. 2 from v$lock a,v$lock b,v$session c,v$session d
39. 3 where a.id1=b.id1
40. 4 and a.id2=b.id2
41. 5 and a.block>0
42. 6 and a.sid <>b.sid
43. 7 and a.sid=c.sid
44. 8 and b.sid=d.SID
45. 9 ;
46.
47.BLOCK_MSG BLOCK
48.---------------------------------------- ----------
49.HWANG ('138,305') is blocking 153,15 1
50.
51.SQL> select sid,serial#,username from v$session where username is not null;
52.
53. SID SERIAL# USERNAME
54.---------- ---------- ------------------------------
55. 136 179 SYS
56. 138 305 SCOTT
57. 153 15 SCOTT
58.
59.//这个时候可以杀掉那个BLOCKER
60.
61.SQL> alter system kill session'138,305';
62.
63.System altered.
64.
65.//SCOTT窗口1
66.
67.SQL> select * from t2;
68.select * from t2
69.*
70.ERROR at line 1:
71.ORA-00028: your session has been killed
用到的语句:
select c.terminal || ' (''' || a.sid || ',' || c.serial# ||
''') is blocking ' || b.sid || ',' || d.serial# block_msg,
a.block
from v$lock a, v$lock b, v$session c, v$session d
where a.id1 = b.id1
and a.id2 = b.id2
and a.block > 0
and a.sid <> b.sid
and a.sid = c.sid
and b.sid = d.SID;
select sid,serial#,username from v$session where username is not null;
案例2:
oracle锁阻塞的会话
CREATE OR REPLACE VIEW SYS.V_LOCK AS
SELECT DECODE(request,0,'Holder: ','Waiter: ')||sid sess,
id1, id2, lmode, request, type
FROM V$LOCK
WHERE (id1, id2, type) IN
(SELECT id1, id2, type FROM V$LOCK WHERE request>0)
ORDER BY id1, request;
案例3:
查询Oracle中的阻塞锁(以及阻塞在哪个数据上)的SQL
Select '节点 ' || a.INST_ID || ' session ' || a.sid || ',' || a_s.SERIAL# ||
' 阻塞了 节点 ' || b.INST_ID || ' session ' || b.SID || ',' || b_s.SERIAL# blockinfo,
a.INST_ID,
a_s.SID,
a_s.SCHEMANAME,
a_s.MODULE,
a_s.STATUS,
a.type lock_type,
a.id1,
a.id2,
decode(a.lmode,0,'none',1,null,2,'row-S (SS)',3,'row-X (SX)',4,'share (S)',5,'S/Row-X (SSX)',6,'exclusive (X)') lock_mode,
'后为被阻塞信息' ,
b.INST_ID blocked_inst_id,
b_s.SID blocked_sid,
b.TYPE blocked_lock_type,
decode(b.request,0,'none',1,null,2,'row-S (SS)',3,'row-X (SX)',4,'share (S)',5,'S/Row-X (SSX)',6,'exclusive (X)') blocked_lock_request,
b_s.SCHEMANAME blocked_SCHEMANAME,
b_s.MODULE blocked_module,
b_s.STATUS blocked_status,
b_s.SQL_ID blocked_sql_id,
obj.owner blocked_owner,
obj.object_name blocked_object_name,
obj.OBJECT_TYPE blocked_OBJECT_TYPE,
case
when b_s.ROW_WAIT_OBJ# <> -1 then
dbms_rowid.rowid_create(1,
obj.DATA_OBJECT_ID,
b_s.ROW_WAIT_FILE#,
b_s.ROW_WAIT_BLOCK#,
b_s.ROW_WAIT_ROW#)
else
'-1'
end blocked_rowid, --被阻塞数据的rowid
decode(obj.object_type,
'TABLE',
'select * from ' || obj.owner || '.' || obj.object_name ||
' where rowid=''' ||
dbms_rowid.rowid_create(1,
obj.DATA_OBJECT_ID,
b_s.ROW_WAIT_FILE#,
b_s.ROW_WAIT_BLOCK#,
b_s.ROW_WAIT_ROW#) || '''',
NULL) blocked_data_querysql
from gv$lock a,
gv$lock b,
gv$session a_s,
gv$session b_s,
dba_objects obj
where a.id1 = b.id1
and a.id2 = b.id2
and a.BLOCK > 0 --阻塞了其他人
and b.request > 0
and ((a.INST_ID = b.INST_ID and a.sid <> b.sid) or
(a.INST_ID <> b.INST_ID))
and a.sid = a_s.sid
and a.INST_ID = a_s.INST_ID
and b.sid = b_s.sid
and b.INST_ID = b_s.INST_ID
and b_s.ROW_WAIT_OBJ# = obj.object_id(+)
order by a.inst_id,a.sid
发表评论
-
在oracle10g中如何恢复drop掉的表
2014-11-19 15:17 799在oracle10g中如何恢复drop掉的表 在oracl ... -
左关联右关联全关联
2014-11-10 17:06 3885左关联右关联全关联 参考:http://www.cn ... -
win8系统倒入数据imp-00058错误
2014-09-21 17:52 695win8系统倒入数据imp-00058错误 ... -
oracle中如何判断字符串是否全为数字,以及从任意字符串中提取数字
2013-12-18 13:09 1504本文介绍了判断字符串是否全为数字的4种办法,另外还介绍了一个t ... -
查询闪存
2013-12-17 09:36 788(1)查询目标表30分钟前的数据 select * from ... -
ORA-00031: session marked for kill 处理Oracle中杀不掉的锁
2013-08-16 13:35 725ORA-00031: session marked for k ... -
Oracle创建表空间、创建用户以及授权
2013-07-30 11:30 714Oracle创建表空间、创建用户以及授权 创建临时表空间 创 ... -
Oracle中诊断阻塞session的方法 blocking error
2014-10-22 11:36 713Oracle中诊断阻塞session的方法 blocking ... -
查询Oracle中的阻塞锁(以及阻塞在哪个数据上)的SQL
2013-01-19 13:58 0查询Oracle中的阻塞锁(以及阻塞在哪个数据上)的SQL 数 ... -
查询Oracle中的阻塞锁(以及阻塞在哪个数据上)的SQL
2013-01-19 13:57 2638查询Oracle中的阻塞锁(以及阻塞在哪个数据上)的SQL 数 ... -
数据库阻塞和死锁的区别(转载)
2013-01-19 13:30 1375数据库阻塞和死锁的区别(转载) 数据库阻塞和死锁在程序开发过程 ... -
oracle 死锁和锁等待的区别(转载)
2013-01-19 13:27 1321oracle 死锁和锁等待的区别(转载) 所谓的锁等待:就是 ... -
关于“ORA-00060:等待资源时检测到死锁”问题的分析(转载)
2013-01-19 13:26 1350关于“ORA-00060:等待资源时检测到死锁”问题的分析(转 ... -
查询Oracle正在执行和执行过的SQL语句
2013-01-18 22:55 0查询Oracle正在执行和执行过的SQL语句 ---正在执 ... -
如何检测被锁住的Oracle存储过程(转帖)
2013-01-18 17:39 866如何检测被锁住的Oracle存储过程(转帖) 1.查看是哪 ... -
Oracle死锁的处理
2013-01-18 17:29 739Oracle死锁的处理 Oracle死锁问题应该如何解决呢?可 ... -
oracle 查询所有表的记录数 SQL
2013-01-18 15:06 1301oracle 查询所有表的记录数 SQL create o ... -
oracle enterprise manager console 出现 ora-12154:TNS:无法处理的服务名
2011-11-27 20:23 1190登录oracle enterprise manager con ... -
启动服务报错ORA-12505
2011-10-25 18:23 1461今天在工作中配置plsqldev时,报错误是找不到服务名 同 ... -
ORACLE-数据库导出(exp)/ 导入(imp)
2011-06-09 09:42 1495exp 将数据库内的各对象以二进制方式下载成dmp 文件, ...
相关推荐
Oracle锁和阻塞原理解析.pdf 了解锁和阻塞是 oracle troubleshooting 必备的技能;在说锁和阻塞之前,我们先了解下 并发(concurrency)和并行(parallel)。并发意思是在数据库中有超过两个以上用户对同样的数 据做修改...
Oracle阻塞(blocking/blocked)现象是数据库管理中常见的问题,尤其当应用程序设计不当,可能导致数据库性能急剧下降,甚至导致数据库服务崩溃。了解如何识别和处理阻塞对于DBA来说至关重要。 一、阻塞概述 在Oracle...
了解并解决Oracle阻塞问题对于数据库管理员(DBA)来说至关重要,因为长期的阻塞可能导致性能下降,甚至可能引起数据库的不稳定。 1. **阻塞的类型**: - **INSERT阻塞**:当两个或更多会话尝试插入具有相同主键或...
oracle数据库下,查找所有节点的锁和锁阻塞进程,并标志Hold和Wait
6. **异步操作**: 支持异步编程模型,使得在执行数据库操作时不会阻塞应用程序的主线程,提高了用户体验。 在Visual Studio(VS)2010中,使用Oracle.ManagedDataAccess.dll连接Oracle数据库的步骤大致如下: 1. *...
在 Oracle 中,死锁是指两个或多个会话在等待对方释放资源,从而导致互相阻塞的情况。死锁可能会导致数据库性能下降,甚至崩溃。因此,解决死锁问题是非常重要的。 解决 Oracle 杀死死锁进程的步骤: 1. 查找被...
- **2.1.5 检查数据库读写状态**:检查数据库是否可以正常进行读写操作,可以通过查询`v$session`来查看当前是否有阻塞会话。 - **2.1.6 查看oracle数据库的版本**:使用`select * from v$version;`命令获取Oracle...
- **异步处理**:在需要异步处理大量数据的情况下,Oracle AQ 提供了一个可靠的解决方案,避免了阻塞式的数据处理过程。 - **事件驱动架构**:Oracle AQ 支持事件驱动架构,使得应用程序能够响应特定事件并触发相应...
然而,也需要注意潜在的问题,如性能开销、数据库阻塞和复杂性增加。因此,在实际应用中,应谨慎评估是否真的需要在数据库层进行这种集成,或者是否可以考虑消息队列、事件驱动架构等替代方案。 总之,"Oracle...
Oracle数据库使用libaio库进行高效的磁盘I/O操作,它允许应用程序直接对磁盘进行非阻塞I/O,从而提高数据存取速度和系统整体性能。 在"描述"中提到的"在linux下安装oracle时需要用到的rpm安装包",这可能包括以下...
ORACLE经典语句汇总 -- 字符串左填充和右填充,默认填充空格 -- 产生1~99行数据,少于一位则补0 -- 刪除相同行 -- 随机数 -- 产生业务流水号 -- 查询某张表中有哪些字段 ...--看锁阻塞的方法 --ORACLE获得系统信息
7. **异步操作**:为了提高性能,ODP.NET提供了异步版本的数据库操作方法,如BeginExecuteNonQuery、BeginExecuteReader等,这些方法在后台线程执行任务,不会阻塞主线程。 8. **性能优化**:Oracle....
对于需要长时间运行的数据库操作,ODAC提供了异步模式,可以在不阻塞用户界面的情况下执行这些操作。 8. **性能优化**: ODAC通过本地化Oracle数据访问层,减少了中间的通信开销,提高了数据处理速度。此外,ODAC...
有关阻塞的概念以及单实例环境下的阻塞请参考:Oracle 阻塞(blocking blocked) 1、演示环境 scott@DEVDB> select * from v$version where rownum<2; BANNER -------------------------------------------------...
3. **异步操作**:Oracle.ManagedDataAccess.dll支持异步编程模型,允许在处理大数据或长时间运行的查询时避免阻塞应用程序的主线程,提高用户体验。 4. **高级特性支持**:包括PL/SQL块执行、游标、事务控制、...
脚本查询当前数据库阻塞,阻塞会话事物,进程,锁类型等
6. **异步编程**:支持异步API,使得开发者可以在不阻塞主线程的情况下执行数据库操作,提高了应用的并发性能。 7. **元数据支持**:提供了获取数据库架构和对象信息的能力,方便进行动态SQL的生成和元数据驱动的...
### Oracle 数据库监听分析及其说明 #### 概述 Oracle 数据库监听器是数据库系统中的一个关键组件,它负责管理数据库实例与客户端应用程序之间的网络连接。通过监听特定的端口,监听器能够接收来自客户端的连接...