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

Модератор: Модераторы

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

Сообщение Delphi » 17.06.2012 21:44:48

Есть бд на сервере и есть несколько клиентов.
Нужно сделать так, чтобы клиент работал с локальной БД, а при появлении интернета(он есть не всегда) обе БД синхронизировались.
Подскажите, пожалуйста, как правильно сделать?
Спасибо
Delphi
новенький
 
Сообщения: 26
Зарегистрирован: 18.02.2012 01:12:52

Re: Синхронизация локальной БД с сервером

Сообщение ronin » 17.06.2012 22:21:53

какая бд?
ronin
постоялец
 
Сообщения: 174
Зарегистрирован: 27.01.2010 00:14:46

Re: Синхронизация локальной БД с сервером

Сообщение Delphi » 17.06.2012 22:41:35

ronin писал(а):какая бд?

На сервере сейчас MySQL, локальной пока нет.
Delphi
новенький
 
Сообщения: 26
Зарегистрирован: 18.02.2012 01:12:52

Re: Синхронизация локальной БД с сервером

Сообщение Little_Roo » 17.06.2012 23:03:59

Delphi писал(а):Нужно сделать так, чтобы клиент работал с локальной БД, а при появлении интернета(он есть не всегда) обе БД синхронизировались.

Не понял идею...
Предположим, инета нет -> базы у клиентов локальные - так?
Клиент А -> добавил-удалил-отредактировал запись, отвалил...
Клиент Б -> добавил-удалил-отредактировал другую запись...и тут инет появился...синхронизация...и вся работа клиента А коту ректально... :(
Синхронизация локальная-сетевая как должна работать?
Вариантов можно еще придумать...

Или описанная проблема криво сформулирована, либо ой...
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Синхронизация локальной БД с сервером

Сообщение Delphi » 17.06.2012 23:11:51

Извините, если плохо сформулировал вопрос.
Тогда нужно синхронизировать только изменения, а не всю бд.
Юзер вообще не должен почувствовать есть/нет интернета.
Редактирование 1 записи 2-умя пользователями одновременно исключено.
Delphi
новенький
 
Сообщения: 26
Зарегистрирован: 18.02.2012 01:12:52

Re: Синхронизация локальной БД с сервером

Сообщение Brainenjii » 17.06.2012 23:37:41

когда инет отрубается - начинать вести лог действий с базой. Как только появляется - отправлять лог на сервер, где обрабатывать...
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Синхронизация локальной БД с сервером

Сообщение Delphi » 18.06.2012 00:49:14

Brainenjii писал(а):когда инет отрубается - начинать вести лог действий с базой. Как только появляется - отправлять лог на сервер, где обрабатывать...

Вот я так сначала и хотел сделать.
Но есть проблема.
В программе есть таблица, данные в которую идут из MySQL на сервере.
Нужно сделать так, что бы юзер мог смотреть эту таблицу (выбирая нужную дату) в оффлайн режиме тоже.
Delphi
новенький
 
Сообщения: 26
Зарегистрирован: 18.02.2012 01:12:52

Re: Синхронизация локальной БД с сервером

Сообщение Vadim » 18.06.2012 03:58:00

Delphi писал(а):Нужно сделать так, что бы юзер мог смотреть эту таблицу (выбирая нужную дату) в оффлайн режиме тоже.

Если Вы получили данные запросом из этой таблицы, когда связь с сервером есть, то пока Вы этот запрос не закроете, этот набор данных завсегда будет на клиенте - пусть смотрит и выбирает, что хочет и когда хочет.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Синхронизация локальной БД с сервером

Сообщение xcod » 18.06.2012 07:12:50

в mysql есть свои механизмы репликации данных
мжт это будет возможно использовать
сам не пользовал, все в теории :)
xcod
постоялец
 
Сообщения: 108
Зарегистрирован: 07.08.2009 12:37:23

Re: Синхронизация локальной БД с сервером

Сообщение Delphi » 18.06.2012 09:11:05

Vadim писал(а):
Delphi писал(а):Нужно сделать так, что бы юзер мог смотреть эту таблицу (выбирая нужную дату) в оффлайн режиме тоже.

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

А если при запуске программы уже нет интернета?
По идеи нужно как-то организовать локальную бд + на сервере, но как сделать?
Delphi
новенький
 
Сообщения: 26
Зарегистрирован: 18.02.2012 01:12:52

Re: Синхронизация локальной БД с сервером

Сообщение alexey38 » 18.06.2012 12:31:18

Можно и не сложно написать свою технологию синхронизации.
В таблицы, которые могут изменяться введите поля с пользователем и временем модификации.
Также храните время последней синхронизации. Далее потабличные выборки на своей и серверной стороне.
Все остальное уже техника.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: Синхронизация локальной БД с сервером

Сообщение Ism » 18.06.2012 14:10:19

Может это поможет

Репликация в MySQL
http://www.mysql.ru/docs/man/Replication.html

Как вариант сделать в программе локальную базу MySql в Embedded режиме , сливать данные туда, а при соединении сбрасывать на сервер

http://dev.mysql.com/doc/refman/5.1/en/libmysqld.html
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Синхронизация локальной БД с сервером

Сообщение Delphi » 18.06.2012 14:18:47

Наверное такой вариант подойдет лучше всего.
1 БД на сервере (MySQL)
1 БД у клиента (LiteSQL3, но лучше MySQL, правда тогда поднимать локальный MySQL)
Клиент работает с локальной бд, все команды записываются в лог.
При подключении к интернету команды из лог идут на сервер, а потом сливаем MySQL с сервера клиенту.
Варианта, что 2 клиента отредактировали 1 запись одновременно быть не должно.
Пройдет такая схема?
Ism, спасибо за ссылки, пошёл читать.
Delphi
новенький
 
Сообщения: 26
Зарегистрирован: 18.02.2012 01:12:52

Re: Синхронизация локальной БД с сервером

Сообщение Vadim » 18.06.2012 17:59:14

Ism писал(а):Как вариант сделать в программе локальную базу MySql в Embedded режиме

Если я ничего не путаю, Embedded-режим в MySQL только для коммерческого применения.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Синхронизация локальной БД с сервером

Сообщение Ism » 18.06.2012 18:40:31

Не знал
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

След.

Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru