Google weiß alles: Mysql-DB spiegeln?

Beitrag lesen

die Dateien innerhalb des Hosts auf eine zweite Platte zu kopieren. Danke, das ist schonmal ein guter Ansatz, wie ich finde.

  • Dafür brauchst Du (System-)Root-Rechte auf BEIDEN Servern. Hattest Du nicht was geschrieben, dass Du diese nicht hast? Falls doch kannst Du auch replizieren.

Wenn ich jetzt nicht den ganzen DB-Server als Ganzes, sondern die einzelnen DBs so behandele, dürfte der Ausfall gar nicht so lange sein.

  • Geht nicht mit dem Standardformat InnoDB, denn da sind die einzelnen Datenbanken/Tabellen nicht auf einzelne Ordner verteilt wie z.B. bei MyIsam. Schau einfach mal nach /var/lib/mysql/ (Standardordner für die MySQL-Datenbanken unter Linux).

##Lösungswege##

A:

Wenn direkte Netzwerkzugriffe auf mindestens einen der beiden SQL-Server (Standardport 3306) möglich sind und die Datenbanken nicht allzu groß sind kann man auch mit mysqlexport bzw. mysqlimport arbeiten.

  • Dann wäre als "best of" noch mysqldbcopy im Angebot.

B:

Wenn Netzwerkzugriffe auf mindestens einen der beiden SQL-Server via SSH möglich sind und die Datenbanken nicht allzu groß sind kann man auch direkt mit mysqldump arbeiten.

Das sieht dann ETWA so aus:

user@HostLocal~> mysqldump -u user [[optionen] parameter] -p datenbank | ssh user@HostEntfernt mysql -u user --passwort="GeHeim" datenbank
# (Alles vorstehende ist eine Zeile!)

Es geht sowohl

  • mysqldump | ssh user@HostEntfernt | mysql

(local nach entfernt)

als auch

  • ssh user@HostEntfernt mysqldump | mysql.

(entfernt nach local)

Das ist das Prinzip, Optionen und Parameter fehlen.

Wenn die Datenbanken klein sind und einfach alles von A nach B geschaufelt werden soll sind das die gangbarsten Wege. Denk dran, die Webseiten bzw. Anwendungen zu sperren. Die Tabellen zu leeren oder zu droppen geht, in dem Du beim dumpen die Optionen setzt.

Geheimtipp: Teste das sehr gründlich bevor Du produktive Daten zerstörst.