DAS, veritabanlarınız için iki kilitlenme analizi modu sunar: En son kilitlenme günlüğünü inceleyen Son Kilitlenme Analizi ve kilitlenme eğilimlerini izlemek amacıyla hata günlüklerini saatlik olarak ayrıştıran Tam Kilitlenme Analizi.
Şekillerdeki veriler (iş parçacığı kimlikleri ve SQL deyimleri dahil) yalnızca gösterim amaçlıdır. İşlemleri gerçekleştirirken kendi verilerinizi ve parametrelerinizi kullanın.
Ön koşullar
-
Hedef örnek aşağıdaki motorlardan birini kullanmalıdır:
-
Son kilitlenme analizi:
RDS MySQL
Kendi kendine yönetilen MySQL
PolarDB for MySQL
PolarDB-X 2,0
-
Tam kilitlenme analizi:
RDS MySQL
PolarDB for MySQL
-
Hedef örneğin DAS'a bağlı olması ve bağlantı durumunun Normal Access olması gerekir. Daha fazla bilgi için bkz. Veritabanı örneğini DAS'a bağlama.
-
Alibaba Cloud Managed Services (eski adıyla DAS Economy Edition) etkinleştirilmiş olmalıdır.
ÖnemliAlibaba Cloud Managed Services yalnızca belirli bölgelerde kullanılabilir. Daha fazla bilgi için bkz. Sürüme göre desteklenen veritabanları ve bölgeler.
Bu hizmeti etkinleştirmek için bkz. Alibaba Cloud Managed Services'i yönetme.
Son kilitlenme analizi
-
Parametre ayarları: Örnekte
innodb_deadlock_detectparametresi etkinleştirilmelidir.NotBu parametre varsayılan olarak etkindir. Doğrulamak için
SHOW VARIABLES LIKE 'innodb_deadlock_detect'komutunu çalıştırın. Bazı örnek türlerinde bu parametre değiştirilemez.-
Örnek parametrelerini değiştirmek için:
RDS MySQL için bkz. Örnek parametrelerini ayarlama.
PolarDB for MySQL için bkz. Küme ve düğüm parametrelerini ayarlama.
-
Veri analizi:
SHOW ENGINE INNODB STATUSkomutu tarafından döndürülen en son kilitlenme günlüğünü analiz eder.
Birden çok kilitlenme meydana gelmişse, analiz başına yalnızca en son kilitlenme yakalanır ve kaydedilir.
Yordam
DAS konsoluna giriş yapın.
Sol gezinme bölmesinde seçeneğine tıklayın.
Hedef örneği bulun ve örnek ayrıntıları sayfasını açmak için örnek kimliğine tıklayın.
Sol gezinme bölmesinde Lock Analysis seçeneğine tıklayın. Lock Analysis sayfasında Recent Deadlock Analysis sekmesini seçin.
-
Son kilitlenme analizini başlatmak için Create Analysis seçeneğine tıklayın.
Analiz tamamlandıktan sonra Recent Deadlock Analysis sekmesindeki sonuçlar tablosunda oluşturma zamanı, gerçekleşme zamanı ve kilitlenme bulunup bulunmadığı bilgileri gösterilir. Kilitlenmeyle ilgili ayrıntılı bilgileri görmek için View Details seçeneğine tıklayın.
Ayrıntıları görüntüleme
Belirtilen süre içinde tetiklenen analiz görevlerinin sonuçlarını görüntülemek için bir zaman aralığı seçin.
Son kilitlenme analizi analiz görevleri listesinde Details sütunundaki View Details seçeneğine tıklayın.
-
Kilitlenme ayrıntılarının üç sekmede gösterildiği bir panel açılır:
View: İşlem düğümleri ve kayıt kilitlerini içeren kilitlenme ilişkisinin görsel grafiğini gösterir. lock granted ve waiting etiketli oklar, kilit sahipliği ve bekleme ilişkilerini göstererek bir kilitlenme döngüsü oluşturur. Geri alınan işlemler "Rolled back" olarak işaretlenir. Oturum Kimliği, iş parçacığı kimliği, istek türü, işlem kimliği, ilgili tablo, bekleyen kilit bilgileri ve bekleyen kilitteki dizin adı gibi ayrıntıları genişletmek için bir işlem düğümüne tıklayın.
List: Geri alınan işlemlerin işaretlendiği, kilitlenen iki işlemin yan yana karşılaştırmasını gösterir. Tablo satırları şunları içerir: Oturum Kimliği, iş parçacığı kimliği, istek türü, işlem kimliği, ilgili tablo, bekleyen kilit (dizin adı ve kilit türü; örneğin, X locks rec but not gap waiting), sahip olunan kilit (dizin adı ve kilit türü) ve işlem SQL'i. SQL Explorer and Audit bölümünde ilgili işlem ayrıntılarını aramak için alt kısımdaki iş parçacığı kimliğini veya işlem kimliğini kullanabilirsiniz.
Log:
SHOW ENGINE INNODB STATUSçıktısınınLATEST DETECTED DEADLOCKbölümündeki ham kilitlenme günlüğünü gösterir. Bu günlük; kilitlenme zamanını, ilgili işlemlerin SQL deyimlerini, sahip olunan kilit bilgilerini (HOLDS THE LOCK) ve bekleyen kilit bilgilerini (WAITING FOR THIS LOCK TO BE GRANTED) içerir.
SQL Explorer and Audit ile analiz etme
Hedef örneğin sol gezinme bölmesinde SQL Explorer and Audit seçeneğine tıklayın. Audit sayfasında Enable Advanced Query seçeneğine tıklayın.
-
Kilitlenmenin gerçekleştiği zamanı içeren bir zaman aralığı seçin ve bu işlem tarafından yürütülen SQL deyimlerini sorgulamak için son kilitlenme analizindeki iş parçacığı kimliğini girin.
Örnekteki İşlem 1 için sorgu sonuçları, iş parçacığının üç SQL deyimi yürüttüğünü gösterir:
update students set name=UUID() where id = 2(yürütme süresi: 2.938,377 ms, kilit bekleme süresi: 1 ms),update students set name=UUID() where id = 3(yürütme süresi: 0,002 ms) vebegin. İlk update deyiminin olağan dışı uzun yürütme süresi bir kilit beklentisini gösterir.İşlem 2 (geri alındı) için: Audit sayfasında Time range değerini ayarlayın, Thread ID değerini
195662olarak ayarlayın ve ardından Query seçeneğine tıklayın. Günlük listesi İşlem 2 için SQL yürütme kaydını gösterir:update students set name=UUID() where id = 3deyimi 1213 hata koduyla (kilitlenme) başarısız oldu ve 1,40 ms sürdü, kilit bekleme süresi 1,152 ms idi.update students set name=UUID() where id = 2deyimi başarılı oldu ve 0,20 ms sürdü.begindeyimi başarılı oldu ve 0,18 ms sürdü.
Tam kilitlenme analizi
-
innodb_deadlock_detectveinnodb_print_all_deadlocksparametrelerini etkinleştirmeniz gerekir. Bir RDS MySQL örneği içinlog_error_verbosityparametresini 3 olarak ayarlamanız gerekir.Notinnodb_deadlock_detectparametresi varsayılan olarak etkindir. Doğrulamak içinSHOW VARIABLES LIKE 'innodb_deadlock_detect'komutunu çalıştırabilirsiniz. Bazı örnek türlerinde bu parametre değiştirilemez.-
Örnek parametrelerini değiştirmek için:
RDS MySQL için bkz. Örnek parametrelerini ayarlama.
PolarDB for MySQL için bkz. Küme ve düğüm parametrelerini ayarlama.
-
Veri kaynağı: DAS, her saat örneğin hata günlüğünden kilitlenme bilgilerini ayrıştırarak kilitlenme sayısı eğilimlerini oluşturur ve her bir kilitlenmenin ayrıntılarını derler.
-
Bekleme süresi: Alibaba Cloud Managed Services etkinleştirilmişse ve DAS gerekli parametrelerin etkinleştirilmediğini tespit ederse, DAS 12 saatlik bir bekleme süresine girer ve analiz görevlerini çalıştırmaz. Bekleme süresi sırasında gerekli parametreleri etkinleştirirseniz, DAS bekleme süresinin sona ermesini bekler ve ardından analizi yeniden planlar. Örnek:
Saat 11:12'deki bir analiz görevi, gerekli bir parametrenin etkin olmadığını tespit eder ve 12 saatlik bir bekleme süresi başlatır. Saat 23:12'den sonra tam kilitlenme analizi görevi yeniden planlar. Parametre hala etkin değilse başka bir 12 saatlik bekleme süresi başlar. Parametreyi saat 23:12'den önce etkinleştirirseniz bekleme süresi saat 23:12'de sona erer. Bundan sonra, gerekli parametre ve Alibaba Cloud Managed Services örnek için etkin kaldığı sürece analiz saatlik olarak çalışır.
"TOO DEEP OR LONG SEARCH IN THE LOCK TABLE WAITS-FOR GRAPH, WE WILL ROLL BACK FOLLOWING TRANSACTION" mesajını içeren kilitlenmelerin analizi desteklenmez.
Yordam
DAS konsoluna giriş yapın.
Sol gezinme bölmesinde seçeneğine tıklayın.
Hedef örneği bulun ve örnek ayrıntıları sayfasını açmak için örnek kimliğine tıklayın.
Sol gezinme bölmesinde Lock Analysis seçeneğine tıklayın. Lock Analysis sayfasında Full Deadlock Analysis sekmesini seçin.
-
Her saat, tam kilitlenme analizi örneğin hata günlüklerini otomatik olarak analiz eder, kilitlenmeleri sayar ve verileri sayfanın üst kısmındaki Deadlock Trend grafiğinde çizer. İlgili dönemdeki kilitlenme eğilimini görüntülemek için bir zaman aralığı seçin.
Sayfanın üst kısmında Last 1 Day, Last 3 Days ve Last 7 Days için hızlı seçim düğmeleri ve özel bir tarih aralığı seçici bulunur. Eğilim grafiğini yenilemek için View düğmesine tıklayın. Grafiğin altında, her biri için Deadlock Time bilgisini gösteren kilitlenme olaylarının bir listesi yer alır. Daha fazla bilgi görmek için belirli bir olayın View Details seçeneğine tıklayın.
Ayrıntıları görüntüleme
Tam kilitlenme analizinin kilitlenme listesinde Details sütunundaki View Details seçeneğine tıklayın.
Görünüm, Liste ve Günlük olmak üzere üç sekmede kilitlenme ayrıntılarını içeren bir panel açılır. Günlük sekmesi kilitlenmeyle ilgili hata günlük içeriğini içerir. Görünüm ve Liste sekmeleri son kilitlenme analizindeki sekmelerle aynıdır. Daha fazla bilgi için bkz. Son kilitlenme analizi - Ayrıntıları görüntüleme.
SQL Explorer and Audit ile analiz etme
Yordam, son kilitlenme analiziyle aynıdır. Daha fazla bilgi için bkz. Son kilitlenme analizi - SQL Explorer and Audit ile analiz etme.