Kurztipp: MySQL auf eine andere Partition verschieben (Debian 7)

Montag im Büro und die Data Partition eines MySQL Servers ist fast voll gelaufen.

0. Neue (LVM) Partiton einbinden.

1. Rsync des Datadirs

rsync -avh --progress --stats /var/lib/mysql/ /mnt/mysql/data/

2. MySQL stoppen

3. nochmal rsync

rsync -avh --progress --stats /var/lib/mysql/ /mnt/mysql/data/

4. Verschieben des alten Datadirs und Symlink anlegen

mv /var/lib/mysql /var/lib/mysql_old
ln -s /mnt/mysql/data /var/lib/mysql

5. MySQL starten und fertig

6. Irgendwann mal das mysql_old löschen

Schöner ist natürlich man ändert die Pfade in der my.cnf, aber manchmal muss es einfach schnell gehen. Falls man Apparmor nutzt, anpassen der Pfade nicht vergessen.

5 Gedanken zu „Kurztipp: MySQL auf eine andere Partition verschieben (Debian 7)“

  1. Hallo Claws!

    Aus der mySQL Doc zum Thema Tablespace: „it is useful only with Disk Data storage for MySQL Cluster.“

    Hier ist doch gar kein Cluster im Betrieb, sondern einfach nur der Plattenplatz zu klein geworden, wenn ich das nicht falsch verstanden haben.

    Warum meinst du, Tablespace sei besser in diesem Fall?

    Danke

  2. Hallo exdc,

    warum machst du zweimal rsync, einmal vor dem stoppen, einmalc nach dem stoppen?

    Reicht nicht stoppen, rsync, ln und wieder starten?

  3. @freiheit
    den ersten rsync mache ich während MySQL noch läuft. Dadurch geht der zweite rsync bei gestoppten MySQL deutlich schneller. Also kürzere Ausfallzeit.

  4. Bei Punkt 4 hat sich wohl ein Fehler durch deine Blogsoftware eingeschlichen. Der Unterstrich ist nun als Space dargestellt. Was bei Copy Past, Probleme bereiten wird.
    Ansonsten ist der Worflow mMn gut, zukünftig mit btrfs und snapshots aber anders lösbar.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.