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.
Quick and dirty. Zu bevorzugen wäre allerdings ein TABLESPACE
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
Hallo exdc,
warum machst du zweimal rsync, einmal vor dem stoppen, einmalc nach dem stoppen?
Reicht nicht stoppen, rsync, ln und wieder starten?
@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.
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.