Viser opslag med etiketten MySQL. Vis alle opslag
Viser opslag med etiketten MySQL. Vis alle opslag

onsdag den 27. april 2011

Crash boom bang (husk backup!)

Ja - så skete det altså også for mig - min blog har været nede ca. siden kl. 13 - her løb / nemlig tør for plads, midt i jeg var ved at opdatere et indlæg.

Det gik jo som det kunne - resultatet blev en korrumperet wp_posts tabel i databasen til min lifeblog - selvfølgelig den vigtigste af alle, intet mindre kunne gøre det!

Måske jeg skulle få sat noget diskplads overvågning op? Hmm...

Hvornår tog jeg sidst backup af min blog database? Hmm... 16/12-2010 - dur ikke...

Hvad mon Webmin's database administration kan? Intet! Kunne ikke engang se databasen (selvom det kun var en af tabellerne den var gal med).

Prøvede en repair via PHPMyAdmin - kunne se alle tabellerne i databasen, men wp_posts havde status "in use" - googlede lidt - nope, den stallede bare i forsøget...

Googlede videre - virkede heller ikke, men blev ledt på sporet af  myisamchk, som jeg læste lidt man pages på - det måtte være sidste skud i bøssen.

Først lukkes mysql ned (/etc/init.d/mysqld stop)
Check med ps - ef |grep mysql indtil der ikke kører flere mysql instanser.

Første forsøg (myisamchk -r wp_posts.MYI) endte med fejlen:

myisamchk: Disk is full writing '/tmp/STxlpW4r' (Errcode: 28). Waiting for someone to free space... Retry in 60 secs

Øv... for lidt plads i /tmp - som ikke sådan lige kan udvides.

Løsningen er at specificere en anden mappe end /tmp:

mkdir /home/mysqltmp
chmod 0777 /home/mysqltmp
cd /var/lib/mysql/blog
myisamchk -r --tmpdir=/home/mysqltmp wp_posts.MYI


Se så! Det var sager - herefter startede jeg mysql igen (/etc/init.d/mysqld start) og til sidst apache (/etc/init.d/apache2 start).

Voila! lifeblog flyver igen! Og så lige en backup med BackWPup - og en reminder til mig selv om at gøre det noget oftere...

tirsdag den 24. marts 2009

Ny Ubuntu 8.10 server i luften på ASUS EEE BOX

Nu har jeg endelig fået en ny server i luften - kører nu en Ubuntu 8.10 server på en ASUS EEE Box B202 med 1 GB RAM og 80 GB harddisk.

I modsætning til hvad jeg tidligere skrev, har jeg droppet idéen med at køre en WUBI installation og sparkede XP helt ud - idéen var god, men det endte alligevel med at blive noget rod.

Der har dog været nogle uventede udfordringer undervejs - ikke mindst noget med driver understøttelse af netkortet (!) - så jeg måtte selv kompilere en der virkede - det samme måtte jeg gøre med Apache2 webserveren, da den ikke understøttede Virtualmin (webbaseret fjernadministration) i den version der var tilgængelig i repository for Ubuntu 8.10 - det der manglede specifikt var en anden konfiguration af mod_suexec, end den der er standard i versionen der kan installeres fra repository.

Men den er fuldt funktionsdygtig nu; jeg har fået flyttet alle mine sites og databaser over på den - her var udfordringerne kun noget med adgangsrettigheder på filer - en bruger skulle oprettes i MySQL til min medieserver + nogle rettigheder skulle tildeles.

Databaserne blev kopieret på følgende måde:

  1. Stop MySQL på den gamle server

  2. Pak de enkelte databaser med tar:
    "tar -cvf databasedir.tar /var/lib/mysql/databasedir" - udskift "databasedir" med navnet på din database.

  3. Stop MySQL på den nye server:
    "/etc/init.d/mysqld stop"

  4. Kopier TAR filerne over på den nye server

  5. Pak dem ud i mappen "/var/lib/mysql":
    "tar -xvf databasedir.tar /var/lib/mysql"

  6. Start MySQL på den nye server:
    "/etc/init.d/mysqld start"


Man skal ikke pakke hele /var/lib/mysql ned i en fil og så pakke det hele ud til samme sted på den nye server - så overskriver man filerne i roden af mysql mappen - det kan næppe være en god idé. Jeg pakkede faktisk hele mysql mappen ned i en fil, men benyttede så MC (Midnight Commander) på den nye server til at kopiere mine egne databasemapper ud og lod de oprindelige filer i roden være.

Sites blev kopieret direkte over til samme placering på den nye server (husk at sætte rettigheder og ejerskab på mapper/filer: chmod 755 + chown www-data:www-data) og Virtual hosts includes i apache2.conf fra den gamle server blev kopieret ind i samme fil på den nye server. Kopierede derefter httpd.conf over og genstartede apache - voila - serveren kører!
NB. Man skal sørge for så vidt muligt at køre samme version af Apache, MySQL og PHP på den nye server, ellers kan det godt være det ikke går helt så glat, hvis man vælger bare at kopiere database og config filer over, som jeg har gjort - måske er jeg bare doven, men hvorfor gøre det besværligt for sig selv?.

NB. Det kan stærkt anbefales at installere Webmin på sin server, det gør det langt mere overskueligt om tingene kører som de skal og også nemmere at administrere - til langt de fleste opgaver med MySQL behøver man f.eks. ikke at have PHPMyAdmin installeret (men det er nu godt have til de mere hardcore tabel manipulationer).