mysql 锁表与解锁
Posted 高级盘丝洞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 锁表与解锁相关的知识,希望对你有一定的参考价值。
show processlist;
kill 6924
show full processlist; #列出全部进程
select * from information_schema.PROCESSLIST t;
kill 6911
SELECT * FROM information_schema.innodb_trx ORDER BY trx_started ;
SELECT * FROM information_schema.innodb_locks;
SELECT * FROM information_schema.innodb_trx t where t.trx_state = 'LOCK WAIT';
select * from information_schema.PROCESSLIST t where t.id = lock_trx_id
#状态一直在休眠,关闭事件调节器[7]:
SET GLOBAL event_scheduler = OFF;
#查看是否开启定时器
SHOW VARIABLES LIKE 'event_scheduler'; SHOW VARIABLES LIKE 'event_scheduler'; #查看是否开启定时器
mysql 解锁与锁表和批解锁
第一种
show processlist;
找到锁进程,kill id ;
第二种
mysql>UNLOCK TABLES;
锁表
锁定数据表,避免在备份过程中,表被更新
mysql>LOCK TABLES tbl_name READ;
为表增加一个写锁定:
mysql>LOCK TABLES tbl_name WRITE;
查询是否锁表
show OPEN TABLES where In_use > 0;
SHOW OPEN TABLES;
// 解锁
UNLOCK TABLES;
查看表的状态
SHOW STATUS LIKE 'table%';
SHOW STATUS LIKE 'innodb_row_lock%';
第三种
SELECT concat('KILL ',id,';') FROM information_schema.processlist WHERE user='root';
KILL 755;
KILL 756;
Oracle锁表与解锁
锁表与解锁
查看锁表进程SQL语句
select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID;
解锁
杀掉锁表进程:
记录下SID和serial# ,分别替换掉下面的1155,39095,即可解除锁表
alter system kill session \'1155,39095\';
对象锁与解锁
这里以包为PKG_ZLGL_BASEDATA为例
注意name为包或者存储过程等;
SELECT * FROM V$DB_OBJECT_CACHE WHERE name=\'PKG_ZLGL_BASEDATA\' AND LOCKS!=\'0\';
查看sid 注意object为包或者存储过程等;
SELECT SID from V$ACCESS WHERE object=\'PKG_ZLGL_BASEDATA\';
查看查看SID和SERIAL# in后面的条件为上述查的sid
SELECT SID,SERIAL#,PADDR,STATUS FROM V$SESSION WHERE SID IN(\'283\',\'343\');
杀进程 实例如下: alter system kill session \'sid,SERIAL\'
alter system kill session \'283,50673\'
以上是关于mysql 锁表与解锁的主要内容,如果未能解决你的问题,请参考以下文章