Назад | Перейти на главную страницу

репликация mysql - подчиненное устройство кажется обновленным, но данные не синхронизированы

У меня есть установка master-slave с 2 серверами в сети. Из-за ошибки подчиненный поток ввода-вывода остановился, хотя я смог его запустить и запустить, подчиненное устройство далеко позади главного. Также, SHOW SLAVE STATUS показывает Seconds_Behind_Master: 0. Посмотри:

               Slave_IO_State: Waiting for master to send event
                  Master_Host: <master ip>
                  Master_User: replicator
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000722
          Read_Master_Log_Pos: 101043816
               Relay_Log_File: localhost-relay-bin.000008
                Relay_Log_Pos: 101043961
        Relay_Master_Log_File: mysql-bin.000722
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 101043816
              Relay_Log_Space: 101044163
              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: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:

До недавнего времени ведомое устройство было синхронизировано, поэтому я не делал снимков от ведущего к ведомому. Я должен сделать это?
Любая помощь очень ценится.
Заранее спасибо.

Что необычно в потоке ввода-вывода, так это то, что иногда, если есть какие-либо сильные прерывания сетевого уровня, поток ввода-вывода просто перестанет читать, не зная об этом уровне.

Что касается самих данных, вы можете просто сделать снимок, сбросить файл журнала и положение через ИЗМЕНИТЬ МАСТЕРА НА, и покончить с этим. Однако, если набор данных слишком велик и для его создания требуется слишком много времени, вам следует изучить возможность использования инструментов синхронизации данных от Percona.

mk-table-контрольная сумма и мк-таблица-синхронизация

Я использовал эти инструменты около 2 лет, и они помогают вам отслеживать различия в таблицах между ведущим и ведомым устройством, даже если таблица на ведущем устройстве - это InnoDB, а та же таблица на ведомом устройстве - MyISAM (при условии, что таблицы имеют одинаковую структуру таблиц. ).

Репликация должна быть включена во время работы этих инструментов.

Кстати, Percona имеет новый набор инструментов, называемый Набор инструментов Percona. Они отказались от собственных инструментов MAATKIT, чтобы сделать его лучше. Эти инструменты, вероятно, называются pt-table-checkum и pt-table-sync.