The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
mysql репликация, !*! tip, 06-Июн-06, 18:00  [смотреть все]
есть головной сервер: mysql  Ver 12.21 Distrib 4.0.15a, for slackware-linux (i486)
и есть подчиненный: mysql  Ver 14.7 Distrib 4.1.19, for portbld-freebsd6.1 (i386) using  5.0

настроил репликацию на 7ми гиговую базу. всё по доке с dev.mysql.com

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

запускаю полчиненнный:

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

в логах активно пошло шуршание. но посмотрев в лог через пять минут, обнаружил что SQL thread застыл на месте, и данные в базу из головного сервера паерестали поступать. I/O thread при этом работает, хотя бы судя по тому что relay_log на подчиненным сервере постоянно растет и позиция его совпадает с позицией на головном серваке нога в ногу.

если сделать stop slave sql_thread; потом через пять минут start slave sql_thread, то данные в базу начинают заносится буквально несколько секунд и потом снова sql_thread ничего не делает, несмотря на то что relay_log уже просто раздуло от инсертов.


кто-нибудь можно объяснить причину такой картины:

mysql> show slave status\G
*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: XX.XX.XX.XX
                Master_User: repluser
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: x-bin.003
        Read_Master_Log_Pos: 20166981
             Relay_Log_File: bar-relay-bin.000002
              Relay_Log_Pos: 14634496
      Relay_Master_Log_File: x-bin.002
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB: mycompany
        Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table: mysql.%
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 125999979
            Relay_Log_Space: 83116850
            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: 14292
1 row in set (0.01 sec)

почему значение Exec_Master_Log_Pos так сильно отстало от Read_Master_Log_Pos ?
и вообще застряло где то в середине x-bin.002, когда в релей логах давно уже есть x-bin.003 с более актуальными данными.

может это быть из-за того что слишком разные версии mysql'a? но ведь в мануале явно я видел что 4.0.х и 4.1.х совместимы, если только головной сервер не старше подчиненного, что в даноом случае у меня выполняется.

обновлять головной сервер мне пока крайне проблематично, кто-нибудь знает где можно взять старые версии mysql'a? надо хотя бы на тестовой машинке погонять обе эти версии на предмет репликации только с более мелкими базами :)




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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