Toon posts:

[MySQL] Continu corrupte tables

Pagina: 1
Acties:

Verwijderd

Topicstarter
Heb een raar probleem met MySQL, dezelfde table raakt zeer vaak corrupt (index gone, error 127 op table handler etc.). Worden redelijk veel inserts in gedaan per dag (200k per dag) en om de 3 dagen is die weer corrupt.

isamchk fixt de table voor een paar dagen, droppen van de table en opnieuw createn helpt niet, server ge-upgrade van 3.x naar 4.0.13 -> geen effect, data dir naar andere HD gemoved -> geen effect.

In productie draait mysql onder linux (redhat distrib, kernel 2.4.17, ext3 fs), op m'n development omgeving heb ik geen probs (gentoo, 2.4.19 kernel). raar? help? :)

  • twiekert
  • Registratie: Februari 2001
  • Laatst online: 28-04 13:56
zelfde kernel config op de productie omgeving als op de development server compilen?

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Ik heb eerder het idee dat het een configuratie probleem is :) Meer kans op oplossing mbt kernels ed in NOS

Verwijderd

Topicstarter
zelfde kernel compilen wordt problematisch aangezien het shared hosting is en het op een server van een vriend is waar andere commerciele sites draaien. als vriendendienst vragen betalende sites plat te gooien voor een kernel recompile gaat niet werken. Andere sites hebben geen problemen maar die hebben een veel kleiner insert volume.

Ik meen me te herinneren dat er op de mysql site ooit een warning voor een bepaalde kernel was alleen kan ik daar nu niets meer over terug vinden. Daarnaast gebeurt het altijd op 1 of 2 specifieke tables, die waar juist veel insert op worden gedaan. Met een foute kernel zou je een meer random corruption verwachten?

overigens, de variables (niet relevante gestripped):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
----------------------------------------------------------+
| Variable_name                   | Value                         
+---------------------------------+-------------------------------
| back_log                        | 50                            
| binlog_cache_size               | 32768                         
| bulk_insert_buffer_size         | 8388608                       
| concurrent_insert               | ON                            
| connect_timeout                 | 5                             
| convert_character_set           |                               
| delay_key_write                 | ON                            
| delayed_insert_limit            | 100                           
| delayed_insert_timeout          | 300                           
| delayed_queue_size              | 1000                          
| flush                           | OFF                           
| flush_time                      | 0                             
| have_bdb                        | NO                            
| have_crypt                      | YES                           
| have_innodb                     | YES                           
| have_isam                       | YES                           
| have_raid                       | NO                            
| have_symlink                    | YES                           
| have_openssl                    | NO                            
| have_query_cache                | YES                           
| join_buffer_size                | 131072                        
| key_buffer_size                 | 16777216                      
| large_files_support             | ON                            
| local_infile                    | ON                            
| locked_in_memory                | OFF                           
| long_query_time                 | 10                            
| low_priority_updates            | OFF                           
| lower_case_table_names          | OFF                           
| max_connections                 | 100                           
| max_connect_errors              | 10                            
| max_delayed_threads             | 20                            
| max_heap_table_size             | 16777216                      
| max_join_size                   | 4294967295                    
| max_sort_length                 | 1024                          
| max_write_lock_count            | 4294967295                    
| myisam_max_extra_sort_file_size | 268435456                     
| myisam_max_sort_file_size       | 2147483647                    
| myisam_repair_threads           | 1                             
| myisam_recover_options          | OFF                           
| myisam_sort_buffer_size         | 8388608                       
| query_cache_limit               | 1048576                       
| query_cache_size                | 0                             
| query_cache_type                | ON                            
| skip_external_locking           | ON                            
| sort_buffer_size                | 524280                        
| table_cache                     | 64                            
| table_type                      | MYISAM                        
| thread_cache_size               | 0                             
| thread_stack                    | 196608                        
| tx_isolation                    | REPEATABLE-READ               
| tmp_table_size                  | 33554432

[ Voor 74% gewijzigd door Verwijderd op 16-07-2003 09:48 ]


  • twiekert
  • Registratie: Februari 2001
  • Laatst online: 28-04 13:56
ik meen mij iets te herinneren over insert delayed & delete statement problemen op dezelfde tabel.

maak je gebruik van insert delayed queries op die tabel ?

Verwijderd

Topicstarter
twiekert schreef op 16 July 2003 @ 10:09:
ik meen mij iets te herinneren over insert delayed & delete statement problemen op dezelfde tabel.

maak je gebruik van insert delayed queries op die tabel ?
Nope. standaard inserts zonder delay of lowprio

  • twiekert
  • Registratie: Februari 2001
  • Laatst online: 28-04 13:56
hmm vaag probleem. hoe groot is die tabel trouwens? meer dan 2gigabyte?

  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 07:15
Ik zie dat je INNODB support hebt, probeer die anders eens, die gaat heel anders om met grote tabellen met veel transacties dan myisam dat doet.

  • Hans
  • Registratie: Juni 1999
  • Niet online
ey Thies ;)

Misschien heb je in je my.cnf een aantal niet haalbare settings staan voor je hardware config waardoor mysqld threads crashen tijdens een insert op het moment dat er veel inserts zijn. Post ff de hoeveelheid geheugen die je in je box hebt zitten + de relevante vars (zoals key_buffer, sort_buffer, record_buffer, join_buffer_size, max_connections, thread_concurrency etc.)

Verder zou het kunnen dat je meerdere threads hebt die 1 record proberen te updaten (wat ook resulteert in corruptie). Misschien moet je de kritische plekken van je code voorzien van table locks (of row locks in het geval van innodb), of eens kijken naar transactions

Het stukje warning op de mysql site wat jij bedoeld is denk ik het volgende:
Compiler Advisory: Several users have reported random crashes and table corruptions when using MySQL binaries compiled with gcc 2.96 on the x86 Linux platform. We suggest that you use gcc 2.95 or gcc 2.91 to compile your own binaries. It should also be safe to use gcc 3.2.
Hoop dat je hier wat verder mee komt. Succes!
Pagina: 1