powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Синхронизация 2-х локальных баз Firebird
25 сообщений из 38, страница 1 из 2
Синхронизация 2-х локальных баз Firebird
    #38976147
Regressor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Подскажите пожалуйста, как решить эту задачу. Никогда не имел дело с БД.
Есть два локальных рабочих места, клиенты написаны давно и работают только с БД на этом же компьютере, по сети не умеют. Сами компьютеры находятся в одной локальной сети.

Можно чем то сторонним синхронизировать две эти БД, чтобы в результате они имели одинаковые данные?
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976159
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Regressor,

зависит от того, как разработана БД. Так что ответ - от возможно до невозможно.

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

Regressorклиенты написаны давно и работают только с БД на этом же компьютере, по сети не умеют.
клиент Firebird всегда умеет "по сети". Определяется это только расположением сервера Firebird.
Другое дело, что само приложение (как и разработанная БД) может не уметь работать в многопользовательском режиме, если оно изначально предполагало работать только как однопользовательское.
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976162
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Regressor, можно реплицировать (Ibreplicator). Можно подробнее - почему не умеют работать по сети? Может быть вы не умеете их готовить? Версия сервера какая?
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976170
Regressor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvДругое дело, что само приложение (как и разработанная БД) может не уметь работать в многопользовательском режиме, если оно изначально предполагало работать только как однопользовательское.
Я наверное не так выразился про "клиентов", имелись ввиду именно приложения.
Они однопользовательские. Это диспетчер для небольшого такси. Всегда был один оператор, но его стало не хватать, поэтому организовали еще одно рабочее место, "на подхвате". Вот только результаты они потом вручную переписывают в обе базы.

Поэтому и подумалось о синхронизации, например, раз в сутки, или по усмотрению операторов. ОС WinXP, Firebird 2.5
Сразу спрошу, может кто в курсе, а вот это не подойдет? http://www.xstarter.com/rus/firebird-interbase-job-scheduler.html
Тоже вроде умеет синхронизировать.
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976178
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegressorОни однопользовательские.
Почему Вы так думаете?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976204
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegressorСразу спрошу, может кто в курсе, а вот это не подойдет? http://www.xstarter.com/rus/firebird-interbase-job-scheduler.html
Тоже вроде умеет синхронизировать.
Не умеет. Вообще не трогай.
Что за программа для такси? Их на FB много и многие приходилось лично мне щупать. Больше подробностей,здесь не стоит хранить молчание.
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976220
Regressor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Gallemar]RegressorЧто за программа для такси? Их на FB много и многие приходилось лично мне щупать. Больше подробностей,здесь не стоит хранить молчание.
Да в нет тут ничего секретного, эта софтинка написана местным товарищем лет 8 назад, на дельфи. В нет абсолютно никаких настроек, пути к БД судя по всему жестко прописаны, она в подпапке той же папки где и сама программка. 100% однопользовательская. Расширение файла БД gdb
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976228
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegressorВ нет абсолютно никаких настроек, пути к БД судя по всему жестко прописаны
По чему вы судите? К папке с программой есть какие либо конфигурационные файлы? Если сами затрудняетесь ответить можете каталог с прогой (не с БД!!!!) скинуть на почту мне,я сомнения развею
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976231
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Regressorсама программка. 100% однопользовательская
Почему Вы так решили?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976245
Regressor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GallemarRegressorВ нет абсолютно никаких настроек, пути к БД судя по всему жестко прописаны
По чему вы судите? К папке с программой есть какие либо конфигурационные файлы? Если сами затрудняетесь ответить можете каталог с прогой (не с БД!!!!) скинуть на почту мне,я сомнения развею

Ребята, я хоть и не имел дело с БД, но на асс, VB и С# немного пишу, есть в сети и мои несложные программы. Нет там никаких конфигурационных файлов. Да и саму софтинку я немного помучил OllyDbg, кое-что в ней поменяв - не работает она в сети, гарантирую.

Я все же вернусь к своему вопросу - о синхронизации БД сторонними средствами.
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976266
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegressorДа и саму софтинку я немного помучил OllyDbg, кое-что в ней поменяв - не
работает она в сети, гарантирую.
Дай угадаю: ты скопировал файл БД на файловый сервер и поправил к нему путь в экзешнике?..

Чувак, ну хоть что-нибудь почитай о клиент-сервере вообще и Firebird в частности прежде
чем вылезать со своими "гарантиями"...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976275
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovRegressorДа и саму софтинку я немного помучил OllyDbg, кое-что в ней поменяв - не
работает она в сети, гарантирую.
Дай угадаю: ты скопировал файл БД на файловый сервер и поправил к нему путь в экзешнике?..

Чувак, ну хоть что-нибудь почитай о клиент-сервере вообще и Firebird в частности прежде
чем вылезать со своими "гарантиями"...

Пациент хочет умереть,медицина бессильна...
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976281
Regressor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov
Дай угадаю: ты скопировал файл БД на файловый сервер и поправил к нему путь в экзешнике?..

Нет, я убрал ограничения на длину цифр в колонках - параллельно это же пришлось сделать в БД с помощью IBExpert.
БД и сервер вообще расположены на том же компьютере где и рабочая программа, зачем что-то и куда копировать?

Я так понял, сама идея внешней синхронизации вызывает у присутствующих идиосинкразию и требуется непременно "своими средствами", иначе сложно объяснить непременное желание сделать это из рабочей программы.

Ок, спасибо, попробую в других местах поспрашивать.
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976289
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegressorЯ так понял, сама идея внешней синхронизации вызывает у присутствующих идиосинкразию и требуется непременно "своими средствами", иначе сложно объяснить непременное желание сделать это из рабочей программы.
эээ, что?

уже сказали, что репликацию можно организовать инструментом IBReplicator. Но и я сразу сказал, что БД может быть разработана так, что репликатор просто не сможет реплицировать данные.
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976298
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegressorЯ так понял, сама идея внешней синхронизации вызывает у присутствующих идиосинкразию и требуется непременно "своими средствами", иначе сложно объяснить непременное желание сделать это из рабочей программы.
Тебе пытаются объяснить, что возможно никакой синхронизации вообще не понадобится. Ибо идеология файл-серверных СУБД в том чтобы было много клиентов, а база одна. В твоем случае возможно даже, чтобы и сервер и один из клиентов были на одном компе, а второй клиент на другом. В приложении менять обычно ничего не нужно, кроме параметров подключения.
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976301
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты уперся - не работает по сети и всё. Если ты не работал с СУБД раньше, как ты можешь это понять?
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976370
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посадить обоих операторов на терминальный сервер?
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976379
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegressorЯ так понял, сама идея внешней синхронизации вызывает у присутствующих
идиосинкразию и требуется непременно "своими средствами", иначе сложно объяснить
непременное желание сделать это из рабочей программы.
Задача синхронизации баз сложнее, чем работа двух экземпляров приложения с одной базой.
Так что если ты обломался на втором, то первое тебе и подавно не по зубам.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976531
Dmitriy_3206
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Regressor, вам Ivan_Pisarevsky подсказал - попробуйте использовать второй экземпляр программы в терминале
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976547
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegressorЯ так понял, сама идея внешней синхронизации вызывает у присутствующих идиосинкразию и требуется непременно "своими средствами", иначе сложно объяснить непременное желание сделать это из рабочей программы.

Я так понял, сама идея прочитать что-то об используемом инструменте вводит пациента в анафилактический шок. Присоединяюсь ко мнению коллег о том, что пациента лечить бесполезно.
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38976553
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я так понимаю, автор вопроса ушел искать ответ в "другом месте".
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38978300
Regressor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вчера уточнили ситуацию - судя по всему, сети как таковой вообще не будет, второй оператор переезжает на другую базу, там пока ни интернета, ни прочих радостей, уж не говоря о локалке. (( Так проще город перекрыть радиосвязью для машин. Ну, в принципе, наверное можно и банально на флешке привезти файл БД.

Попробовал синхронизировать с помощью EMS DB Comparer for Interbase/Firebird, но получается какая то ерунда. Беру две разные базы (даже по весу заметно отличаются, одно рабочее место какое то время не использовалось), сравнивают, находит какую то мелочь и сообщает что все готово, базы одинаковые, хотя на самом деле ничего не изменилось.

Если же проделать это с помощью EMS Dата Comparer for Interbase/Firebird, то сравнение таблиц затягивается навечно, хотя базы не столь велики, примерно по 240-280Мб.


Чем еще можно попробовать?
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38978303
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Regressor,

DB Comparer сравнивает СТРУКТУРУ баз, а раз они одинаковые, в структуре различий нет.
А вот Dата Comparer - сравнивает данные. Разумеется, искать отличия совсем не быстрое занятие.
Но все равно, вы занимаетесь фигней. Почему? Ну например.
В базе есть таблица клиентов - номер, фио, телефон, и т.д. Или таксистов, не важно. Обычно в таблицах есть первичный ключ, автоинкремент, т.е. автоматически присваивается новым записям от 1 до N.
Допустим, последняя запись в этой таблице была с номером 200.
Теперь базу скопировали, и перенесли на другой комп.
Дальше, на двух компах начинают работать 2 диспетчера.
У каждого появляются 2 разных клиента.
Первый диспетчер вводит клиента 201 по фамилии Иванов
Второй диспетчер вводит клиента 201 по фамилии Петров.
Напомню, у обоих номер 201 получается потому, что в исходной базе последний был 200.

Теперь вы берете Data Comparer. Он долго работает, потом показывает, что в такой-то таблице есть запись с id 201, только у нее столбец ФИО (и другие столбцы) отличаются. Data Comparer сможет максимум что сделать - это заменить одни данные на другие. Т.е. Петрова заменить на Иванова, или наоборот (смотря какая база целевая). Но он не в состоянии добавить Петрова как 202 в одной базе, а во второй базе - поменять 201 на Иванова, и добавить 202 как Петрова.
Такие вещи вам придется делать руками. А количество изменений, сами понимаете, будет приличным, чем дольше обе базы будут несинхронизированными.

Именно об этом я говорил, что просто так синхронизировать базы не получится. Да и для репликации структура БД должна быть разработана специально. Если такое разработчиком не было предусмотрено, например, он даже ориентировался на многопользовательский режим, но не предполагал синхронизацию двух разнесенных БД, то регулярно эти БД синхронизировать не получится.
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38978314
Regressor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторТеперь вы берете Data Comparer. Он долго работает, потом показывает, что в такой-то таблице есть запись с id 201, только у нее столбец ФИО (и другие столбцы) отличаются. Data Comparer сможет максимум что сделать - это заменить одни данные на другие. Т.е. Петрова заменить на Иванова, или наоборот (смотря какая база целевая). Но он не в состоянии добавить Петрова как 202 в одной базе, а во второй базе - поменять 201 на Иванова, и добавить 202 как Петрова.
Такие вещи вам придется делать руками. А количество изменений, сами понимаете, будет приличным, чем дольше обе базы будут несинхронизированными.

Вот черт. Теперь понятно. То есть утилит или программ которые могут "раздвинуть" строки таблиц вставив чужие и изменив при этом ID, не существует.
Спасибо, ясно. Плохо...((( Получается, если они переносят списки вручную, то хоть они и отсортированы по времени заказа, но идентификаторы при этом не подряд идут, перемешаны. Жесть.
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38978315
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак, автор все ищет волшебный инструмент. Уже несколько раз пытались объяснить, что задача синхронизации гораздо сложнее, чем, чем задача работы двух и более клиентов с одной базой. Предложили даже вариант с терминалом, который возможно решит проблему вообще без какой-либо переделки приложения. Но нет. Все тут не понимают автора. Ну что можно сказать. Если действительно нет возможности работать с одной базой одновременно, то решения твоей проблемы тоже нет. Ибо почему нельзя синхронизировать неприспособленные для этого базы наиболее популярно объяснил kdv. Таким образом просто угробятся данные.
...
Рейтинг: 0 / 0
25 сообщений из 38, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Синхронизация 2-х локальных баз Firebird
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]