SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 20.11.2013 00:18:34

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Репликация отдельных баз

Создала конфиги на мастере и слайве. Сначала "bin-log-db" был проставлен на ту базу, что нужно было реплицировать, когда с тест машины на боевой сервер кидала дампы, всё было замечательно, но всё, что генерировалось скриптами, просто напросто игнорировалось. Копалась, копалась, раскопала, что проблема, в том, что я не использую "USE", все запросы напрямую с указанием баз.таблиц, закомментировала на мастере этот пункт, и данные побежали как и должны. Но на слайве проблема осталась. Так как там всё настроено через "replicate-do-db = db1". И вот теперь проблема, если я уберу это, то если я верно понимаю не только изменения в базе "db1" будут перениматься, но и вообще все изменения по всему серверу, включая создание новых баз и добавление юзер, ведь эти данные тоже в технической базе лежат. Как тут быть?

Отредактированно animegirl (20.11.2013 00:22:29)


Скажи миру - НЯ!

Неактивен

 

#2 20.11.2013 00:30:53

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Репликация отдельных баз

Сейчас покопала мануал, не охото с уже более менее налаженной системой экспериментировать, можете так сказать атрибут "replicate-ignore-db" поможет, если туда запихнуть все ДБ, кроме реплицируемой?


Скажи миру - НЯ!

Неактивен

 

#3 20.11.2013 13:59:11

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Репликация отдельных баз

replicate-ignore-db может помочь. Вообще говоря, опция replicate-do-db достаточно опасная, так как запросы могут не попадать по тем или иным причинам.

Неактивен

 

#4 20.11.2013 15:21:21

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Репликация отдельных баз

rgbeast написал:

replicate-ignore-db может помочь. Вообще говоря, опция replicate-do-db достаточно опасная, так как запросы могут не попадать по тем или иным причинам.

А можно по подробней?


Скажи миру - НЯ!

Неактивен

 

#5 20.11.2013 15:52:09

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Репликация отдельных баз

См. в документации http://dev.mysql.com/doc/refman/5.0/en/ … cate-do-db
replicate-do-db проверяет только текущую базу

Можно применить, например, replicate-wild-do-table - он работает на уровне таблиц (не требует USE)
http://dev.mysql.com/doc/refman/5.0/en/ … d-do-table

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

Неактивен

 

#6 20.11.2013 16:33:03

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Репликация отдельных баз

rgbeast написал:

См. в документации http://dev.mysql.com/doc/refman/5.0/en/ … cate-do-db
replicate-do-db проверяет только текущую базу

Можно применить, например, replicate-wild-do-table - он работает на уровне таблиц (не требует USE)
http://dev.mysql.com/doc/refman/5.0/en/ … d-do-table

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

В последнем варианте есть большая вероятность, что добавив таблицу на мастере, и забыв добавить её в список нс слайве, всё развалится, верно
Но вопрос насколько сильно, то есть, там всё пойдёт в тартарары, или же встанет и будет ждать добавления в кофниг, а после добавления и перезагрузки, просто спокойно продолжить репликацию?


Скажи миру - НЯ!

Неактивен

 

#7 20.11.2013 18:02:54

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Репликация отдельных баз

Не обязательно добавлять все таблицы. Для replicate-wild-do-table можно использовать db1.%

Неактивен

 

#8 20.11.2013 18:06:40

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Репликация отдельных баз

Круто, то есть вот так будет верно "replicate-wild-do-table=db1.%"?
Или ещё какие-то ошибки в написание допустила?


Скажи миру - НЯ!

Неактивен

 

#9 20.11.2013 18:08:09

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Репликация отдельных баз

Должно сработать

Неактивен

 

#10 21.11.2013 03:04:04

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Репликация отдельных баз

rgbeast написал:

Должно сработать

По началу был какой-то дикий глюк, так как удалила базу хирургическим методом удаления папки, а репликация орала, что в пустой базе уже есть таблица с таким именем, после некоторых акробатических этюдов, из бэкапа реплика была восстановлена, через пма были выпилены лишние базы, mysql остановлен, опять так же хирургический выпилены все логи и мастер конфиги, и после вторичного запуска и запуска реплики всё пошло, спасибо за хорошую команду. Постараюсь усвоить правило, что нельзя делать команды меж баз.... пока ОБЕ(все если больше), из них не будут так же добавлены в эту вариаблу, верно?


Скажи миру - НЯ!

Неактивен

 

#11 21.11.2013 03:18:55

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Репликация отдельных баз

Да, и еще нельзя создавать промежуточные временные таблицы в базе tmp, если база tmp не реплицируется.

Неактивен

 

#12 21.11.2013 03:45:31

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Репликация отдельных баз

rgbeast написал:

Да, и еще нельзя создавать промежуточные временные таблицы в базе tmp, если база tmp не реплицируется.

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


Скажи миру - НЯ!

Неактивен

 

#13 21.11.2013 03:49:41

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Репликация отдельных баз

Сервер сам не создает таблицы, которые имеют название и относятся к какой-либо базе. Но программист может со временем забыть и использовать какое-нибудь хитрое решение, от которого разваливается вся репликация.

Неактивен

 

#14 21.11.2013 03:51:22

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Репликация отдельных баз

rgbeast написал:

Сервер сам не создает таблицы, которые имеют название и относятся к какой-либо базе. Но программист может со временем забыть и использовать какое-нибудь хитрое решение, от которого разваливается вся репликация.

Надо будет не забыть приемнику на своём посту сделать список костылей, равновесие которых нельзя нарушать smile


Скажи миру - НЯ!

Неактивен

 

#15 21.11.2013 03:53:43

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Репликация отдельных баз

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

Неактивен

 

#16 21.11.2013 03:58:31

animegirl
Активист
Зарегистрирован: 28.07.2011
Сообщений: 288

Re: Репликация отдельных баз

rgbeast написал:

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

Для этого надо приложить слишком много усилий и временных затрат, а работая человеком-оркестром на начальном этапе проекта, на это нету времени и желания. Всё равно, всё будет иметь версию 2,3,4 итп. . И вот по мере того, как меня будут разгружать и будут делать новые версии скриптов/модулей движка так и будем переходить на более правильную архитектуру. На данный момент задачи только на безопасность являются критичными.


Скажи миру - НЯ!

Неактивен

 

#17 21.11.2013 04:24:31

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Репликация отдельных баз

Архитектуру бывает трудно исправить потом. Монти предпринимает дикие усилия, чтобы в MariaDB исправить архитектурные ошибки, которые он сделал 20 лет назад.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson