Pazartesi, Eylül 30, 2013

Aşırı büyümüş Zabbix / MySQL veritabanını küçültmek

Zabbix, açık kaynak izleme yazılımları içinde belirli bir yere sahip. Kullanımı da huyuna suyuna alışınca zor değil. Ama gelgelelim, tetik / monitor / uygulama gibi veri üreten öğelerini doğru ayarlamazsanız, MySQL veya PostgreSQL farketmeksizin veritabanını fena halde şişiriyor.

Benim de başıma geldi. Test ortamımdaki veritabanı bir şekilde büyüdü ve sunucuyu ya genişletme, ya da Zabbix'i yeniden kurma, ayarlarımı vs.yi feda etme noktasına getirdi. Zaman dar, test edecek çok şey var, hay bin kunduz durumu. Tabi başka ara seçenekler de var ama benden şu an bunu beklemek insafsızlık olurdu. Ama bunun bir Prod sistemi olduğunu varsaysak, bu veritabanının büyümesinin bir yerde başağrısı yapacağı muhakkak. O nedenle sanki prodmuş gibi sebep ve sonuçlarını incelemek lazım. En azından buna zamanım var.

Öncelikle yapılması gereken şablonların içindeki öğeleri iyi ayarlamak. Ekran görüntüsünde de görüleceği üzere "update interval" ve "keep history" değerlerini elden geçirmek ve bunu her öğe için yapmak gerekli. Yol yakınken , işin başında yaparsanız ne ala. Yoksa benim gibi 90 ve üzeri öğeyi tek tek güncellemeniz gerekebilir. (Bunun toptan yapılması ile ilgili de çalışmalar var ama benim ilgi alanım dışında.)


Bu bittikten sonra zabbix hizmetini kapatıp açtım. Yaklaşık 1 milyon kayıt temizlendi sistemde. Ama mysql veritabanı içindeki alanlar temizlenmedi. Çok fazla anlamam mysql'den ve optimizing işleminin de zabbix tablolarında uygulanamadığını ve dolayısıyla kazanılan alanın fiziksel olarak DB'nin küçültülmesi şeklinde geri dönmediğini söyleyebilirim.

"Table does not support optimize, doing recreate + analyze instead |"

Ardından da aşağıdaki linkteki arkadaşımızın son derece başarılı makalesini aynen uygulayarak zabbix veritabanını dump edip, silip, ardından geri yükledim. Kendisinin eline sağlık bu makale için.

http://www.syslogs.org/mysql-innodb-database-ebatinin-kucultulmesi-shrink-ibdata1/

Bu işlem sonucunda yaklaşık olarak MySQL veritabanını %35 oranında küçültmeyi başardım.


Hiç yorum yok: