Страница 1 из 1

Проблема записи на slave сервер при master-slave репликации

Добавлено: 2013-02-22 11:34:09
---nebo---
Всем привет!

Существует два mysql сервера, которые работают в режиме master-slave репликации.
Сервера используются для работы сайта на Wordpress.

Частенько возникает ситуация, когда боты ходят по зеркалу сайта (на него происходит переключение только в случае проблем с основным), оставляют комменты. Это приводит к записи их активности в некоторые таблицы БД. Из-за этого репликация останавливается к ошибкой:

Код: Выделить всё

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: X.X.X.X
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000286
          Read_Master_Log_Pos: 90862124
               Relay_Log_File: mysqld-relay-bin.000004
                Relay_Log_Pos: 45265147
        Relay_Master_Log_File: mysql-bin.000284
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB: XXX_replica
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 1062
                   Last_Error: Error 'Duplicate entry '19817' for key 'PRIMARY'' on query. Default database: 'XXX_replica'. Query: 'INSERT INTO `wp_comments` (`comment_post_ID`,`comment_author`,`comment_author_email`,`comment_author_url`,`comment_author_IP`,`comment_date`,`comment_date_gmt`,`comment_content`,`comment_karma`,`comment_approved`,`comment_agent`,`comment_type`,`comment_parent`,`user_id`) VALUES (81367,'cekmyh','simmkc@qtntme.com','http://stuwiqrgmiqb.com/','1.1.1.27','2013-02-22 01:58:50','2013-02-21 23:58:50','KJ0rB1  <a href=\"http://cpczlllttfkv.com/\" rel=\"nofollow\">cpczlllttfkv</a>, [url=http://xiwscbpdtobw.com/]xiwscbpdtobw[/url], [link=http://qlwlhjbanxbi.com/]qlwlhjbanxbi[/link], http://kgqnilgqtiwo.com/',0,'spam','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)','',0,0)'
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 45265002
              Relay_Log_Space: 234126149
              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: 1062
               Last_SQL_Error: Error 'Duplicate entry '19817' for key 'PRIMARY'' on query. Default database: 'XXX_replica'. Query: 'INSERT INTO `wp_comments` (`comment_post_ID`,`comment_author`,`comment_author_email`,`comment_author_url`,`comment_author_IP`,`comment_date`,`comment_date_gmt`,`comment_content`,`comment_karma`,`comment_approved`,`comment_agent`,`comment_type`,`comment_parent`,`user_id`) VALUES (81367,'cekmyh','simmkc@qtntme.com','http://stuwiqrgmiqb.com/','91.201.64.27','2013-02-22 01:58:50','2013-02-21 23:58:50','KJ0rB1  <a href=\"http://cpczlllttfkv.com/\" rel=\"nofollow\">cpczlllttfkv</a>, [url=http://xiwscbpdtobw.com/]xiwscbpdtobw[/url], [link=http://qlwlhjbanxbi.com/]qlwlhjbanxbi[/link], http://kgqnilgqtiwo.com/',0,'spam','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)','',0,0)'
1 row in set (0.00 sec)
Какие возможные варианты решения проблемы?

Возможно конечно не синхронизировать таблицы с комментариями и действиями пользователя.

Спасибо!

Re: Проблема записи на slave сервер при master-slave реплика

Добавлено: 2013-02-22 19:24:44
skeletor
Можно скипать

Код: Выделить всё

slave stop; set global sql_slave_skip_counter=1; slave start;

Re: Проблема записи на slave сервер при master-slave реплика

Добавлено: 2013-02-22 20:51:10
---nebo---
Но получается что так нужно будет делать при каждом разваливании репликации?

А как интересно сделать так, что бы не заглядывать туда?

Re: Проблема записи на slave сервер при master-slave реплика

Добавлено: 2013-02-22 22:48:44
_skeletor
В конфиге mysql'я указать

Код: Выделить всё

slave_skip_errors=1062
и тогда автоматически будут пропускаться ошибки с номером 1062.
Конечно, после изменений сделать рестарт mysql'я

Re: Проблема записи на slave сервер при master-slave реплика

Добавлено: 2013-02-22 22:54:26
FiL
вариантов дохрена -
1) не пускать никого на зеркало, если мастер не сдох. При сдыхании мастера руками переключаться на зеркало.
2) настроить зеркало на работу с мастером. Если мастер сдохнет - переключить на слейва
3) настроить мастер-мастер

наверняка еще есть, но лень думать в пятницу

Re: Проблема записи на slave сервер при master-slave реплика

Добавлено: 2013-02-26 1:42:57
Dark_ASU
Версия мускула какая?

Re: Проблема записи на slave сервер при master-slave реплика

Добавлено: 2013-02-26 8:52:15
---nebo---
5.5