Job / Praca

    MySQL crash

    Witajcie po krótkiej przerwie. Chcia?em opisa? moj? delegacj? przez wi?kszo?? pó?nocnej Polski, jednak po powrocie okaza?o si?, ?e przywita? mnie padni?ty mysql, a ?e przy okazji da?o si? go w miar? szybko naprawi? to b?dzie to znakomity tutorial :)

    Mam system helpdeskowy o nazwie bugzero. To troch? pokr?cony konfig poniewa? jest napisany w javie, wymaga tomcata i javy, java na NetBSD dzia?a w emulacji linuxowej, a wszystko przechowywane jest w bazie. Tak czy owak powy?szy konfig dzia?a bardzo stabilnie, a od czasu update’u do 4.0 nie mia?em z nim problemu przez prawie 140 dni :)

    11:15AM up 139 days, 13:05, 2 users, load averages: 0.07, 0.39, 0.70

    Dzisiaj jednak strona do logowania si? wy?wietli?a i po klikni?ciu przycisku do zalogowania nic si? nie sta?o a przegl?darka ca?y czas ??czy?a si?. Trwa?o to do?? d?ugo wi?c zacz??em szuka? przyczyny.

    Nauczony za czasów 3.0, ?e tomcat lubi? si? powiesi? zrestartowa?em go, nie pomog?o to, a w?a?ciwie pogorszy?o sparw? bo juz nie mo?na nawet by?o wy?wietli? okienka logowania. Jako drugi do sprawdzenia mysql. Stopowa? si? ze dwie minuty ale w ko?cu mu si? uda?o bez ingerencji kill :) Przy próbie wystartowania dosta?em komunikat:

    /var: write failed, file system is full

    Aha, jest winowajca. Faktycznie /var ponad pe?ny 102% :) Zrobi?em troch? miejsca (g?ownie logi mysqla i snorta) i wystartowa?em mysql jeszcze raz, tym razem posz?o g?adko. Próba logowania si? do bugzero jednak zako?czy?a si? komunikatem „Load issues/bugs from the database failed”.

    No to pi?knie baza si? rozjecha?a. Na szcz??cie mysql ma narz?dzia aby to naprawi?. Usterka okza?a si? na tyle ma?a, ?e oby?o si? bez ?mudnego wpisywania do bazy czegokolwiek.

    Po pierwsze nale?y sprawdzi? w których tabelach jest b??d. Najpro?ciej zrobi? to narz?dziem mysqlcheck

    mysqlcheck -uroot -p bugzero

    bugzero.PrimaHelpdesk2007_entry
    warning : Table is marked as crashed
    warning : 8 clients are using or haven't closed the table properly
    error : Size of indexfile is: 69632 Should be: 70656
    error : Corrupt
    bugzero.PrimaHelpdesk2007_file
    warning : 2 clients are using or haven't closed the table properly
    status : OK
    bugzero.PrimaHelpdesk2007_filter
    warning : 2 clients are using or haven't closed the table properly
    status : OK
    bugzero.PrimaHelpdesk2007_query
    warning : 2 clients are using or haven't closed the table properly
    status : OK
    bugzero.PrimaHelpdesk2007_trail
    warning : 8 clients are using or haven't closed the table properly
    status : OK
    bugzero.PrimaHelpdesk2007_trigger OK
    bugzero.SEQUENCE
    warning : 7 clients are using or haven't closed the table properly
    status : OK

    Ok, mamy jedna tabele uszkodzon? i kilka innych z warningami. Wchodzimy do mysql i naprawiamy tabele:

    mysql -uroot -p bugzero

    mysql> repair table PrimaHelpdesk2007_entry
    -> ;
    +---------------------------------+--------+----------+----------+
    | Table | Op | Msg_type | Msg_text |
    +---------------------------------+--------+----------+----------+
    | bugzero.PrimaHelpdesk2007_entry | repair | status | OK |
    +---------------------------------+--------+----------+----------+
    1 row in set (1.10 sec)

    mysql> repair table PrimaHelpdesk2007_file;
    +--------------------------------+--------+----------+----------+
    | Table | Op | Msg_type | Msg_text |
    +--------------------------------+--------+----------+----------+
    | bugzero.PrimaHelpdesk2007_file | repair | status | OK |
    +--------------------------------+--------+----------+----------+
    1 row in set (0.68 sec)

    mysql> repair table PrimaHelpdesk2007_filter;
    +----------------------------------+--------+----------+----------+
    | Table | Op | Msg_type | Msg_text |
    +----------------------------------+--------+----------+----------+
    | bugzero.PrimaHelpdesk2007_filter | repair | status | OK |
    +----------------------------------+--------+----------+----------+
    1 row in set (0.04 sec)

    mysql> repair table PrimaHelpdesk2007_query;
    +---------------------------------+--------+----------+----------+
    | Table | Op | Msg_type | Msg_text |
    +---------------------------------+--------+----------+----------+
    | bugzero.PrimaHelpdesk2007_query | repair | status | OK |
    +---------------------------------+--------+----------+----------+
    1 row in set (0.14 sec)

    mysql> repair table PrimaHelpdesk2007_trail;
    +---------------------------------+--------+----------+----------+
    | Table | Op | Msg_type | Msg_text |
    +---------------------------------+--------+----------+----------+
    | bugzero.PrimaHelpdesk2007_trail | repair | status | OK |
    +---------------------------------+--------+----------+----------+
    1 row in set (1.88 sec)

    mysql> repair table PrimaHelpdesk2007_trigger;
    +-----------------------------------+--------+----------+----------+
    | Table | Op | Msg_type | Msg_text |
    +-----------------------------------+--------+----------+----------+
    | bugzero.PrimaHelpdesk2007_trigger | repair | status | OK |
    +-----------------------------------+--------+----------+----------+
    1 row in set (0.07 sec)

    Jak wida? posz?o sprawnie i szybko (czego niestety nie mo?na powiedzie? o bazie snorta :/

    Po powy?szej operacji jeszcze raz sprawdzamy struktur? tabel:

    mysqlcheck -uroot -p bugzero

    bugzero.PrimaHelpdesk2007_entry OK
    bugzero.PrimaHelpdesk2007_file OK
    bugzero.PrimaHelpdesk2007_filter OK
    bugzero.PrimaHelpdesk2007_query OK
    bugzero.PrimaHelpdesk2007_trail OK
    bugzero.PrimaHelpdesk2007_trigger OK
    bugzero.SEQUENCE OK
    bugzero.accesscode OK
    bugzero.assignment OK
    bugzero.fieldname OK
    bugzero.fieldset OK
    bugzero.groupcode OK
    bugzero.mailbox OK
    bugzero.person OK
    bugzero.project OK
    bugzero.reminder OK
    bugzero.workflow OK

    Tym razem próba logowania zako?czy?a si? pe?nym sukcesem :)

    Dla porównania naprawa bazy snorta:

    mysql> repair table snort.data;
    +------------+--------+----------+----------+
    | Table | Op | Msg_type | Msg_text |
    +------------+--------+----------+----------+
    | snort.data | repair | status | OK |
    +------------+--------+----------+----------+
    1 row in set (5 min 24.55 sec)

    troch? d?u?ej :)




    Related Posts with Thumbnails

    © odwiedź stronÄ™ http://maciejewski.org po wiÄ™cej fajnych postów!

    Leave a Reply

    Add your widget here