Kyle Hayes wrote: > > I found yesterday (at the advice of this list) that adding an occasional > > call to "FLUSH TABLES" fixed my corruption problems. I would do that right > > before the disconnect or program exit. > > What kernel are you using? Some of the 2.4 series have... odd... behavior > with regards to caching.
Linux host 2.2.19 #6 SMP Wed Jul 11 10:55:03 PDT 2001 i686 unknown 2GB Memory, 4 CPUs. (It happened on other systems with different kernel versions too.) > Are you using SCSI or IDE. We've run many tests with both and not had any > corruption problems unless we did something whacked like pull the power for > the machine while it was running the test. SCSI. (Had problem with different controllers on different systems) Three dual channel controllers, all the same: [bill@host ~/dev]$ cat /proc/scsi/aic7xxx/0 Adaptec AIC7xxx driver version: 5.1.33/3.2.4 Compile Options: TCQ Enabled By Default : Disabled AIC7XXX_PROC_STATS : Disabled AIC7XXX_RESET_DELAY : 5 Adapter Configuration: SCSI Adapter: Adaptec AIC-7899 Ultra 160/m SCSI host adapter Ultra-160/m LVD/SE Wide Controller Channel A at PCI 2/6/0 PCI MMAPed I/O Base: 0xf9dfa000 Adapter SEEPROM Config: SEEPROM found and used. Adaptec SCSI BIOS: Disabled IRQ: 21 SCBs: Active 0, Max Active 1, Allocated 15, HW 32, Page 255 Interrupts: 36738969 BIOS Control Word: 0xb8f8 Adapter Control Word: 0x7c5d Extended Translation: Enabled Disconnect Enable Flags: 0xffff Ultra Enable Flags: 0x0000 Tag Queue Enable Flags: 0x0000 Ordered Queue Tag Flags: 0x0000 Default Tag Queue Depth: 8 Tagged Queue By Device array for aic7xxx host instance 0: {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255} Actual queue depth per device for aic7xxx host instance 0: {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} Statistics: (scsi0:0:0:0) Device using Wide/Sync transfers at 80.0 MByte/sec, offset 31 Transinfo settings: current(10/31/1/0), goal(10/127/1/0), user(9/127/1/2) Total transfers 36738885 (18761976 reads and 17976909 writes) > What filesystem are you running? ext2. At least that is what linux sees. The disks are actually hardware raid0 winchester flashdisks. > Just running FLUSH TABLES sounds like it is only going to make the problem > less common, not fix it. Something is corrupting your indexes/data. I loaded three big tables last night with no problems (after adding the occasional $dbh->do( "FLUSH TABLES" ). Before it would happen at least once when doing a large (re)load of data. > Is the data getting mangled or the index? If myisamchk can fix the problem, That is the funny thing, I had to do a mysqldump > file; mysql <file to fix the table. myisamchk would report the table was bad, I would try to repair with -o (and just about every other level). then myisamchk would report it was good (even with -e). When I continued to load the data, it would quickly become corrupted again. Even rebuilding all of the indexes would not fix it. Running the mysqldump, mysql fixed it much better. > > it is likely that the index is the problem. MySQL will cache the index in > memory, but not the data. Thus, if you see data mangling problems and > possibly index problems, I would look at the kernel, disk etc. If you are > only see index problems, but the data looks OK, then the version of MySQL > might be a problem or maybe you have a bad build. MySQL builds more cleanly It happened with 3.23.41. > than most OSS projects, but it is a big complex beastie and can build > incorrectly without obvious errors sometimes in our experience. Bad library > versions can also be a factor. I did build/run this on a RH6.2 system. > We've run tests with 1000 hits per second on a database on a cheasy IDE drive > without a problem. We've run those tests for hours at a time with no > problems. SCSI definitely works better than IDE, but the newer IDE drives > aren't that bad anymore. They still use a lot of CPU. It is not the selects that cause the problems, it is lots of inserts. Again, it only seems to happen on large loads. I have three main tables and a large load means: mysql> select count(*) from pcm_test_header_200109; +----------+ | count(*) | +----------+ | 5844 | +----------+ 1 row in set (0.07 sec) mysql> select count(*) from pcm_test_summary_200109; +----------+ | count(*) | +----------+ | 840413 | +----------+ 1 row in set (0.04 sec) mysql> select count(*) from pcm_test_site_200109; +----------+ | count(*) | +----------+ | 7248366 | +----------+ 1 row in set (0.02 sec) mysql> Any of the three tables can have problems but it is usually the site table. > If your drives to write caching, that can be a problem if you have a power > drop. Most IDE drives (all?) will cache writes to allow the disk firmware to This is not a power or crash problem. It happens WHILE the loader is running. It could be a DBI/DBD bug. I [try to] insert all of the above records with a single database handle (connection). b. --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php