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
Partager