The OpenNET Project / Index page

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

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

"mysql репликация конкретной таблицы"  
Сообщение от ping email(??) on 17-Окт-06, 17:59 
MySQL репликация 1й или нескольких таблиц.


имеем два сервера mysql, версии 4.x.x

нужно реплицировать две таблицы мастера(telebom.gw и telebom.term_area_price) и
вставлять упдейты/инсерты в базу(asterisk.gw и asterisk.term_area_price)
подчиненного.


конфигурация следующая:

выдержки из my.cnf головного сервера:

log-bin
binlog-do-db=telebom
max_binlog_size=312M
server-id       = 1


из my.cnf подчиненного:

replicate-rewrite-db=telebom->asterisk
replicate-do-db=asterisk
replicate-do-table=asterisk.gw
replicate-do-table=asterisk.term_area_price
server-id       = 2

после запуска подчиненного, прописывания корректной позиции и change master
to.. bla-bla, подчиненный сервер вроде бы начинает работать, даже обновляет
relay.log со всеми запросами, сыплящиеся в telebom.%.

61011 15:32:08 [Note] Slave SQL thread initialized, starting replication in log 'x-bin.002' at position 1040405, relay log './saw3-relay-bin.000001' position: 4

061011 15:32:08 [Note] Slave I/O thread: connected to master 'repluser@x.x.x.x:3306', replication started in log 'x-bin.002' at position 1040405

вроде бы работает.

но если попытаться на головном добавить что либо в таблицу telebom.gw, то на
подчиненном сервере ничего в эту таблицу не добавляется.
хотя в relay.log инфа об инсерте есть, но sql-thread'у это по барабану и он
ничего в таблицу не пишет и не ругается никак.

root@saw3:/var/db/mysql# mysqlbinlog saw3-relay-bin.000001 | grep hoi
insert into gw values('','1.1.1.1','hoi','1111','123456','1','144','150','','0','0','0','0','0','0','0','0','0');
insert into gw values('','1.1.1.1','hoi','1111','123456','1','144','150','','0','0','0','0','0','0','0','0','0');

куда копать? и что я сделал неправильно?

mysql> show slave status\G
*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: x.x.x.x
                Master_User: repluser
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: x-bin.002
        Read_Master_Log_Pos: 20045369
             Relay_Log_File: saw3-relay-bin.000001
              Relay_Log_Pos: 19005004
      Relay_Master_Log_File: x-bin.002
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB: asterisk
        Replicate_Ignore_DB:
         Replicate_Do_Table: asterisk.term_area_price,asterisk.gw
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 20045369
            Relay_Log_Space: 19005004
            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
1 row in set (0.00 sec)


к тому же в процессе »репликации« заметил проблему: оказывается нельзя указать мастеру логать в бинарный лог запросы только касательно одной таблицы, можно указать логирование целиком всей базы. а это меня не устраивает, так как в итоге слейв, которому надо реплицировать всего лишь одну табличку, начинает качать весь мастер-бинлог почем зря. или я где-то не прав?

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

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


1. "mysql репликация конкретной таблицы"  
Сообщение от ping email(??) on 18-Окт-06, 10:06 
что-то все предательски молчат. неужели такая нетривиальная задача репликация пары табличек ?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "mysql репликация конкретной таблицы"  
Сообщение от openwork email on 25-Окт-06, 16:27 
такая нетривиальная задача почитать документацию ?
--replicate-do-table=db_name.tbl_name

Tell the slave thread to restrict replication to the specified table. To specify more than one table, use this option multiple times, once for each table. This works for cross-database updates, in contrast to --replicate-do-db. See Section 6.9, “How Servers Evaluate Replication Rules”.

>что-то все предательски молчат. неужели такая нетривиальная задача репликация пары табличек ?
>


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "mysql репликация конкретной таблицы"  
Сообщение от ping email(??) on 25-Окт-06, 17:12 
>такая нетривиальная задача почитать документацию ?
>--replicate-do-table=db_name.tbl_name
>
>Tell the slave thread to restrict replication to the specified table. To
>specify more than one table, use this option multiple times, once
>for each table. This works for cross-database updates, in contrast to
>--replicate-do-db. See Section 6.9, “How Servers Evaluate Replication Rules”.
>
>>что-то все предательски молчат. неужели такая нетривиальная задача репликация пары табличек ?
>>


я же написал выше, что с таким конфигом не работает.
или вышеприведенные параметры некорректны?
если можно опиши, что лишнего у меня в конфиге

ибо условия таковы:

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

2. я хочу чтобы на мастере записи в бинарный лог валились только касательно одной этой реплицируемой таблицы, а не всей базы целиком. т.е. опция bin-log-db, не подходит, т.к.  слейву, который находится физически далеко от мастера, приходится выкачивать кучу не нужных записей и хранить их в своем бин-логе, занимая место на диске.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "mysql репликация конкретной таблицы"  
Сообщение от gena_s on 16-Июн-07, 13:38 
у меня возникла подобная ситуация и только при рестарте slave выдало:

070616 12:22:06 [Warning] Neither --relay-log nor --relay-log-index were used; so replication may break when this MySQL server acts as a slave and has his hostname changed!! Please use '--relay-log=chief-relay-bin' to avoid this problem.

мне помогло, и копирует тока одну таблицу, как тебе и надо

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "mysql репликация конкретной таблицы"  
Сообщение от gena_s (ok) on 16-Июн-07, 13:43 
у меня возникла подобная ситуация и только при рестарте slave выдало:

070616 12:22:06 [Warning] Neither --relay-log nor --relay-log-index were used; so replication may break when this MySQL server acts as a slave and has his hostname changed!! Please use '--relay-log=chief-relay-bin' to avoid this problem.

мне помогло, и копирует тока одну таблицу, как тебе и надо

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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