powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Синхронизация 2-х локальных баз Firebird
38 сообщений из 38, показаны все 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
Синхронизация 2-х локальных баз Firebird
    #38978319
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegressorЧем еще можно попробовать?
Переписать программу с многопользовательским режимом работы и(или) репликацией,а не пытаться сову на глобус натянуть.
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38978336
Коваленко Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитай вводную , если интересно, как большие дяди в детстве решали эту задачу.

>нельзя синхронизировать неприспособленные для этого базы

Нужно просто черенок от лопаты взять попрочнее.
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38978386
Regressor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исходников нет, а писать новую - много времени займет, работу же не остановишь. Впрочем, я все равно буду делать вариант интегрированный с SIP, но не так быстро.

Ок, расстояние между базами примерно 3км, мачты для антенн стоят, можно попробовать повесить туда пару Ubiguiti мостом и создать локалку. Пока поставил на другой комп только программу, для эксперимента. Подключил к локалке.

В разделе RCData программы редактором ресурсов вписал сетевой пусть до файла БД, пароль и логин остались разумеется, те же.

С БД сконнектился без проблем. Одновременно запустил такую же софтину на основном компе, с сервером. Обе подключились и работают с одной БД.

Теперь новая проблема - каждый из клиентов видит все старые записи, но новые только свои. Как сделать чтобы видели все и свои и чужие?
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38978396
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Regressor вписал сетевой пусть до файла БД
Очень интересно,какой ты там пусть прописал...
RegressorТеперь новая проблема - каждый из клиентов видит все старые записи, но новые только свои. Как сделать чтобы видели все и свои и чужие?
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38978397
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegressorТеперь новая проблема - каждый из клиентов видит все старые записи, но новые только свои. Как сделать чтобы видели все и свои и чужие?
А ты уверен,что они к одной базе подключены?
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38978407
Regressor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сорри, решилась проблема! Оказывается я пока exeScope разные варианты пробовал, прописал в программе на основном компе с сервером путь к резервному файл БД на соседнем диске этого же компа! Исправил, сейчас оба видят!
авторОчень интересно,какой ты там пусть прописал...
Очень простой.

В разделе RCData есть подраздел TDM, там был прописан путь к локальному файлу на диске.

Прописал 'IP:C:\ibase\data\mainbase.gdb'
IP - адрес сервера разумеется. Сейчас попробую вписать вместо адреса имя сервера, интересно, подключится ли. Кстати, долго промучился с подключением из-за слэшей, везде написано что должно быть так '\\IP и т.д'. Убрал слэши, заработало.
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38978415
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Regressor везде написано что должно быть так '\\IP и т.д'.
где написано? Про ФБ такое нигде не написано.
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38978416
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Regressor везде написано что должно быть так '\\IP и т.д'. Убрал слэши, заработало.
Везде это где интересно?

На сарае написано х.й, а там дрова лежат...
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38978424
Regressor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GallemarRegressor везде написано что должно быть так '\\IP и т.д'. Убрал слэши, заработало.
Везде это где интересно?
На сарае написано х.й, а там дрова лежат...


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

Нимб не жмет. Загибай пальчики и смотри какие советы и наводящие вопросы я задавал:
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1159964&msg=17729994
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1159964&msg=17730164
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1159964&msg=17730622
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1159964&msg=17741579
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38978488
stelvic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ура. Насчет терминального сервера тоже не забывай. Если скорость будет не очень, этот вариант может оказаться лучше.
...
Рейтинг: 0 / 0
Синхронизация 2-х локальных баз Firebird
    #38978657
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Regressorесли почитать как в программе рекомендуют прописать пути к сетевым ресурсам, везде указаны два слэша.Не читайте советских газет перед обедом (с).
...
Рейтинг: 0 / 0
38 сообщений из 38, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Синхронизация 2-х локальных баз Firebird
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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