Was zu tun ist, wenn MySQL hat keinen Platz mehr?
Aus Neugier, sagen, Sie haben eine riesige MySQL Datenbank voll von Informationen für den Benutzer und es ist jetzt voll. Wie würden Sie die gleiche MySQL-Datenbank aus der gleichen server und einem anderen server mit mehr Speicherplatz?
Planen Sie, wie Sie mit MySQL auf beiden Servern parallel?
Was auch immer es nehmen würde, um damit mehr Speicherplatz für die Datenbank.
@Sanath Punkte aus, halten die alte, gesättigte server ist wahrscheinlich nicht die beste Idee, es sei denn, Sie finden einen Weg, um freien Speicherplatz auf Sie.
Dies könnte nützlich sein - stackoverflow.com/questions/1795176/...
Was auch immer es nehmen würde, um damit mehr Speicherplatz für die Datenbank.
@Sanath Punkte aus, halten die alte, gesättigte server ist wahrscheinlich nicht die beste Idee, es sei denn, Sie finden einen Weg, um freien Speicherplatz auf Sie.
Dies könnte nützlich sein - stackoverflow.com/questions/1795176/...
InformationsquelleAutor Alec | 2012-06-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn das problem nur eine Frage von Speicherplatz, dann die einfachste Lösung ist der transfer der Datenbank auf ein anderes system mit mehr Kapazität.
Andere Lösung könnte sein, das hinzufügen einer Festplatte auf der gleichen system, und
Die oben genannten Dateien können verschoben werden, um eine andere Festplatte (Sie müssen möglicherweise symlink würde von Ihrer ursprünglichen Position).
Allerdings wirklich weit skalierbare Lösung ist ein cluster von Datenbanken, wie MySQL cluster.
Möglicherweise möchten Sie auch zu Folgen,diese Frage, in denen dieses problem derzeit angegangen werden, in einer realen Umgebung.
[Bearbeiten] Ausführliche Beschreibung:
Die nachfolgenden Informationen gültig ist, auf einem Linux-server nur. Es kann werden unter Windows möglich, aber ich habe keine Ahnung. Betrieb einer MySQL-Datenbank auf Windows ist wahrscheinlich nicht eine gute Idee in einem großen Maßstab Umgebung sowieso.
Den drei Optionen, beruhen auf dem gleichen Prinzip:
1. Erweitern Sie den InnoDB-tablespace
InnoDB-engine ermöglicht die Verbreitung der Tabellenbereich, der über viele Dateien. Die Konfigurations-option zu zwicken (in
my.cnf
) istinnodb_data_file_path
. Beispiel:... weist MySQL zu erstellen
/mnt/hard_disk1/ibdata1
, eine 50 GB-Datei, sowie eine 200GB Datei in/mnt/hard_disk2/ibdata2
.Mir persönlich mögen diese Funktion, da MySQL nicht verwenden Sie die zweite Datei, bis die erste voll ist, die nicht zulässt, dass für die Feinabstimmung. Die gute Seite ist, die Sie gerade brauchen, um Bearbeiten Sie die Konfigurationsdatei und starten Sie den server neu. Das ist es.
2. Speichern jede InnoDb-Tabelle in einer separaten Datei
Den
innodb_file_per_table
option, wie der name schon sagt, weist MySQL erstellen Sie eine separate Datei für jedes neue Tabelle. "Neue Tabelle" bedeutet, dass bestehende Tabellen werden nicht beeinflusst nach dem ändern der setup. Zu umgehen, kann man dumpen, löschen, und neu erstellen Sie die Tabelle(N) "extrahiert" aus den shared tablespace.Diese Dateien sind
[datadir]/[database]/[table].ibd
ein, wo[datadir]
ist definiert durch diedatadir
option, und[database]
ist der name der Datenbank, und[table]
ist der name der Tabelle.Diese Dateien können verschoben werden, um genau wie die MyISAM-Tabellen (siehe nächste option).
3. Bewegen Sie die MyISAM-Dateien
Für jede MyISAM-Tabelle in MySQL erstellen Sie drei Dateien mit den Namen
[datadir]/[database]/[table].[type]
, wo[datadir]
ist definiert durch diedatadir
option[database]
ist der name der Datenbank, und[table]
ist der name der Tabelle.[type]
wirdfrm
für die Beschreibung der Tabelle (Struktur)MYD
für die DatenMYI
für Indizes.Nun, in Bezug auf Optionen 2. und 3., Sie bemerken, dass alle Dateien sind in etwa im selben Verzeichnis befinden, oder zumindest Teil einer übergeordneten Verzeichnis. Tatsächlich speichern Sie Sie auf einer neuen Festplatte, gibt es zwei Möglichkeiten.
1) Zum verschieben einer gesamten Datenbank:
database
- Verzeichnis in einen anderen Namen, der einem gefällt, sagenbackup
datadir
/databse
backup
indatadir
/databse
MySQL wird fortgesetzt, als ob nichts jemals passiert ist.
2) Zu verschieben einzelner Tabellen:
MySQL setzt in einer glückseligen Ignoranz.
InformationsquelleAutor RandomSeed
da sehe ich, die beste Lösung wird sein, verschieben Sie die Datenbank auf einen neuen server mit höherer Kapazität und wiederherstellen der aktuellen Datenbank vorhanden. Die aktuelle server-fehlen wichtige Ressourcen wie Speicherplatz und Arbeitsspeicher, daher kritisch zu behindern die Leistung der Datenbank.
weiter Lesen
nach der migration, das ist eine Frage der änderung der geltenden Daten-source-Dateien für jede aufgerufene Anwendungen, die dieselbe Datenbank nutzen.
Ich bin nicht zu verstehen. Wird dieses "dumping" lassen Sie mich halten Sie alle Informationen, die in der Datenbank? Alles was ich will zu tun ist, wenn die Datenbank voll ist, die auf einem server, dann geht es weiter auf den nächsten server und weiter wie normal.
Ich meine, wie funktioniert Facebook store so viel information? MySQL? Was?
wenn ich verstehe Ihren Standpunkt, Ihre Lösung ist transfer die gesamte Datenbank auf ein anderes system? Wenn ja, dann einfach
mysqldump
tun würde.Ich bin nicht verstehen, viel. Wäre nicht die übertragung nur nehmen den selben Raum ein? Kann nicht einer Datenbank arbeiten, die mehrere Server?
InformationsquelleAutor Sanath