前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle用户和表被锁定解决方法

Oracle用户和表被锁定解决方法

作者头像
IT小马哥
发布2020-03-18 14:33:07
1.1K0
发布2020-03-18 14:33:07
举报
文章被收录于专栏:Java TaleJava Tale

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

代码语言:javascript
复制
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
Session altered.

2、查看具体的被锁时间

代码语言:javascript
复制
SQL> select username,lock_date from dba_users where username='TEST';
USERNAME LOCK_DATE TEST 2009-03-10 08:51:03

3、解锁

代码语言:javascript
复制
SQL> alter user test account unlock;
User altered.

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

代码语言:javascript
复制
查看$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的值

代码语言:javascript
复制
select * from dba_profiles where RESOURCE_NAME = 'FAILED_LOGIN_ATTEMPTS';

2、修改为30次

代码语言:javascript
复制
alter profile default limit FAILED_LOGIN_ATTEMPTS 30;

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

代码语言:javascript
复制
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;

Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容。

(1)锁表查询的代码有以下的形式:

代码语言:javascript
复制
select count(*) from v$locked_object;
select * from v$locked_object;

(2)查看哪个表被锁

代码语言:javascript
复制
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;

(3)查看是哪个session引起的

代码语言:javascript
复制
select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time; 

(4)杀掉对应进程

执行命令:alter system kill session'1025,41'; 其中1025为sid,41为serial#.

查询那个程序导致的

代码语言:javascript
复制
SELECT v.program,v.* FROM v$session v where serial# = '9' and sid =  586

本文由 小马哥 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档