数据库断连与解锁测试

Mysql-数据库断连

第一步:获取测试程序的进程号

第二步:获取测试程序进程所关联的端口
在这里插入图片描述
根据netstat -anp|grep 程序进程号,可获取mysql连接的端口,上图中获取的端口号为:44258、44260

第三步:mysql_–>工具–>“命令列界面”,执行UDAL SHOW FRONTEND;可以看到所有的连接及连接的端口号
在这里插入图片描述
根据上图端口号:44258、44260 与IP,可找到对应Connection_id;

第四步:执行UDAL KILL CONNECTION Connection_id;

Oracle-数据库断连

第一步:获取程序的
SELECT c.*  FROM v$session c where program like ‘dcldr@llinux%’ ;
在这里插入图片描述
第二步:单个删除session
alter system kill session ‘sid, serial#’ ;
alter system kill session ‘3,8753’ ;

第三步:批量删除session
select ‘alter system kill session ‘’’ || c.sid || ‘’ || ‘,’ || c.serial# ||‘’‘;’
from v$session c
where c.schemaname = ‘schemaname’
and c.program =‘program_name’;

Oracle-解锁

*****Oracle中造成一些表被死锁或者会话异常退出,如执行了更新记录操作后,既没有commit也没有rollback,网络就断开了,也会造表或记录被锁住,待到超时后才会被解开,那样都会造成应用操作被阻塞。
可以以Oralce管理员权限用户登录Oracle数据,查询到被锁的对象,然后杀除指定的会话。
用下面的语句查询被锁的对象,可以带上更多约束条件,如schemaname等更精确的匹配。

SELECT a.object_id,
   a.session_id,
   b.object_name,
   c.*     
FROM  v$locked_object a,
   dba_objects b,
   v$session c    
WHERE a.object_id = b.object_id
 AND a.SESSION_ID = c.sid(+)

*****拼凑kill语句的方式如下,下面加了一个过滤条件和一个排序,杀除真正关心的表,并且着重注意超时时间过长的会话。

SELECT 'alter system kill session ''' || c.sid || '' || ',' || c.serial# ||''';',
   a.object_id, a.session_id, b.object_name, c.*
FROM v$locked_object a, dba_objects b, v$session c
WHERE a.object_id = b.object_id
 AND a.SESSION_ID = c.sid(+);

批量删除语句拼接

     select  'alter system kill session ''' || c.sid || '' || ',' || c.serial# ||''';'
    from  v$session c
   where c.schemaname = 'BILLING_RAT'
   and  c.program ='dcldr@llinux-3f17 (TNS V1-V3)';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值