синхронизация 2х БД - локальной и серверной

Лысый

Новичок
синхронизация 2х БД - локальной и серверной

думаю. с такой задачей многие сталкивались
есть сервер
на нём много чего и всё оно берётся из БД

естественно работать проще в локальной версии
поэтому она есть
на виндовом компе поставлена копия сервера

люди с ней и работают
накапливаются изменения

надо их закидывать на сервер
1) обновления БД
грустно делать полный дамп таблиц и заменять ими серверные версии
так как меняется 1-5% записей
в каждой записи есть поле ДАТА - с датой последнего изменеия
так что всегда можно выбрать записи, изменённые со времени последней синхронизации, НО
как это автоматизировать?
майсклдамп катает только таблицы целиком, как вырезать только нужные (одновлённые) записи и сделать из них набор СКЛ комманд чтоб выполнить на сервере?
2)(уже не по БД) кроме БД обновляются некоторые файлы, например картинки
есть ли опыт, как выбрать только новые файлы, сохранив их распределение по дереву каталогов и закинуть и их на сервер?


поделитесь плз опытом и идеями

Спасибо.
 

Лысый

Новичок
как я понимаю репликацию в случае МуСкула
1) всё равно гоняется весь объём данных
какой смысл гонять неск тыс записей, сели изменилост несколько десятков?
2) полная рекпликация не совсем подходит
так как не все таблицы на сервере надо менять
3) и самое важное
я на хостинге не смогу автоматизировать репликацию, так как надо останавливать СКЛ сервер и прочее
а там сложности с правами доступа и тд

короче думаю, репликация - не выход
 

Апельсин

Оранжевое создание
1) всё равно гоняется весь объём данных
какой смысл гонять неск тыс записей, сели изменилост несколько десятков?
гоняется не весь объем данных, а только запросы изменяющие данные. Но если удаленная база на хостинге, то скорее всего не получится настроить репликацию.
 

Лысый

Новичок
мдя
видать в репликации я не силён
но тем не менее
с настройками действительно туго
я думал или про МуСкулДамп - но жалко гонять кучу данных :(

можно ли как то нагенерить СКЛ комманды для REPLACE только некоторых записей, а не всё таблицы?
 

myarh

Новичок
Можно, генерируй :)
Локальный сервер опрашивает удаленный, тот ему возвращает запросы, локальный выполняет. Дату посл. синхронизации где нибудь хранить не проблема.
 

Ripley

Новичок
>Локальный сервер опрашивает удаленный

Каким образом?
 

myarh

Новичок
Хм... странный вопрос..
Можно всякими разными образами...

Например ты запрашиваешь все данные (у пхп скрипта на стороне сервера), которые изменились с такого то времени.

В ответ тебе присылаются новые или измененные данные...
Ты апдейтишь их на своем сервере.

Можно заставить присылать прямо mysql дамп "новизны"
Инсерт, если данные новые (можно сделать две колонки даты или изобразить определенный статус) или апдейт, если данные уже есть на локальном сервере.

проблем не вижу
 

NaN

Новичок
Такой вариант:

Дописать в каждой странице, где есть операция Добавление Изменение Удаление данных, скрипт

который записывает в файл, SQL команду которую только, что совершил

затем в конце дня/недели ты берёшь данные этого файла и закидываешь на сервер…
 

Апельсин

Оранжевое создание
NaN, и зачем такие грабли если стандартная репликация делает тоже самое?
 
Сверху