The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"ошибка репликации mysql"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Др. сетевые сервисы)
Изначальное сообщение [ Отслеживать ]

"ошибка репликации mysql"  +/
Сообщение от Aleks305 (ok) on 22-Янв-15, 17:37 
Добрый день, друзья.
Прошу по возможности подсказать по следующему вопросу.
Настроены два сервера под CentOS с mysql 5.6. Один мастер, другой соответственно slave. Настроена репликация для одной базы cat3, на сервере боевая база cat. Cat3 - аналог cat, но решили для тестирования начать не с боевой.
Конфиг для репликации с мастера:
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 5
max_binlog_size = 500M
binlog_format = mixed
binlog_do_db = cat3
binlog-ignore-db=mysql

на slave сервере: server-id = 2.

В начале было все ок, прошло часов 12 и репликация свалилась с ошибкой странной:
Error 'Table 'cat.xml_logs_import_stats' doesn't exist' on query. Default database: ''. Query: 'DELETE FROM `cat`.`xml_logs_import_stats` WHERE `id`='1388249''

То есть с ошибкой, которая вообще не относится к реплицируемой базе cat3. Как такое может быть?

На master-сервере:
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |    47646 | cat3        | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

Делал на слейве:
set global SQL_SLAVE_SKIP_COUNTER = 1;
но не помогает, слейв больше не стартует.
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host:
                  Master_User: replication
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 47646
               Relay_Log_File: mysqld-relay-bin.000004
                Relay_Log_Pos: 16279
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 1146
                   Last_Error: Error 'Table 'cat.xml_logs_import_stats' doesn't exist' on query. Default database: ''. Query: 'DELETE FROM `cat`.`xml_logs_import_stats` WHERE `id`='1388249''
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 19530
              Relay_Log_Space: 46060
              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: 1146
               Last_SQL_Error: Error 'Table 'cat.xml_logs_import_stats' doesn't exist' on query. Default database: ''. Query: 'DELETE FROM `cat`.`xml_logs_import_stats` WHERE `id`='1388249''
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1
                  Master_UUID: 20f2b3c0-504d-11e4-93d3-e4115bdc4f84
             Master_Info_File: /var/lib/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State:
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp: 150122 16:52:45
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set:
                Auto_Position: 0
1 row in set (0.01 sec)


Главный мой вопрос как репликация свалилась запросом, которые  не относится к базе, которая реплицируется.
Спасибо.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "ошибка репликации mysql"  +/
Сообщение от PavelR (??) on 23-Янв-15, 07:34 
> Главный мой вопрос как репликация свалилась запросом, которые  не относится к
> базе, которая реплицируется.
> Спасибо.

если вы сделаете так:

use cat3;
DELETE FROM `cat`.`xml_logs_import_stats` WHERE `id`='1388249'

То этот запрос упадет в бинлог, т.к. фильтрация производится по значению текущей БД соединения.

Добро пожаловать в волшебный мир MySQL репликации.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "ошибка репликации mysql"  +/
Сообщение от Aleks305 (ok) on 23-Янв-15, 09:50 
>> Главный мой вопрос как репликация свалилась запросом, которые  не относится к
>> базе, которая реплицируется.
>> Спасибо.
> если вы сделаете так:
> use cat3;
> DELETE FROM `cat`.`xml_logs_import_stats` WHERE `id`='1388249'
> То этот запрос упадет в бинлог, т.к. фильтрация производится по значению текущей
> БД соединения.
> Добро пожаловать в волшебный мир MySQL репликации.

Спасибо за ответ. Потестирую.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "ошибка репликации mysql"  +/
Сообщение от PavelR (ok) on 23-Янв-15, 07:37 
> Делал на слейве:
> set global SQL_SLAVE_SKIP_COUNTER = 1;
> но не помогает, слейв больше не стартует.

Это чушь, вы в чем-то /сильно невнимательны/. Стартовать должен.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "ошибка репликации mysql"  +/
Сообщение от Aleks305 (ok) on 23-Янв-15, 14:03 
>> Делал на слейве:
>> set global SQL_SLAVE_SKIP_COUNTER = 1;
>> но не помогает, слейв больше не стартует.
> Это чушь, вы в чем-то /сильно невнимательны/. Стартовать должен.

Павел, скажите, пожалуйста, был ли у вас положительный опыт эксплуатации master-master на mysql? сложилось ли какое мнение об этом процессе?

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

8. "ошибка репликации mysql"  +/
Сообщение от PavelR (??) on 23-Янв-15, 19:12 
>>> Делал на слейве:
>>> set global SQL_SLAVE_SKIP_COUNTER = 1;
>>> но не помогает, слейв больше не стартует.
>> Это чушь, вы в чем-то /сильно невнимательны/. Стартовать должен.
> Павел, скажите, пожалуйста, был ли у вас положительный опыт эксплуатации master-master
> на mysql? сложилось ли какое мнение об этом процессе?

Оно работает нормально, если программисты/проектировщики, написавшие приложение для этой схемы, были адекватны.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

4. "ошибка репликации mysql"  +/
Сообщение от ALex_hha (ok) on 23-Янв-15, 11:41 
> Делал на слейве:
> set global SQL_SLAVE_SKIP_COUNTER = 1;
> но не помогает, слейв больше не стартует.
> mysql> show slave status\G;

вообще то надо так


mysql> stop slave;
mysql> set global SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave;

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "ошибка репликации mysql"  +/
Сообщение от Aleks305 (ok) on 23-Янв-15, 11:57 
>> Делал на слейве:
>> set global SQL_SLAVE_SKIP_COUNTER = 1;
>> но не помогает, слейв больше не стартует.
>> mysql> show slave status\G;
> вообще то надо так
>
 
> mysql> stop slave;
> mysql> set global SQL_SLAVE_SKIP_COUNTER=1;
> mysql> start slave;
>

Спасибо. Я в курсе, так и делал.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "ошибка репликации mysql"  +/
Сообщение от Aleks305 (ok) on 23-Янв-15, 16:19 
>[оверквотинг удален]
>>> set global SQL_SLAVE_SKIP_COUNTER = 1;
>>> но не помогает, слейв больше не стартует.
>>> mysql> show slave status\G;
>> вообще то надо так
>>
 
>> mysql> stop slave;
>> mysql> set global SQL_SLAVE_SKIP_COUNTER=1;
>> mysql> start slave;
>>

> Спасибо. Я в курсе, так и делал.

опять аналогичная ошибка выскочила, сделал необходимые команды, а эффекта ноль. Как в этом случае от ошибки избавиться?
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host:
                  Master_User: replication
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 5047
               Relay_Log_File: mysqld-relay-bin.000002
                Relay_Log_Pos: 283
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 1146
                   Last_Error: Error 'Table 'cat.schedule' doesn't exist' on query. Default database: ''. Query: 'DELETE FROM `cat`.`schedule` WHERE `id`='184407''
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 120
              Relay_Log_Space: 5864
              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: 1146
               Last_SQL_Error: Error 'Table 'cat.schedule' doesn't exist' on query. Default database: ''. Query: 'DELETE FROM `cat`.`schedule` WHERE `id`='184407''
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1
                  Master_UUID: 20f2b3c0-504d-11e4-93d3-e4115bdc4f84
             Master_Info_File: /var/lib/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State:
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp: 150123 15:59:15
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set:
                Auto_Position: 0
1 row in set (0.00 sec)

ERROR:
No query specified

mysql> stop slave;
Query OK, 0 rows affected (0.01 sec)

mysql> set global SQL_SLAVE_SKIP_COUNTER = 1;
Query OK, 0 rows affected (0.00 sec)

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host:
                  Master_User: replication
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 5047
               Relay_Log_File: mysqld-relay-bin.000002
                Relay_Log_Pos: 553
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 1146
                   Last_Error: Error 'Table 'cat.schedule' doesn't exist' on query. Default database: ''. Query: 'DELETE FROM `cat`.`schedule` WHERE `id`='184408''
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 390
              Relay_Log_Space: 6201
              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: 1146
               Last_SQL_Error: Error 'Table 'cat.schedule' doesn't exist' on query. Default database: ''. Query: 'DELETE FROM `cat`.`schedule` WHERE `id`='184408''
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1
                  Master_UUID: 20f2b3c0-504d-11e4-93d3-e4115bdc4f84
             Master_Info_File: /var/lib/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State:
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp: 150123 16:07:50
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set:
                Auto_Position: 0
1 row in set (0.00 sec)

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

9. "ошибка репликации mysql"  +/
Сообщение от PavelR (??) on 23-Янв-15, 19:14 
> опять аналогичная ошибка выскочила, сделал необходимые команды, а эффекта ноль. Как в
> этом случае от ошибки избавиться?

Всё также. Пропускать "неправильные" запросы по одному.
Надеюсь вы достаточно внимательны, чтобы увидеть, что падает на разных запросах?

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру