[prev in list] [next in list] [prev in thread] [next in thread]
List: mysql
Subject: I'm a Lousy Programmer (was Re: Phantom Row)
From: Van <vanboers () server ! dedserius ! com>
Date: 1999-08-04 5:56:58
[Download RAW message or body]
Thanks to Benjamin for some obvious suggestions I was just too tired to
pay attention to and notice. # 1, not shutdown-ing the mysqld before
the isamchk. I guess I thought this was a little much since I'm the
only user to this dbase, and figured a flush-tables would suffice.
I believe the culprit here is in my insert in the php3 application.
I'll have to deal with this later. For now, I have a bunch of checks to
write. >:(
Van out.
Benjamin Pflugmann wrote:
>
> Hi.
>
> On Wed, Aug 04, 1999 at 12:59:49AM -0400, you wrote
> [...]
> > > Now about the corrupted table:
> > >
> > > You did not mention how you replicated the database on the second
> > > server, by copying the binary files or by dumping and inserting SQL
> > > statements? If you copied the binary data and something was corrupt,
> > > the replicated database will also be corrupt, of course.
> > mysqldump -u -p -hotherhost dbase | \
> > mysql -u -p dbase
>
> Well, this is just as I suggested further below, so it should have
> created a fresh new table, where there is no relation to the
> (eventually) corrupted one. I suggest, you forget about that idea with
> the spreadsheet import/export, that will not help any more than a
> dump. :-(
>
> > Thanks, mucho Benjamin. You've given me a little perspective. I'm
> > getting data in there and getting it to stay, but, I have to do a
> > mysqladmin refresh after every insert. Not good. There's something
> > wrong in there.
>
> Another thing just hit me: You are not running isamchk while mysqld is
> running, are you? If this is the case, you will quite sure run into
> problems:
>
> If --skip-locking is enabled (which is the default on some systems,
> e.g. Linux), isamchk cannot tell mysqld that it is working on the
> tables, therefore mysqld will do everything like it wants just while
> isamchk is running, which will confuse both mysqld and isamchk and you
> might get improper messages and warning and in the worst case, even
> corrupted files (if one of both writes anything).
>
> With isamchk -R1,R2 you *have* to take mysqld down or do flush tables
> before (and better is to call it afterwards, too) you run isamchk,
> since it will change the tables and you have to inform mysqld about
> the change.
>
> The manual says the following about this matter:
> ------------------------------------------------------------
> 13 Using isamchk for table maintenance and crash recovery
>
> [...]
> If you run mysqld with --skip-locking (with is default on some
> systems, like Linux), you can't reliably use isamchk to check a table
> when the mysqld is using the same table. If you can be sure that no
> one is accessing the tables through mysqld while you run isamchk, you
> only have to do mysqladmin flush-tables before you start checking the
> tables. If you can't guarantee the above, then you have to take down
> mysqld while you check the tables. If you run isamchk while mysqld is
> updating the tables, you may get a warning that a table is corrupt
> even if it isn't.
>
> If you are not using --skip-locking, you can use isamchk to check
> tables at any time. While you do this, all clients that try to update
> the table will wait until isamchk is ready before continuing.
>
> If you use isamchk to repair/optimize tables, you MUST always ensure
> that the mysqld server is not using the table (this also applies if
> you are using --skip-locking). If you don't take down mysqld you
> should at least do a mysqladmin flush-tables before you run isamchk.
> ------------------------------------------------------------
>
> Bye,
>
> Benjamin.
>
--
=========================================================================
Linux rocks!!! http://www.dedserius.com
=========================================================================
---------------------------------------------------------------------
Please check "http://www.mysql.com/Manual_chapter/manual_toc.html" before
posting. To request this thread, e-mail mysql-thread9293@lists.mysql.com
To unsubscribe, send a message to the address shown in the
List-Unsubscribe header of this message. If you cannot see it,
e-mail mysql-unsubscribe@lists.mysql.com instead.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic