dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Script #33
mysql
Lockingread-onlyMin Version: 5.7

MySQL'de Uzun Süredir Açık InnoDB Transaction'ları

Açık transaction'ları yaşlarına, kilitledikleri satırlara ve son sorgularına göre listeler. Purge'ı engelleyen ve history list'i şişiren işlemleri bulur.

#innodb#transaction#history-list
mysql · sql
SELECT trx_id, trx_state, trx_started,
       TIMESTAMPDIFF(SECOND, trx_started, NOW()) AS age_sec,
       trx_rows_locked, trx_rows_modified,
       trx_mysql_thread_id AS thread_id,
       LEFT(trx_query, 200) AS query
FROM information_schema.innodb_trx
ORDER BY trx_started;

SELECT name, count FROM information_schema.innodb_metrics WHERE name = 'trx_rseg_history_len';
Operasyonel Notlar & İyileştirme Aksiyonu

History list length sürekli artıyorsa uzun açık transaction vardır.

Üretim Güvenliği & Çalıştırma Standartları
  • Bu script salt okunur (read-only) teşhis için tasarlanmıştır; doğrudan veri veya şema değişikliği yapmaz.
  • Ağır yük altındaki üretim sunucularında çalıştırmadan önce hedef veritabanı sürümünü (Min. Sürüm: 5.7) doğrulayın.
  • İlişkili oturumu sonlandırma veya indeks silme gibi yazma etkili aksiyonlar için notlar bölümündeki komutları temkinli uygulayın.