MySQL-schijfruimte is te klein voor Adobe Commerce op cloudinfrastructuur

Dit artikel biedt oplossingen voor problemen met erg weinig of geen ruimte voor MySQL op Adobe Commerce op cloudinfrastructuur. Symptomen zijn onder andere uitvallen van sites, klanten die geen producten aan het winkelwagentje kunnen toevoegen, die geen verbinding met de database kunnen maken, toegang hebben tot de database extern, en geen SSH in het knooppunt kunnen kiezen. Symptomen zijn onder andere Galera, Omgevingssync, PHP, Database en Implementatiefouten, zoals hieronder vermeld. Klik ​ Oplossing ​ om rechtstreeks aan de oplossingssectie te springen.

Beschrijving description

Probleem

De database wordt te groot. De symptomen kunnen onder andere het verlies van de databaseverbinding, de uploadfout voor de database en diverse andere problemen zijn.

Fouten die u kunt tegenkomen:

Galera:

  • SQLSTATE [ 08S01 ] : Communicatie verbindingsmislukking: 1047 WSREP heeft nog geen knoop voor de fouten van de Invoer van het toepassingsgebruik voorbereid:
  • SQLSTATE [ HY000 ] : Algemene fout: 1180 kreeg fout 5 "Input/output fout"
  • SQLSTATE [ 08S01 ] : Communicatie verbindingsmislukking: 1047 WSREP heeft nog geen knoop voor toepassingsgebruik voorbereid

Synchronisatiefouten omgeving:

  • SQLSTATE: Algemene fout: 1180 kreeg fout 5 "Input/output fout"tijdens BEVEL

PHP-fouten:

  • php: BOB::__construct (): MySQL server is weggegaan.
  • php fouten: BOB::__construct (): Fout terwijl het lezen van groet pakket. PID=NNNN.
  • FOUT 2013 (HY000): Verloren verbinding aan server MySQL bij "lezing aanvankelijk communicatie pakket", systeemfout: 0 "Interne fout/controle (niet systeemfout)".

Database-fouten:

  • Error_code: 1114
  • InnoDB: Fout (uit schijfruimte) die woordknoop aan FTS hulpindexlijst schrijft.
  • SQLSTATE [ HY000 ] : Algemene fout: De server van 2006 MySQL is weggegaan
  • [ ERROR ] Slave SQL: Fout "De lijst <table_name> is volledig"op vraag.
  • eenheid mysql.service ingegaan ontbroken staat.
  • fout: "Kan niet met lokale server verbinden MySQL door contactdoos "/var/run/mysqld/mysqld.sock" (111 "Verbinding geweigerd")"
  • De wachttijd voor vergrendeling van 1205 is overschreden. Probeer de transactie opnieuw te starten, de query was: INSERT INTO cron_schedule (job_code, status, created_at, scheduled_at) VALUES (?, ?, YYYY-02-07 HH:MM:SS, YYYY-MM-DD HH:MM:SS)

Implementatiefouten:

  • E: Voor de opdracht "[ "sudo", "-u", <environment name>, "bash", "-c", "/etc/platform/< omgevingsnaam > /post_deploy.sh"] " is de afsluitstatus niet gelijk aan nul gegeven 255
  • E: Het bevel "[ "ssh", u < knoopIP adres >, "sudo /usr/bin/sv -w 30 herstart plaats- <environment name> g-nginx"]"keerde niet-nul terug
  • Schema bijwerken… SQLSTATE [ HY000 ] : Algemene fout: 1114 De tabel <table_name> is vol
  • SQLSTATE [ HY000 ] : Algemene fout: 3 Fout bij het schrijven van bestand./<environment name>/#
  • W: <filename> (foutcode: 28 "Geen ruimte meer over op apparaat") Fouten indexeren (samen met zwevende tijdelijke .ibd-bestanden in /tmp):
  • de indexeerder van de Regel van de Catalogus werpt een uitzondering. De tijdelijke lijsten worden niet schoongemaakt in de nasleep en dan de schijf op de huidige MySQL hoofdknoop vullen

Stappen om te reproduceren:

Één van de manieren u kunt controleren als /data/mysql (of waar MySQL gegevensopslag wordt gevormd) volledig is door het volgende bevel in CLI in werking te stellen:

df -h

Minder dan 10% van het vrije geheugen op de schijf MySQL is een primaire indicator van een stroomstoring.

Oorzaak

De hoeveelheid /data/mysql kan vol worden als gevolg van een aantal problemen, zoals onvoldoende codes, beschikbare opslagruimte en onjuiste query's die tijdelijke tabellen genereren.

Resolutie resolution

Er is een onmiddellijke stap die u zou kunnen nemen om MySQL terug op het spoor te brengen (of het te verhinderen vastgelopen te worden): maak wat ruimte vrij door grote lijsten te spoelen.

Maar een oplossing op lange termijn zou meer ruimte en na ​ beste praktijken van het Gegevensbestand ​ toewijzen, met inbegrip van het toelaten van de ​ Orde/Factuur/het archieffunctionaliteit van het Verzending ​.

Hieronder vindt u details over zowel snelle als langetermijnoplossingen.

Inodes controleren en vrijmaken

Zorg ervoor dat er voldoende inodes beschikbaar zijn. Voer hiertoe de volgende opdracht uit:

df -i

De uitvoer ziet er ongeveer als volgt uit:

Filesystem Inodes   Used   Free Use% Mounted on/dev/nvme2n1 655360    1695  653665    1% /data/mysql

Controleer of Gebruik % < 70% is. De knooppunten zijn gecorreleerd met bestanden. Als u bestanden uit de partitie verwijdert, worden de inodes vrijgemaakt.

Opslagruimte controleren en vrijmaken

Beschikbare opslagruimte controleren. Hiervoor voert u uit:

df -k

De uitvoer zou er ongeveer als volgt uitzien:

Size Used Avail Use% Mounted on·       50G 49G 95M 100% /data/mysql

Als Gebruik % > 70% is, moet u actie ondernemen om ruimte vrij te maken of toe te voegen.

Controleren op grote ibtmp1 bestanden

Controleren op groot ibtmp1 bestand op /data/mysql van elk knooppunt: dit bestand vormt de tabelruimte voor tijdelijke tabellen. Als er ongeldige query's zijn die tijdelijke tabellen genereren, staan deze in het ibtmp1 -bestand. Dit bestand wordt alleen verwijderd wanneer de database opnieuw wordt gestart. Als het alle beschikbare ruimte in beslag neemt, moet de database opnieuw worden gestart. Als er slechte vragen zijn, zal het opnieuw worden ontspannen.

Grote tabellen uitvouwen

Waarschuwing : Wij adviseren sterk het creëren van een gegevensbestandsteun alvorens om het even welke manipulaties uit te voeren en hen tijdens de hoge periodes van de plaatslading te vermijden. Zie ​ Dump uw gegevensbestand ​ in onze ontwikkelaardocumentatie.

Controleer of er grote tabellen zijn en of een van deze tabellen kan worden verwijderd. Doe dit op het primaire (bron) knooppunt.

Tabellen met rapporten kunnen bijvoorbeeld meestal worden verwijderd. Voor details op hoe te om grote lijsten te vinden, zie ​ Groot MySQL- lijsten ​ artikel vinden.

Als er geen grote rapporttabellen zijn, kunt u _index -tabellen leegmaken, gewoon om de Adobe Commerce-toepassing weer op schema te krijgen. index_price -tabellen zijn de beste kandidaten. Bijvoorbeeld catalog_category_product_index_storeX tabellen, waarin X waarden kan hebben van "1" tot het maximale aantal winkels. Onthoud dat u opnieuw moet indexeren om gegevens in deze tabellen te herstellen. In het geval van grote catalogi kan het veel tijd kosten om de gegevens opnieuw te indexeren.

Wacht tot de software volledig is gesynchroniseerd nadat u deze hebt verwijderd. U kunt steunen nu tot stand brengen en belangrijkere stappen nemen om meer ruimte toe te voegen, als het toewijzen van/het kopen van meer ruimte en het toelaten van ​ functionaliteit van het archiefarchief 0} van de Orde/van de Rekening/van de Verzending.

Instellingen voor binaire logboekregistratie controleren

Controleer de binaire logboekinstellingen voor MySQL-servers: log_bin en log_bin_index . Als de instellingen zijn ingeschakeld, kunnen de logbestanden enorm worden. ​ creeer een steunkaartje ​ verzoekend om grote binaire logboekdossiers te zuiveren. Vraag ook om te controleren of de binaire logboekregistratie correct wordt geconfigureerd, zodat logbestanden regelmatig worden gewist en niet te veel ruimte in beslag nemen.

Als u geen toegang hebt tot MySQL-serverinstellingen, vraagt u om ondersteuning om deze te controleren.

Ongebruikte toegewezen schijfruimte vrijmaken

  1. SSH in knoop één en login aan MySQL:

    mysql -h127.0.0.1 -p php - r "echo (omvat ("app/etc/env.php") [ "db "] [ "verbinding"] [ "gebrek"] [ "wachtwoord"];" -u kinami ``kinami"

    Voor gedetailleerde stappen, verwijs naar ​ verbinden en stel vragen tegen het gegevensbestand van Adobe Commerce ​ in werking.

  2. Controleren op ongebruikte ruimte:

    code language-none
    SELECT table_name, round((data_length+index_length)/1048576,2) AS size_MB, round((data_free)/1048576,2) AS Allocated_but_unused FROM information_schema.tables WHERE data_free > 1048576*10 ORDER BY data_free DESC;
    Example output:
    
    table 0-row-3 1-row-3
    table_name size_MB Toegewezen_maar_ongebruikt
    sales_order_grid 28145,20 14943,00

    Controleer de uitvoer om te zien of er geheugen is toegewezen maar dat niet wordt gebruikt. Dit gebeurt wanneer gegevens uit een tabel zijn verwijderd, maar het geheugen nog steeds aan die tabel is toegewezen.

  3. Plaats uw site in de onderhoudsmodus en stop de taken voor uitsnijden zodat er geen interactie plaatsvindt in de database. Voor stappen, verwijs naar ​ toelaten of onbruikbaar maken onderhoudswijze ​ en ​ maak kanonnen banen ​ onbruikbaar.

  4. Wis die ruimte door de tabel opnieuw te maken met de volgende opdracht (gebruik de bovenstaande tabel met de meest ongebruikte ruimte):

    ALTER TABLE sales_order_grid Engine = "INNODB";

  5. Stel de volgende vraag in werking om voor niet toegewezen ruimte voor elke lijst te controleren die een hoge waarde binnen de kolom Allocated_but_unused toont.

    SELECT table_name, round((data_length+index_length)/1048576,2) as size_MB, round((data_free)/1048576,2) as Allocated_but_unused FROM information_schema.tables WHERE 1 AND data_free > 1048576*10 ORDER BY       data_free DESC;

  6. Nu ​ maak onderhoudswijze ​ onbruikbaar en ​ laat kanonnen banen ​ toe.

Meer ruimte toewijzen/kopen

Wijs meer schijfruimte toe voor MySQL als u wat ongebruikt hebt. Zie het ​ de grens van de schijfruimte van de Controle ​ artikel leren hoe te om te controleren als u vrije schijfruimte hebt.

  • Voor het plan van de Aanzet, alle milieu's, en de milieu's van de Integratie van het Pro plan, kunt u de schijfruimte toewijzen als u wat ongebruikt hebt. Voor details, zie ​ meer ruimte voor MySQL ​ toewijzen.
  • Voor Pro plan het Opvoeren en de milieu's van de Productie, ​ contactsteun ​ om meer schijfruimte toe te wijzen als u wat ongebruikt hebt.
  • Als u uw ruimtelimiet hebt bereikt en nog steeds weinig ruimte hebt, kunt u overwegen meer schijfruimte te kopen. Neem contact op met uw Adobe-accountteam voor meer informatie.

Gerelateerde lezing

​ Beste praktijken voor het wijzigen van gegevensbestandlijsten ​ in het Playbook van de Implementatie van Commerce

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f