
- •Хранимые процедуры Управление процессом компиляции хранимых процедур
- •Управление автоматическим выполнением хранимых процедур
- •Использование индексов
- •Планирование использования индексов
- •Создание индексов средствами t-sql
- •Использование курсоров
- •Динамические курсоры
- •Последовательные курсоры
- •Ключевые курсоры
- •Управление курсорами.
- •Работа с триггерами
- •Пример триггера
- •Система безопасности sql Server
- •Общие правила разграничения доступа
- •Аутентификация и интеграция с доменом Windows
- •Режим аутентификации Wondows
- •Режим аутентификации sql Server
- •Права доступа
- •Компоненты системы безопасности sql Server
- •Создание пользователей
- •Роли приложения
- •Защита данных в sql Server
- •Управление правами доступа к объектам базы данных средствами t-sql
- •Репликация данных
- •Понятие репликации данных
- •Издатель
- •Подписчик
- •Дистрибьютор
- •Механизмы репликации
Репликация данных
Многие организации создают распределённые базы данных. Основная база данных располагается в центральном офисе. Туда стекается вся информация из множества региональных филиалов. Часто эти филиалы географически удалены, поэтому иногда не целесообразно или, вообще, невозможно поддерживать постоянное соединение с центральным сервером. Тем не менее, пользователи должны постоянно иметь возможность вводить и изменять информацию в таблицах базы данных. Механизмы репликации предоставляют возможность для распространения данных и выполнения хранимых процедур по всему предприятию.
Репликация позволяет делать копии данных, тиражировать эти копии на другие сервера и автоматически синхронизировать изменения, внесённые в данные на удалённых серверах, так, что все копии данных на всех серверах будут находиться в одинаковом состоянии. Использование репликации может значительно снизить расходы на синхронизацию данных между центральным сервером и региональными представительствами компании.
Методы копирования данных можно разделить на две группы.
В первом случае необходимо периодически копировать данные из базы данных и рассылать сделанные копии в региональные филиалы. При этом каждый филиал может вносить изменения в свою копию данных. Преимущество такого подхода относительно низкие затраты на пересылку данных. Недостаток – большой промежуток времени, который должен пройти прежде, чем изменения, сделанные в одном филиале, становятся доступны пользователям в центральном офисе или других филиалах. Этот метод, как правило, используется при рассылке редко изменяемых данных, например, прайс-листов.
Другой вариант предполагает использование постоянных соединений между филиалами и центральным офисом. Изменения данных, выполняемые пользователем в одном филиале, мгновенно становятся доступны пользователям в центральном офисе и других филиалах. Недостатком этого метода является высокая стоимость использования выделенных каналов связи.
Репликация в SQL Server реализована на основе различных методов копирования данных, охватывающих практически все возможные ситуации.
Понятие репликации данных
Репликация – это копирование данных, расположенных на одном сервере на один или несколько других серверов. SQL Server поддерживает репликацию данных не только на другие SQL сервера той же версии, но и на SQL сервера предыдущих версий, а так же в СУБД сторонних производителей. Однако, все имеющиеся возможности репликации могут быть реализованы только в том случае, если все участники репликации являются SQL серверами 2000 и более поздних версий.
Модель репликации SQL Server базируется на принципе «опубликуйтесь и подпишитесь». Этот принцип появился ещё в SQL Server 6.0. В терминологии репликации для серверов, участников процесса репликации данных используются термины «издатель»(Publisher), «дистрибьютор»(Distributor) и «подписчик»(Subscribe). Предполагается , что издатель, подписчик и дистрибьютор запускаются на разных SQL серверах. При этом можно сконфигурировать репликацию таким образом, чтобы данные копировались между базами данных одного сервера. В этом случае издатель, подписчик и дистрибьютор будут запускаться на одном компьютере.
Помимо перечисленных терминов для обозначения участников процесса тиражирования используются понятия «публикация» (Publication) и «статья» (Article) для обозначения копируемых данных.
Статья представляет собой таблицу или её часть, выбранную для тиражирования. Когда выбирается часть таблицы, используется либо вертикальный фильтр, либо горизонтальный фильтр. Вертикальный фильтр ограничивает количество колонок в таблице, включённых в репликацию. Горизонтальный фильтр накладывает условия на выбираемые для тиражирования строки. Публикация представляет собой набор статей, копируемых как одно целое между сервером-издателем и сервером подписчиком. Подписчик может подписаться только на всю публикацию. Подписка на отдельную статью в публикации не поддерживается. В ранних версиях SQL Server подписчик мог подписаться на отдельную статью публикации, однако, это вызывало осложнения при реализации пользовательского интерфейса, который не позволял этого делать. Если необходимо скопировать единственную статью, придётся создавать для неё отдельную публикацию.