IBM Cloud Docs
Migration auf Databases for MySQL

Migration auf Databases for MySQL

Es gibt zwei Optionen für die Migration von Daten aus vorhandenen MySQL -Datenbanken auf IBM Cloud® Databases for MySQL. Es werden zwei Optionen empfohlen: mysqldump und mydumper. Das beste Tool für Sie hängt von bestimmten Bedingungen ab, einschließlich Netzverbindung, Größe Ihres Datasets und Zwischenschemaanforderungen.

Vorbereitende Schritte

Bevor Sie mit der Datenmigration beginnen, müssen Sie MySQL lokal installieren, damit Sie über die Tools mysql und mysqldump verfügen.

MySQL Workbench stellt außerdem ein grafisches Tool für die Arbeit mit MySQL-Servern und -Datenbanken bereit. Die Befehlszeilenschnittstelle (CLI) von Cloud Databases ist zwar nicht unbedingt erforderlich, ermöglicht es jedoch auch, eine Verbindung zu einer neuen Databases for MySQL-Bereitstellung herzustellen und eine Wiederherstellung in dieser Instanz vorzunehmen.

mysqldump

Dieses native MySQL-Clientdienstprogramm wird standardmäßig installiert und kann logische Sicherungen ausführen, um die Tabellenstruktur und Daten zu reproduzieren, ohne die tatsächlichen Datendateien zu kopieren. mysqldump erstellt einen Speicherauszug von einer oder mehreren MySQL-Datenbanken für die Sicherung oder Übertragung auf einen anderen MySQL-Server. Weitere Informationen finden Sie in der mysqldump-Dokumentation.

mysqldump sollte unter den folgenden Bedingungen verwendet werden:

  • Das Dataset ist kleiner als 10 GB.
  • Die Migrationszeit ist nicht kritisch und die Kosten für die Wiederholung der Migration sind gering.
  • Sie müssen keine temporären Schema- oder Datentransformationen durchführen.

Mysqldump wird nicht empfohlen, wenn eine der folgenden Bedingungen erfüllt ist:

  • Ihr Dataset ist größer als 10 GB.
  • Die Netzverbindung zwischen der Quellen-und der Zieldatenbank ist instabil oder langsam.

Führen Sie die folgenden Schritte mit dem Tool mysqldump aus:

Führen Sie mysqldump für Ihre Quellendatenbank aus, um eine SQL-Datei zu erstellen, die zum erneuten Erstellen der Datenbank verwendet werden kann. Für die Migration von mysql über die Befehlszeilenschnittstelle sind mindestens die folgenden Argumente erforderlich:

  • Hostname (Flag-h )
  • Portnummer (Flag -P )
  • Benutzername (Flag-u )
  • -- ssl-mode = VERIFY_IDENTITY (Clients benötigen eine verschlüsselte Verbindung und führen eine Prüfung anhand des Server-CA-Zertifikats und des Server-Hostnamens im zugehörigen Zertifikat durch)
  • --ssl-ca (der Pfadname der Datei der Zertifizierungsstelle (CA), die auf der Registerkarte "Endpunkte-CLI" der Seite Übersicht in der Benutzerschnittstelle zu finden ist)
  • Datenbankname
  • Ergebnisdatei (Flag -r )

Ihr CLI-Befehl sieht wie folgt aus

mysqldump -h <host_name> -P <port_number> -u <user_name> --ssl-mode=VERIFY_IDENTITY --ssl-ca=mysql.crt --set-gtid-purged=OFF -p <database_name> -r dump.sql

Verwenden Sie einen Befehl wie den folgenden, um eine Protokolldatei des mysqldump-Jobs zu generieren, die Fehler verfolgt, während er ausgeführt wird:

mysqldump -h <host_name> -P <port_number> -u <user_name> --log-error=error.log --ssl-mode=VERIFY_IDENTITY --ssl-ca=mysql.crt --set-gtid-purged=OFF -p ibmclouddb -r dump.sql

Das gleiche kann beim Import geschehen, zum Beispiel

mysql -h <host_name> -P <port_number> -u admin --ssl-mode=VERIFY_IDENTITY --ssl-ca=mysql.crt -p ibmclouddb < dump.sql > import_logfile.log

Weitere Informationen zur Verwendung der MySQL -Replikation mit GTIDs (Global Transaction Identifiers) finden Sie im Handbuch GTIDs für Failover und Scaleout verwenden im MySQL Reference Manual.

Der Befehl mysql verfügt über viele Optionen: siehe die offizielle Dokumentation und Befehlsreferenz für eine umfassendere Ansicht seiner Funktionalität.

Ausgabe von mysqldump wiederherstellen

Die resultierende Ausgabe von mysqldump kann dann in eine neue Databases for MySQL-Bereitstellung hochgeladen werden. Da die Ausgabe in SQL verfasst ist, kann sie einfach über den Befehl mysql an die Datenbank gesendet werden. Es wird empfohlen, Importe über den Benutzer mit Administratorberechtigung auszuführen.

Details zum Herstellen einer Verbindung als Administrator mit mysqlfinden Sie in der Verbindung mit mysql herstellen -Dokumentation. Für die Verbindung mit dem Befehl mysql benötigen Sie die Verbindungszeichenfolge des Benutzers mit Administratorberechtigung und das TLS-Zertifikat, die beide in der Benutzerschnittstelle zu finden sind. Das Zertifikat muss aus Base64 entschlüsselt und als beliebige lokale Datei gespeichert werden. Um die zuvor erstellte dump.sql in eine Datenbankbereitstellung namens example-mysql zu importieren, kann der mysql-Befehl mit -f dump.sql als Parameter aufgerufen werden. Der Parameter weist mysql an, die SQL-Anweisungen in der Datei zu lesen und auszuführen.

Wie in der Dokumentation Verbindung zu mysql herstellen erwähnt, vereinfacht das Cloud Databases-CLI-Plug-in die Verbindung. Der vorherige mysql -Import kann mit einem Befehl wie dem folgenden ausgeführt werden:

mysql -h <host_name> -P <port_number> -u admin --ssl-mode=VERIFY_IDENTITY --ssl-ca=mysql.crt -p ibmclouddb < dump.sql

Wenn kein Benutzer angegeben wird, verwendet der Befehl automatisch den Benutzer mit Administratorberechtigung und fordert interaktiv zur Eingabe des Kennworts auf. Das TLS-Zertifikat wird automatisch abgerufen und verwendet.

Während der Wiederherstellungsprozess ausgeführt wird, wird eine Reihe von Nachrichten bezüglich der Änderungen ausgegeben, die an der Datenbankbereitstellung vorgenommen werden.

mydumper

mydumper und das zugehörige logische Backup-Tool myloader verwenden Multithreading-Funktionen, um eine Datenmigration durchzuführen, die derjenigen von mysqldump ähnelt; mydumper bietet jedoch viele Verbesserungen wie parallele Backups, konsistente Lesevorgänge und eine einfachere Verwaltung der Ausgabe. Parallelität ermöglicht eine bessere Leistung während des Import-und Exportprozesses, während die Ausgabe einfacher zu verwalten sein kann, da einzelne Tabellen in separate Dateien geschrieben werden.

mydumper kann unter den folgenden Bedingungen verwendet werden:

  • Das Dataset ist größer als 10 GB.
  • Die Netzverbindung zwischen Quellen-und Zieldatenbanken ist schnell und stabil.
  • Sie müssen temporäre Schema-oder Datentransformationen durchführen.

Die Verwendung von mydumper wird nicht empfohlen, wenn eine der folgenden Bedingungen erfüllt ist:

  • Ihre Datei ist kleiner als 10 GB.
  • Die Netzverbindung zwischen der Quellen- und der Zieldatenbank ist instabil oder sehr langsam.

Bevor Sie mit der Migration Ihrer Daten mit mydumper beginnen, lesen Sie zunächst die Details und schrittweisen Anleitungen zur Installation und zur erforderlichen Entwicklerumgebung im mydumper-Projekt.

Als Nächstes finden Sie auf der Seite Verwendung von mydumper Informationen zur Verwendung der Tools 'mydumper' und 'myloader ' für eine vollständige Datenmigration.

Konfigurierbare InnoDB-Variablen optimieren

Sie können die folgenden MySQL InnoDB-Optionen konfigurieren, um die Leistung basierend auf der Maschinenkapazität und Datenbankworkload zu optimieren.

innodb_buffer_pool_size_percentage

  • Beschreibung: Der Parameter innodb_buffer_pool_size_percentage value definiert die Menge des dedizierten Hauptspeichers Ihres Datenbankcontainers.
  • Standardeinstellung: 50
  • Max.: 100
  • Min.: 10
  • Neustart erforderlich: Ja

Da Ihre Datenbank selbst eine bestimmte Speichermenge benötigt, kann der Speicherbedarf Ihrer Datenbank + innodb_buffer_pool_size_percentage bei einer zu hohen Konfiguration des Parameters innodb_buffer_pool_size_percentage value die Grenzen des verfügbaren Speichers überschreiten, was zu einem "Out of Memory"-Status (OOM) führt.

Der Wert des Parameters innodb_buffer_pool_size_percentage hängt von der Größe Ihrer Datenbank ab. Der Standardwert ist 50%, was für Datenbanken jeglicher Größe eine gute Wahl ist. Konfigurieren Sie den Wert nach Bedarf. Wenn Sie OOM finden, ist der Wert zu hoch und Sie sollten ihn verringern.

innodb_flush_log_at_trx_commit

  • Beschreibung: Steuert die Balance zwischen strikter ACID-Konformität für Festschreibungsoperationen und höherer Leistung.

  • Standardeinstellung: 2

Die Standardeinstellung 2 ist nicht vollständig ACID-konform (für eine vollständige ACID-Konformität ist die Standardeinstellung 1 erforderlich), aber sie ist leistungsfähiger und dennoch sicher.

  • Max.: 2
  • Min.: 0
  • Neustart erforderlich: Nein

Weitere Informationen finden Sie unter Dokumentation zu MySQL innodb_flush_log_at_trx_commit.

innodb_log_buffer_size

  • Beschreibung: Die Größe des Puffers in Byte, den InnoDB verwendet, um Daten in die Protokolldateien auf der Platte zu schreiben.
  • Standardeinstellung: 32 MiB
  • Max.: 4294967295
  • Min.: 1048576
  • Neustart erforderlich: Ja

Weitere Informationen finden Sie unter Dokumentation zu MySQL innodb_log_buffer_size.

innodb_log_file_size

  • Beschreibung: Die Größe der InnoDB-Protokolldatei in Byte.
  • Standardeinstellung: 64 MB
  • Max.: 274877906900
  • Min.: 4194304
  • Neustart erforderlich: Ja

Weitere Informationen finden Sie unter MySQL innodb_log_file_size-Dokumentation.

innodb_lru_scan_depth

  • Beschreibung: Ein Parameter, der die Algorithmen und Heuristik für die Flushoperation für den InnoDB-Pufferpool beeinflusst.
  • Standardeinstellung: 1024
  • Max.: kein Maximalwert
  • Min.: 100
  • Neustart erforderlich: Ja

Weitere Informationen finden Sie unter MySQL innodb_lru_scan_depth-Dokumentation.

innodb_read_io_threads

  • Beschreibung: Die Anzahl der E/A-Threads für Leseoperationen in InnoDB.
  • Standardeinstellung: 4
  • Max.: 64
  • Min.: 1
  • Neustart erforderlich: Ja

Weitere Informationen finden Sie unter Dokumentation zu MySQL innodb_read_io_threads.

innodb_write_io_threads

  • Beschreibung: Die Anzahl der E/A-Threads für Leseoperationen in InnoDB.
  • Standardeinstellung: 4
  • Max.: 64
  • Min.: 1
  • Neustart erforderlich: Ja

Weitere Informationen finden Sie unter Dokumentation zu MySQL innodb_write_io_threads.

net_read_timeout

  • Beschreibung: Die Anzahl der Sekunden, die auf weitere Daten aus einer Verbindung gewartet wird, bevor der Lesevorgang abgebrochen wird.
  • Standardeinstellung: 30
  • Max.:
  • Min.: 1
  • Neustart erforderlich: Ja

Weitere Informationen finden Sie unter Dokumentation zu MySQL net_read_timeout.

net_write_timeout

  • Beschreibung: Die Anzahl der Sekunden, die auf das Schreiben eines Blocks in eine Verbindung gewartet wird, bevor der Schreibvorgang abgebrochen wird.
  • Standardeinstellung: 60
  • Max.:
  • Min.: 1
  • Neustart erforderlich: Ja

Weitere Informationen finden Sie unter net_write_timeout -Dokumentation.