Изобретение относится к информационным технологиям, в частности, к методам и средствам обеспечения информационного обмена между компьютерными системами и может быть использовано для поддержания в идентичном состоянии баз данных (БД), размещенных в независимых компьютерах.
Типичной практической задачей, которая возникает для компьютерных систем, содержащих, например, основную (главную) стационарную часть (например, настольный десктоп) и мобильную (переферийную) часть (например, мобильный ноутбук), информация в которых может изменяться без привязки к интернету, и работа на ноутбуке производится в выездном режиме. В этом случае возникает необходимость регулярно производить полную репликацию/синхронизацию баз данных, загруженных в компьютерах.
Известны способ репликации информации и система для его осуществления, описанные в заявке [US 2005/0273474, А1, 08.12.2005], согласно которому, в процессе записи информации в основную базу данных устройство обработки информации производит обработку транзакций и создает журналы (лог-файлы) транзакций, на основании которых, по предварительно установленным правилам, формируется и оптимизируется последовательность обращений и записей в основную и реплицированную базы данных, причем, пользователь может обращаться к реплицированной базе данных как к независимой.
Это обеспечивает своевременное обновление основной и реплицированной баз данных при одновременном снижении нагрузки на каналы записи и ускорении доступа к данным.
Однако этот способ не позволяет обеспечить надежную передачу и репликацию данных в распределенных компьютерных сетях.
Известен также способ репликации данных [WO 2006052517, А1, 18.05.2006], заключающийся в обработке запросов в соответствии с параметрами, по которым оценивается необходимость передачи данного объекта в данный момент времени с точки зрения обеспечения
необходимого "качества" информации в каждой точке сети и времени, которое данный объект существует в базе данных.
Способ позволяет снизить нагрузку на сети передачи данных без существенного снижения качества обслуживания, однако приводит к задержкам в доступе к данным между различными узлами сети и ввиду этого нецелесообразен при высоких требованиях к идентичности информации в основных и реплицированных базах данных.
Известны также способ репликации информации [US 2005289198 А1, 29.12.2005], состоящий в том, что фиксируются транзакции-изменения в первой системе обработки информации (базе данных - источнике), и формируется группа из таких транзакций, которые передаются в виде сообщения второй системе обработки информации, в которой транзакции выделяются из группы и независимо применяются к находящейся там базе данных - реплике, при этом формируется таблица успешно завершенных транзакций, полученные из первой системы данные сохраняются во второй системе и удаляются программным компонентом, который проверяет таблицу успешно завершенных транзакций и на основании нее принимает решение, когда можно безопасно удалить сообщение.
Способ гарантирует, что все полученные данные будут занесены во вторую систему, однако не предусматривает каких-либо мероприятий по обеспечению корректной передачи данных по каналам связи.
Кроме того, известен способ репликации информации в распределенных базах данных и система для его осуществления, описанные в заявке [US 20050080825 A1, 14.04.2005], операции в котором сводятся к введению промежуточной БД между главной и периферийной компьютерными системами, причем, промежуточная БД является логически выделенной частью первичной БД и связана с удаленными БД протоколом синхронизации, который обеспечивает обновление периферийных БД.
Указанная схема процесса репликации предусматривает использование промежуточной БД, а также мониторинг процесса репликации только на стороне ведущей БД. Однако когда передача данных производится в обоих направлениях, данная схема, в общем случае, не позволяет обеспечить контроль корректности передаваемых данных.
Помимо указанных выше, известен способ управления репликацией файлов в приложениях [RU 2349952, С2, G06F 12/00, 20.03.2009], заключающийся в том, что инициируют с использованием первого приложения программного обеспечения, выполняющегося на упомянутом процессоре, событие синхронизации для синхронизации первой версии со второй версией, заставляют посредством первого приложения программного обеспечения программный интерфейс приложения компьютерной системы осуществлять доступ к упомянутым первой и второй версиям, сравнивают посредством программного интерфейса приложения информацию, связанную с каждой из упомянутых первой и второй версий, и генерируют результат, сообщают посредством программного интерфейса приложения результат сравнения первому приложению программного обеспечения, заставляют посредством программного интерфейса приложения в ответ на упомянутый результат второе приложение программного обеспечения, выполняющееся на упомянутом процессоре, генерировать пользовательский интерфейс в соответствии с признаком второго приложения программного обеспечения, при этом сгенерированный пользовательский интерфейс представляют пользователю во втором приложении программного обеспечения, причем электронный файл связан со вторым приложением программного обеспечения, открывают первую и вторую версии электронного файла посредством второго приложения программного обеспечения и представляют такие открытые первую и вторую версии пользователю, представляют пользователю посредством второго приложения программного обеспечения опцию синхронизации в отношении представленных версий с использованием сгенерированного пользовательского интерфейса второго приложения программного обеспечения, при этом опция синхронизации предоставляется вторым приложением программного обеспечения, принимают от пользователя посредством второго приложения программного обеспечения входные данные через пользовательский интерфейс, автоматически синхронизируют посредством второго приложения программного обеспечения первую и вторую версии согласно пользовательским входным данным, принятым через пользовательский интерфейс, и, при этом, автоматическая синхронизация первой и второй версий содержит слияние первой и второй версий в третью версию согласно входным данным, принятым от пользовательского интерфейса, в то же время, оставаясь в пользовательском интерфейсе второго приложения программного обеспечения, и перезапись первой и второй версий третьей версией.
Недостатком этого способа является относительно узкая область применения, которая ограничена файлами, записанными в памяти одного компьютера.
К известным относится и способ репликации информации в распределенных базах данных с конкурентным распределением потоков [RU 2510623, С2, G06F 12/00, 10.04.2014], заключающийся в том, что, в процессе обмена реплицируемыми данными между узлами распределенной базы данных формируют обменные файлы, которые пересылают между узлами распределенной базы данных, и на основе параметров обменных файлов и информации о доступных сетевых ресурсах вычисляют вариант распределения потоков обменных файлов на коммуникационных устройствах, передают информацию о варианте распределения потоков обменных файлов, в виде управляющего сигнала, на входы коммуникационных устройств, вычисляют при помощи коммуникационных устройств на основе распределенного алгоритма маршруты передачи обменных файлов, передают обменные файлы по определенным маршрутам.
Недостатком этого технического решения также является относительно узкая область применения.
Наиболее близким по технической сущности к предложенному является способ репликации данных между главной и периферийными компьютерными системами, содержащими основные и промежуточные базы данных (БД), [RU 2315349, C1, G06 F/00, 20.01.2008], состоящий в контроле наличия данных для репликации для главной и каждой из периферийных систем, последующем обмене этими данными между БД главной и БД периферийной компьютерных систем через промежуточные БД и проверке корректности выполненной репликации, причем, в процессе обмена реплицируемыми данными между БД главной и БД периферийной компьютерных систем формируют обменные файлы, которые помещают в хранилища обменных файлов каждой из компьютерных систем, выполненных с возможностью хранения и выборки обменных файлов, проверки корректности содержащихся в них данных, формирования и выполнения запросов на замену некорректных данных, проводят пересылку обменных файлов между главной и периферийной системами, проверяют корректность принятых файлов и в случае их некорректности обеспечивают повторную пересылку обменных файлов из хранилища, далее данные из принятых файлов передают в промежуточную БД, проверяют ссылочную целостность данных в промежуточной БД, и при отрицательном результате проверки формируют запрос на замену данных и обеспечивают замену некорректных данных, повторно осуществляют указанную проверку и при положительном результате передают данные в основную БД, при этом, для проверки корректности выполненной репликации формируют хэш-суммы соответствующих записей в основных БД главной и периферийной компьютерных систем.
Особенностями наиболее близкого технического решения является то, что, хранилище обменных файлов содержит каталоги обмена по числу периферийных компьютерных систем, в каждом из которых сформированы каталог файлов подтверждения, обработанных корректно; каталог файлов подтверждения, обработанных некорректно; каталог архива обработанных файлов подтверждения; каталог файлов данных и файлов подтверждения, готовых к передаче в узел назначения; каталог файлов, отправленных в узел назначения, для которых еще не пришло подтверждение о доставке и не превышено время ожидания подтверждения, и файлов, еще не отправленных в узел назначения; каталог файлов, которые были переданы и загружены в БД узла назначения, о чем пришло подтверждение; каталог архива переданных корректно файлов; каталог файлов, которые были переданы корректно, но не были загружены в БД узла назначения, о чем пришло подтверждение; каталог переданных файлов, для которых в течение длительного времени не пришло подтверждение о загрузке в БД узла назначения; каталог файлов данных и файлов подтверждения, принятых из узла назначения и готовых к загрузке в БД или анализу; каталог файлов, принятых из узла назначения и корректно загруженных в БД; каталог архива принятых и загруженных файлов; каталог файлов, принятых из узла назначения, но не загруженных в БД.
Кроме того, в этом техническом решении передачу обменных файлов проводят по FTP-протоколу, передачу обменных файлов проводят на машиночитаемом носителе.
Недостатком наиболее близкого технического решения является относительно узкая область применения, поскольку репликация производится в распределенной системе, состоящей их главной базы данных и некоторым количеством периферийных баз данных. Следовательно, без существенных изменения в процедуре репликации невозможно использовать известное техническое решение для случая, когда, по крайней мере, два компьютера равноценны и каждый из компьютеров выступает в роли компьютера-приемника или в роли компьютера-источника, а в другой момент они меняются ролями и только в этом случае обе базы данных будут полностью синхронизированы. При этом, база данных состоит из двух частей - базы знаний и регулярно пополняемой базы клиентов и исследований, причем, синхронизация производится только относительно базы клиентов и исследований, т.к. изменения в базу знаний вносятся централизованно и база знаний считается одинаковой в разных репликах.
Задача, которая решается в изобретении, заключается в создании способа применительно к двум компьютерам, в каждый из которых загружена одинаковая по структуре база данных с неизменной базой знаний и независимо изменяемой и дополняемой информацией в базе клиентов и исследований, заключающегося в периодической синхронизации базы данных в обоих компьютерах.
Требуемый технический результат заключается в расширении области применения способа репликации информации в распределенных базах данных с целью обеспечения возможности репликации (синхронизации) баз данных двух независимых компьютеров, в каждый из которых загружена одинаковая по структуре база данных с неизменной базой знаний и независимо изменяемой и дополняемой информацией в базе клиентов и исследований.
Поставленная задача решается, а требуемый технический результат достигается тем, что, в способе репликации информации в базах данных двух компьютеров, заключающемся в том, что, при репликации оба компьютера соединяют по локальной сети и производят обмен данными между базами данных компьютеров, причем, в каждый из двух компьютеров с установленными в них ORACLE-серверами предварительно загружают базу данных с неизменяемой базой знаний и изменяемой базой данных о клиентах и исследованиях, выполненной с возможностью независимых изменений и дополнений на каждом из двух компьютеров, согласно изобретению, сначала один из компьютеров переводят в компьютер-источник путем формирования на его ORACLE-сервере обращения к ORACLE-серверу другого компьютера, который переводят в компьютер-приемник, сравнивают данные в их изменяемых базах данных по набору полей, определяющему записи в изменяемых базах данных, выделяют данные, имеющиеся в изменяемой базе данных компьютера-источника и отсутствующие в изменяемой базе данных компьютера-приемника, и вставляют в изменяемую базу данных компьютера-приемника, а затем другой компьютер переводят в компьютер-источник путем формирования на его ORACLE-сервере обращения к ORACLE-серверу первого компьютера, который переводят в компьютер-приемник, и производят указанные выше операции между этими компьютером-источником и компьютером-приемником.
Рассмотрим пример реализации предложенного способа репликации информации в базах данных.
В научно-медицинском центре в качестве средства хранения данных на двух независимых компьютерах, один из которых применяется, например, как мобильный вариант, используется модификация локальной установки СУБД ORACLE. Задача состоит в объединении данных с двух компьютеров и разработке механизма, позволяющего проводить регулярную синхронизацию данных между двумя ORACLE-серверами.
База данных состоит из двух частей - практически неизменяемой базы знаний и регулярно изменяемой базой данных о клиентах и исследованиях, выполненной с возможностью независимых изменений и дополнений на каждом из двух компьютеров
Задача предполагает синхронизацию только изменяемой части базы данных, так как изменения в базу знаний вносятся централизовано, и база знаний считается одинаковой в разных репликах СУБД. Ниже под термином «База данных» будем подразумевать именно изменяемую часть СУБД.
Центральной таблицей Базы данных является таблица «Исследование» (ANALYSIS), все остальные таблицы связаны с ней по идентификационному номеру исследования (ID исследования) отношением один-ко-многим. Исключение составляет таблица «Пациенты» (CLIENTS), которая связана с таблицей «Исследование» по идентификационному номеру пациента связью один-к-одному. Пример таблиц представлен ниже (таблицы 1-4).
В Базе данных не обеспечивается как уникальность пациента и для каждого нового исследования делается новая запись в таблице «Пациенты», так и уникальность данных об исследовании. Такая особенность Базы данных затрудняет сравнение двух ее модификаций на двух независимых компьютерах.
В качестве уникальных данных об исследовании в рамках локальной СУБД предлагается использовать совокупность полей ID пациента + ID типа биосубстрата + ID минералограммы + ID профиля исследования + Дата забора биосубстрата + Признак наличия диабета + Признак наличия ожирения + Признак наличия ССЗ + Признак ограничения по алкоголю.
Для таблицы «Пациенты» поле ID пациента является автоматически наращиваемым счетчиком и не может быть использовано в уникальной комбинации полей для сравнения данных между двумя серверами. Вместо него необходимо использовать уникальную совокупность полей таблицы «Пациенты» для однозначной идентификации данных о пациентах Номер карты + Фамилия + Имя + День рождения + Пол.
Таким образом, совокупность, полей ID пациента + ID типа биосубстрата + ID минералограммы + ID профиля исследования + Дата забора биосубстрата + Признак наличия диабета + Признак наличия ожирения + Признак наличия ССЗ + Признак ограничения по алкоголю + Номер карты + Фамилия + Имя + День рождения + Пол однозначно определяют каждое исследование и могут быть взяты в качестве идентификационной комбинации полей.
Поле «Системный статус исследования» содержит значения, характеризующие завершенность обработки результатов исследования и может быть использовано в качестве критерия для обновления записей, совпадающих по идентификационной совокупности полей.
Множество исследований в каждой из сравниваемых баз данных задается комбинацией полей, однозначно определяющих каждое исследование. Задача сводится к объединению этих множеств, при этом в области пересечения множеств необходимо оставить исследования, обработка которых максимально завершена (степень «завершенности» исследования определяется значением в поле Системный статус исследования). Предполагается что исследования, совпадающие по комбинации полей для идентификации и с одинаковым значением в поле Системный статус исследования, идентичны и их сравнение не производится.
Обозначим множество исследовании в сравниваемых базах данных А и В.
Для объединения множеств необходимо выполнить следующие действия:
- найти разность множеств AVB;
- добавить полученную разность к множеству В;
- в области пересечения множеств А∩В найти записи, имеющие разное значение поля Системный статус исследования;
- обновить в множестве В те записи, для которых в области пересечения имеются записи с «большим завершением» по значению в поле Системный статус исследования и совпадающие по остальным полям идентификации исследования;
- повторить описанные действия, поменяв местами базы данных А и В.
Поскольку таблица «Исследование» (ANALYSIS) связана с большим количеством других таблиц, детализирующих проведенные анализы, по идентификационному номеру исследования (ID исследования), и этот номер является внутренним для каждой Базы данных, то есть одинаковым значением поля ID исследования могут быть обозначены разные исследования на разных базах данных, при переносе информации с одной базы данных на другую необходимо обеспечить вычисление соответствующего значения ID исследования, и использовать его в связанных таблицах.
Объект базы данных DATABASE LINK с именем MASTER - это подключение локального сервера к удаленной базе данных.
Настройка триггеров таблицы «Пациенты» и «Исследования». Для этого требуется изменить автоувеличение первичного ключа таблицы таким образом, чтобы вычисление нового ключа происходило, только в случае, когда ключ не заполнен. Вычисление новых значений первичного ключа при выполнении задачи объединения данных будет происходить не посредством триггера, а внутри программы объединения, так чтобы значение первичного ключа можно было использовать при добавлении данных из связанных таблиц.
Запросы на сравнение таблиц NEWDATA и UPDDATA.
NEWDATA - запрос, вычисляющий разность множеств исследований на локальном сервере и сервере, присоединенном через DBLink MASTER. Результат представлен в виде пар (ID_ANALYSIS, IDCLIENTS), определяющих исследования, которых нет в таблице ANALYSIS@MASTER.
UPDDATA - запрос, находящий те исследования на локальном сервере, у которых значение поля Системный статус исследования (STATUS) больше, чем значение поля Системный статус исследования (STATUS) на сервере, присоединенном через DBLink MASTER. Результат представлен в виде пар (ID_ANALYSIS, IDCLIENTS).
Таблица SYNCHRONIZE необходима для подготовки данных для синхронизации. Агрегирует в себе данные из запросов NEWDATA и UPDDATA. В нее помещаются новые идентификаторы записей, которые будут вставлены в соответствующие таблицы сервера MASTER. А также помечаются записи для вставки при ручном отборе записей.
Таблица SYNCHRONIZEPARAMETERS является таблицей с настройками автоматического запуска синхронизации.
Таким образом, в предложенном способе достигается требуемый технический результат, заключающийся в расширении области применения способа репликации информации в распределенных базах данных с целью обеспечения возможности репликации (синхронизации) баз данных двух независимых компьютеров, в каждый из которых загружена одинаковая по структуре база данных с неизменной базой знаний и независимо изменяемой и дополняемой информацией в базе клиентов и исследований. Это позволяет производить репликацию не в условиях, когда имеются главная и периферийная компьютерные системы, а когда обе системы являются равнозначными. Это повышает точность и оперативность репликации.
Изобретение относится к способу репликации информации в базе данных. Технический результат заключается в расширении области применения способа с целью обеспечения возможности репликации (синхронизации) баз данных двух независимых компьютеров. Два компьютера соединяют по локальной сети и производят обмен данными между базами данных компьютеров, причем, в каждый из двух компьютеров с установленными в них ORACLE-серверами. Предварительно загружают базу данных с неизменяемой базой знаний и изменяемой базой данных о клиентах и исследованиях, выполненной с возможностью независимых изменений и дополнений на каждом из двух компьютеров. Один из компьютеров переводят в компьютер-источник путем формирования на его ORACLE-сервере обращения к ORACLE-серверу другого компьютера, который переводят в компьютер-приемник. Сравнивают данные в их изменяемых базах данных по набору полей, определяющему записи в изменяемых базах данных. Выделяют данные, имеющиеся в изменяемой базе данных компьютера-источника и отсутствующие в изменяемой базе данных компьютера-приемника. Вставляют в изменяемую базу данных компьютера-приемника, а затем другой компьютер переводят в компьютер-источник путем формирования на его ORACLE-сервере обращения к ORACLE-серверу первого компьютера, который переводят в компьютер-приемник. Производят указанные выше операции между этими компьютером-источником и компьютером-приемником. 4 табл.
Способ репликации информации в базах данных, заключающийся в том, что при репликации два компьютера соединяют по локальной сети и производят обмен данными между базами данных компьютеров, причем в каждый из двух компьютеров с установленными в них ORACLE-серверами предварительно загружают базу данных с неизменяемой базой знаний и изменяемой базой данных о клиентах и исследованиях, выполненной с возможностью независимых изменений и дополнений на каждом из двух компьютеров, отличающийся тем, что сначала один из компьютеров переводят в компьютер-источник путем формирования на его ORACLE-сервере обращения к ORACLE-серверу другого компьютера, который переводят в компьютер-приемник, сравнивают данные в их изменяемых базах данных по набору полей, определяющему записи в изменяемых базах данных, выделяют данные, имеющиеся в изменяемой базе данных компьютера-источника и отсутствующие в изменяемой базе данных компьютера-приемника, и вставляют в изменяемую базу данных компьютера-приемника, а затем другой компьютер переводят в компьютер-источник путем формирования на его ORACLE-сервере обращения к ORACLE-серверу первого компьютера, который переводят в компьютер-приемник, и производят указанные выше операции между этими компьютером-источником и компьютером-приемником.
СПОСОБ РЕПЛИКАЦИИ ИНФОРМАЦИИ В РАСПРЕДЕЛЕННЫХ БАЗАХ ДАННЫХ И СИСТЕМА ДЛЯ ЕГО ОСУЩЕСТВЛЕНИЯ | 2006 |
|
RU2315349C1 |
СПОСОБ УПРАВЛЕНИЯ РЕПЛИКАЦИЕЙ ФАЙЛОВ В ПРИЛОЖЕНИЯХ | 2004 |
|
RU2349952C2 |
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор | 1923 |
|
SU2005A1 |
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор | 1923 |
|
SU2005A1 |
Авторы
Даты
2019-11-19—Публикация
2018-07-25—Подача