MySQL replication - replication from different DB, different tables.

kvn

programmer
MySQL replication - replication from different DB, different tables.

Привет всем!

Хистори:
есть три сервера: A, B, DB

на всех трех есть БД под названием "DB1",
в ней есть таблицы t1, t2.

Вопрос: можно ли настроить репликацию данных так, чтобы,
{A}:DB1::t1 - реплицировалась в -> {DB}:DB1::t1,
а {B}:DB1::t2 - реплицировалась в -> {DB}:DB1::t2,
где {сервер}:БД::таблица.

т.е. репликация всей БД - это уже работает, нормально,
а вот выборочная репликация в MySQL - такое возможно?

P.S.
mysql> show variables like 'version';
+---------------+-------------+
| Variable_name | Value |
+---------------+-------------+
| version | 3.23.55-log |
+---------------+-------------+

Спасибо.
 

Апельсин

Оранжевое создание
выборочная репликация работает, но нет мозможности что бы у слэйва было 2 мастера (как в твоем случае).
Возможные решения либо строить цепочку репликации, недостаток - лишние данные.
Либо запускать 2 сервера DB, у одного из которых будет мастером сервер А, у другого - В.
 

kvn

programmer
т.е. я понимаю, что нужно строить:
{A}:DB1::t1 - реплицировалась в -> {B}:DB1::t1 - реплицировалась в -> {DB}:DB1::t1

а {B}:DB1::t2 - реплицировалась в -> {DB}:DB1::t2,

где {сервер}:БД::таблица.

т.е. сливаем А в B, а потом A+B сливаем в DB..
я правильно понял мысль?

П.С. с двумя серверами DB не совсем подходит - надо, чтобы разнести сервисы по серверам, но статистика сливалась в один БД.
 

Апельсин

Оранжевое создание
> я правильно понял мысль?

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

> с двумя серверами DB не совсем подходит - надо, чтобы разнести сервисы по серверам, но статистика сливалась в один БД.

ну если у тебя апдейты не пересекаюдтся, то можно сделать так что бы база DB1 была общая для 2х серверов (симлинки и все такое), а выборку делать только на одном из серверов, но решение не очень красивое и использовать надо осторожно. Т.к. ни один из сервером не знает о том что делает другой.
 
Сверху