设为首页 加入收藏

TOP

锁的基本原理(三)
2015-11-21 01:44:39 来源: 作者: 【 】 浏览:1
Tags:基本 原理
_utilization as "M_U",initial_allocation as "I_U"
from v$resource_limit
where resource_name in('transactions','dml_locks');
R_N, C_U, M_U, I_U dml_locks 1 1 1084
transactions 1 1 271 通过上面的参数可以知道dml_locks资源当前使用了1个而且最多的时候也只使用了1个,最大的资源数为1084 transactions同上,通过这个可以判断资源设置是否合理,假如M_U的值等于或者接近于I_U时说明需要增大I_U值因为: 可以获得的TX锁定的总个数由初始化参数transactions决定,而可以获得的TM锁定的个数则由初始化参数dml_locks决定
grant select on v_$mystat to hr;

死锁
两个session(以A和C来表示),如果A持有C正在申请的锁定,同时C也持有A正在申请的锁定时,这时发生死锁现象。死锁是典型的“双输”情况,如果任其发展,则会出现A和C这两个session正在执行的事务都无法结束的现象。因此,在 Oracle数据库中,造成死锁的那个DML语句会被撤销。死锁总是由于应用程序设计不合理引起的。
当某个session的事务引起了死锁时,Oracle会自动将阻塞该事务的其他事务中相应的DML语句撤销,而阻塞该事务的其他事务中的其他DML语句并没有撤销。

session 1
select sid from v$mystat where rownum=1;
update employees set last_name=last_name||'a'
where employee_id=100

session 2
select sid from v$mystat where rownum=1;
update employees set last_name=last_name||'b'
where employee_id=101;

session 1
update employees set last_name=last_name||'c' where employee_id=101;

session 2
update employees set last_name=last_name||'d' where employee_id=100;

对HR用户进行解锁和密码设置:

SQL> select username,password,account_status from dba_users where username='HR';

USERNAME PASSWORD
------------------------------ ------------------------------
ACCOUNT_STATUS
--------------------------------
HR
EXPIRED & LOCKED//过期且被锁住的状态


SQL> alter user hr account unlock;

User altered.

SQL> select username,password,account_status from dba_users where username='HR';

USERNAME PASSWORD
------------------------------ ------------------------------
ACCOUNT_STATUS
--------------------------------
HR
EXPIRED//此时hr只是过期并没有被锁住


SQL> alter user hr identified hr;
alter user hr identified hr
*
ERROR at line 1:
ORA-00924: missing BY keyword


SQL> alter user hr identified by hr;

User altered.

SQL> select username,password,account_status from dba_users where username='HR';

USERNAME PASSWORD
------------------------------ ------------------------------
ACCOUNT_STATUS
--------------------------------
HR
OPEN//打开状态


SQL>




























首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Greenplum+Hadoop学习笔记-13-客.. 下一篇ADO.NET(OleDb)读取Excel表格时的..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: