Архитектура Microsoft Windows для разработчиков

         

Репликация базы данных

(Продолжительность занятия 40 минут)

Репликация базы данных обеспечивает одновременную работу нескольких пользователей с идентичными локальными копиями БД. Периодическая синхронизация копий позволяет им обмениваться новыми (или измененными) объектами и данными и, таким образом, своевременно обновлять БД.

Средства репликации доступны для баз данных Microsoft Access и SQL Server. Это занятие посвящено репликации баз данных.


Изучив материал этого занятия, Вы сможете:
  • объяснить цель репликации базы данных;
  • реплицировать базу данных средствами Microsoft Access;
  • описать, как реплицировать базу данных средствами SQL Server.

Средства Microsoft Access

Репликация баз данных Microsoft Access — это копирование БД, при котором две или более копии могут обмениваться коррективами данных и объектов. Этот процесс называется синхронизацией. Копия БД — реплика — содержит общий для всей БД набор таблиц, запросов, форм, отчетов, макросов и модулей, а кроме того, и локальные объекты, существующие только в той реплике, где они были созданы.

Каждая реплика является частью набора реплик, который содержит все копии и оригинал — основную реплику (Design Master) набора (рис. 6.19). Копии из одного набора могут обмениваться обновленными данными или реплицируемыми объектами, однако проект базы данных корректируется только в основной реплике.

Рис. 6.19 Набор реплик БД

Репликация средствами Microsoft Access

Существуют три способа репликации БД—с помощью специальных команд Microsoft Access, Портфеля Windows 95 и диспетчера репликации. Все они снабжены удобным интерфейсом (рис. 6.20). Кроме того, объекты доступа к данным (Data Access Objects, DAO) позволяют реализовать репликацию непосредственно в коде приложения.

Рис. 6.20 Средства репликации баз данных Microsoft Access

Команды репликации Microsoft Access

В распоряжении пользователя Microsoft Access — целый набор команд для репликации. Средствами подменю Replication меню Tools можно:

  • создать реплику;
  • синхронизировать свою реплику с другими копиями набора;
  • разрешать конфликты синхронизации специальными средствами (Conflict Resolver);
  • восстановить основную реплику.

> Репликация БД средствами Microsoft Access

В этом упражнении Вы создадите набор реплик средствами Microsoft Access.

  1. Запустите Microsoft Access и создайте новую базу данных MyCorp.mdb.
  2. Сконструируйте таблицу Employees с одним текстовым полем FirstName.
  3. В меню Tools, Replication выберите команду Create Replica.
  4. Щелкните кнопку Yes, чтобы закрыть базу данных и создать основную реплику.
  5. Щелкните кнопку Yes в ответ на запрос о необходимости создания резервной копии.
  6. Щелкните кнопку ОК в ответ на запрос о размещении реплики.
  7. Рассмотрите окно сообщения и щелкните кнопку ОК.

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

Диспетчер репликации Microsoft Access

Диспетчер репликации предоставляет интерфейс для преобразования БД, создания дополнительных реплик, просмотра связей между компонентами набора реплик и задания свойств реплик. Он поставляется только в составе редакции Microsoft Office 97 для разработчика (Microsoft Office 97, Developer's Edition). Диспетчер репликации применяют для:

  • управления набором реплик;
  • синхронизации данных через Интернет или интрасеть;
  • поддержки пользователей портативных компьютеров (мобильные пользователи могут депонировать свои реплики на сервере для последующей синхронизации);
  • создания реплик нескольких БД;
  • создания расписания синхронизации реплик набора (она будет выполняться в назначенное время без Вашего участия; кроме того, реплики можно синхронизировать в любое время специальной командой);
  • выбора различных конфигураций синхронизации (например, с рассылкой, приемом или объединением данных);
  • устранения ошибок.

Портфельная репликация в Windows 95

Портфельная репликация Microsoft Windows 95 удобна для портативного компьютера. Просто перетащите файл БД Microsoft Access (MDB) из общей сетевой папки на значок My Briefcase (Портфель) рабочего стола портативного компьютера — в результате БД преобразуется в основную реплику, а в Портфеле будет создана реплика. Теперь отсоединяйте портативный компьютер от сети и спокойно работайте с репликой.

Закончив, снова подсоедините его к сети. Чтобы синхронизировать изменения реплики на портативном компьютере с основной репликой (например, на сервере), дважды щелкните значок My Briefcase и выберите в меню Briefcase команду Update All.

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

Сохраните резервную копию: она пригодится, если для восстановления набора реплик нельзя использовать реплику.

> Портфельная репликация базы данных

В этом упражнении Вы реплицируете базу данных College.mdb с помощью Портфеля Windows 95.

  1. На рабочем столе Windows 95 дважды щелкните значок My Computer и най дите файл College.mdb.
  2. Щелкнув файл College.mdb правой кнопкой мыши, выберите в появившемся меню команду Properties.
  3. Каков текущий размер базы данных?

    ответ

  4. Измените размер окна Ch06 так, чтобы видеть рабочий стол Windows 95.
  5. Дважды щелкните любое место рабочего стола, откройте в появившемся меню вложенное меню New и выберите команду Briefcase.

    На рабочем столе появится новый значок портфеля.

  6. Перетащите базу данных из Ch06 в портфель.
  7. В ответ на запрос, хотите ли Вы сделать базу данных реплицируемой, щелк ните кнопку Yes.
  8. Щелкните кнопку Yes, чтобы создать резервную копию БД.
  9. В ответ на запрос выберите исходную копию БД в качестве основной репли ки и щелкните кнопку ОК.
  10. В диалоговом окне Welcome to the Windows Briefcase щелкните кнопку Finish.
  11. Дважды щелкните значок My Briefcase, чтобы удостовериться, что копия базы данных помещена в Портфель.
  12. Переключитесь в окно Ch06.

    Каков теперь размер базы данных на жестком диске?

    ответ

  13. Откройте базу данных и проверьте таблицы. Есть ли какие-нибудь измене ния в структуре таблиц, например новые поля, новые таблицы и т.д.?

    ответ

> Изменение основной реплики

  1. Добавьте новое текстовое поле в таблицу Students, назвав его EmailAddress.

    Получилось ли у Вас это? Почему?

    ответ

  2. Закройте эту копию базы данных и откройте копию Replica в Портфеле.
  3. Выберите таблицу Students и щелкните кнопку Open.

    Новое поле не появилось, так как базы данных еще не синхронизированы.

  4. Закройте таблицу Students.
  5. В меню Tools, Replication выберите команду Synchronize Now.
  6. Щелкните кнопку OK, чтобы синхронизировать данную реплику с основ ной, а затем щелкните кнопку Yes, чтобы повторно открыть БД.
  7. Попробуйте открыть таблицу Students в режиме конструирования.
  8. Щелкните кнопку Yes в ответ на запрос об открытии таблицы только для чтения.

    Поскольку это не основная реплика, вносить изменения в структуру таблицы нельзя. Обратите внимание, что новое поле реплицировано в эту копию БД.

Репликация средствами DАО

Интерфейс объектов доступа к данным (Data Access Objects, DAO) предоставляет методы и свойства, позволяющие разработчикам использовать некоторые средства портфельной репликации в программах Visual Basic. Объекты DAO применяются для:

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

Применение объектов DAO требует программирования, но зато позволяет построить собственную систему репликации". Есть несколько ситуаций, когда использовать объекты DAO уместно.

  • Синхронизация реплик при возникновении определенных событий, например, если реплика получает из центра обновленную информацию о ценах на товары.
  • Распространение реплицированной БД среди пользователей-новичков. Объекты DAO позволят создать упрощенный интерфейс репликации или скрыть выполнение репликации от пользователей.
  • Создание частичной реплики (например, содержащей только часть данных). Включив в нее лишь некое подмножество данных, Вы уменьшите используемое дисковое пространство и повысите производительность.

Средства Microsoft SQL Server

Репликация — встроенный компонент SQL Server. Он позволяет автоматически выполнять зарегистрированные в соответствующем журнале транзакции, которые связаны с реплицируемыми таблицами (рис. 6.21). Все коррективы асинхронно передаются в таблицы назначения на серверах сети (так называемое распространение транзакций), а процессы в основной базе данных идут своим чередом.

Рис. 6.21 Средства репликации SQL Server

Цели репликации SQL Server таковы:

  • непрерывное распространение транзакций;
  • минимизация времени репликации (наименьшее запаздывание транзакции);
  • максимизация параллельности процессов;
  • непротиворечивость транзакций.

Средства репликации SQL Server обеспечивают;

  • репликацию на уровне строки (так называемая горизонтальная синхронизация) и на уровне столбца (вертикальная синхронизация);
  • репликацию на базе гетерогенных ODBC-совместимых источников данных;
  • отказоустойчивость.

Чтобы информация была доступна для копирования, необходимо создать публикацию. Репликация SQL Server реализуется на основе метафоры «издатель-подписчик».

Метафора «издатель-подписчик»

Издатель публикует и распространяет информацию, а подписчик получает ее. При репликации средствами SQL Server сервера может выполнять несколько функций в любой комбинации:

  • издатель — управляет источниками БД и хранит сведения, доступные для репликации;
  • распространитель — принимает и сохраняет изменения и доводит их до подписчиков;
  • подписчик — принимает коррективы.

Сервер публикаций

Он управляет базой данных публикаций, делает их доступными для репликации и отправляет копии изменений в публикуемых сведениях на сервер распространения.

Сервер распространения

Здесь хранится БД распространения. Сервер распространения принимает коррективы для публикуемых данных, сохраняет их в БД распространения и отправляет соответствующим серверам подписки. Издатель и распространитель могут находиться на одном сервере, но при большой нагрузке их лучше разделить.

Сервер подписки

Он хранит копии данных и принимает информацию об изменениях. Публикуемая информация перемещается только в одном направлении — от сервера публикации к серверам подписки, причем сведения могут изменяться только на сервере публикации. Реплицированные данные, копируемые на сервер подписки, следует определить как данные «только для чтения»; у подписчиков не должно быть права менять их.

Синхронизация

Этой операцией можно синхронизировать целые базы данных или отдельные таблицы до того, как начнется репликация изменений данных. Интервал времени синхронизации новых подписчиков определяет администратор. Планирование синхронизации для таблиц или баз данных должно стать первым шагом при инициализации репликации. Сначала надо создать «снимок» схемы таблиц и данных в них, чтобы обеспечить целостность информации. Затем изменения в публикуемых данных можно реплицировать на серверы подписки.

Резюме

Репликация базы данных позволяет двум или более пользователям одновременно работать с локальной копией базы данных; содержимое исходной БД при этом не меняется. Чтобы отразить в оригинале изменения, сделанные в копиях, нужно периодически выполнять синхронизацию. Средства репликации баз данных включены в состав Microsoft Access и SQL Server.

 



Содержание раздела