Устройство репликации информации в базах данных независимых компьютеров

Полезная модель относится к специализированным устройствам вычислительной техники и может быть использована для поддержания в идентичном состоянии баз данных (БД), размещенных в независимых компьютерах.
Типичной практической задачей, которая возникает для компьютерных систем, содержащих, например, основную (главную) стационарную часть (например, настольный десктоп) и мобильную (периферийную) часть (например, мобильный ноутбук), информация в которых может изменяться без привязки к интернету, и работа на ноутбуке производится в выездном режиме. В этом случае возникает необходимость регулярно производить полную репликацию/синхронизацию баз данных, загруженных в компьютерах.
Известно техническое решение [RU 2531572, A, G06F 17/30, 27.01.2013], содержащее интерфейс, приспособленный для связи с сетью, и систему управления, связанную с интерфейсом и адаптированную для определения, что первая команда обновления изменила данные в первичной таблице в первичной базе данных, связанной с первичным сервером, в ответ на определение, что первая команда обновления изменила данные в первичной таблице в первичной базе данных, определение второй команды обновления на основе первой команды обновления и применение второй команды обновления для тиражирования данных во вторичную таблицу во вторичной базе данных, связанной с вторичным сервером, используя вторичную объединенную таблицу, связанную с первичной таблицей.
Недостатком этого технического решения являются относительно узкие функциональные возможности.
Известно также устройство, в котором реализован способ репликации информации в распределенных базах данных с конкурентным распределением потоков [RU 2510623, С2, G06F 12/00, 10.04.2014], и в к котором каждый из узлов состоит из части распределенной базы данных, управление которой осуществляет сервер управления распределенной базой данных и блока оптимизации распределения потоков данных, который осуществляет взаимодействие с коммуникационным оборудованием и осуществляет сбор данных о доступных сетевых ресурсах и вычисляет на основе данных об обменных файлах и предоставляемых сетевых ресурсах вариант распределения потоков данных по сети, позволяющий увеличить скорость выполнения репликации, а управляющий сигнал, содержащий информацию о распределении потоков данных, передается на коммуникационное оборудование, где используется для распределения поступающих обменных файлов по сети.
Недостатком этого технического решения также является относительно узкие функциональные возможности.
Наиболее близким по технической сущности к предлагаемому устройству является система взаимодействия баз данных автоматизированной системы управления [RU 66568, U1, G06F 17/00, 10.09.2007], включающая, по меньшей мере, два блока ввода, регистрации, утверждения, обработки и свода информации удаленных пользователей и блок ввода, регистрации, утверждения, обработки и свода информации в центральной базе данных, являющиеся соответственно первым, вторым и третьим информационными входами в систему, а также блок внесения изменений в центральную базу данных и блок внесения изменений в локальную базу данных, блок передачи данных между уровнями системы, соединенным двусторонними связями с каждым из указанных выше блоков системы, блок управления процессом синхронизации, входы которого подключены к выходам блока внесения изменений в центральную базу данных и блока внесения изменений в локальную базу данных, и блок разделения доступа к коммуникационным каналам, блоком синхронизации баз данных центрального и удаленного SQL серверов, блоком ввода-вывода информации базы данных обмена при файл-серверной локальной базе данных, каждый из которых соединен двусторонними связями с блоком управления процессом синхронизации и блоком взаимодействия основного сервера и сервера-реплики, подключенным двусторонними связями к блоку синхронизации баз данных центрального и удаленного SQL серверов и блоку ввода-вывода информации базы данных обмена при файл-серверной локальной базе данных.
Недостатком наиболее близкого технического решения являются относительно узкие функциональнее возможности, поскольку репликация в известном техническом решении производится в распределенной системе, состоящей из центральной базы данных с некоторым количеством периферийных баз данных. Следовательно, без существенных изменений в процедуре репликации невозможно использовать известное техническое решение для случая, когда, по крайней мере, два компьютера равноценны, и каждый из компьютеров выступает в роли компьютера-приемника или в роли компьютера-источника, а в другой момент они меняются ролями и только в этом случае обе базы данных будут полностью синхронизированы.
Задача, которая решается в полезной модели, заключается в создании устройства, используемого при репликации информации в распределенных базах данных, в частности, применительно к двум компьютерам, в каждый из которых загружена одинаковая по структуре база данных с неизменной базой знаний и независимо изменяемой и дополняемой информацией в базе клиентов и исследований, и используемой для периодической синхронизации базы данных в обоих компьютерах. При этом база данных состоит из двух частей - базы знаний и регулярно пополняемой базы клиентов и исследований, причем, синхронизация производится только относительно базы клиентов и исследований, т.к. изменения в базу знаний вносятся централизованно и база знаний считается одинаковой в разных репликах.
Требуемый технический результат заключается в расширении арсенала технических средств, используемых при репликации информации в распределенных базах данных, обеспечивающих расширение функциональных возможностей системы с целью обеспечения возможности репликации (синхронизации) баз данных двух независимых компьютеров, в каждый из которых загружена одинаковая по структуре база данных с неизменной базой знаний и независимо изменяемой в этих компьютерах и дополняемой информацией в базе клиентов и исследований.
Поставленная задача решается, а требуемый технический результат достигается тем, что, в устройство, выполненное в виде блока обеспечения локальной сети между первым и вторым компьютерами, содержащими синхронизируемые базы данных, а также блока синхронизации режимов работы компьютеров, при этом, первый и второй входы-выходы блока обеспечения локальной сети между первым и вторым компьютерами соединены с первыми входами-выходами первого и второго компьютеров, соответственно, а первый и второй входы-выходы блока синхронизации режимов работы компьютеров соединены со вторыми входами-выходами первого и второго компьютеров, соответственно, согласно полезной модели, введены блок сравнения данных в изменяемых базах данных, первый и второй входы-выходы которого соединены с третьими входами-выходами первого и второго компьютеров, соответственно, а третий вход-выход - соединен с третьим входом-выходом блока синхронизации режимов работы компьютеров, блок выделения несовпадающих фрагментов в изменяемых базах данных, первый вход-выход которого соединен с третьим входом-выходом блока сравнения данных в изменяемых базах данных, а также блок внесения изменений в изменяемые базы данных, первый вход-выход которого соединен со вторым входом-выходом блока выделения несовпадающих фрагментов в изменяемых базах данных, а второй и третий входы-выходы соединены с четвертыми входами-выходами первого и второго компьютеров, соответственно.
На чертеже представлена функциональная схема устройства репликации информации в базах данных независимых компьютеров совместно с первым и со вторым компьютерами;
Устройство репликации информации в базах данных независимых компьютеров содержит блок 1 обеспечения локальной сети между первым 2 и вторым 3 компьютерами, содержащими синхронизируемые базы данных и первый и второй входы-выходы которого соединены с первыми входами-выходами первого 2 и второго 3 компьютеров, соответственно.
Кроме того, устройство репликации информации в базах данных независимых компьютеров содержит блок 4 синхронизации режимов работы компьютеров, первый и второй входы-выходы которого соединены со вторыми входами-выходами первого 2 и второго 3 компьютеров, соответственно, блок 5 сравнения данных в изменяемых базах данных, первый и второй входы-выходы которого соединены с третьими входами-выходами первого 2 и второго 3 компьютеров, соответственно, а третий вход-выход - соединен с третьим входом-выходом блока 3 синхронизации режимов работы компьютеров, блок 6 выделения несовпадающих фрагментов в изменяемых базах данных, первый вход-выход которого соединен с третьим входом-выходом блока 5 сравнения данных в изменяемых базах данных, а также блок 7 внесения изменений в изменяемые базы данных, первый вход-выход которого соединен со вторым входом-выходом блока 6 выделения несовпадающих фрагментов в изменяемых базах данных, а второй и третий входы-выходы соединены с четвертыми входами-выходами первого 2 и второго 3 компьютеров, соответственно.
Устройство содержит элементы и блоки, охарактеризованные на функциональном уровне, и описываемая форма реализации предполагает использование программируемого (настраиваемого) многофункционального средства, поэтому при описании его работы представляются сведения, подтверждающие возможность выполнения таким средством конкретной предписываемой ему в составе данной системы функции.
Работает устройство репликации информации в базах данных независимых компьютеров следующим образом.
Рассмотрим его работу на примере репликации медицинской базы данных.
В научно-медицинском центре в качестве средства хранения данных используется два независимых компьютерах, один из которых применяется, например, как мобильный вариант, в котором используется модификация локальной установки СУБД ORACLE. Задача состоит в объединении данных с двух компьютеров и разработке механизма, позволяющего проводить регулярную синхронизацию данных между двумя ORACLE-серверами.
База данных состоит из двух частей - практически неизменяемой базы знаний и регулярно изменяемой базой данных о клиентах и исследованиях, выполненной с возможностью независимых изменений и дополнений на каждом из двух компьютеров
Задача предполагает синхронизацию только изменяемой части базы данных, так как изменения в базу знаний вносятся централизовано, и база знаний считается одинаковой в разных репликах СУБД.
Центральной таблицей базы данных является таблица «Исследование» (ANALYSIS), все остальные таблицы связаны с ней по идентификационному номеру исследования (ID исследования) отношением один-ко-многим. Исключение составляет таблица «Пациенты» (CLIENTS), которая связана с таблицей «Исследование» по идентификационному номеру пациента связью один-к-одному. Пример таблиц представлен ниже (таблицы 1-4).
В базе данных не обеспечивается как уникальность пациента и для каждого нового исследования делается новая запись в таблице «Пациенты», так и уникальность данных об исследовании. Такая особенность базы данных затрудняет сравнение двух ее модификаций на двух независимых компьютерах.
В качестве уникальных данных об исследовании в рамках локальной СУБД предлагается использовать совокупность полей ID пациента + ID типа биосубстрата + ID минералограммы + ID профиля исследования + Дата забора биосубстрата + Признак наличия диабета + Признак наличия ожирения + Признак наличия ССЗ + Признак ограничения по алкоголю.
Для таблицы «Пациенты» поле ID пациента является автоматически наращиваемым счетчиком и не может быть использовано в уникальной комбинации полей для сравнения данных между двумя серверами. Вместо него необходимо использовать уникальную совокупность полей таблицы «Пациенты» для однозначной идентификации данных о пациентах Номер карты + Фамилия + Имя + День рождения + Пол.
Таким образом, совокупность полей ID пациента + ID типа биосубстрата + ID минералограммы + ID профиля исследования + Дата забора биосубстрата + Признак наличия диабета + Признак наличия ожирения + Признак наличия ССЗ + Признак ограничения по алкоголю + Номер карты + Фамилия + Имя + День рождения + Пол однозначно определяют каждое исследование и могут быть взяты в качестве идентификационной комбинации полей.
Поле «Системный статус исследования» содержит значения, характеризующие завершенность обработки результатов исследования и может быть использовано в качестве критерия для обновления записей, совпадающих по идентификационной совокупности полей.
Множество исследований в каждой из сравниваемых баз данных задается комбинацией полей, однозначно определяющих каждое исследование. Задача сводится к объединению этих множеств, при этом в области пересечения множеств необходимо оставить исследования, обработка которых максимально завершена (степень «завершенности» исследования определяется значением в поле Системный статус исследования). Предполагается что исследования, совпадающие по комбинации полей для идентификации и с одинаковым значением в поле Системный статус исследования идентичны и их сравнение не производится.
Обозначим множество исследований в сравниваемых базах данных А и В.
Для объединения множеств необходимо выполнить следующие действия:
- найти разность множеств A\B;
- добавить полученную разность к множеству В;
- в области пересечения множеств  найти записи, имеющие разное значение поля Системный статус исследования;
- обновить в множестве В те записи, для которых в области пересечения имеются записи с «большим завершением» по значению в поле Системный статус исследования и совпадающие по остальным полям идентификации исследования;
- повторить описанные действия, поменяв местами базы данных А и В.
Поскольку таблица «Исследование» (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 является таблицей с настройками автоматического запуска синхронизации.
Для реализации рассмотренного алгоритма репликации предложенное устройство используется следующим образом.
Блок 1 обеспечивает локальной сети между первым 2 и вторым 3 компьютером, содержащих синхронизируемые базы данных и первый и второй входы-выходы которого соединены с первыми входами-выходами первого 2 и второго 3 компьютеров, соответственно.
Блок 4 синхронизации режимов работы компьютеров, первый и второй входы-выходы которого соединены со вторыми входами-выходами первого 2 и второго 3 компьютеров, соответственно, обеспечивает перевод первого 2 и второго 3 компьютеров поочередно в режим компьютера-приемника и компьютера-источника. Блок 5 сравнения данных в изменяемых базах данных, первый и второй входы-выходы которого соединены с третьими входами-выходами первого 2 и второго 3 компьютеров, соответственно, производит сравнения в изменяемых базах данных первого 2 и второго 3 компьютеров, а блок 6 выделения несовпадающих фрагментов в изменяемых базах данных, первый вход-выход которого соединен с третьим входом-выходом блока 5 сравнения данных в изменяемых базах данных, выделяет фрагменты для замены (обновления) изменяемых баз данных, которые с помощью блока 7 вносятся в виде изменений в изменяемые базы данных.
После проведения процедуры репликации для обоих компьютеров изменяемые части их базах данных становятся полностью одинаковыми.
Таким образом, в предложенном устройстве реализуется следующий способ репликации баз данных, размещенных в дух независимых компьютерах.
Этот способ заключается в том, что, при репликации два компьютера соединяют по локальной сети и производят обмен данными между базами данных компьютеров, причем, в каждый из двух компьютеров с установленными в них ORACLE-серверами предварительно загружают базу данных с неизменяемой базой знаний и изменяемой базой данных о клиентах и исследованиях, выполненной с возможностью независимых изменений и дополнений на каждом из двух компьютеров, причем, сначала один из компьютеров переводят в компьютер-источник путем формирования на его ORACLE-сервере обращения к ORACLE-серверу другого компьютера, который переводят в компьютер-приемник, сравнивают данные в их изменяемых базах данных по набору полей, определяющему записи в изменяемых базах данных, выделяют данные, имеющиеся в изменяемой базе данных компьютера-источника и отсутствующие в изменяемой базе данных компьютера-приемника, и вставляют в изменяемую базу данных компьютера-приемника, а затем другой компьютер переводят в компьютер-источник путем формирования на его ORACLE-сервере обращения к ORACLE-серверу первого компьютера, который переводят в компьютер-приемник, и производят указанные выше операции между этими компьютером-источником и компьютером-приемником.
Таким образом, в предложенном устройстве достигается требуемый технический результат, заключающийся в расширении арсенала технических средств, используемых при репликации информации в распределенных базах данных, и обеспечении расширения функциональных возможностей системы с целью обеспечения возможности репликации (синхронизации) баз данных двух независимых компьютеров, в каждый из которых загружена одинаковая по структуре база данных с неизменной базой знаний и независимо изменяемой в этих компьютерах и дополняемой информацией в базе клиентов и исследований. Это повышает точность и оперативность системы репликации.