Помогите настроить репликацию

  • Автор темы CrazyHacKeRs
  • Дата начала

CrazyHacKeRs

Guest
Помогите настроить репликацию

Просьба сразу не отсылать к мануалу :), а подскать что и как знающим людям

Есть два сервера www и local с несколькими базами DB1 и DB2.
Необходимо сделать следующее, с www делать бэкап в реальном времени на local базы DB1 (наполняется через интернет), с другой стороны есть база DB2 наполняющаяся примущественно внутри (local), таким образом нужно на www перекладывать лишь срезы.

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

Какие необходимые ключики прописть и где????


Если немного усложнив - задача 2

Можно ли сделать...
Как заметил, первая база наполняется в основм через веб, причем некотрые таблицы (справочники) удобнее было бы редактировать у себя на локале.

Можно ли делать выборочное реплицирование таблиц? И как


Спасибо
 

Yurik

/dev/null
Такое не поддерживается MySQL, да и наверно нигде.
Как это теоретически может быть почитайте здесь:
http://www.osp.ru/os/2001/12/045.htm
тогда поймете что такое нереально сделать на уровне приложения и невозможно на уровне БД.
 

CrazyHacKeRs

Guest
В смысле? Я читал что один сервер может выступать в как master так и slave в разных связквах

Просто мне нужно реплицировать не все БД на сервере, а скажем только одну какую-нибудь...
 

Yurik

/dev/null
Может быть один мастер и любое к-во слейвов.
Слейв означает что он "тупо" поддерживает идентичную копию (зеркало) мастера.
Ты хочешь чтобы 2 компа попеременно были один мастером другой слнйвом, а потом наоборот.
Типа сначала ты снизу, а потом я...
Такого по теории не может быть.
Твой local может быть _идентичной_ копией www, но вводить в него данные нельзя.
 

CrazyHacKeRs

Guest
Ясно, буду думать тогда как реализовать такую штуку программным способом....
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Re: Помогите настроить репликацию

Автор оригинала: CrazyHacKeRs
Можно ли делать выборочное реплицирование таблиц? И как
С помощью Postgres'а и его модуля contrib/rserv (ну или свежеоткрытого Erserver). Сам делал, всё замечательно работало. ;)
 

Апельсин

Оранжевое создание
> Можно ли делать выборочное реплицирование таблиц?

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

> Просто мне нужно реплицировать не все БД на сервере, а скажем только одну какую-нибудь...

ну так и реплицируй ту, которую нужно. А пошлют тебя таки в мануал.
 

CrazyHacKeRs

Guest
Да я не разберусь никак в настройках....

ладно, попробую - скину примерчик, зацените
 

Апельсин

Оранжевое создание
а что в них разбираться?
тут перечислены все опции и что каждая из них значит:
http://www.mysql.com/doc/ru/Replication_Options.html

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

CrazyHacKeRs

Guest
Посмотри есть такая струтктура

Сервер1 (www) - у провайдера
Базы:
DB1
DB2
DB3

Сервер2 (local)
DB1
DB3
DB4

Нужно реплицировать DB3 c локального (на WWW только читают)

DB1 c www на локал (все кроме одной таблицы)
DB1 c локали на www (только одну таблицу)


КОнфиги понимаю пишу в my.cnf
www:
PHP:
log-bin=replicate_data (один на всех????)
log-bin-index=db.index

binlog-do-db=DB1 (строчки дублировать если захочу скажем DB4????)

replicate-ignore-table=DB1.spravo4nik

тут как slave
replicate-wild-do-db=DB3 (считываю полность БД с local)
log-slave-updates

replicate-wild-do-table=DB1.spravo4nik

(все отсальные табы будут по умолчанию реплицироваться???)
по аналоги пишу для SLAVE

Будет такая фишка работать?
Базы рабочие, боюсь эксперементировать на живом :)
 

Апельсин

Оранжевое создание
> binlog-do-db=DB1 (строчки дублировать если захочу скажем DB4????)

да

> тут как slave

вообще-тьо строчка написанныя выше тоже относиться к настройкам слэйва.

вот эти 2 строчки противоречат одна другой:
replicate-ignore-table=DB1.spravo4nik
replicate-wild-do-table=DB1.spravo4nik

или это у тебя для разных серверов?
если да, то четко разграничь что для чего?

> все отсальные табы будут по умолчанию реплицироваться

смотря какие опции ты используешь. могут и не реплицироваться.
 

CrazyHacKeRs

Guest
Originally posted by Апельсин


вот эти 2 строчки противоречат одна другой:
replicate-ignore-table=DB1.spravo4nik
replicate-wild-do-table=DB1.spravo4nik

или это у тебя для разных серверов?
если да, то четко разграничь что для чего?

Ну я же говорил, хочу чтоб одна БД в две стороны реплицировалась.
бекапилась на один компьютер(строчка 1 - типа переписываем все, кроме той таблицы которую будем считывать), и тут же делаем в обратную сторону - выступаем как slave для выбранной табы).

Сам говорил что возможно сделать.

Грубо говоря, нужно взять часть таблиц с одного, оставшуюся часть с друго - и все это слить в одно как-то

Если двух серверов недостаточно,то могу и третий прикрутить

только знать как бы их настроить между собой:)
 

Апельсин

Оранжевое создание
повторяю вопросы еще раз

или это у тебя для разных серверов?
если да, то четко разграничь что для чего?


эти опции выше - ты привел для обеих серверов или для одного? если второе - то там сплошная каша.
 

Апельсин

Оранжевое создание
догда для одного сервера ставишь опцию:

replicate-do-table=databasename.tablename

а для другого:

replicate-wild-do-table=databasename.%
replicate-ignore-table=databasename.tablename
 
Сверху