This page has been translated from Spanish

...::: Guatewireless.org ::::..

Teknologi, Software Libre, Guatemala, Open Source, Linux, Wireless, WiFi, Scripting, Debian, Cent, Gentoo, RedHat, SuSE, Windows

MySQL: Tabellen er full feil - løst

Bortsett fra mine vanlige oppgaver, er jeg også DBA (database administrator) og tillitsverv i det siste har jeg vært correguir feilsøke feil og MySQL. Alt startet med problemet beskrevet nedenfor:

Blant alle våre databaser, det er ett spesielt som håndterer et gjennomsnitt på 40k transaksjoner per dag. Denne databasen kjører på MySQL som har en tabell som allerede overstiger de 21 millioner plater, noe som gjør har det 4 GB med informasjon.

For størrelsen sin, viste denne feilen MyISAM bord Tabellen er full, som ved første vi tenkte vi kunne være begrensninger 2.4.x kernel ext2 filsystem (hvis det er en Red Hat Linux 9).

MySQL's 4GB Limit

Den MySQL feil, er bordet fullt er en melding som vises når en tabell når 4GB i størrelse, virkelig undervurderte effekten, som de er veldig få programmer som kan overstige dette beløpet av data. Men når vi har samlet våre tjenester og vår database server MySQL slutter å fungere, er et stort problem.

Det anbefales å gjøre en god analyse og design av databasen vår, slik at dette ikke skjer. Men noen ganger er det vanskelig å forestille seg at en tabell kan inneholde 21 millioner poster i to år.

InnoDB tabeller har ikke denne begrensningen fordi bagasje modell er helt annerledes. I en MyISAM bord med dynamisk eller variabel lengde rader, indeksfilen av tabellen (nombre_tabla.MYI) rader lagret bruker 32-bits pekeren i datafilen (nombre_tabla.MYI). Dette har en grense på 4 GB lagringsplass.

Husk at de fleste datamaskiner er 32bit siden teknologier som 64-bits AMD Opteron-prosessorer har også støtte for 32bit.

Løse problemet med bordet er fullt

Løsningen på bordet er fullt er ikke veldig dicil, akkurat nok til å kjøre ALTER TABLE-kommandoen, men det kan ta lang tid. Vurder eksempel på skapningen tabellen Sleeve Length:

  mysql> beskrive skapning; 
  +-----------------+-----------------------+------+ -----+---------+----------------+ 
  | Field          | Type                 | Null | Key | Default | Extra         | 
  +-----------------+-----------------------+------+ -----+---------+----------------+ 
  | Guide           | int (10)     unsigned | NoA | PRI | NULL  | auto_increment | 
  | Ida             | mediumint (8) unsigned | NoA | MUL | 0A      |                | 
  | Kart            | smallint (5) unsigned | NoA | MUL | 0A      |                | 
  | SpawnMask      | tinyint (3) unsigned  | NoA |     |   1A    |                | 
  | Modeller        | mediumint (8) unsigned | NoA |     | 0A      |                | 
  | Equipment_id   | mediumint (9)          | NoA |     | 0A      |                | 
  | Position_x     | float                | NoA |     | 0A      |                | 
  | Position_y     | float                | NoA |     | 0A      |                | 
  | Position_z     | float                | NoA |     | 0A      |                | 
  | Orientering A A A | float                | NoA |     | 0A      |             A A A | 
  | Spawntimesecs  | int (10)     unsigned | NoA |     | 120A    |                | 
  | Spawndist      | float                | NoA |     | A 5A     |                | 
  | Currentwaypoint | mediumint (8) unsigned | NoA | Â Â Â Â | 0A Â Â Â Â Â | Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | 
  | Curhealth      | int (10)     unsigned | NoA |     |   1A    |                | 
  | Curmana        | int (10)     unsigned | NoA |     | 0A      |                | 
  | DeathState     | tinyint (3) unsigned  | NoA |     | 0A      |                | 
  | MovementType   | tinyint (3) unsigned  | NoA |     | 0A      |                | 
  +-----------------+-----------------------+------+ -----+---------+----------------+ 
  17 rader i sett (0.02 sek) 


For å finne grensen for størrelsen på tabellen, bruker Vis tabell STATUS. Og merk at Max_data_length er 4 GB.

  mysql> Vis tabell STATUS LIKE 'vesen' \ G;
 *************************** 1.  rad ***************************
 Â Â Â Â Â Â Â Â Â Â Navn: skapning
 Â Â Â Â Â Â Â Â Motor: MyISAM
 Â Â Â Â Â Â Â Versjon: 10
 Â Â Â Â Row_format: Dynamisk
 Â Â Â Â Â Â Â Â Â Â Rows: 95094
 Â Avg_row_length: 46
 Â Â Â Data_length: 4382696
 Max_data_length: 281474976710655
 Â Â Index_length: 2628608
 Â Â Â Â Â Data_free: 0
 Â auto_increment: 106039
 Â Â Â Create_time: 2008-09-19 09:54:05
 Â Â Â Update_time: 2008-09-19 10:31:08
 Â Â Â Â Check_time: 2008-09-19 10:31:09
 Â Â Â Â Â Sortering: utf8_general_ci
 Â Â Â Â Â Â Checksum: NULL
 Â Create_options: row_format = DYNAMISK
 Â Â Â Â Â Â Â Kommentar: Innkalling System
 1 rad i sett (0.00 sek)

 FEIL:
 Ingen søket spesifiseres

 mysql> 



La oss løse dette ved å skrive:

  mysql> ALTER TABLE skapning AVG_ROW_LENGTH max_rows = 200000000000 = 50;
 Query OK, 0 rows affected (0.03 sekunder) 


Nå hvis vi kjører Vis tabell STATUS LIKE 'vesen' \ G, kan vi se Tanken om at den nye verdien Max_data_length: 1099511627775. Hvis ja, nå kan vi lagre mer informasjon i vår MySQL tabell.

Merk: Denne kommandoen i min maskinvare Intel (R) Xeon (TM) CPU 2.80GHz, med 2GB RAM det tar 45 minutter.

Den gode ting om dette hele opplevelsen er at vi er mer klar for å migrere vårt datasenter å støtte høy tilgjengelighet for MySQL.

Popularity: 2%



Tagged as:

Legg inn en kommentar

Vær oppmerksom på følgende:
Kommentarer er moderert, så det kan ta å bli publisert. Ingen grunn til å gjenta sin kommentar.
Din e-post vil aldri bli avslørt.

Søkeord


  • begrensninger mysql
  • inn verdier i en tabell full
  • bordene fulle av data
  • fullt bord mysql
  • eksempel på hvordan hele loggen gundbaund
  • mysql full tabell
  • mysql tabellen er full
  • mysql posten størrelse
  • Ut forberedt setninger med MySQL
  • mysql tabellen er full
  • mysql tabeller problem med over 1 million plater
  • problemer med en tabell som inneholder millioner oppføringer
  • problemer med mysql MyISAM
  • gjenopprette mysql 4 GB
  • ROW_FORMAT
  • bd gjenopprette mysql problemet i win 64
  • mysql en million poster
  • mysql tabellen er full
  • mysql bordet fullt
  • mysql bordet fullt
  • mysql row_format
  • mysql endre navn på bordet
  • mysql MAX_ROWS
  • en tabell som er fylt med 1
  • row_format = dynamisk; MyISAM
  • Vis tabell STATUS LIKE \ tabellen \
  • mysql tabellen kan støtte to millioner posten
  • Tabellen er full mysql ubuntu
  • Tabellen er full mysql InnoDB
  • MYSQL Bordstørrelse WindowsXP
  • størrelse med en mysql tabell
  • mysql bordet fullt
  • MyISAM tabeller som er større enn 4GB
  • fylt tabeller mysql
  • skapning håndterer tabeller
  • skapning tabeller
  • mysql tabell 2 millioner plater
  • mysql full tabell
  • bordet fullt av brukerdata
  • mysql tabellen er full
  • Tabellen er full
  • mysql error tabell
  • mysql viser tabellen status Bordstørrelse
  • se eksempel på en datatabell fylt
  • mysql InnoDB Data_free auto_increment
  • opprette tabellen håndterer guide
  • feil: Tabellen er full
  • feil mysql endre tabellen oppføringer
  • mysql versjon feil tabeller
  • Feil mysql database full
  • ingregar data feil MYSQL Feil
  • Eksempler på en feil tabell
  • Modellen eksempel på statisk på MyISAM bord
  • eksempel på hvordan full registrering Gunbound
  • der under full database
  • skapning sleeve boards
  • lage indeks full tabell
  • kjøre mysql tabeller
  • som en tabell full
  • som å trykke en million poster i mysql