AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Wie kann ich den Fehler „MySQL HA_ERR_RECORD_FILE_FULL“ beheben, wenn ich Amazon RDS für MySQL verwende?
Wenn ich an eine Amazon Relational Database Service (Amazon RDS) für MySQL DB-Instance oder Read Replicas schreibe, erhalte ich einen Fehler. Auf der Amazon RDS für MySQL DB-Instance erhalte ich Folgendes: „ERROR 1114 (HY000): The table 'Table Name' is full.“ Bei Read Replicas erhalte ich im Feld Last_Error von „show slave status“ (Amazon RDS for MySQL 5.7) oder „show replica status“ (Amazon RDS for MySQL 8.0) Folgendes: „Error_code: 1114; handler error HA_ERR_RECORD_FILE_FULL“
Kurzbeschreibung
Diese Fehler treten bei Read Replicas auf, die dazu führen, dass die Replikation fehlschlägt, oder wenn die Tabelle, in die die Daten geschrieben werden, voll ist. Die folgenden Probleme verursachen diesen Fehler ebenfalls:
- Die Tabelle, die die Fehlermeldung sendet, ist eine MEMORY-Engine-Tabelle und erreicht ihre maximale Größe.
- Die Tabelle ist eine MyISAM-Engine-Tabelle und hat die maximale Zeigergröße erreicht.
- Die Tabelle verwendet die InnoDB-Engine und die InnoDB-Tablespace-Datei ist voll.
- Die Amazon RDS-DB-Instance hat nicht genügend Speicherplatz.
- Die Tabelle erreicht die Dateigrößenbeschränkung.
Weitere Informationen findest du unter Unterstützte Speicher-Engines für RDS für MySQL.
Lösung
Die MEMORY-Engine-Tabelle hat ihre maximale Größe erreicht
Um zu bestätigen, dass die MEMORY-Engine-Tabelle ihre maximale Größe erreicht hat, führe einen Befehl aus, der dem folgenden Beispiel ähnelt:
mysql> show table status from database_name like <YourTableName>\G
Wenn der Wert von data_length in der Ausgabe größer als der Wert von max_data_length ist, hat die Tabelle ihre maximale Größe erreicht.
Um diesen Fehler zu beheben, erhöhe die Größe des Parameters max_heap_table_size in der benutzerdefinierten Parametergruppe, die deiner DB-Instance zugeordnet ist. Weitere Informationen findest du unter Erstellen einer DB-Parametergruppe in Amazon RDS. Überschreite nicht das Speicherlimit der DB-Instance-Klasse, das auf der von dir verwendeten DB-Instance-Klasse basiert.
Die MyISAM-Engine-Tabelle hat die maximale Zeigergröße erreicht
Um zu bestätigen, dass die MyISAM-Engine-Tabelle die maximale Zeigergröße erreicht hat, führe einen Befehl ähnlich dem folgenden aus:
mysql> show table status from database_name like <YourTableName>\G
Um diesen Fehler zu beheben, verwende den Befehl ALTER TABLE, um die maximale Größe der vorhandenen Tabelle zu ändern:
mysql> ALTER TABLE tbl_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=nnn;
Optional kannst du die Standardgrößenbeschränkung für alle MyISAM-Tabellen ändern. Stelle dann den Parameter myisam_data_pointer_size in deiner benutzerdefinierten DB-Parametergruppe auf einen höheren Wert ein.
Die InnoDB-Tablespace-Datei ist voll
Die maximale Tablespace-Größe für eine InnoDB-Tabelle beträgt vier Milliarden Seiten (16 TB). Du kannst Tabellen für Tabellen, die größer als 1 TB sind, in mehrere Tablespace-Dateien partitionieren. Partitioniere deine Tabelle je nach Anwendungsfall nach RANGE, LIST und HASH. Kürze beispielsweise die alten Daten auf der Grundlage des Jahres, in dem du sie erstellt hast, oder erstelle separate Partitionen für jedes Jahr. Weitere Informationen findest du unter MySQL-Dateigrößenbeschränkungen in Amazon RDS und in der MySQL-Dokumentation zur Partitionierung.
Wichtig: Bevor du Änderungen in einer Produktionsumgebung implementierst, teste gründlich, welche Auswirkungen die Partitionierung auf deine Anwendung haben könnte.
Um eine vorhandene Tabelle in eine partitionierte Tabelle zu konvertieren, verwende eine „ALTER TABLE“-Anweisung, die dem folgenden Beispiel ähnelt:
ALTER TABLE table_name PARTITION BY HASH(id) PARTITIONS 8;
Hinweis: Wenn du eine vorhandene Tabelle in eine partitionierte Tabelle konvertierst, stelle den für den InnoDB-Tablespace zugewiesenen Speicherplatz nicht wieder her. Informationen zur Wiederherstellung des InnoDB-Speicherplatzes findest du unter Warum verwendet meine Amazon RDS für Oracle DB-Instance mehr Speicher als erwartet?
Die Amazon RDS-DB-Instance hat nicht genügend Speicherplatz
Wenn sich die Amazon RDS-DB-Instance im Status STORAGE_FULL befindet, erhältst du den Fehler „HA_ERR_RECORD_FILE_FULL“. Um diesen Fehler zu beheben, füge deiner DB-Instance mehr Speicherplatz hinzu.
Optional kannst du die Amazon CloudWatch FreeStorageSpace-Metrik verwenden, um den verfügbaren Speicherplatz zu überwachen. Du kannst auch die Amazon RDS-Ereignisbenachrichtigung über geringen Speicherplatz abonnieren. Dadurch wirst du benachrichtigt, wenn deine DB-Instance mehr als 90 % des zugewiesenen Speichers verbraucht.
Die Tabelle hat die Dateigrößenbeschränkung erreicht
**Hinweis:**Für einige bestehende DB-Instances gilt ein niedrigeres Limit. Beispielsweise haben MySQL-DB-Instances, die vor April 2014 erstellt wurden, eine Datei- und Tabellengrößenbeschränkung von 2 TB. Diese Dateigrößenbeschränkung von 2 TB gilt auch für DB-Instances oder Read Replicas, die aus DB-Snapshots erstellt wurden, die vor April 2014 aufgenommen wurden. Die Beschränkung gilt unabhängig davon, wann du die DB-Instance erstellt hast.
Wenn du eine DB-Instance mit einer niedrigeren Größenbeschränkung hast, verwende mysqldump, um einen MySQL-Dump deiner Daten zu erstellen. Importiere dann die Daten in eine neue DB-Instance mit einer höheren Beschränkung.
Ähnliche Informationen
Wie behebe ich Probleme, die auftreten, wenn den Amazon RDS-DB-Instances der Speicherplatz ausgeht?
- Sprache
- Deutsch
