Ich muss die Daten in einen anderen Ordner verschieben und auf meinem Cent OS DB Server fahren.
Ich habe eine neue Festplatte hinzugefügt (da der Speicherplatz knapp wurde).
Ich habe eine 1-TB-Festplatte und ich habe eine neue 2-TB-Festplatte, auf der ich die Daten auf demselben Server ablegen möchte (dedizierter Server, der in einem Rechenzentrum gehostet wird).
Ich möchte wissen, wie ich die Daten einfach migrieren kann, ohne Daten zu verlieren.
Derzeit habe ich die Daten in: /var/lib/mysql/
auf Cent OS.mysql version is 5.1
Antworten:
Schritt 1
Richten Sie zuerst Ihr Laufwerk ein (vorausgesetzt, es ist gemountet und in der fstab korrekt eingerichtet) und erstellen Sie ein neues MySQL-Verzeichnis:
sudo mkdir /path/to/new/mysql
Stellen Sie sicher, dass dieser Ordner über die richtigen Berechtigungen verfügt:
chown -R mysql:mysql /data/mysql
Jetzt können Sie hier den Dienst herunterfahren, während Sie Daten kopieren. Kopieren Sie die Daten aus dem aktuellen Datenverzeichnis in ein neues Datenverzeichnis. Beispiel:
sudo cp -R /var/lib/mysql/* /path/to/new/mysql/
Sie können jede Datenbank auch einzeln kopieren, wenn Sie dies bevorzugen oder wenn Sie sich sicher fühlen. Sie können den Ordner mit dem
mv
Befehl verschieben.Schritt 2
Sie können den Speicherort Ihrer MySQL-Daten in Ihrem ändern
my.cnf
. Wenn Sie nicht wissen, wo sich diese Datei befindet, können Sie den folgenden Befehl ausführen:locate my.cnf
Dies gibt Ihnen den Pfad, wo sich die my.cnf befindet. Bearbeiten Sie dann die Datei:
sudo vi /etc/mysql/my.cnf
(Natürlich musst du durch deinen Weg ersetzen)Suchen Sie nun nach
datadir = /var/lib/mysql
und aktualisieren Sie aufdatadir = /path/to/new/mysql
.Starten Sie dann MySQL neu
sudo /etc/init.d/mysqld restart
Wenn Sie sich nach einigen Tagen / Wochen wohl fühlen, können Sie den alten Ordner (/ var / lib / mysql) entfernen oder alles darin sichern.
quelle
prefereble no, but if there's no other way then yes
. Wenn Sie viele Einfügungen in Tabellen haben, die Sie derzeit mit MyISAM (Tabellensperre) kopieren, können Fehler oder Daten auftreten, die nicht kopiert werden.Wenn Sie während der Migration nicht herunterfahren möchten, würde ich eine Master-Master-Replikation für eine Chroot-Umgebung auf 2 TB mit MySQL (dieselbe Version) einrichten. Wenn diese Option aktiviert ist, schalten Sie 1 TB aus und Sie erhalten eine funktionierende Chroot-Umgebung.
Wenn Sie keine Chroot-Umgebung verwenden möchten, ändern Sie die Datei my.cnf (nicht die Chroot-Umgebung) so, dass sie darauf verweist, wo Sie Ihre MySQL-Dateien auf einer 2-TB-Festplatte speichern möchten, und deaktivieren Sie die Replikation. Schalten Sie dann die Chroot-Umgebung aus und verschieben Sie die Daten in die Datei my.cnf. Das Verschieben hier dauert nicht einmal eine Sekunde, da es sich auf derselben Festplatte befindet. Starten Sie MySQL neu.
Dies ist etwas komplex, Sie können damit zuerst in der lokalen VM-Umgebung spielen.
quelle
quelle