LINUX.ORG.RU

Синхронизация баз MySQL


0

2

Встала задача сливать к себе на локалхост изменения из удаленной БД. Но не просто сливать, а нормально синхронизировать ее с моей локальной, желательно, чтобы умела показывать изменения, которые были залиты и оповещать меня в случае конфликтов. Когда-то давно видел подобные тулзы под оффтопик (названий уже не вспомню сейчас, к сожалению :() Собственно, под linux есть что-то подобное?

ЗЫ Консольное/гуевое - все равно :) Лишь бы работало

★★★★★

Т.е. у тебя локальная база может измениться? Master-Slave значит не подойдет?

pi11 ★★★★★
()

В SQLyog есть мастера синхронизации но в платной версии и через wine =(.

RR
()
Ответ на: комментарий от tazhate

А чем тебе репликация не нравится? :)

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

boombick ★★★★★
() автор топика
Ответ на: комментарий от pi11

Именно так. Мне бы что-то вроде контроля версий, но для БД

boombick ★★★★★
() автор топика

1. autoincrement 2 на обоих серверах и база на одном чётная, на другом — нечётное
2. Поле modify_timestamp
3. Дамп с одной машины для всех modify_timestamp > last_sync и втягивание на другой.
4. И наоборот.

Тут не учитывается только удаление старых записей. Для этого нужно ещё поле is_deleted, которое устанавливать вместо реального удаления. А удалять физически только записи, время модификации которых старше периода синхронизации.

Так где-то :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Удаленную базу нельзя трогать :( Она живет своей жизнью, мне лишь надо синкать с ней свою, но с некоторыми условиями

boombick ★★★★★
() автор топика
Ответ на: комментарий от boombick

Я говорю о мастер-мастер репликации :)) Это штука немного других масштабов.

Тебе на самом деле надо копать в сторону «аудита данных», я думаю для чего угодно есть такие библиотеки. Например для руби/рельс есть всякие paper_trail'ы. Такие библиотеки обычно имеет номера версий и прочии полезные методы, которые помогут сравнивать версии одной записи.

Ну а потом уже руками конечно разруливать конфликты ;) потому что я не уверен, что кто-то когда-то написал такое (псевдо и ручной разруливатель конфликтов двух физически разных баз данных)

pechorin
()
Ответ на: комментарий от pechorin

Да мне и надо руками разруливать конфликты)) Просто чтобы софтина сообщала о них. Репликация - это хорошо, но немного не то.

boombick ★★★★★
() автор топика
Ответ на: комментарий от boombick

я вас понимаю, я вам еще раз - говорю - такой нет :)

у вас какие доступы есть ко второй базе? Вы имеет доступ к скриптовому-лееру? Или только к бд?

pechorin
()
Ответ на: комментарий от pechorin

только к бд и только на чтение

boombick ★★★★★
() автор топика
Ответ на: комментарий от pechorin

такой нет :)

Т.е. как ни крути, придется писать самому)) Уже морально готовлюсь.. Хотя вроде как у перконы что-то было такое, пока копаюсь у них на сайте

boombick ★★★★★
() автор топика
Ответ на: комментарий от boombick

если бы тебе был доступен какой-нибудь script-леер хотя бы, мог бы при создании/обновлении/удалении записей на уровне ОРМ-а(хотя я думаю его там нет) посылать легкие сообщение в zmq (дабы не грузить мастер базу), а потом уже уведомлять свою бд, а так тебе придется чуть ли ни каждый цикл анализировать всю базу, правда это в том случае, если тебе еще нужно «палить» обновления строк.

Если твоя цель - только НОВЫЕ записи то тут все проще гораздо.

pechorin
()
Ответ на: комментарий от pechorin

Мне реалтайм не нужен :) И затраты по времени не критичны в принципе. Я пока думаю примерно в сторону такого алгоритма: Слить дамп на локалку Пройтись по дампу, проинсертить все новые записи, любые операции с текущими (там только апдейты, физических удалений нет вообще) показать как конфликты и предложить выбрать что делать - оставить текущий вариант или заменить на новый Опционально можно добавить таблицы-исключения, для которых можно выбрать действия по умолчанию

boombick ★★★★★
() автор топика
Ответ на: комментарий от boombick

да оно же вроде легче чем rmq, и якобы православнее )

pechorin
()
Ответ на: комментарий от VirRaa

Репликация мне не подходит. Прочитай тред.

boombick ★★★★★
() автор топика

хёртбит, если удаленная это твоя или ред хат кластер сьют, возможности там хорошие.

doomgl
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.