Занятие 5. Репликация базы данных
(Продолжительность занятия 40 минут)
Репликация базы данных обеспечивает одновременную работу нескольких пользователей с идентичными локальными копиями БД. Периодическая синхронизация копий позволяет им обмениваться новыми (или измененными) объектами и данными и, таким образом, своевременно обновлять БД.
Средства репликации доступны для баз данных 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 можно:
> Репликация БД средствами Microsoft Access
В этом упражнении Вы создадите набор реплик средствами Microsoft Access.
В каждой реплике набора, за исключением основной, можно изменять только данные. Коррективы структуры БД — например, добавление новых таблиц или полей — разрешены только в основной реплике.
Диспетчер репликации 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.
На рабочем столе появится новый значок портфеля.
Каков теперь размер базы данных на жестком диске?
> Изменение основной реплики
Получилось ли у Вас это? Почему?
Новое поле не появилось, так как базы данных еще не синхронизированы.
Поскольку это не основная реплика, вносить изменения в структуру таблицы нельзя. Обратите внимание, что новое поле реплицировано в эту копию БД.
Репликация средствами DАО
Интерфейс объектов доступа к данным (Data Access Objects, DAO) предоставляет методы и свойства, позволяющие разработчикам использовать некоторые средства портфельной репликации в программах Visual Basic. Объекты DAO применяются для:
Применение объектов DAO требует программирования, но зато позволяет построить собственную систему репликации". Есть несколько ситуаций, когда использовать объекты DAO уместно.
Средства Microsoft SQL Server
Репликация — встроенный компонент SQL Server. Он позволяет автоматически выполнять зарегистрированные в соответствующем журнале транзакции, которые связаны с реплицируемыми таблицами (рис. 6.21). Все коррективы асинхронно передаются в таблицы назначения на серверах сети (так называемое распространение транзакций), а процессы в основной базе данных идут своим чередом.
Рис. 6.21 Средства репликации SQL Server
Цели репликации SQL Server таковы:
Средства репликации SQL Server обеспечивают;
Чтобы информация была доступна для копирования, необходимо создать публикацию. Репликация SQL Server реализуется на основе метафоры «издатель-подписчик».
Метафора «издатель-подписчик»
Издатель публикует и распространяет информацию, а подписчик получает ее. При репликации средствами SQL Server сервера может выполнять несколько функций в любой комбинации:
Сервер публикаций
Он управляет базой данных публикаций, делает их доступными для репликации и отправляет копии изменений в публикуемых сведениях на сервер распространения.
Сервер распространения
Здесь хранится БД распространения. Сервер распространения принимает коррективы для публикуемых данных, сохраняет их в БД распространения и отправляет соответствующим серверам подписки. Издатель и распространитель могут находиться на одном сервере, но при большой нагрузке их лучше разделить.
Сервер подписки
Он хранит копии данных и принимает информацию об изменениях. Публикуемая информация перемещается только в одном направлении — от сервера публикации к серверам подписки, причем сведения могут изменяться только на сервере публикации. Реплицированные данные, копируемые на сервер подписки, следует определить как данные «только для чтения»; у подписчиков не должно быть права менять их.
Синхронизация
Этой операцией можно синхронизировать целые базы данных или отдельные таблицы до того, как начнется репликация изменений данных. Интервал времени синхронизации новых подписчиков определяет администратор. Планирование синхронизации для таблиц или баз данных должно стать первым шагом при инициализации репликации. Сначала надо создать «снимок» схемы таблиц и данных в них, чтобы обеспечить целостность информации. Затем изменения в публикуемых данных можно реплицировать на серверы подписки.
Резюме
Репликация базы данных позволяет двум или более пользователям одновременно работать с локальной копией базы данных; содержимое исходной БД при этом не меняется. Чтобы отразить в оригинале изменения, сделанные в копиях, нужно периодически выполнять синхронизацию. Средства репликации баз данных включены в состав Microsoft Access и SQL Server.