[an error occurred while processing this directive] [an error occurred while processing this directive]
[an error occurred while processing this directive]
Свободные мысли о свободном софте
[an error occurred while processing this directive]
Logo CitForum CITForum на CD Форумы Газета Море(!) аналитической информации!
[an error occurred while processing this directive]
[an error occurred while processing this directive]
[an error occurred while processing this directive]
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
[an error occurred while processing this directive] [an error occurred while processing this directive]
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

21.07.2018

Google
WWW CITForum.ru
[an error occurred while processing this directive]

Новости мира IT:

Архив новостей

[an error occurred while processing this directive] [an error occurred while processing this directive]
[an error occurred while processing this directive]
Пятнадцатая техническая конференция «Корпоративные базы данных-2010»
Москва, 22–23 апреля
С Новым годом!

Генеральный спонсор
Техническая конференция
Корпоративные базы данных – 2008
Москва, 24–25 апреля
При поддержке РФФИ

Спонсор
[an error occurred while processing this directive] [an error occurred while processing this directive]
На правах рекламы
2004 г

DBSync – решение синхронизации данных

Головин Сергей Викторович, кандидат технических наук

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

Понимая актуальность данной проблемы, многие производители реляционных СУБД предлагают в составе своих продуктов готовые решения для репликации данных. Однако в повседневной практике достаточно часто возникает необходимость построения гетерогенных решений, то есть использования в рамках корпоративной информационной системы СУБД различных производителей. Поэтому наличие механизма синхронизации данных между отдельными частями системы стало насущной необходимостью. Появление беспроводных технологий передачи данных (Bluetooth) и мобильных пользователей с карманными персональными компьютерами (КПК) сделало проблему ещё более актуальной.

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

Подобную задачу можно решить с помощью системы DBSync, разработанной компанией РЕЛЭКС.

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

Основные возможности DBSync:

  • Синхронизация данных между базами данных различных производителей. Произвольная топология связей между синхронизируемыми базами.
  • Фильтрация синхронизируемых данных. Позволяет настроить синхронизацию только части колонок таблицы или части строк, удовлетворяющих некоторому условию.
  • Одно и двунаправленная синхронизация данных для различных таблиц.
  • Обнаружение и разрешение конфликтов записей. В случае модификации одних и тех же данных на разных узлах в процессе синхронизации будет обнаружен конфликт. DBSync имеет возможность настройки правил разрешения конфликтов.
  • Различные способы идентификации записей. Возможность синхронизации таблиц с суррогатным первичным ключом.
  • Интеграция с деревом каталогов. Позволяет хранить условия синхронизации таблиц во внешнем дереве каталогов в виде объектов. При синхронизации эти условия используются для выборки данных.
  • Автоматическое восстановление синхронизации после сбоев. В случае потери пакетов или восстановления базы данных из архивной копии DBSync автоматически производит полную синхронизацию между базами.
  • Защита информации от несанкционированного доступа.

Архитектура DBSync

DBSync включает следующие компоненты:

  • механизм определения изменений в базе данных,
  • модуль формирования пакетов синхронизации,
  • модуль обработки пакетов синхронизации,
  • транспортный модуль,
  • модуль интеграции со службой каталогов.
Взаимодействие основных компонент в процессе синхронизации показано на схеме:

Поддерживаемые платформы и СУБД

Для платформы Windows 2000/XP

  • Oracle 8 и выше;
  • MS SQL Server 7, MS SQL Server 2000;
  • DB2;
  • Sybase 7;
  • Linter 5.9 и выше ;
  • MySQL 4.x (с ограничениями).

Для платформы Windows CE

  • Linter 5.9.

Для Linux-платформ

  • Linter 5.9 и выше;
  • MySQL 4.x (с ограничениями);
  • Oracle 8 и выше.

Функционирование системы

При установке DBSync в базе данных создается набор служебных таблиц и таблиц для хранения информации об изменениях в базе данных. В служебных таблицах хранится следующая информация:

  • списки узлов синхронизации (удаленных баз данных);
  • списки таблиц, которые необходимо синхронизировать;
  • правила синхронизации и т.д.

Для каждой синхронизируемой таблицы создается управляющая таблица и набор триггеров.

Управляющая таблица не дублирует никакие поля данных из синхронизируемой таблицы. Управляющая таблица содержит первичный ключ реплицируемой таблицы и небольшую порцию служебной информации. Эта информация используется DBSync для определения записей, которые были модифицированы, добавлены или удалены из синхронизируемой таблицы с момента последней синхронизации. Информация в управляющей таблице изменяется с помощью триггеров. Кроме признака модификации записи служебная информация содержит также дату последней модификации и узел, на котором эта модификация произошла. Таким образом, если между двумя процессами синхронизации запись в таблице изменяется несколько раз, то ее промежуточные значения не сохраняются. Такой механизм детектирования называется стратегией снятия конечного образа .

Достоинством этого метода является то, что он прозрачен для приложений и баз данных. Это позволяет разработчикам, не переписывая свои приложения, использовать специальное ПО промежуточного уровня (middleware). Кроме того, не требуется изменять структуру уже существующих таблиц баз данных.

Стратегия снятия конечного образа использует минимальный перерасход дискового пространства. В управляющей таблице не дублируются актуальные данные. Только первичный ключ синхронизируемой таблицы хранится повторно. Количество записей в управляющей таблице не может превышать количество записей в синхронизируемой таблице. Объем дополнительной информации не зависит от частоты синхронизации. Нет никаких ограничений, например таких, как размер промежутка времени между синхронизацией. Две базы данных могут быть абсолютно независимы, и следующая синхронизация произойдет тогда, когда это будет требоваться. Управляющая информация позволяет быстро определять, какие записи изменились с момента последней синхронизации для конкретного узла. Это позволяет избежать полного сканирования таблиц и уменьшает время формирования данных. При необходимости можно выбирать изменения за любой временной интервал и тем самым выгружать данные за прошлые периоды.

Данный метод предоставляет дополнительную информацию для аудита. С его помощью всегда можно определить, когда и на каком узле модифицировалась та или иная запись.

Разрешение конфликтов

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

  • Конфликт первичных ключей

Наиболее серьезным типом конфликтов является конфликт первичных ключей. Первичные ключи используются DBSync для идентификации записи. Поэтому конфликты первичных ключей не детектируются и не разрешаются.

  • Конфликты, связанные с ограничениями таблицы

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

  • Конфликты одновременной модификации данных

Одним из наиболее распространенных типов конфликтов является ситуация, когда одна и та же запись одновременно модифицируется на различных узлах. Конфликты такого типа детектируются и разрешаются. Разрешение конфликта состоит в автоматическом принятии решения, какая информация должна остаться в результате синхронизации. В DBSync реализованы все стандартные стратегии разрешения конфликтов. Правила разрешения конфликтов могут применяться для всей записи, для отдельных групп полей (фрагментов) и даже для отдельно взятого поля. При этом различным фрагментам могут быть назначены разные правила. Это позволяет гибко настраивать DBSync для конкретной схемы синхронизации.

Способы обмена данными

Обмен данными между узлами может происходить с помощью одного из поддерживаемых протоколов. К ним относятся TCP/IP, HTTP/HTTPS, E-mail, File и ActiveSync.

  • TCP/IP является наиболее универсальным из них. Он используется в корпоративных сетях и является самым надежным, быстрым и удобным. Если есть возможность, то для работы синхронизации следует выбирать именно его.
  • HTTP/HTTPS протокол менее надежен и быстр, но он может оказаться более удобным для мобильных клиентов, которые работают через Proxy-серверы.
  • E-MAIL - передача пакетов синхронизации по электронной почте;
  • FILE - обмен между узлами при помощи файлов;
  • ActiveSync - протокол для работы с платформой Windows CE.

В качестве формата обмена данными используется XML, как наиболее универсальный из всех форматов. За основу структуры XML в DBSync принят формат, используемый в SyncML, который на сегодняшний день является стандартом де-факто в области синхронизации с мобильными устройствами. Используемая нами кодировка UTF-8 позволяет без проблем использовать национальные кодировки и обеспечивает переносимость между различными платформами. DBSync поддерживает синхронизацию бинарных данных, которые хранятся в базе данных в полях типа BLOB.

Сферы применения DBSync

  • организация распределенной информационной системы;
  • баланс нагрузки серверов;
  • повышение надежности системы за счет резервного копирования;
  • организация хранилищ данных;
  • поддержка мобильных пользователей.

Варианты применения

Баланс нагрузки серверов

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

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

Затем, например, все OLTP приложения получают доступ к основному серверу, а приложения, которые осуществляют поиск информации и генерацию отчетов работают со вспомогательными серверами. В дальнейшем, при необходимости, в эту конфигурацию легко можно добавить еще один или несколько вспомогательных серверов. Такая система хорошо подходит для информационно-аналитических систем, поисковых комплексов, сильно нагруженных Web-сайтов, интенсивно использующих СУБД.

Хранилище данных

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

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

Повышение надежности системы

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

В этой ситуации данные, изменяемые на основном сервере немедленно передаются на backup-сервер. В случае сбоя на основном сервере приложение может продолжать работать с backup-сервером. После восстановления основного сервера все изменения, сделанные за этот период на backup-сервере, будут переданы на основной сервер.

Поддержка мобильных пользователей

Во многих организациях необходимо, чтобы их сотрудники могли работать с приложениями, установленными на ноутбуках и карманных персональных компьютерах. При этом периодически (например, в конце рабочего дня) они подключаются к локальной сети предприятия и обмениваются информацией с центральным сервером. Благодаря поддержке многих протоколов DBSync позволяет реализовать такую конфигурацию системы. При этом возможна интеграция DBSync с деревом каталогов предприятия. Это упрощает администрирование системы и позволяет выгружать пользователям только ту информацию, которая им необходима.

Дополнительную информацию Вы можете получить на сайте www . relex . ru .

Если у Вас возникли вопросы – пишите на market @ relex . ru .

Демонстрационные версии программных продуктов компании РЕЛЭКС Вы можете скачать с сайта http://www.relex.ru/rus/download .

[an error occurred while processing this directive]
[an error occurred while processing this directive]
[an error occurred while processing this directive] [an error occurred while processing this directive]

Планирование сроков проекта и вопросы осуществления лидерством проекта рассматриваются на сайте по управлению проектами.

[an error occurred while processing this directive]
[an error occurred while processing this directive]
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Размещение рекламы — тел. +7 495 6608306, ICQ 232284597

[an error occurred while processing this directive] [an error occurred while processing this directive]
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Редакция рекомендует:

Последние комментарии:

Что мы знаем об iPhone 4G? (7)
16 июля, 20:25

Подписка на новости CITForum.ru

Новые публикации:

7 июля

  • Управление параллелизмом с низкими накладными расходами для разделенных баз данных в основной памяти

  • Рекурсивные запросы в Oracle

  • Жесткий диск WD10EARS с сектором 4 КБ. Подготовка к эксплуатации в Linux.

    Обзоры журнала Computer:

    Газета:

  • Московские пробки - исследование IBM

  • От Osborne до iPad: эволюция портативных компьютеров

    19 мая

  • Прозрачный механизм удаленного обслуживания системных вызовов

  • Система моделирования Grid: реализация и возможности применения

    Газета:

    Майкл Стоунбрейкер:

  • Ошибки в системах баз данных, согласованность "в конечном счете" и теорема CAP

  • Дискуссия по поводу "NoSQL" не имеет никакого отношения к SQL

    29 апреля

  • Материалы конференции "Корпоративные Базы Данных-2010"

  • Разные облики технологии баз данных (отчет о конференции)

    14 апреля

  • MapReduce: внутри, снаружи или сбоку от параллельных СУБД?

  • Научные вызовы технологиям СУБД

    Обзоры журнала Computer:

    31 марта

  • Рационализация согласованности в "облаках": не платите за то, что вам не требуется

  • Взаимные блокировки в Oracle

  • Архитектура среды тестирования на основе моделей, построенная на базе компонентных технологий

  • Объектное представление XML-документов

    Газета:

  • Microsoft для российских разработчиков: практика с элементами фундаментальности

    10 марта

  • HadoopDB: архитектурный гибрид технологий MapReduce и СУБД для аналитических рабочих нагрузок

  • Классификация OLAP-систем вида xOLAP

  • BGP. Три внешних канала. Балансировка исходящего и входящего трафиков

    Газета:

  • Что мы знаем об iPhone 4G?

    17 февраля

  • MapReduce и параллельные СУБД: друзья или враги?

  • Объектно-ориентированное программирование в ограничениях: новый подход на основе декларативных языков моделирования данных

  • Системологический подход к декомпозиции в объектно-ориентированном анализе и проектировании программного обеспечения

    Газета:

  • Эволюция Wine

    3 февраля

  • Дом на песке

  • Реальное переосмысление "формальных методов"

  • Интервью с Найджелом Пендзом

    Газета:

  • iPad. Первый взгляд на долгожданный планшет от Apple

  • Я не верю в iPad [an error occurred while processing this directive]

    20 января

  • SQL/MapReduce: практический подход к поддержке самоописываемых, полиморфных и параллелизуемых функций, определяемых пользователями

  • Данные на лету: как технология потокового SQL помогает преодолеть кризис

    Обзоры журнала Computer:

    2 декабря

  • Сергей Кузнецов. Год эпохи перемен в технологии баз данных

    18 ноября

  • Генерация тестовых программ для подсистемы управления памятью микропроцессора

  • Сравнительный анализ современных технологий разработки тестов для моделей аппаратного обеспечения

    Все публикации >>>


    [an error occurred while processing this directive]
  • [an error occurred while processing this directive] [an error occurred while processing this directive]
    Купить сотовые телефоны в М.Видео
    Отличные цены на сотовые телефоны. Бесплатная доставка. Заказ в интернет-магазине и по телефону (495) 644-28-51
    www.mvideo.ru [an error occurred while processing this directive]

    Регистрация доменов в зонах .ru, .com, .net. Компания Rusonyx.

    IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

    [an error occurred while processing this directive]
    Информация для рекламодателей PR-акции, размещение рекламы — тел. +7 495 6608306, ICQ 232284597 Пресс-релизы — pr@citforum.ru
    Послать комментарий
    Информация для авторов

    Редакция раздаёт котят!

    Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
    Copyright © 1997-2000 CIT, © 2001-2009 CIT Forum
    Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...
    [an error occurred while processing this directive]


    [an error occurred while processing this directive] [an error occurred while processing this directive] реклама:
    Производство и продажа серверов | забронировать гостиницу Санкт Петербурга | платный хостинг | IBM Rational. Аналитика и инструменты
    [an error occurred while processing this directive] [an error occurred while processing this directive]