Hi guys,

 I've got a weirdo problem with replicating a database. Sometimes I get
some duplicate keys problems for _only_ one table. There is nothing
special about this table, it looks like:

+----------+--------------------------------------+------+-----+---------+----------------+
| Field    | Type                                 | Null | Key | Default |
Extra          |
+----------+--------------------------------------+------+-----+---------+----------------+
| id       | int(10) unsigned                     |      | PRI | NULL    |
auto_increment |
| dialer   | int(10) unsigned                     | YES  |     | NULL    |
|
| uid      | int(10) unsigned                     |      |     | 0       |
|
| action   | enum('REGENERATE','CREATE','DELETE') | YES  |     | NULL    |
|
| acc_no   | int(10) unsigned                     | YES  |     | NULL    |
|
| template | int(10) unsigned                     | YES  |     | NULL    |
|
| name     | varchar(20)                          | YES  |     | NULL    |
|
| status   | enum('OKAY','ERROR')                 |      |     | OKAY    |
|
+----------+--------------------------------------+------+-----+---------+----------------+


 And data is inserted into it with simple inserts, w/o specifing the id
(it's autoincrementing).

 With a little debugging, I have located the problem. If I run 'alter
table xxx auto_increment=1' on both the master and the slave (this table
is empty at the time on both machines), and then I insert datas into the
master, they look like:

 On master:

+----+--------+------+------------+--------+----------+---------------+--------+
|  1 |      3 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
|  2 |      4 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
|  3 |      5 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
|  4 |      6 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
|  5 |     13 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
|  6 |     14 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
|  7 |     18 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
|  8 |     19 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
|  9 |     20 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
| 10 |     21 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
+----+--------+------+------------+--------+----------+------+--------+

 But on slave it looks like:

+----+--------+------+------------+--------+----------+------+--------+
| id | dialer | uid  | action     | acc_no | template | name | status |
+----+--------+------+------------+--------+----------+------+--------+
| 10 |      3 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
| 11 |      4 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
| 12 |      5 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
| 13 |      6 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
| 14 |     13 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
| 15 |     14 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
| 16 |     18 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
| 17 |     19 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
| 18 |     20 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
| 19 |     21 | 1007 | REGENERATE |   NULL |     NULL | NULL | OKAY   |
+----+--------+------+------------+--------+----------+------+--------+


 Why does it start on the id=10 on the slave? Of course, this is the
cause for the replication failures later on, because datas are deleted on
the master with 'delete from xxx where id=3', for example, action which
doesn't delete anything on the slave (because there is no id=3 entry),
thus inconsistency.

 I'm using 4.0.13 on both machines.

 Thanks,
 bogdan




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to