Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : sergey belov                         2:5015/214     05 Jun 2006  16:59:56
 To : All
 Subject : mysql replication
 -------------------------------------------------------------------------------- 
 
 
 настроил тестовую mysql репликацию в джайлах.
 мастер: 4.0.26, слейв: 4.1.18
 
 всё отлично работает по доке с dev.mysql.com
 пытаюсь репликацию осуществить уже на рабочих базах, правда версии немного
 плачевнее :)
 мастер: 4.0.15a, слейв: 4.1.19
 
 реплицировать нужно только одну базу, с именем mycompany.
 добавляем аргументы в строку запуска:
 на головном: --binlog-do-db=mycompany
 на подчиненном: --replicate-do-db=mycompany
 
 в mysql-консоле делаю "change master to" с указанием всех необходимых данных о
 головном сервере и позиции.
 стартую слейв: start slave;
 
 в итоге имеем следующие грабли: после того как слейв стартует без каких-либо
 проблем(в логах никаких ругательств) тем не менее
 синхронизация данных происходит всего несколько минут после старта слейва. что
 ясно видно из логов при включенном --log-warnings=5. после этого, примерно,
 спустя минуту всё засыпает, несмотря на то что данные на головном сервере
 поступают в базу чуть ли не ежесекундно, подчиненный их уже почему-то не видит.
 из show slave status ясно видно, что позиция, с который должны были обновляться 
 данные на слейве постоянно увеличивается. а еще увеличивается
 Seconds_Behind_Master. из доки я так и не понял за что отвечает этот параметр.
 может ктонибудь в двух словах перевести что это ? =)
 http://dev.mysql.com/doc/refman/5.0/en/show-slave-status.html
 не знаю насколько информативны будут нижеследующие данные, но ничего больше у
 меня нету. mysql собран без дебага.
 
 подземный стук:
 
 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.001
         Read_Master_Log_Pos: 494486645
              Relay_Log_File: bar-relay-bin.000001
               Relay_Log_Pos: 1657620
       Relay_Master_Log_File: x-bin.001
            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:
                  Last_Errno: 0
                  Last_Error:
                Skip_Counter: 0
         Exec_Master_Log_Pos: 422188647
             Relay_Log_Space: 73955618
             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: 9753
 1 row in set (0.00 sec)
 bar.err:
 
 060605 15:56:53 [Note] Slave SQL thread initialized, starting replication in log
 'x-bin.001' at position 420531067, relay log './bar-relay-bin.000001' position: 
 4
 060605 15:56:53 [Note] Slave I/O thread: connected to master
 'repluser@212.92.136.35:3306',  replication started in log 'x-bin.001' at
 position 420531067
 
 mysql> show processlist;
 
 одна единственная строчка, касательно слейва.
 
 | 174 | system user |           | NULL       | Connect | 4714 | Waiting for
 master to send event | NULL 
 
 вот видим(кусок лога из my.log), что данные приходит в течение нескольких секунд
 после запуска слейва:
                      60 Query       insert into dialup_users_history select *
 from dialup_users where fl=2 and tp=1 
                      60 Query       update dialup_users set fl=2,
 stime='20060603083519', etime=NOW() where id=32809 
                      60 Query       update dialup_users set fl=2,
 stime='20060603083619', etime=NOW() where id=32810 
                      60 Query       insert into dialup_tmp_bytes (balance, ip,
 ipto, bytes) values (80007, '192.168.0.114', '2
 13.192.168.0.1', '667') 
                      60 Query       delete from dialup_users where
 card_number='00000000
                      60 Query       insert into web_sess (id,user_id,timest,sid)
 values (84712536,37,now(),'664f7826d40db8bb0bfa
 83d4d067fd23')
 
 после этого тишина.
 подземный стук с головного сервера:
 
 mysql> show master status;
 
 +-----------+-----------+--------------+------------------+
 | File      | Position  | Binlog_do_db | Binlog_ignore_db |
 +-----------+-----------+--------------+------------------+
 | x-bin.001 | 498147732 | mycompany    |                  |
 +-----------+-----------+--------------+------------------+
 1 row in set (0.00 sec)
 
 mysql> show processlist;
 | 110140 | repluser | mail.mycompany.com:50903     | NULL       | Binlog Dump | 
 5376 | Has sent all binlog to slave; waiting for binlog to be updated | NULL    
 |
 вот только мало правды в том, что all binlog has sent to slave, ибо на слейве
 они так и не появились.
 
 и еще ужасно долго выполняется команда stop slave. примерно 10 минут. хотя может
 быть это из-за базы, ибо она весит 7 гигов :) касательно подвоха с
 replicate-do-db=sales, когда update sales.table не будет подпадать под
 replicate-do-db мне известно. запросов с подобным синтаксисом на головной сервер
 не поступает.
 --- powered by цололо.ком
  * Origin: роман олегович  (2:5015/214)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 mysql replication   sergey belov   05 Jun 2006 16:59:56 
 mysql replication   sergey belov   05 Jun 2006 18:03:20 
 Re: mysql replication   Dmitriy Kirhlarov   05 Jun 2006 18:14:44 
 mysql replication   sergey belov   07 Jun 2006 10:35:38 
 Re: mysql replication   Dmitriy Kirhlarov   07 Jun 2006 11:33:46 
 mysql replication   sergey belov   07 Jun 2006 12:00:52 
 Re: mysql replication   Dmitriy Kirhlarov   07 Jun 2006 15:45:46 
 mysql replication   sergey belov   07 Jun 2006 18:04:50 
Архивное /ru.unix.bsd/2261448432a9.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional