Die MySQL-Datenbankmigration exportiert und importiert schnell große Datenmengen

Die MySQL-Datenbankmigration exportiert und importiert schnell große Datenmengen

Die Datenbankmigration ist ein Problem, auf das wir häufig stoßen. Bei kleinen Datenmengen stellt die Migration grundsätzlich kein Problem dar. In der Produktionsumgebung sind Migrationsarbeiten in den folgenden Situationen erforderlich:

  • Nicht genügend Speicherplatz. Beispielsweise sind bei manchen Altprojekten die gewählten Modelle nicht unbedingt für die Datenbank geeignet. Mit der Zeit besteht eine hohe Wahrscheinlichkeit, dass Festplatten knapp werden;
  • Es gibt einen Engpass im Betrieb. Wenn beispielsweise eine einzelne Maschine für die Abwicklung aller Lese- und Schreibvorgänge in einem Projekt verwendet wird, steigt der Geschäftsdruck und wird unerträglich. Wenn der IO-Druck innerhalb eines akzeptablen Bereichs liegt, wird eine Lösung zur Lese-/Schreibtrennung übernommen.
  • Es liegt ein Engpass in der Maschine vor. Die Engpässe der Maschine sind hauptsächlich die Festplatten-E/A-Kapazität, der Arbeitsspeicher und die CPU. Neben der Optimierung der Engpässe ist eine Migration eine gute Lösung.
  • Projekttransformation. Die Datenbanken einiger Projekte befinden sich in verschiedenen Computerräumen. Daher ist es möglich, Knoten in verschiedenen Computerräumen hinzuzufügen oder Maschinen von einem Computerraum in einen anderen zu migrieren. Beispielsweise teilen sich verschiedene Unternehmen denselben Server, und es wird eine Migration durchgeführt, um die Serverbelastung zu verringern und die Wartung zu erleichtern.

Es gibt drei gängige Methoden zur MySQL-Migration:

1. Exportieren Sie die Datenbank direkt, kopieren Sie die Datei auf den neuen Server und importieren Sie sie auf dem neuen Server.

2. Verwenden Sie Migrationstools von Drittanbietern.

3. Kopieren Sie die Datendateien und die Strukturdateien der Bibliothekstabelle direkt auf den neuen Server und hängen Sie sie mit derselben Konfiguration in den MySQL-Dienst ein.

Die Vorteile der ersten Lösung sind: Sie erstellt die Datendateien neu, reduziert den von den Datendateien belegten Speicherplatz, bietet die beste Kompatibilität, hat selten Probleme beim Exportieren und Importieren und ist flexibel in den Anforderungen. Nachteile: Der herkömmliche Export und Import dauert lange.

Vorteile der zweiten Lösung: Nach Abschluss der Einstellungen erfolgt die Übertragung unbeaufsichtigt und automatisch. Nachteile: Nicht flexibel genug, kompliziert einzurichten, lange Übertragungszeit und es ist schwierig, die Übertragung vom abnormalen Standort aus fortzusetzen, nachdem eine Anomalie aufgetreten ist.

Die Vorteile der dritten Lösung: weniger Zeitaufwand, Dateien können an Haltepunkten übertragen werden und weniger Bedienschritte. Nachteile: Die MySQL-Version und -Konfiguration müssen auf dem neuen und dem alten Server identisch sein, was zu unbekannten Problemen führen kann.

Wenn die Datenbankmigration auf geschäftliche Engpässe oder eine Projektumwandlung zurückzuführen ist, die Änderungen an der Datentabellenstruktur (z. B. Partitionen und Tabellen) erfordert, können wir nur die erste Methode verwenden.

Verwenden Sie MySQLs SELECT INTO OUTFILE und LOAD DATA INFILE, um Daten schnell zu exportieren und zu importieren

Die Anweisung LOAD DATA INFILE liest Daten mit sehr hoher Geschwindigkeit aus einer Textdatei in eine Tabelle. In der offiziellen MySQL-Dokumentation heißt es außerdem, dass diese Methode 20-mal schneller ist als das Einfügen jeweils einer Datenzeile.

Wenn Sie SELECT ... INTO OUTFILE und LOAD DATA INFILE gleichzeitig verwenden, um Daten aus einer Datenbank in eine Datei zu schreiben und sie dann aus der Datei in die Datenbank zu lesen, müssen die Feld- und Zeilenbehandlungsoptionen der beiden Befehle übereinstimmen. Andernfalls kann LOAD DATA INFILE den Dateiinhalt nicht richtig interpretieren.

Nachfolgend sehen Sie ein Beispiel für ein Projekt, bei dem MySQL mit einem Gesamtdatenvolumen von 12 G von Windows nach Linux migriert wird.

Datenexport auf Windows-Plattform:

Tables.txt ist eine Datei, in der die Namen von Datentabellen gespeichert sind. Durch das Lesen der Namen von Datentabellen aus der Datei werden alle Tabellen in einer Schleife exportiert. Wenn Untertabellen in den Prozess involviert sind, können die exportierten SQL-Anweisungen und Batchcodes entsprechend den Untertabellenregeln geändert werden, was sehr flexibel ist.

@echo aus & setlocal aktivierte verzögerte Erweiterung
für /f %%i in (tables.txt) mache ( setze table=%%i
 echo "Tabelle ausgeben -- !Tabelle! --"
 mysql -uroot -p12345678 codetc_old -e "SELECT * INTO OUTFILE 'F:/MySQL/Uploads/!table!.txt' FELDER ABGESCHLOSSEN DURCH ',' AUS !table!"
)
Pause

Daten auf der Linux-Plattform importieren:

#!/bin/bash
während Zeile gelesen wird
Tun
    mysql -uroot -p12345678 codetc_new -e "Daten aus Datei '/var/lib/mysql-files/$line.txt' in Tabelle $line laden, Felder mit Beendigung durch ','"
fertig < Tabellen.txt

Bevor Sie Daten importieren, müssen Sie auf der neuen Maschine eine Tabellenstruktur erstellen. Der Export von 12 GB Daten dauert etwa 3 Minuten und der Import etwa 4 Minuten (die Ausführungszeit variiert je nach Konfiguration der Maschine und ist kein Referenzwert).

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Detaillierte Schritte zum Migrieren des Datenordners der MySQL-Datenbank
  • Detaillierte Erklärung zur Migration einer MySQL-Datenbank auf einen anderen Computer
  • Zusammenfassung der Methoden zur Migration einer Oracle-Datenbank nach MySQL
  • Migrieren Sie die MySQL-Datenbank zur Oracle-Datenbank
  • So verwenden Sie das Entladen, Migrieren und Laden von MySQL InnoDB-Tablespaces
  • Detaillierte Erläuterung der MySQL-Datenmigration - Vorsichtsmaßnahmen beim direkten Ersetzen des Datenverzeichnisses
  • 5 Möglichkeiten zur Migration von MySQL zu ClickHouse
  • Detaillierte Erläuterung der Migrationsmethode für MySQL5.5-Datenbankdatenverzeichnisse
  • Methode zur Synchronisierung von MySQL-Sicherungs- und Migrationsdaten
  • Ein MySQL-Migrationsplan und eine praktische Auflistung der Fallstricke

<<:  Implementierung der CentOS8.0-Netzwerkkonfiguration

>>:  So erfassen Sie Ausnahmen in React

Artikel empfehlen

Vue+Element - benutzerdefinierte Abfragekomponente

In diesem Artikel wird hauptsächlich das Vue-Proj...

Detaillierte Erklärung der MySQL-Gruppensortierung, um die Top N zu finden

MySQL-Gruppensortierung, um die obersten N zu fin...

Verwendung des Linux Dig-Befehls

Dig-Einführung: Dig ist ein Tool, das DNS einschl...

Detaillierte Erläuterung der CSS-Randüberlappung und Lösungssuche

Ich habe kürzlich einige CSS-bezogene Wissenspunk...

Beispiel für eine CSS3-Tab-Animation mit dynamischem Hintergrundwechseleffekt

CSS 3-Animationsbeispiel - Dynamischer Effekt des...

Zusammenfassung der Erfahrungen beim Website-Erstellen

<br />Welche Grundsätze sollten beachtet wer...

Vue implementiert Chat-Schnittstelle

In diesem Artikelbeispiel wird der spezifische Co...