Есть две независимые (бегущие на разных серверах) ситемы, время от времени нужно синхронизировать их базы данных. Как ето сделать наилучшим образом ? Как вариант у меня пока :
mysqldump --xml db [tables] > ~/public_html/sync.xml и потом парсить sync.xml, чего делать не хочется :))
Кроме того вопрос как сделать shell-скриптом save as [sync.xml] UTF-8 .
а чем не устраивает встроенный mysql mirroring?14.01.04 12:23 Автор: Eugene Статус: Незарегистрированный пользователь
Поэтому, видимо, буду создавать temporary table, делать ее дамп в ~/public_html/dump.sql, читать скриптом на 2'ом серваке http://server1.com/dump.sql, и запускать INSERT .... SELECT.
(это все поскольку у таблиц на двух серваках разная структура).
XML-решение мне кажется тяжелым и неоправданным
А просто скриптом или самописной прогой?13.01.04 19:19 Автор: RomanK Статус: Незарегистрированный пользователь
У меня в скором времени возникнет такая проблема.
Думаю решить её скриптом на перле или прогой на си, в зависимости от того что проще, который откроет одновременно соединение к двум машинам/базам, из одной "SELECT ..." а в другую "INSERT..." в цикле. Что может быть проще?
из соображений безопасности не может сушествовать ( в теории...14.01.04 11:55 Автор: tdes@work Статус: Незарегистрированный пользователь
из соображений безопасности не может сушествовать ( в теории ;) ) скрипта одновременно имеющего доступ к обоим базам данных, поскольку ето два+ приложения b2b, каждое из которых бежит на собственном сервере
"select все записи, отличающиеся от такой-то таблицы во-он той базы данных"? :)13.01.04 23:05 Автор: Ktirf <Æ Rusakov> Статус: Elderman
> У меня в скором времени возникнет такая проблема. > Думаю решить её скриптом на перле или прогой на си, в > зависимости от того что проще, который откроет > одновременно соединение к двум машинам/базам, из одной > "SELECT ..." а в другую "INSERT..." в цикле. Что может быть > проще? Краткий ответ - это не работает. Это попросту не является синхронизацией. И уж лучше тогда через mysqldump делать, там по крайней мере формат жестко зафиксирован.
Правильная синхронизация включает в себя добавление в каждую реплику новых записей из другой, аналогично удаление старых записей, синхронизация измененных записей и, возможно, устранение возникших конфликтов (например, какая-то запись со времени последней синхронизации изменялась в обеих репликах). Короче говоря, делать синхронизацию в полном объеме - это не халява.
> XML-решение мне кажется тяжелым и неоправданным Не такое уж оно тяжелое, имхо... Хотя в данном конкретном случае это может действительно оказаться стрельбой из пушки по воробьям.
Кстати, а система репликации для MySQL (на том же ФрешМите есть) тоже не катит?
Что касается скрипта, то любой интерактивный скрипт можно сделать автономным :) В худшем случае придется привлечь какой-нибудь expect, скажем.
Он самый - Результат mysqldump11.01.04 19:46 Автор: tdes@work Статус: Незарегистрированный пользователь