© 2013 All rights reserved.
1

Debian: když vám server nakyne

Spravovat server na Debianu je zábava. Debian má vždycky něco vlastního, vždycky něco, co mě překvapí.Opět předem upozorňuji, že nejsem správce serveru, ale spíše jenom občasný dohled.

V serverově mám pronajatý jeden server, kde funguje jeden z našich projektů. Po zaplacení jsem server dostal včetně nainstalovaného Apache a MySQL databáze, které jsem si nechal na vyžádání předinstalovat.

Bohužel se jedná o dedigovaný server, který si musím spravovat sám.

Jednoho krásného podzimního dne jsem si všimnul (nebo jsem byl spíše ze serverovny upozorněn), že došlo místo na diskovém oddílu s databází.

Tohle se mi zdálo divné, protože databáze, která je na serveru má sice několik Giga, ale určitě nemůže zabírat celé diskové místo, no vlastně ani třetinu diskového prostoru na oddílu.
Samozřejmě při mém připojení byl server už dávno v “spadený” a databáze nefungovala, protože neměla kam zapisovat.

Při výpisu největších adresářů jsem zjistil, že velikost asi 16 Gb zabírá adresář /var/log/mysql, kde se logují dotazy databáze.

Bohužel server je co do databáze dosti vytěžován a dotazů na databázi probíhá každou sekundu vcelku dost (několik desítek), a tak vznikla tato situace.

Nebudu popisovat noc, kdy jsem prostoduše smazal obsah adresáře /var/log/mysql. Tuto noc si určitě zapamatuji a vícekrát stejnou blbost neudělám.

Adresář jsem smazal s předpokladem, že si losovací soubory databáze znova sama vytvoří, a bude dále bez problémů logovat. Jaké bylo mé překvapení, když nevytvořila a nelogovala.

Celou noc jsem se setkával s hláškami:

a podobnými. Samotný Google už nevěděl jaký výsledek a v jakém jazyce by mi nabídl, abych byl spokojený.

No každopádně, situaci se nakonec po několika hodinách podařilo napravit upgradem celé distribuce a všechno se zdálo být v pořádku.

V pořádku ale nic nebylo, protože databáze loguje dále a dále pomalu dochází místo na disku, a tak se situace musela řešit.

Náprava

Náprava je vcelku jednoduchá. Nainstalovaný databázový server je po instalaci nakonfigurována tak, aby logovala všechny dotazy a uchovávala je po dobu několika dní.

Toto jde samozřejmě upravit v konfiguraci databáze, která se nachází v /etc/mysql/my.cfg
Mou situaci šlo řešit několika způsoby, jako například vypnout úplně logování dotazů.
Já jsem nakonec zvolil změnu doby pro uchovávání logů, která je defaultně nastavena na hodnotu 10 dní.





Změna doby na 2 dny pomohla a při restartu databáze byly všechny logovací soubory, starší této doby, promazány.

Závěrem

Za nastalou situaci jsem si určitě mohl sám, naštěstí se ji podařilo vyřešit.
Co dodat?
Jenom snad že čím více začínám obdivovat správce serverů a jejich práci.

Comments are closed for this page

Také jsem se s tímto nedávno setkal, logy mysql nějak nakynuly, ale nic extrémního. Občas kontroluju, kolik místa je využito a náhodou jsem na tyto logy taky narazil a ihned si my.cfg změnil. 🙂

About
Hi, i am programmer from the Czech Republic. I love web development (Ruby, Ruby on Rails, PHP, Nette) and iOS development (Objective-C, Cocoa).
To cooperate, here is my phone:
+420 608 836