PLSQL中记录被另一个用户锁住的原因及处理方法

PLSQL中记录被另一个用户锁住的原因及处理方法,第1张

PL/SQL中记录被另一个用户锁住的原因:另一个用户正在修改或删除该记录。此时其它用户只能做查询,不能进行删改 *** 作。如果要解锁,正在删改 *** 作的用户退出删改状态即可。

因死机或挂起不能退出删改状态时,找到该用户的进程,kill该进程就可以了。实在不行的话重新启动数据库也可以。

处理方法:

1、查看数据库锁,诊断锁的来源及类型:

select object_id,session_id,locked_mode from v$locked_object

或者用以下命令:

select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_object l, dba_objects b where b.object_id=l.object_id

2、找出数据库的serial#,以备杀死:

select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time

3、杀死该session:

alter system kill session 'sid,serial#'

扩展资料

SQL Server中的锁类型及用法:

从数据库系统的角度来看:分为独占锁(即排它锁), 共享锁和更新锁。MS-SQL Server使用以下资源锁模式。

锁模式描述:

共享(S)用于不更改或不更新数据的 *** 作(只读 *** 作),如SELECT语句。

更新(U)用于可更新的资源中。防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。

排它(X)用于数据修改 *** 作,例如.INSERT、UPDATE 或DELETE。确保不会同时同一资源进行多重更新。

意向锁用于建立锁的层次结构。意向锁的类型为:意向共享(IS)、意向排它(IX)以及与意向排它共享(SIX)。

架构锁在执行依赖于表架构的 *** 作时使用。架构锁的类型为:架构修改(Sch-M)和架构稳定性(Sch-S)。

大容量更新(BU)向表中大容量复制数据并指定了TABLOCK提示时使用。

1、用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间

SQL>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'

Session altered.

2、查看具体的被锁时间 ( 这里你根据需要, 填写具体的用户名, 下面语句的 用户名是 TEST)

SQL>select username,lock_date from dba_users where username='TEST'

USERNAME LOCK_DATE

TEST 2009-03-10 08:51:03

3、解锁

SQL>alter user test account unlock

User altered.

4、查看是那个ip造成的test用户被锁

查看$ORACLE_HOME/network/admin/log/listener.log日志

10-MAR-2009 08:51:03 * (CONNECT_DATA=(SID=lhoms)(SERVER=DEDICATED)(CID=(PROGRAM=oracle)(HOST=omstestdb)(USER=oraoms))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.69.1.11)(PORT=49434)) * establish * lhoms * 0

10-MAR-2009 08:51:03 * (CONNECT_DATA=(SID=lhoms)(SERVER=DEDICATED)(CID=(PROGRAM=oracle)(HOST=omstestdb)(USER=oraoms))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.69.1.11)(PORT=49435)) * establish * lhoms * 0

这样可知是上面10.69.1.11的ip尝试多次失败登陆造成的被锁

注:

一般数据库默认是10次尝试失败后锁住用户

1、查看FAILED_LOGIN_ATTEMPTS的值

select * from dba_profiles

2、修改为30次

alter profile default limit FAILED_LOGIN_ATTEMPTS 30

3、修改为无限次(为安全起见,不建议使用)

alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited

上述的相关内容就是对Oracle用户被锁原因及办法的描述,希望会给你带来一些帮助在此方面。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6668525.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存