Fout bij herstellen van database oplossen: FOUT 1105 (HY000) - Maximale schrijfgrootte overschreden op Adobe Commerce Cloud
Wanneer het herstellen van een steun MariaDB op een cluster van Galera, kunt u de Maximum Geëxcedeerde Grootte van Schrijven ontmoeten fout toe te schrijven aan een grens van de transactiegrootte 2GB. Dit artikel biedt een stapsgewijze oplossing om de opdrachten voor back-up en herstel aan te passen en grotere transacties af te handelen, zodat het herstelproces met succes kan worden voltooid.
Beschrijving description
Omgeving
Adobe Commerce Cloud
Dit probleem doet zich voor in een MariaDB Galera-clusteromgeving.
Probleem/symptomen
Wanneer u probeert om een MariaDB gegevensbestandsteun op een cluster van Galera te herstellen, kan het proces met de volgende fout ontbreken:
FOUT 1105 (HY000) bij lijn [ specifiek lijnaantal ] : Maximum overschrijdt schrijft grootte
Oorzaak
Met de systeemvariabele wsrep_max_ws_size van de Galera-cluster wordt een maximale schrijfgrootte van 2 GB ingesteld. Als een back-up grote rijen of binaire gegevens bevat die groter zijn dan deze grootte, mislukt het herstelproces.
Resolutie resolution
U verhelpt dit probleem door het back-upproces aan te passen om grote transacties te voorkomen door de --max_allowed_packet -grootte te vergroten. Hierdoor kan de MySQL-server grotere rijen of binaire gegevens verwerken tijdens zowel back-up- als herstelbewerkingen. Vergeet niet altijd in een niet-productieomgeving te testen.
-
Identificeer de nauwkeurige oorzaak van de fout van de MySQL foutenlogboeken. Zoek naar berichten gelijkend op:
FOUT 1105 (HY000) bij lijn
[specifiek lijnaantal]: Maximum overschrijdt schrijft grootteDit bevestigt dat de fout te wijten is aan het feit dat de transactie de limiet van Galera overschrijdt.
-
Maak een nieuwe reservekopie met de parameter
--max_allowed_packetom grotere gegevensgrootten mogelijk te maken en te grote transacties te voorkomen.The --max_allowed_packetdefinieert de maximale grootte van gegevenspakketten die de server kan verwerken tijdens de communicatie met een client. Als u deze grootte verhoogt, kunt u grotere rijen of objecten verwerken, waardoor het splitsen van transacties en te grote schrijvers wordt voorkomen. Voor de meeste scenario's is--max_allowed_packet=64Mvoldoende. Pas deze waarde aan —max_allowed_packet=128M aan als uw gegevensbestand zeer grote rijen of binaire gegevens bevat. Gebruik ook compressie (bijvoorbeeld gzip) om de bestandsgrootte te verkleinen.
Voorbeeld van back-upopdracht:code language-none mysqldump -h <host> -u <username> -p <password> --single-transaction --max_allowed_packet=64M <db_name> | gzip > /tmp/<dump_name>.sql.gz -
Geef bij het herstellen van de back-up een hogere
--max_allowed_packet-waarde op om ervoor te zorgen dat deze compatibel is met de gewijzigde back-up.
Voorbeeld van de opdracht Herstellen:zcat /tmp/<dump_name>.sql.gz | sed -e 's/DEFINER[ ] *=[ ] *[ *] *\*/\*/' | mysql --host=127.0.0.1 -u <username> -p <password> -
Nadat u de back-up hebt teruggezet, controleert u of het proces zonder fouten is voltooid. Controleer logboeken om ervoor te zorgen dat er geen waarschuwingen of anomalieën aanwezig zijn.
Verwante lezing
wsrep_max_ws_size in de Variabelen van het Systeem van de Cluster Galera in documentatie MariaDB.