监视和检测锁冲突_第1页
监视和检测锁冲突_第2页
监视和检测锁冲突_第3页
监视和检测锁冲突_第4页
监视和检测锁冲突_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、监视和检测锁冲突本课目的经过本课学习,应该能够掌握:n定义锁的类型和模式n列出可能导致冲突的原因n使用 Oracle工具 检测锁冲突n在紧急情况下解决锁冲突n防止锁问题n确认死锁引起的 Oracle 错误锁机制n自动管理n高级别的数据并发 DML事务的行级别锁(Row-level locks) 查询不需要锁定n改变数据一致性级别n专用和共享锁模式n直到提交或回滚出现,锁一直保持两种类型锁nDML 或数据锁:在表中获得并且用于保护数据,更确切地说是保护数据的完整性 表级锁防止在DML操作进行时,DDL对于结构的更改 行级锁保证DML更新是唯一的nDDL 或 字典锁用于保护对象的结构,如表和视图索

2、引的结构定义。一个字典锁在D D L事务需要它时由Oracle自动获得。(TM)(TX)DML 锁n一个 DML事务至少需要两个锁: 共享表锁-防止DDL 专用行锁-防止并发n排队机制保持跟踪: 等待锁的用户 请求锁的模式 用户请求锁的顺序表锁模式n自动获取:n专用行 (RX): INSERT, UPDATE, DELETEn共享行 (RS): SELECT. FOR UPDATE表锁模式n在LOCK 语句中手工获取锁:SQL LOCK TABLE table_name IN mode_name MODE;共享共享 (S) 不允许不允许DML 参照完整性隐含使用参照完整性隐含使用表锁模式在LO

3、CK 语句中手工获取锁:n共享专用行 (SRX) 不允许 DML或共享模式 参照完整性隐含使用n专用 (X)最高模式的锁,只允许查询操作块中的DML锁Row 6Block HeaderLock bytesRow 112TX slot 1TX slot 2DDL锁n专用 DDL锁: DROP TABLE 语句 ALTER TABLE 语句n共享 DDL 锁: CREATE PROCEDURE 语句 AUDIT 语句n易碎分析锁: 无效的共享 SQL 区域锁冲突可能原因n不必要的高级别锁n长时间运行的事物n未提交变更n其它产品强加的高级别锁 UPDATE emp SET sal = sal x 1

4、.1 WHERE empno = 1000;监视锁活动的诊断工具V$LOCKV$LOCKED_OBJECTTransaction 1 UPDATE emp SET sal = sal x 1.1;Transaction 2Transaction 3 UPDATE emp SET sal = sal x 1.1 WHERE empno = 2000;DBA_WAITERSDBA_BLOCKERSV$LOCKnTYPETX 事务TM DML或表锁MR 介质恢复ST 磁盘空间事务-nlmode/request本列包含锁的模式。可能的取值如下:n0无n1空n2 行共享(R S)n3 行专用(R X)n

5、4 共享(S)n5 共享行专用(S R X)n6 专用(X)- id1根据锁类型的不同,此列中的数值有不同的含义。假如锁类型是TM,那么此列中的数值是将要被锁定或等待被锁定的对象的标识。假如锁类型是TX,那么此列中的数值是回滚段号码的十进制表示。 id2假如锁类型是TM,那么此列中的数值是0。假如锁类型是TX,那么此列表示交换次数也就是说,回滚槽重新使用的次数。nSQL ?rdbmsadmincatblocknSQL ?rdbmsadminutllockt锁等待SQL select * from dba_waiters;WAITING_SESSION HOLDING_SESSION LOCK_

6、TYPE MODE_HELD MODE_REQUESTED LOCK_ID1 LOCK_ID2- - - - - - - 16 17 Transaction Exclusive Exclusive 524293 173SQL select * from dba_blockers;HOLDING_SESSION- 17SQL 性能管理器9:009:0510:3011:30事务事务 1指南: 冲突解决 UPDATE emp SET sal = sal x 1.1 WHERE empno = 1000;COMMIT/ROLLBACK; UPDATE emp SET sal = sal x 1.1 W

7、HERE empno = 1000;1 row updated; 事务事务 2ALTER SYSTEM KILL SESSION 10,23;事务事务2事务事务 1死锁 UPDATE emp SET sal = sal x 1.1 WHERE empno = 1000; UPDATE emp SET sal = sal x 1.1 WHERE empno = 2000;ORA-00060:Deadlock detected while waiting for resource UPDATE emp SET mgr = 1342 WHERE empno = 2000; UPDATE emp SET mgr = 1342 WHERE empno = 1000;9:009:159:16死锁ORA-00060:Deadlock detected while waiting for resource跟踪文件跟踪文件 ServerprocessSID_ora_PID.trcUNIX小结n本课重点:n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论