|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
Добрый день! Подскажите пожалуйста, как решить эту задачу. Никогда не имел дело с БД. Есть два локальных рабочих места, клиенты написаны давно и работают только с БД на этом же компьютере, по сети не умеют. Сами компьютеры находятся в одной локальной сети. Можно чем то сторонним синхронизировать две эти БД, чтобы в результате они имели одинаковые данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 13:07 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
Regressor, зависит от того, как разработана БД. Так что ответ - от возможно до невозможно. "синхронизация" - это будет одноразовая операция, после чего оба рабочих места будут работать с одной БД в сети, или надо синхронизировать постоянно? Если первое, то это делается руками, если второе - репликация, но опять же, возможность репликации зависит от БД. Regressorклиенты написаны давно и работают только с БД на этом же компьютере, по сети не умеют. клиент Firebird всегда умеет "по сети". Определяется это только расположением сервера Firebird. Другое дело, что само приложение (как и разработанная БД) может не уметь работать в многопользовательском режиме, если оно изначально предполагало работать только как однопользовательское. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 13:14 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
Regressor, можно реплицировать (Ibreplicator). Можно подробнее - почему не умеют работать по сети? Может быть вы не умеете их готовить? Версия сервера какая? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 13:16 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
kdvДругое дело, что само приложение (как и разработанная БД) может не уметь работать в многопользовательском режиме, если оно изначально предполагало работать только как однопользовательское. Я наверное не так выразился про "клиентов", имелись ввиду именно приложения. Они однопользовательские. Это диспетчер для небольшого такси. Всегда был один оператор, но его стало не хватать, поэтому организовали еще одно рабочее место, "на подхвате". Вот только результаты они потом вручную переписывают в обе базы. Поэтому и подумалось о синхронизации, например, раз в сутки, или по усмотрению операторов. ОС WinXP, Firebird 2.5 Сразу спрошу, может кто в курсе, а вот это не подойдет? http://www.xstarter.com/rus/firebird-interbase-job-scheduler.html Тоже вроде умеет синхронизировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 13:22 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
RegressorОни однопользовательские. Почему Вы так думаете? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 13:28 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
RegressorСразу спрошу, может кто в курсе, а вот это не подойдет? http://www.xstarter.com/rus/firebird-interbase-job-scheduler.html Тоже вроде умеет синхронизировать. Не умеет. Вообще не трогай. Что за программа для такси? Их на FB много и многие приходилось лично мне щупать. Больше подробностей,здесь не стоит хранить молчание. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 13:42 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
[quot Gallemar]RegressorЧто за программа для такси? Их на FB много и многие приходилось лично мне щупать. Больше подробностей,здесь не стоит хранить молчание. Да в нет тут ничего секретного, эта софтинка написана местным товарищем лет 8 назад, на дельфи. В нет абсолютно никаких настроек, пути к БД судя по всему жестко прописаны, она в подпапке той же папки где и сама программка. 100% однопользовательская. Расширение файла БД gdb ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 13:53 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
RegressorВ нет абсолютно никаких настроек, пути к БД судя по всему жестко прописаны По чему вы судите? К папке с программой есть какие либо конфигурационные файлы? Если сами затрудняетесь ответить можете каталог с прогой (не с БД!!!!) скинуть на почту мне,я сомнения развею ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 13:59 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
Regressorсама программка. 100% однопользовательская Почему Вы так решили? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 14:01 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
GallemarRegressorВ нет абсолютно никаких настроек, пути к БД судя по всему жестко прописаны По чему вы судите? К папке с программой есть какие либо конфигурационные файлы? Если сами затрудняетесь ответить можете каталог с прогой (не с БД!!!!) скинуть на почту мне,я сомнения развею Ребята, я хоть и не имел дело с БД, но на асс, VB и С# немного пишу, есть в сети и мои несложные программы. Нет там никаких конфигурационных файлов. Да и саму софтинку я немного помучил OllyDbg, кое-что в ней поменяв - не работает она в сети, гарантирую. Я все же вернусь к своему вопросу - о синхронизации БД сторонними средствами. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 14:11 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
RegressorДа и саму софтинку я немного помучил OllyDbg, кое-что в ней поменяв - не работает она в сети, гарантирую. Дай угадаю: ты скопировал файл БД на файловый сервер и поправил к нему путь в экзешнике?.. Чувак, ну хоть что-нибудь почитай о клиент-сервере вообще и Firebird в частности прежде чем вылезать со своими "гарантиями"... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 14:25 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovRegressorДа и саму софтинку я немного помучил OllyDbg, кое-что в ней поменяв - не работает она в сети, гарантирую. Дай угадаю: ты скопировал файл БД на файловый сервер и поправил к нему путь в экзешнике?.. Чувак, ну хоть что-нибудь почитай о клиент-сервере вообще и Firebird в частности прежде чем вылезать со своими "гарантиями"... Пациент хочет умереть,медицина бессильна... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 14:29 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Дай угадаю: ты скопировал файл БД на файловый сервер и поправил к нему путь в экзешнике?.. Нет, я убрал ограничения на длину цифр в колонках - параллельно это же пришлось сделать в БД с помощью IBExpert. БД и сервер вообще расположены на том же компьютере где и рабочая программа, зачем что-то и куда копировать? Я так понял, сама идея внешней синхронизации вызывает у присутствующих идиосинкразию и требуется непременно "своими средствами", иначе сложно объяснить непременное желание сделать это из рабочей программы. Ок, спасибо, попробую в других местах поспрашивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 14:34 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
RegressorЯ так понял, сама идея внешней синхронизации вызывает у присутствующих идиосинкразию и требуется непременно "своими средствами", иначе сложно объяснить непременное желание сделать это из рабочей программы. эээ, что? уже сказали, что репликацию можно организовать инструментом IBReplicator. Но и я сразу сказал, что БД может быть разработана так, что репликатор просто не сможет реплицировать данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 14:37 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
RegressorЯ так понял, сама идея внешней синхронизации вызывает у присутствующих идиосинкразию и требуется непременно "своими средствами", иначе сложно объяснить непременное желание сделать это из рабочей программы. Тебе пытаются объяснить, что возможно никакой синхронизации вообще не понадобится. Ибо идеология файл-серверных СУБД в том чтобы было много клиентов, а база одна. В твоем случае возможно даже, чтобы и сервер и один из клиентов были на одном компе, а второй клиент на другом. В приложении менять обычно ничего не нужно, кроме параметров подключения. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 14:40 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
Ты уперся - не работает по сети и всё. Если ты не работал с СУБД раньше, как ты можешь это понять? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 14:40 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
посадить обоих операторов на терминальный сервер? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 15:23 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
RegressorЯ так понял, сама идея внешней синхронизации вызывает у присутствующих идиосинкразию и требуется непременно "своими средствами", иначе сложно объяснить непременное желание сделать это из рабочей программы. Задача синхронизации баз сложнее, чем работа двух экземпляров приложения с одной базой. Так что если ты обломался на втором, то первое тебе и подавно не по зубам. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 15:28 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
Regressor, вам Ivan_Pisarevsky подсказал - попробуйте использовать второй экземпляр программы в терминале ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 16:57 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
RegressorЯ так понял, сама идея внешней синхронизации вызывает у присутствующих идиосинкразию и требуется непременно "своими средствами", иначе сложно объяснить непременное желание сделать это из рабочей программы. Я так понял, сама идея прочитать что-то об используемом инструменте вводит пациента в анафилактический шок. Присоединяюсь ко мнению коллег о том, что пациента лечить бесполезно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 17:01 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
я так понимаю, автор вопроса ушел искать ответ в "другом месте". ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2015, 17:05 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
Вчера уточнили ситуацию - судя по всему, сети как таковой вообще не будет, второй оператор переезжает на другую базу, там пока ни интернета, ни прочих радостей, уж не говоря о локалке. (( Так проще город перекрыть радиосвязью для машин. Ну, в принципе, наверное можно и банально на флешке привезти файл БД. Попробовал синхронизировать с помощью EMS DB Comparer for Interbase/Firebird, но получается какая то ерунда. Беру две разные базы (даже по весу заметно отличаются, одно рабочее место какое то время не использовалось), сравнивают, находит какую то мелочь и сообщает что все готово, базы одинаковые, хотя на самом деле ничего не изменилось. Если же проделать это с помощью EMS Dата Comparer for Interbase/Firebird, то сравнение таблиц затягивается навечно, хотя базы не столь велики, примерно по 240-280Мб. Чем еще можно попробовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 01:45 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
Regressor, DB Comparer сравнивает СТРУКТУРУ баз, а раз они одинаковые, в структуре различий нет. А вот Dата Comparer - сравнивает данные. Разумеется, искать отличия совсем не быстрое занятие. Но все равно, вы занимаетесь фигней. Почему? Ну например. В базе есть таблица клиентов - номер, фио, телефон, и т.д. Или таксистов, не важно. Обычно в таблицах есть первичный ключ, автоинкремент, т.е. автоматически присваивается новым записям от 1 до N. Допустим, последняя запись в этой таблице была с номером 200. Теперь базу скопировали, и перенесли на другой комп. Дальше, на двух компах начинают работать 2 диспетчера. У каждого появляются 2 разных клиента. Первый диспетчер вводит клиента 201 по фамилии Иванов Второй диспетчер вводит клиента 201 по фамилии Петров. Напомню, у обоих номер 201 получается потому, что в исходной базе последний был 200. Теперь вы берете Data Comparer. Он долго работает, потом показывает, что в такой-то таблице есть запись с id 201, только у нее столбец ФИО (и другие столбцы) отличаются. Data Comparer сможет максимум что сделать - это заменить одни данные на другие. Т.е. Петрова заменить на Иванова, или наоборот (смотря какая база целевая). Но он не в состоянии добавить Петрова как 202 в одной базе, а во второй базе - поменять 201 на Иванова, и добавить 202 как Петрова. Такие вещи вам придется делать руками. А количество изменений, сами понимаете, будет приличным, чем дольше обе базы будут несинхронизированными. Именно об этом я говорил, что просто так синхронизировать базы не получится. Да и для репликации структура БД должна быть разработана специально. Если такое разработчиком не было предусмотрено, например, он даже ориентировался на многопользовательский режим, но не предполагал синхронизацию двух разнесенных БД, то регулярно эти БД синхронизировать не получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 02:20 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
авторТеперь вы берете Data Comparer. Он долго работает, потом показывает, что в такой-то таблице есть запись с id 201, только у нее столбец ФИО (и другие столбцы) отличаются. Data Comparer сможет максимум что сделать - это заменить одни данные на другие. Т.е. Петрова заменить на Иванова, или наоборот (смотря какая база целевая). Но он не в состоянии добавить Петрова как 202 в одной базе, а во второй базе - поменять 201 на Иванова, и добавить 202 как Петрова. Такие вещи вам придется делать руками. А количество изменений, сами понимаете, будет приличным, чем дольше обе базы будут несинхронизированными. Вот черт. Теперь понятно. То есть утилит или программ которые могут "раздвинуть" строки таблиц вставив чужие и изменив при этом ID, не существует. Спасибо, ясно. Плохо...((( Получается, если они переносят списки вручную, то хоть они и отсортированы по времени заказа, но идентификаторы при этом не подряд идут, перемешаны. Жесть. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 08:32 |
|
Синхронизация 2-х локальных баз Firebird
|
|||
---|---|---|---|
#18+
Итак, автор все ищет волшебный инструмент. Уже несколько раз пытались объяснить, что задача синхронизации гораздо сложнее, чем, чем задача работы двух и более клиентов с одной базой. Предложили даже вариант с терминалом, который возможно решит проблему вообще без какой-либо переделки приложения. Но нет. Все тут не понимают автора. Ну что можно сказать. Если действительно нет возможности работать с одной базой одновременно, то решения твоей проблемы тоже нет. Ибо почему нельзя синхронизировать неприспособленные для этого базы наиболее популярно объяснил kdv. Таким образом просто угробятся данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2015, 08:34 |
|
|
start [/forum/moderation_log.php?user_name=%D0%94%D0%B5%D0%BD%D0%B8%D1%81+%D0%9F.]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
37ms |
get forum data: |
2ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
others: | 2024ms |
total: | 2232ms |
0 / 0 |