
1、在做Oracle监听程序测试时,发现帐户已经被锁定。
2、在数据库安装电脑上,点击开始打开运行窗口。
3、在运行窗口输入CMD,调出命令提示符界面。
3、在命令提示符下面,用管理员身份登入到数据库sqlplus / as sysdba。
4、输入解锁命令alter user Scott account unlock后回车。
5、看见用户已更改的字样,表示命令已成功执行。
6、再切换到监听程序验证,原来的ora-28000帐户被锁定的提示已经不存在了。用户解锁成功。
通过下面的语句查看是否有引发锁表的语句在执行,找到执行用户,然后跟对应的用户沟通select l.session_id sid,
s.serial#,
l.locked_mode,
l.oracle_username,
s.user#,
l.os_user_name,
s.machine,
s.terminal,
a.sql_text,
a.action
from v$sqlarea a, v$session s, v$locked_object l
where l.session_id = s.sid
and s.prev_sql_addr = a.address
order by sid, s.serial#
如果一直没有锁表的语句出现,那可能是对应的表在做DDL *** 作,如添加索引,也可能引发锁表,这个可以去alert日志里查看下是否有人在添加索引
出现锁的根本解决办法不是去手动解锁啊,而是应该去看,是哪个SESSION,哪个sql语句锁的,锁了哪些资源,是不是应该锁定这些资源!
如果有些锁是不必要的,要么commit事务来释放锁,要不就不锁定这些资源!
修改应用才是应该做的!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)