MySQLwwwhj8828com18088045700锁分析和监控

  • 时间:
  • 浏览:0
  • 来源:幸运飞艇_幸运飞艇官方

但会 查询INNODB_TRX表,还要看得人如下信息,表示有1条事务当然这麼提交,你這個 事务本来顶端T1这麼提交的事务。

mysql> use information_schema

mysql>SELECT * FROM INNODB_TRXG

1. row **

亲戚亲戚当我们歌词 歌词 歌词 通过实例分析来说明怎么才能 才能 监控事务和锁,首先开启事务T1,执行update:

但会 亲戚亲戚当我们歌词 歌词 歌词 开启事务T2:

mysql>begin;

QueryOK, 0 rows affected (0.00 sec)

mysql> select * from t1 where id<=4 lock in share mode;

ERROR1205 (HY000): Lock wait timeout exceeded; try restarting transaction

mysql> update t1 set name='xxxx' where id=10;

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

现在亲戚亲戚当我们歌词 歌词 歌词 知道了怎么才能 才能 定位和查询这麼提交的事务,以及锁等候信息,只还要将顶端的SQL定时挂接告警即可很容易的实现事务和锁的监控了。最近我有些人也写了一另一个多多demo,通过顶端一另一个多多SQL监控了事务和锁的信息。

在事务T2执行过程中亲戚亲戚当我们歌词 歌词 歌词 来监控锁信息,首先来查询INNODB_LOCK_WAITS数据表,还要看得人顶端T1,T2一另一个多多事务并且 产生了锁等候。

mysql>SELECT * FROM INNODB_LOCK_WAITSG

1. row **

requesting_trx_id:33073064 (T2请求的事务ID)

requested_lock_id:33073064:69:3:5 (T2请求的锁ID)

blocking_trx_id: 33073063 (T1阻塞的事务ID)

blocking_lock_id: 33073063:69:3:5 (T1阻塞的锁ID)

1 row inset (0.00 sec)

lock_trx_id:33073064 (事务ID)

lock_mode: S (锁模式)

lock_type: RECORD (锁类型)

lock_table: test.t1 (锁了哪个表)

lock_index: PRIMARY (锁定的索引类型)

lock_space: 69 (表空间位置)

lock_page: 3 (页位置)

lock_rec: 5 (记录位置)

lock_data: 10 (哪个数据被锁了,并且 是PK,你這個 值本来PK值)

2. row **

trx_autocommit_non_locking:0

1 row inset (0.00 sec)

亲戚亲戚当我们歌词 歌词 歌词 知道事务和锁是数据库中最最核心的内容,有了事务和锁,才保证了数据的ACID底部形态,顶端说到的活动会话监控,还要反映出数据库的一另一个多多健康情况,但会 并且 监控到事务和锁,这麼会对数据库的运行情况有更加全面的认识,在数据库突然出现异常时也还要太快了 了 定位到有些疑问报告 。比如业务设计开发同学开启了事务但会 忘了提交,并且 事务提交时间过长,前会由于着有些数据库的疑问报告 产生,严重前会数据库故障。下面就怎么才能 才能 查看和监控事务、锁信息做个简单介绍。

trx_last_foreign_key_error:NULL

trx_adaptive_hash_latched: 0

trx_adaptive_hash_timeout: 300

lock_trx_id:33073063

lock_mode: X

lock_type: RECORD

lock_table: test.t1

lock_index: PRIMARY

lock_space: 69

lock_page: 3

lock_rec: 5

lock_data: 10

2 rowsin set (0.00 sec)

顶端亲戚亲戚当我们歌词 歌词 歌词 并且 知道了事务T2在执行过程中被事务T1的锁阻塞住了,但会 亲戚亲戚当我们歌词 歌词 歌词 就还要通过查询INNODB_LOCKS查询看得人的锁完正信息,具体如下所示,还要看得人顶端的事务T1(33073063)对t1表加了X模式的PK锁,锁类型为Record Lock,锁定了1行数据,锁定的位置为69表空间的第另一个页面的第5行记录,锁定记录为10,并且 是PK更新,有些有些这里的lock_data: 10本来id=10的这行记录的PK被加锁了。再来看事务T2(33073064),在请求id=10你這個 锁的并且 无法获取到锁,由于着了锁等候。

mysql>SELECT * FROM INNODB_LOCKSG

1. row **

trx_concurrency_tickets: 0

通常在MySQL的管理和监控中,Active Session(活动会话)是监控指标中的一另一个多多一阵一阵要的指标,通过活动会话监控,还要很清楚的了解到数据库当前有无有SQL堆积,有无地处非常繁忙的情况。这麼除了活动会话之外,还有你這個 指标是非常重要的呢,本文就来给亲戚亲戚当我们歌词 歌词 歌词 介绍下MySQL顶端另外几块重要指标,事务和锁信息,锁等候的监控。

大多数并且 亲戚亲戚当我们歌词 歌词 歌词 通过执行show engine innodb status来查看和监控数据库的锁信息,真是还有更简单的辦法 ,MySQL将事务和锁信息记录在了information_schema数据库中,亲戚亲戚当我们歌词 歌词 歌词 只还要查询即可。

INNODB_TRX

记录INNODB未提交事务信息

INNODB_LOCKS

记录INNODB锁信息,当突然出现锁等候时才有数据

INNODB_LOCK_WAITS

记录锁等候信息,关联INNODB_LOCKS查询。

还要看得人顶端监控顶端有大于0的数值,说明有锁等候疑问报告 ,但会 点击小圆点,即还要定位到相关锁信息,是前会更方便了。

mysql> begin;

Query OK, 0 rows affected (0.00 sec)