Bonjour à tous

J'ai mis en place une réplication entre plusieurs serveurs et donc réparti mes différentes bases.
J'ai donc un master avec base1, base2 et base3.

Sur le premier slave, j'ai base1 et base2. La réplication fonctionne très bien.
Sur le second slave, j'ai donc mis base3. Et là, j'ai l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
55
56
57
58
59
60
MariaDB [(none)]> show slave status\G;
*************************** 1. row ***************************
                Slave_IO_State: Waiting for master to send event
                   Master_Host: 192.168.0.23
                   Master_User: replica
                   Master_Port: 3306
                 Connect_Retry: 10
               Master_Log_File: mysql-bin.000310
           Read_Master_Log_Pos: 1044134311
                Relay_Log_File: mysqld-relay-bin.000002
                 Relay_Log_Pos: 3511885
         Relay_Master_Log_File: mysql-bin.000310
              Slave_IO_Running: Yes
             Slave_SQL_Running: No
               Replicate_Do_DB:
           Replicate_Ignore_DB: base1,base2
            Replicate_Do_Table:
        Replicate_Ignore_Table:
       Replicate_Wild_Do_Table:
   Replicate_Wild_Ignore_Table:
                    Last_Errno: 1032
                    Last_Error: Could not execute Update_rows event on table base3.testor; Can't find record in 'testor', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000310, end_log_pos 786074660
                  Skip_Counter: 1000000
           Exec_Master_Log_Pos: 786074133
               Relay_Log_Space: 240784999
               Until_Condition: None
                Until_Log_File:
                 Until_Log_Pos: 0
            Master_SSL_Allowed: No
            Master_SSL_CA_File:
            Master_SSL_CA_Path:
               Master_SSL_Cert:
             Master_SSL_Cipher:
                Master_SSL_Key:
         Seconds_Behind_Master: NULL
 Master_SSL_Verify_Server_Cert: No
                 Last_IO_Errno: 0
                 Last_IO_Error:
                Last_SQL_Errno: 1032
                Last_SQL_Error: Could not execute Update_rows event on table base3.testor; Can't find record in 'testor', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000310, end_log_pos 786074660
   Replicate_Ignore_Server_Ids:
              Master_Server_Id: 1
                Master_SSL_Crl:
            Master_SSL_Crlpath:
                    Using_Gtid: No
                   Gtid_IO_Pos:
       Replicate_Do_Domain_Ids:
   Replicate_Ignore_Domain_Ids:
                 Parallel_Mode: optimistic
                     SQL_Delay: 0
           SQL_Remaining_Delay: NULL
       Slave_SQL_Running_State:
              Slave_DDL_Groups: 0
Slave_Non_Transactional_Groups: 0
    Slave_Transactional_Groups: 0
1 row in set (0.000 sec)
 
ERROR: No query specified
 
MariaDB [(none)]>

J'ai passé moults fois les commandes : stop slave; set global sql_slave_skip_counter=1; start slave; mais sans réussite.

Le dump que j'ai utilisé pour base3 est de ce matin, comme celui de base1 et base2 que j'ai importé.
J'ai lu qu'il devait y avoir une désynchronisation, mais ca n'expliquerait pas pourquoi base2 qui fait presque la même taille que base3 passe sans souci.

Dans mon fichier /etc/mysql/my.cnf, j'ai les options suivantes :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
[mysqld]
server-id              = 2
log_bin                = /var/log/mysql/mysql-bin.log
skip-log-bin
expire_logs_days        = 4
max_binlog_size        = 100M
#binlog_do_db           = base3
binlog_ignore_db       = base1
binlog_ignore_db       = base2
slave_parallel_threads=2
slave_parallel_mode=optimistic

(j'avais avant modif les options
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
replicate_ignore_db=base1
replicate_ignore_db=base2
)

=> quelle est la différence d'ailleurs entre binlog_do_db et replicate_do_db ? Sachant que côté master, j'ai l'option binlog_do_db.

J'ai en plus une centaine de fichier de type mysqld-relay-bin.000***. est-ce dû aux multiples set global sql_slave_skip_counter=1 que j'ai lancé (en mode bourrin via une boucle...)


Je suis vraiment bloqué sur cette base et là, je ne comprends plus rien.

Si quelqu'un a une idée, je suis preneur.

Merci d'avance