powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Синхронизация данных между двумя ИС
25 сообщений из 36, страница 1 из 2
Синхронизация данных между двумя ИС
    #36757873
Rus000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ИС1 и ИС2.
В обеих системах существует сущность (таблица), допустим "Платежи", при этом в ИС1 платежи загружаются оператором, а в ИС2 они загружаются процедурой синхронизации из ИС1.

Для исключения дублирования платежей в ИС2 фиксируются ID платежа, присвоенного ему в ИС1. При синхронизации платежей из ИС1 в ИС2 проверяется наличие ID платежа в ИС2 и, если есть платеж обновляется, если нет - добавляется.

Теперь проблема.

Регламент резервного копирования ИС1 и ИС2 разный, ИС1 в один прекрасный момент "падает" и админы начинают процедуру восстановления из резервной копии ИС1 за несколько дней назад. При этом ИС2 не откатывается на ту же дату.

После этого пользователи ИС1 начинают загружать платежи но они регистрируются в ИС1 с НОВЫМИ идентификаторами, которые при последующей процедуре синхронизации попадают на ранее синхронизированные (после последнего бэкапа до падения ИС1) идентификаторы и ОБНОВЛЯЮТ ранее загр. платежи в ИС2, но т.к. порядок повторной загрузки платежей скорее всего не совпадет то за дни с даты падения ИС1 и даты восстановления из бэкапа получится мешанина.

Хочу найти принципиальное решение как обеспечить поддержку целостности между двумя системами в случае сбоя и отката источника назад.
Самый простой вариант - при сбое ИС1 откатывать назад ИС1 и ИС2 вместе, даже несмотря на то что ИС2 функционирует нормально. Минус этого решения очевиден - потеря работы пользователей не только ИС1 но и пользователей ИС2.

Какие могут быть варианты?
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36757877
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rus000
Какие могут быть варианты?
вариант очевиден - зеркальное отображение данных, производимых системой ИС1 в системе ИС2.

p.s. ну и конечно избавить, по возможности, систему от "падений", а то об этом говорится как о стандартной ситуации.
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36757898
Реалист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rus000,

Для обмена данными нужно:
1. Синхронизация ID у записей, причем генерироваться они должны только в системе источнике.
2. Система - источник должна позволять выгружать данные за любой период времени.
3. У всех выгружаемых документов должен быть признак операции (создание, редактирование или удаление). Этот признак должен создаваться при выгрузке, а не "вычисляться" в приемной системе.

Тогда в Вашем случае, Вы просто удаляете все импортированные в ИС2 данные до момента восстановления ИС1 из бэкапа или немного раньше. После того, как в ИС1 данные введут по новой, загрузите их в ИС2 с помощью процедуры синхронизации из ИС1.

Тут есть неприятный момент: работа пользователей в ИС2 будет потеряна с момента восстановления данных из ИС1 в той части, в которой она зависит от загружаемых данных. (Например разнесение платежек к договорам и т.д.)
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758060
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmRus000
Какие могут быть варианты?
вариант очевиден - зеркальное отображение данных, производимых системой ИС1 в системе ИС2.

p.s. ну и конечно избавить, по возможности, систему от "падений", а то об этом говорится как о стандартной ситуации.
зеркалирование поможет, если в ИС2 не было ссылок (прямых) на сущность, залитую из ИС1. В противном случае, зеркалирование не спасет от ситуации, когда источник откатили на несколько дней, а в ИС2 уже к тем данным, что введены за последние несколько дней уже есть привязка.

Мы с платежами делали через ввод нового генерируемого поля, определяющего уникальность записи (помимо первичного ключа) на основе семантики платежа... так чтобы в таких сиутациях синхроинизровать не по первичному ключу, а по смыслу платежной записи.
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758135
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mainframe_старыйзеркалирование поможет, если в ИС2 не было ссылок (прямых) на сущность, залитую из ИС1. В противном случае, зеркалирование не спасет от ситуации, когда источник откатили на несколько дней, а в ИС2 уже к тем данным, что введены за последние несколько дней уже есть привязка.
если привязка есть, значит имел место факт платежа. Есть системы, которые синхронизируются при помощи механизмов зеркального отображения. Если одну, по какой-то причине откатили, то точно также можно и "накатить", естественно. Но опять же, повторюсь: рассматривается какой-то абстрактный пример, исключительная ситуация.
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758235
Реалист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть потенциальный конфликт, даже при "зеркальной" синхронизации, когда от загружаемых данных зависит другая выполненная работа. В этом случае ее нужно будет удалять, раз данные, на основе которых эта работа выполнена, будут загружены по новой.
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758314
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РеалистМожет быть потенциальный конфликт, даже при "зеркальной" синхронизации, когда от загружаемых данных зависит другая выполненная работа. В этом случае ее нужно будет удалять, раз данные, на основе которых эта работа выполнена, будут загружены по новой.
если "работа" выполняется на основании каких-то данных и этих данных нет в базе на определенный момент времени, то как бы и "работы" нет. Или речь о другом идет?
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758354
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rus000Регламент резервного копирования ИС1 и ИС2 разный, ИС1 в один прекрасный момент "падает" и админы начинают процедуру восстановления из резервной копии ИС1 за несколько дней назад. вообще говоря, что это за регламент резервного копирования такой, что при падении приходится восстанавливать систему с потерей нескольких дней? менять надо такой регламент скорее, и это не имхо, а первейшая необходимость.
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758439
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rus000Хочу найти принципиальное решение как обеспечить поддержку целостности между двумя системами в случае сбоя и отката источника назад.
...
Какие могут быть варианты?Принципиальное решение - создавать идентификатор платежа до регистриции в ИС1, по файту появления желания сделать платёж.

Далее всё, что связано с этим платежём - регистрация в ИС1...ИСн, текстовые логи в терминалах, стикеры, наклееные на мониторах - должны идти с этим идентификатором.

Вариант этого решения - предложение Mainframe_старый.

Остальные варианты только приближают вас к идеалу, но не достигают его, т.к. всё равно в реальной большой системе за годы и десятилетия эксплуатации будут и потери данных, и ошибки программистов, и ошибки админов в управлении бакапами и т.п., т.е. такие ситуации будут всё равно возникать.
Вам нужно такое решение, чтобы не закрывать фирму при таких сбоях, а восстанавливать данные и продолжать работать.
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758453
Rus000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mainframe_старыйiscrafmRus000
Какие могут быть варианты?
вариант очевиден - зеркальное отображение данных, производимых системой ИС1 в системе ИС2.

p.s. ну и конечно избавить, по возможности, систему от "падений", а то об этом говорится как о стандартной ситуации.
зеркалирование поможет, если в ИС2 не было ссылок (прямых) на сущность, залитую из ИС1. В противном случае, зеркалирование не спасет от ситуации, когда источник откатили на несколько дней, а в ИС2 уже к тем данным, что введены за последние несколько дней уже есть привязка.


ситуация именно такая - залитые из ИС1 платежи участвуют в других процессах ИС2 и это осложняет поиск решения без потери сделанной работы пользователями ИС2

Mainframe_старый
Мы с платежами делали через ввод нового генерируемого поля, определяющего уникальность записи (помимо первичного ключа) на основе семантики платежа... так чтобы в таких сиутациях синхроинизровать не по первичному ключу, а по смыслу платежной записи.


поясните мысль подробнее - у платежа стандарно есть несколько реквизитов, композицию которых можно конечно рассматривать как уникальный ID, но не будет ли это дорого стоить с точки зрения хранения и использования?
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758456
Rus000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafmMainframe_старыйзеркалирование поможет, если в ИС2 не было ссылок (прямых) на сущность, залитую из ИС1. В противном случае, зеркалирование не спасет от ситуации, когда источник откатили на несколько дней, а в ИС2 уже к тем данным, что введены за последние несколько дней уже есть привязка.
если привязка есть, значит имел место факт платежа. Есть системы, которые синхронизируются при помощи механизмов зеркального отображения. Если одну, по какой-то причине откатили, то точно также можно и "накатить", естественно. Но опять же, повторюсь: рассматривается какой-то абстрактный пример, исключительная ситуация.

ИС1 и ИС2 не являются зеркалами друг к другу. Они реализованы на разных платформах и имеют разный функционал. Все что их объединяет - это платежи которые нужны для самостоятельного учета в каждой из систем. Платежи поступают по цепочке Казначейство->ИС1->ИС2

Сейчас думаю над вариантом разбиения цепи на две
Казначейство->ИС1
Казначейство->ИС2
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758460
Rus000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafmНо опять же, повторюсь: рассматривается какой-то абстрактный пример, исключительная ситуация.

К сожалению пример не абстрактный а из жизни. Следить за отказоустойчивостью более 80 пар ИС1-ИС2 затруднительно, а техника и новые сырые версии ИС1 могут ломать шаткое равновесие.
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758461
Rus000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
РеалистМожет быть потенциальный конфликт, даже при "зеркальной" синхронизации, когда от загружаемых данных зависит другая выполненная работа. В этом случае ее нужно будет удалять, раз данные, на основе которых эта работа выполнена, будут загружены по новой.

Соглашусь, даже в классической двунаправленной синхронизации есть геморрой под назнание разрешение конфликтов. В нашем случае ИС1 и ИС2 не зеркала априори.
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758464
Rus000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorychRus000Регламент резервного копирования ИС1 и ИС2 разный, ИС1 в один прекрасный момент "падает" и админы начинают процедуру восстановления из резервной копии ИС1 за несколько дней назад. вообще говоря, что это за регламент резервного копирования такой, что при падении приходится восстанавливать систему с потерей нескольких дней? менять надо такой регламент скорее, и это не имхо, а первейшая необходимость.

согласен, это одна из мер только из разряда организационных.
Но все равно даже если резервное копирование ежедневное, откат ИС1 на день назад повлечет откат на день работы совершенно нормально работающей ИС2.

Возможно это жертва которую придется принести за связывание одной сущности в двух ИС
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758466
Rus000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgRus000Хочу найти принципиальное решение как обеспечить поддержку целостности между двумя системами в случае сбоя и отката источника назад.
...
Какие могут быть варианты?Принципиальное решение - создавать идентификатор платежа до регистриции в ИС1, по файту появления желания сделать платёж.

Далее всё, что связано с этим платежём - регистрация в ИС1...ИСн, текстовые логи в терминалах, стикеры, наклееные на мониторах - должны идти с этим идентификатором.

Вариант этого решения - предложение Mainframe_старый.


Вы об этом?

alexeyvg
Остальные варианты только приближают вас к идеалу, но не достигают его, т.к. всё равно в реальной большой системе за годы и десятилетия эксплуатации будут и потери данных, и ошибки программистов, и ошибки админов в управлении бакапами и т.п., т.е. такие ситуации будут всё равно возникать.
Вам нужно такое решение, чтобы не закрывать фирму при таких сбоях, а восстанавливать данные и продолжать работать.

согласен и с первым со вторым, поэтому и ищу решение.
Наиболее правильным видимо будет отказаться от синхронизации и задублировать входящий платежей на обе системы.
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758473
Реалист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rus000
ИС1 и ИС2 не являются зеркалами друг к другу. Они реализованы на разных платформах и имеют разный функционал. Все что их объединяет - это платежи которые нужны для самостоятельного учета в каждой из систем. Платежи поступают по цепочке Казначейство->ИС1->ИС2

Сейчас думаю над вариантом разбиения цепи на две
Казначейство->ИС1
Казначейство->ИС2
Этот вариант будет оптимальным, если у Вас получиться проверять идентичность введенных платежек, что бы не вручную искать расхождения при различных ошибках ввода в разных системах.

Такую проверку нужно будет делать как Вы сами и написали:
Rus000... у платежа стандарно есть несколько реквизитов, композицию которых можно конечно рассматривать как уникальный ID...
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758497
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rus000Но все равно даже если резервное копирование ежедневное, откат ИС1 на день назад...современные промышленные СУБД давно уже умеют восстанавливать базу на момент сбоя, при правильно организованной схеме резервного копирования. Чтение документации и правильные вопросы на профильном форуме по вашей СУБД помогут вам в определении таковой.
Имхо, вам надо направить свои усилия на повышение отказоустойчивости системы ИС1, вместо изобретения странных костылей. Принципы построения отказоустойчивых систем известны и давно опубликованы, и включают как программные, так и административные методы.
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758511
Rus000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorychRus000Но все равно даже если резервное копирование ежедневное, откат ИС1 на день назад...современные промышленные СУБД давно уже умеют восстанавливать базу на момент сбоя, при правильно организованной схеме резервного копирования. Чтение документации и правильные вопросы на профильном форуме по вашей СУБД помогут вам в определении таковой.


Вы о чем, коллега? любому здесь понятно что СУБД умеют восстанавливать данные на момент сбоя, но как это относится к описанной ситуации? в данному случае непротиворечивая резервная копия есть совокупность резервных копий ИС1 и ИС2 при условии что регламентной синхронизации не произошло.
В противном случае Вы не можете быть застрахованы от сбоя в любом звене, и все регламенты летят к черту. Или приведите здесь "правильно организованный регламент" для описанной ситуации.

egorych
Имхо, вам надо направить свои усилия на повышение отказоустойчивости системы ИС1, вместо изобретения странных костылей. Принципы построения отказоустойчивых систем известны и давно опубликованы, и включают как программные, так и административные методы.

Хм .. Вы же понимаете, что повышение процента отказоустойчивости ИС1 никогда не достигнет 100%, причем каждый процент после 80-90 Вам будет стоить в как первые 90.
Таким образом резервная копия ВСЕГДА будет одним из инструментов повышения отказоустойчивости, а раз так существует ситуации когда ИС1 сбойнет и потребуется восстановление данных. Хороший пример - кривая версия ПО, когда требуется экстренный откат обратно.

Может изложите что-то по существу вопроса вместо общих всем известных сентенций
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758532
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rus000,

речь идет о системах, над которыми Вы не имеете контроля? т.е. это закрытое ПО, чьего-то производства?
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758538
Rus000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafmRus000,

речь идет о системах, над которыми Вы не имеете контроля? т.е. это закрытое ПО, чьего-то производства?

должный контроль только над ИС2, над ИС1 только косвенный
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758539
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rus000Наиболее правильным видимо будет отказаться от синхронизации и задублировать входящий платежей на обе системы.
зеркалирование было предложено в самом начале, как самый надежный вариант, позволяющий восстановить данные и обратно в ИС1, в том числе. Не пойму, Вы с этим согласны или нет? Определитесь.
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758543
Rus000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafmRus000,

речь идет о системах, над которыми Вы не имеете контроля? т.е. это закрытое ПО, чьего-то производства?

ИС1 разработана другим исполнителем и доступна только как источник данных, изменять код ИС1 не представляется возможным в краткосрочной перспективе
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758552
Rus000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafmRus000Наиболее правильным видимо будет отказаться от синхронизации и задублировать входящий платежей на обе системы.
зеркалирование было предложено в самом начале, как самый надежный вариант, позволяющий восстановить данные и обратно в ИС1, в том числе. Не пойму, Вы с этим согласны или нет? Определитесь.

Вариант может и надежный но для описанной ситуации на мой взгляд мало применимый
1) ИС1 и ИС2 имеют разных разработчиков
2) синхронизация платежей односторонняя и в обратном течении потока нет смысла
3) даже если бы мы начали думать над п.2) то придется брать ответственность за корректную вставку данных в чужое ПО (минуя интерфейс пользователя), а этого никому не хочется.
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758553
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rus000iscrafmRus000,

речь идет о системах, над которыми Вы не имеете контроля? т.е. это закрытое ПО, чьего-то производства?

ИС1 разработана другим исполнителем и доступна только как источник данных, изменять код ИС1 не представляется возможным в краткосрочной перспективе
понятно. Тогда в ИС2 придется напрямую получать первичную информацию из казначейства. Если конечно есть такая возможность.
...
Рейтинг: 0 / 0
Синхронизация данных между двумя ИС
    #36758654
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rus000Может изложите что-то по существу вопроса вместо общих всем известных сентенцийпока не очень понятно существо вопроса, то у вас частые падения и потеря данных за несколько дней, то 80-90% отказоустойчивая система.
хотя, конечно, ситуация начинает проясняться. Уже понятно, что контроля над кодом ИС1 у вас нет, однако: администрирование этой системы находится в ваших руках? есть ли возможность развернуть тестовую версию этой системы?
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Синхронизация данных между двумя ИС
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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