Migrieren Sie MySQL physisch ohne Speicherauszug

7

Ein Client bittet mich, seine MySQL-Datenbank zu migrieren: Der Server hat keinen freien Speicherplatz und eine sehr große Tabelle, die kaputt ist, sodass ich sie nicht sichern kann.

Ich kann es nicht reparieren, weil es an freiem Speicherplatz mangelt.

Frage: Gibt es eine Möglichkeit, MySQL DB-Datendateien physisch auf einen anderen Server zu verschieben und für das "neue" MySQL zu verwenden?

Mariano Argañaraz
quelle

Antworten:

8

Folgendes können Sie tun:

  • Alter DB Server: 10.1.2.30
  • Neuer DB Server: 10.1.2.40

SCHRITT 01) Auf dem alten Server service mysql stop

SCHRITT 02) Auf dem alten Server rsync -av --progress /var/lib/mysql [email protected]:/var/lib/mysql

SCHRITT 03) Auf dem neuen Server chown -R mysql:mysql /var/lib/mysql

SCHRITT 04) Auf dem neuen Server service mysql start

Stellen Sie sicher, dass sich /var/lib/mysqlder neue Server auf einem viel größeren Festplatten-Mount befindet

RolandoMySQLDBA
quelle
Ok, ich werde das versuchen. Ich habe diese Dateien bereits heruntergeladen. /var/lib/mysqlWenn sie fertig sind, muss ich sie nur noch auf New DB Server hochladen. Vielen Dank.
Mariano Argañaraz
Über dem Befehl rsync wurde ein MySQL-Ordner in erstellt /var/lib/mysql. Und ich weiß, dass MySQL bereits ein MySQL enthält. Also hatte ich beide /var/lib/mysql/mysqlund/var/lib/mysql/mysql/mysql
Matt
5

Sie können es auch im laufenden Betrieb auf einen anderen Server migrieren und Daten über Pipes und SSH senden. Dies ist nützlich, wenn der Zielhost beispielsweise eine andere MySQL-Version hat.

Ich habe gerade einen Blog-Beitrag geschrieben, in dem erklärt wird, wie ich es gemacht habe:

http://blog.techutils.space/2016/02/on-fly-database-migration-between-two.html

Dort gibt es eine Erklärung, aber wenn es Sie nicht interessiert, führen Sie einfach etwas wie das Folgende aus.

Zielhost:

nc -l 3456 | \
  gunzip | \
  pv | \
  mysql -u tdb_user -ptdb_pass targetdatabase

Quellhost:

mysqldump -u sdb_user -psdb_pass sourcedatabase | \
  pv | \
  gzip | \
  ssh sshuser@targethost nc 127.0.0.1 3456
BrunoJCM
quelle
1
Ich mag deine Denkweise
Philᵀᴹ