Alle erweitern | Alles ausblenden
Für ein MySQL- und MariaDB-DBMS können Sie Daten auf folgende Weise speichern:
ibdata1 ).Die Verwendung eines gemeinsam genutzten Tabellenbereichs erhöht das Risiko der Fragmentierung des Tabellenbereichs. Da es nicht möglich ist, eine SHRINK-Operation auszuführen, kann eine Datei in einem gemeinsam genutzten Tabellenbereich etwa 90 % des Speicherplatzes einnehmen. Dies wirkt sich negativ auf die Leistung des Datenträgersubsystems aus. Daher ist es sinnvoll, sich für einen Tabellenbereich für Dateien pro Tabelle zu entscheiden.
In diesem Artikel wird beschrieben, wie Sie Daten aus einem gemeinsam genutzten Tabellenbereich in einen Datei-pro-Tabelle-Tabellenbereich verschieben. Wenn das MySQL- oder MariaDB-DBMS auch von anderen Anwendungen verwendet wird, müssen Sie die Datenbanken dieser Anwendungen in den Datei-pro-Tabelle-Tabellenbereich verschieben.
Es wird empfohlen, dieses Verfahren nur auszuführen, wenn Sie ein MySQL- oder MariaDB-DBMS für den Administrationsserver verwenden.
Das Verschieben von Daten aus einem gemeinsam genutzten Tabellenbereich in einen Datei-pro-Tabelle-Tabellenbereich kann die Belastung des Festplatten-Subsystems erhöhen.
Erforderliche Vorrausetzungen
Bevor Sie beginnen, stellen Sie Folgendes sicher:
Der erforderliche Speicherplatz beträgt 150 % der aktuellen Gesamtgröße der Datenbanken (aktuelle Größe der Datei ibdata1).
Prozess
Gehen Sie wie folgt vor, um Daten aus einem gemeinsam genutzten Tabellenbereich in einen Tabellenbereich für Dateien pro Tabelle zu verschieben:
fix_tablespace.sql aus.
Sie können die Skripte fix_tablespace.sql anzeigen, indem Sie auf diese Links klicken:
Das Skript für MySQL 5.7 und MariaDB 10.1+ anzeigen
Das Skript für MySQL 8.0+ anzeigen
Sie dürfen die Skriptausführung nicht stoppen.
Wenn keine DBMS-Fehler aufgetreten sind, Sie aber die Skriptausführung beendet haben, führen Sie entweder das Skript erneut durch oder stoppen Sie die Schritte dieses Verfahrens, starten Sie den DBMS-Dienst neu und stellen Sie die Daten des Administrationsservers aus der Sicherung wieder her.
[mysqld] der Datei my.cnf den Parameter innodb_file_per_table auf 1.Die Daten werden von einem gemeinsam genutzten Tabellenbereich in einen Datei-pro-Tabelle-Tabellenbereich verschoben.
Nach oben