Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Microsoft Access - программирование и готовые решения


Выпуск 97. Методы репликации баз данных

Подписка:      "Microsoft Access - программирование и готовые решения"
Дата:               30.12.2009
Сайт:               http://www.leadersoft.ru/
Статья:            http://www.leadersoft.ru/russian/help/subscribe/sub97.html
Обсуждение
:  http://help.leadersoft.ru/Forums/tabid/74/forumid/17/threadid/9133/scope/posts/Default.aspx  
 

Поздравление

  Поздравляю всех с Новым 2010 Годом. Пусть у Вас сбудутся все мечты и желания, и чтобы как можно меньше времени вы тратили на поиск нужных решений. К сожалению, они скрыты под надежным и толстым слоем информации от Microsoft. Но надо стараться, и вы найдете то, что вам нужно.


Введение. Что такое репликация баз данных?
Возьмем набор человеческих реплик: синхронизация, слияние, база данных, объекты и т.п. Если из них сложить обдуманную фразу, то получим такое выражение. Репликация – это синхронизация объектов баз данных. Теперь мы уже понимаем о чем идет речь. Таким образом, задачи репликации – это объедение разрозненной информации в некоторое решение для дальнейшего анализа.

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

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

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

Вывод. Репликация в Access 2000 - 2007 - возможна, но возникают трудности с доставкой информации. Она организуется по email или через ftp сервер. Это не дает возможности работать в реальном времени, а также с анонимными пользователями из-за проблем с защитой информации.

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

 
Репликация Microsoft SQL Server
http://msdn.microsoft.com/ru-ru/library/ms151198.aspx
В этой программе процесс репликации более сложный и называется он - публикация, а объекты синхронизации - статьями. Преимущество его в том, что можно задать расписание синхронизации и данные будут синхронизироваться в реальном времени. Для этого, используется программа - агент сервера, которая и позволяет обрабатывать файлы через определенные интервалы времени.

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

Вывод. В пределах серверов локальной сети, организовать репликацию не сложно, можно использовать мастер из Microsoft SQL Server Management Studio.  Достаточно указать реальное имя сервера: Computer\ServerName.  Но есть и проблемы. В мастере вы не сможете указать IP адрес или aliac сервера, хотя подключиться к серверам можно. Почему нельзя выполнить удаленную синхронизацию разных серверов - непонятно. Microsoft советует создавать VPN, видно это проблема с защитой данных.

Проверка. FTP репликация реально и работает и тестировалась на программах Microsoft Web Server + Microsoft FTP Server 7.5 + SQL Server 2005 + SP. Все это неплохо работает, только нужно все аккуратно настроить, т.к. мастера не всегда помогают с подсказками при установке этих программ. Инструкции есть, но нет реальных примеров.

 
Программные средства репликации
http://msdn.microsoft.com/ru-ru/library/bb902854.aspx
В любом случае, для управления репликацией, вам потребуются программные средства для разработки. В Microsoft Access это можно сделать на VBA, пример можно посмотреть в программе Международный туризм. Для синхронизации в SQL Server надо использовать Microsoft Visual Studio, а также генератор скриптов из менеджера баз данных. Используя пространство имен Framework NET для различных методов репликации, можно разработать собственный интерфейс.

Что неясно. Можно ли создать репликацию между серверами, которые не имеют связи через VPN.

Есть еще и альтернативная среда синхронизации Sync Framework 2.0 от Microsoft. Эта библиотека гарантирует синхронизацию данных между разными серверами и даже файлами. Недостаток ее – это нужно при установке своей программы установить и эти файлы. Они не входят Framework NET. Прочитать подробно можно по ссылке.

 
Собственные решения
Никто не мешает нам немного подумать и придумать собственный процесс репликации отличный от Microsoft. Например, так.  Если каждый офис отвечает за свои данные, то ему можно присвоить свой индификационный номер. Объекты синхронизации записываются в таблицу LA_AdmExpImpTables. Далее все просто. Нажав на кнопку Экспорт - Импорт (главная форма), данные выгружаются в файл mdb формата "Office dd.mm.yyyy email@mysite.ru.mdb" без изменений. Пример "25 04.11.2009 email@mysite.ru.mdb". Все это автоматически архивируется и отправляется по почте минуя канал Outlook. Таким образом, программа электронной почты не нужна.

Когда данные по почте пришли в офис, запускается программа Outlook. Используя название файла, можно раcсчитать индекс каждой записи и точно понять откуда пришли данные. Чтобы индексы не мешали нам создавать новые записи они принимают отрицательное значение. Например, 1 офис ввел фирму со счетчиком 1, и  третий офис с индексом 1. При загрузке в базу данных мы им присваем счетчики  -1*1000000-1 и -3*1000000-1. Это гарантирует уникальные индексы для нашего офиса и для других в пределах 1 миллиона записей. Все прекрасно работает.

Тестирование. Этот алгоритм можно попробовать, скачав программу Управление бизнесом или Гипермаркет.

 
Заказ репликации
Если вам непонятно как реплицировать таблицы или синхронизировать удаленные офисы, то можно заказать разработку системы по техническому заданию. Вот ссылка на форму заказа http://www.leadersoft.ru/russian/orders/orderjob.html
 
Лицензия на источник информации
    Все права на статью принадлежат Leadersoft.ru. Статья предназначена только для публикации среди подписчиков subscribe.ru. Никто без письменного разрешения leadersoft.ru не может продавать, перепечатывать, сдавать в аренду или другим образом извлекать выгоду, используя информацию из этой и других статьях данной рассылки.
    Если Вам нужно, рассказать о ней, то Вы можете дать краткую аннотацию содержания с обязательной ссылкой на источник информации
http://www.leadersoft.ru/russian/help/subscribe/sub96.html без маскировки ссылки различными скриптами. Нарушение этого правила может повлечь за собой за собой уголовное и/или гражданское преследование.

В избранное