Zusammenfassung der MySQL-Datenmigration

Zusammenfassung der MySQL-Datenmigration

Vorwort:

In der täglichen Arbeit müssen wir häufig Daten migrieren, beispielsweise eine Tabelle, eine Datenbank oder eine Instanz. Je nach Bedarf sind möglicherweise unterschiedliche Migrationspläne erforderlich und während des Datenmigrationsprozesses können Probleme unterschiedlichen Ausmaßes auftreten. In diesem Artikel werfen wir einen Blick auf die MySQL-Datenmigration und hoffen, dass er für alle hilfreich ist.

1. Über die Datenmigration

Lassen Sie uns zunächst die Erklärung der Datenmigration auf Wikipedia zitieren:

Unter Datenmigration versteht man den Prozess der Auswahl, Vorbereitung, Extraktion und Transformation von Daten sowie deren dauerhafte Übertragung von einem Computerspeichersystem auf ein anderes. Darüber hinaus gelten auch die Überprüfung der Integrität der migrierten Daten und die Außerbetriebnahme des alten Datenspeichers als Teil des gesamten Datenmigrationsprozesses.

Die Datenmigration ist ein wichtiger Aspekt bei jeder Systemimplementierung, Aktualisierung oder Integration und wird häufig so automatisiert wie möglich durchgeführt, um das Personal von langwierigen Aufgaben zu befreien.

Datenmigrationen können aus unterschiedlichen Gründen erfolgen, beispielsweise zum Austausch von Servern oder Speichergeräten, zu Wartungs- oder Upgradezwecken, zur Anwendungsmigration, zur Website-Integration, zur Notfallwiederherstellung und zur Verlagerung von Rechenzentren.

Bei MySQL-Datenbanken müssen häufig Daten migriert werden, z. B. von einer Testbibliothek in eine Entwicklungsbibliothek oder von einem Computer auf einen anderen. Möglicherweise muss nur eine Tabelle migriert werden, oder es muss die gesamte Datenbankinstanz migriert werden. Für unterschiedliche Anforderungen sind möglicherweise unterschiedliche Migrationspläne erforderlich. Generell können MySQL-Datenmigrationspläne jedoch grob in zwei Kategorien unterteilt werden: physische Migration und logische Migration.

2. Migrationsplan und zu beachtende Punkte

Die physische Migration eignet sich für die Gesamtmigration großer Datenmengen. Die physische Migration umfasst das Kopieren von Datendateien und die Verwendung des Sicherungstools XtraBackup. Die physische Migration kann zwischen verschiedenen Servern durchgeführt werden. Wir können dieselbe Version der Datenbanksoftware auf dem neuen Server installieren, dasselbe Verzeichnis erstellen und es wird empfohlen, dass die Konfigurationsdatei dieselbe ist wie die der Originaldatenbank. Kopieren Sie dann die Datendateien und Protokolldateien aus der Originaldatenbank, konfigurieren Sie die Dateigruppenberechtigungen und starten Sie die Datenbank dann mit dem Befehl mysqld auf dem neuen Server.

Der Vorteil einer physischen Migrationslösung besteht darin, dass sie relativ schnell ist. Allerdings sind für die Migration Ausfallzeiten erforderlich. Außerdem müssen MySQL-Version und -Konfiguration mit denen des ursprünglichen Servers übereinstimmen, was ebenfalls zu unbekannten Problemen führen kann.

Im Vergleich dazu hat die logische Migration einen breiteren Anwendungsbereich und kann sowohl für eine teilweise als auch eine vollständige Migration verwendet werden. Die am häufigsten verwendete Methode bei der logischen Migration ist das Exportieren und Importieren mithilfe von Backup-Tools wie mysqldump.

mysqldump eignet sich auch für die Migration zwischen verschiedenen Versionen und Konfigurationen. Bei der Migration einer vollständigen Datenbank empfehle ich jedoch nicht, den Parameter -A zum Sichern der gesamten Datenbank zu verwenden, insbesondere bei der Migration zwischen verschiedenen Versionen. Einige Systembibliotheken können leicht unterschiedlich sein, was nach der Migration zu unbekannten Problemen führen kann. Wenn Sie mysqldump für die vollständige Migration verwenden, können Sie die folgenden Schritte ausführen:

# Die ursprüngliche Datenbankausführung ruft die Anweisung zur Datenbankerstellung ab und führt sie in der neuen Datenbank aus (ausgenommen der Systemdatenbank).
WÄHLEN
  CONCAT( 'Datenbank erstellen, wenn nicht vorhanden ', '`', Schemaname, '`', ' Standardzeichensatz ', Standardzeichensatzname, ';' ) AS CreateDatabaseQuery
 AUS
  information_schema.SCHEMATA
 WO
  SCHEMA_NAME NICHT IN ('Informationsschema', 'Leistungsschema', 'MySQL', 'Sys');

   # Die ursprüngliche Datenbank führt die erstellte Benutzeranweisung aus, die in der neuen Datenbank abgerufen wurde (ausgenommen Systembenutzer).
 WÄHLEN
  CONCAT( 'Benutzer erstellen \'', BENUTZER, '\'@\'', HOST, '\'' ' IDENTIFIZIERT DURCH PASSWORT \'', Authentifizierungszeichenfolge, '\';' ) AS CreateUserQuery
 AUS
  mysql.`Benutzer`
 WO
  `Benutzer` NICHT IN ( 'root', 'mysql.session', 'mysql.sys' );

  # Führen Sie „show grants“ in der Originaldatenbank aus, um die Benutzerberechtigungen zu erhalten, und führen Sie sie dann nacheinander in der neuen Datenbank aus (Sie können diese Berechtigungstabellen auch in die neue Datenbank kopieren).
Berechtigungen für „Testbenutzer“@„%“ anzeigen;

# Zu diesem Zeitpunkt verfügt die neue Umgebung bereits über die zu migrierenden Bibliotheken und Benutzer, aber keine Daten. # Verwenden Sie mysqldump, um alle Bibliotheken außer der Systembibliothek in der ursprünglichen Umgebung zu sichern.
 mysqldump -uroot -pxxxx -R -E --single-transaction --databases db1 db2 > db.sql

# Importieren Sie dann die neue Umgebung mysql -uroot -pxxxx < db.sql

Zum Migrieren einiger Bibliotheken und Tabellen können Sie auch eine ähnliche Lösung wie oben verwenden, die Sicherung sollte jedoch bei Bedarf erfolgen. Hier sind einige gängige mysqldump-Sicherungsszenarien:

# Sichern Sie eine einzelne Datenbank mysqldump -uroot -pxxxxx -R -E --single-transactio --databases db1 > db1.sql

# Sichern Sie einige Tabellen mysqldump -uroot -pxxxxx --single-transaction db1 tb1 tb2 > tb12.sql

# Überprüfen Sie einige Tabellen mysqldump -uroot -pxxxxx db1 --ignore-table=db1.tb1 --ignore-table=db1.tb2 > db1.sql

# Sichern Sie nur die Struktur oder die Daten mysqldump -uroot -pxxxxx testdb --no-data > testdb_jiegou.sql
mysqldump -uroot -pxxxxx testdb --no-create-info > testdb_data.sql

Im Allgemeinen ist die Verwendung von mysqldump flexibler. Für eine schnelle Migration sollten wir den Sicherungsinhalt minimieren, beispielsweise durch Ausschließen nutzloser Protokolltabellen. Für einige große Tabellen können wir auch eine separate Migrationslösung verwenden. Beispielsweise ist die Tabelle tb1 in db1 besonders groß. Wir können tb1 während der Sicherung ausschließen. Für die große Tabelle tb1 können wir die Methode LOAD DATA verwenden oder den Tabellenbereich verwerfen und dann importieren, um ihn zu migrieren.

Während des Datenmigrationsprozesses können verschiedene Fehler auftreten, die Schritt für Schritt behoben werden können. Es wird empfohlen, vor der Migration einen Benutzer in der neuen Datenbank zu erstellen und Berechtigungen zu erteilen. Dadurch können Fehler beim Importieren von Ansichten und Funktionen vermieden werden, da Ansichten und Funktionen über ein Definitionskonzept verfügen. Beim Importieren einer neuen Umgebung verwenden Sie am besten einen Administratorbenutzer mit SUPER-Berechtigungen, z. B. root, um einige durch Berechtigungen verursachte Probleme zu vermeiden.

Nach Abschluss der Migration sollten wir die neue Umgebung erneut überprüfen, z. B. ob die Anzahl der Tabellen gleich ist, einige Tabellen stichprobenartig überprüfen, ob die Daten gleich sind, ob verstümmelter Code vorhanden ist usw. Nur wenn Sie sich über alles im Klaren sind, sind Sie erfolgreich.

Zusammenfassen:

In diesem Artikel werden die Lösungen und Hinweise zur Datenmigration von MySQL-Datenbanken vorgestellt und in der folgenden Mindmap zusammengefasst:

Oben finden Sie eine detaillierte Zusammenfassung der MySQL-Datenmigration. Weitere Informationen zur MySQL-Datenmigration finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Lösen Sie das Problem des MySQL-Datenverlusts, wenn Docker Redis neu startet
  • Lösung für das Problem des Datenverlusts bei Verwendung der Ersetzungsoperation in MySQL
  • Mehrere Lösungen zur Vermeidung von MySQL-Datenverlust bei einem Serverausfall
  • Warum der Speicherplatz nach dem Löschen von Daten in MySQL nicht freigegeben wird
  • Python-Grundlagen: Bedienung einer MySQL-Datenbank
  • Erfahren Sie, wie Sie den Fehler beim Speichern chinesischer Schriftzeichen in der MySQL-Datenbank beheben können
  • Django speichert Bilder in der MySQL-Datenbank und zeigt sie auf der Front-End-Seite an
  • MyBatis Batch-Einfügen/Ändern/Löschen von MySql-Daten
  • Implementierungscode zum Speichern von Bildern in der MySQL-Datenbank und deren Anzeige auf der Front-End-Seite
  • Golang implementiert die Übermittlung und das Rollback von MySQL-Datenbanktransaktionen
  • Detaillierte Erläuterung der Rolle der Standarddatenbank nach der MySQL-Installation
  • Ursachen und Lösungen für MySQL-Datenverlust

<<:  Meta Viewport ermöglicht die Vollbildanzeige von Webseiten auf dem iPhone

>>:  Tools zum Konvertieren statischer Websites in RSS

Artikel empfehlen

Webdesign: Wenn der Titel nicht vollständig angezeigt werden kann

<br />Ich habe mir heute die neu gestaltete ...

Detaillierte Erklärung dieser Zeigerfunktion in JS

Die Pfeilfunktion ist eine neue Funktion in ES6. ...

So fügen Sie Div-Elementen abgerundete Ränder hinzu

Wie unten dargestellt: CSS- CodeInhalt in die Zwi...

Lichtschalter mit js steuern

Verwenden Sie js, um den Lichtschalter zu Ihrer R...

Tutorial zur Installation von Elasticsearch 7.6.2 in Docker

Docker installieren Sie müssen Docker installiere...

Detaillierte Erklärung des Javascript Echarts Luftqualitätskarteneffekts

Wir müssen zunächst die Luftqualitätsdaten mit de...

Schritte und Methoden zur Bindung von Domänennamen und IPs in der Alibaba Cloud

1 Rufen Sie die Alibaba Cloud-Konsole auf, suchen...

IE6-Verzerrungsproblem

Frage: <input type="hidden" name=&qu...