- •Санкт-Петербург
- •Часть I. Общие сведения о субд Microsoft sql Server 2000 5
- •Часть II. Администрирование sql Server 2000 116
- •Введение
- •Часть I. Общие сведения о субд Microsoft sql server 2000
- •1.1. Возможности sql server 2000
- •1.2. Компоненты sql server 2000
- •Утилита Server Network
- •Встроенные мастера sql Server 2000
- •1.3. Архитектур бдв среде sql Server 2000
- •Логические компоненты базы данных
- •Режимы сопоставления
- •Идентификаторы пользователей, учетные имена, роли и группы
- •Физическая структура базы данных Страницы и экстенты
- •Файлы и группы файлов баз данных
- •Протокол tds
- •Архитектура обработчика запросов
- •Архитектура памяти
- •Архитектура ввода-вывода
- •Архитектура полнотекстовых запросов
- •Организация транзакций
- •Хранилища данных и оперативная аналитическая обработка (olap)
- •Oltp-системы
- •Olap-системы
- •Архитектура разработки приложений
- •Язык баз данных
- •1.4. Инструменты программирования sql server
- •Окно Query
- •Панель Results
- •Вкладка Grids
- •Окно Object Browser
- •Окно отладчика Transact-sql
- •Окно Object Search
- •Утилита командной строки isql
- •Утилита командной строки osql
- •1.5.Язык transact - sql
- •Операторы Transact-sql
- •Язык определения данных
- •Язык управления данными
- •Язык манипулирования данными
- •Идентификаторы
- •Переменные
- •Функции
- •Встроенные функции
- •Функции получения набора строк
- •Агрегатные функции
- •Скалярные функции
- •Скалярные функции
- •Табличные функции
- •Детерминированность функций
- •Типы данных
- •Выражения
- •Использование операторов в выражениях
- •Элементы языка управления ходом выполнения
- •Обработка оператора select
- •Обработка других операторов
- •Команда go
- •Обработка пакета
- •Хранимые процедуры и триггеры
- •Исполнение хранимых процедур и триггеров
- •Сценарии Transact-sql
- •Часть II. Администрирование sql server 2000
- •2.1. Создание и управление бд sql server 2000
- •Методы создания баз данных sql Server
- •Оператор create database
- •Управление базой данных sql Server
- •Просмотр сведений о базе данных
- •Модификация базы данных
- •Настройка параметров базы данных
- •Удаление базы данных sql Server
- •2.2. Импорт и экспорт данных
- •Использование утилиты Ьср и оператора bulk insert
- •Использование различных форматов данных
- •Использование dts
- •Инструменты dts
- •Задачи dts
- •Соединения dts
- •2.3. Копирование в среде sql server 2000
- •Терминология резервного копирования
- •Резервное копирование с использованием Transact-sql
- •Полное резервное копирование базы данных
- •Резервное копирование файла или группы файлов
- •Репликация
- •2.4. Восстановление в среде sql server 2000 Определение последовательности восстановления данных
- •2.5. Репликация Процесс репликации
- •Репликация моментальных снимков
- •2.6. Проверка подлинности в sql server 2000
- •Проверка подлинности средствами Windows
- •Проверка подлинности средствами sql Server 2000
- •Сравнение типов проверки подлинности
- •Клиентские сетевые библиотеки и проверка подлинности.
- •Выбор режима проверки подлинности для sql Server 2000
- •Проверка подлинности Windows
- •Смешанный режим проверки подлинности
- •Делегирование учетной записи пользователя
- •2.7.Разрешение уровня сервера
- •Фиксированные роли базы данных
- •2.8.1. Оптимизация работы sql server 2000
- •2.8.1. Конфигурация сети
- •2.8.2. Индексы
- •Назначение и структура индексов
- •Кластерные индексы
- •Не кластерные индексы
- •Свойства индекса
- •Уникальный индекс.
- •Составной индекс
- •Коэффициент заполнения и разреженность индекса
- •Порядок сортировки
- •2.8.3. Триггеры
- •Исполнение триггеров
- •2.8.4. Хранимые процедуры
- •Производительность
- •Временные хранимые процедуры
- •Расширенные хранимые процедуры
- •Удаленные хранимые процедуры
- •2.8.5. Представления
- •2.8.6. Мониторинг
- •Утилита System Monitor
- •Утилита Task Manager
- •Утилита sql Profiler
- •Утилита sql Query Analyzer
- •Использование Transact-sql
- •Системные хранимые процедуры
- •Команды dbcc
- •Встроенные функции
- •Флаги трассировки
- •Использование snmp
- •2.9. Системы безопасности
- •Шифрование объектов
- •Список литературы
2.5. Репликация Процесс репликации
Репликация (replication) — это процесс автоматического распределения копий данных и объектов БД между экземплярами SQL Server с одновременной синхронизацией всей распространяемой информации.
Существует достаточно много оснований для репликации данных и хранимых процедур на разные серверы. Вот некоторые из них.
Снижение сетевого трафика между удаленными офисами. Например, чтобы пользователи из нью-йоркского отделения компании не запрашивали данные с лондонского сервера по каналу с ограниченной пропускной способностью, можно реплицировать эти данные на нью-йоркский сервер (в тот момент, когда не будет сильной нагрузки, отрицательно отражающейся на пропускной способности канала связи) и обращаться к ним локально.
Отделение OLTP-операций от функций средств поддержки принятия решений. Чтобы пользователи системы поддержки принятия решений не выполняли запросы на занятом OLTP-сервере, данные для запроса можно реплицировать на выделенный сервер поддержки принятия решений.
Объединение данных, поступающих из различных мест. В каждом из нескольких региональных отделений компании данные могут размещаться на локальном сервере SQL Server, затем в процессе репликации перемещаться в центральное отделение и автоматически объединяться.
Реализация избыточности данных. Данные могут быть реплицированы на резервный сервер, который может использоваться для запросов, выполняемых с помощью средств поддержки принятия решений, и предоставлять копию данных при отказе основного сервера.
Расширение системы за пределы ЛВС. Данные, для доступа к которым используется Интернет, могут быть реплицированы на различные серверы в разных географических регионах для равномерного распределения нагрузки между серверами.
Поддержка мобильных пользователей. Данные могут быть реплицированы на портативные компьютеры, где их можно обновлять в автономном режиме. При подключении к сети измененные данные можно реплицировать в главную БД и осуществить их синхронизацию.
SQL Server 2000 поддерживает три типа репликации (replication types) — моментальных снимков, транзакций и сведением. Репликация моментальных снимков (snapshot replication) — это периодическая репликация целостного набора данных, зафиксированного по состоянию на определенный момент времени, с локального сервера на удаленные. Лучше использовать этот тип репликации в БД, где количество реплицируемых данных не велико, а источник данных статичен. Вы можете предоставлять удаленным серверам ограниченную возможность обновления реплицированных данных. Репликация транзакций (transactional replication) — это репликация начального моментального снимка данных на удаленные серверы, а также репликация отдельных транзакций, работающих на локальном сервере и выполняющих последовательные изменения данных в начальном моментальном снимке. Эти реплицированные транзакции выполняются над реплицируемыми данными на каждом удаленном сервере для синхронизации данных на удаленном сервере с данными локального сервера. Вы можете использовать этот тип репликации, если вам необходимо постоянное обновление данных на удаленных серверах. Вы можете предоставлять удаленным серверам ограниченную возможность обновления реплицированных данных. Репликация ведением (merge replication)— это репликация начального моментального снимка данных на удаленные серверы, а также репликация изменений, происходящих на каком-либо удаленном сервере, обратно на локальный сервер с целью синхронизации, разрешения конфликтов и повторной репликации на удаленные серверы. Вы можете использовать репликацию сведением в случае, когда многочисленным изменениям подвергаются одни и те же данные, либо когда удаленные независимые компьютеры работают автономно, например, как в случае автономного пользователя.
Средства репликации SQL Server используют терминологию издательской деятельности для названий процессов и компонентов репликации. Сервер, реплицирующий сохраненную информацию на другие серверы, называется издателем (publisher). Реплицируемая информация состоит из одной или нескольких публикаций (publications). Каждая публикация представляет собой логически согласованный набор данных отдельной БД и состоит из одной или нескольких статей (articles). Статья может быть одним или несколькими объектами следующего типа:
часть или целая таблица (с фильтрацией по столбцам и/или по строкам);
хранимая процедура или определение представления;
выполнение хранимой процедуры;
представление;
индексированное представление;
пользовательская функция.
В процессе репликации каждый издатель взаимодействует с распространителем (distributor). Последний сохраняет публикуемые БД, историю событий и метаданные. Роль распространителя зависит от типа репликации. При этом распространитель может быть локальным (тот же экземпляр SQL Server) или удаленным (отдельный экземпляр SQL Server).
Серверы, получающие реплицируемую информацию, называются подписчиками (subscribers). Они получают избранные публикации — подписки (subscriptions) — от одного или нескольких издателей. В зависимости от типа репликации, подписчикам может быть разрешено изменять реплицируемую информацию, а также реплицировать измененную информацию обратно издателю. Подписчики могут быть авторизованы, или могут быть анонимными (анонимная подписка используется при публикации данных в Интернете). Для больших публикаций использование анонимных серверов может повысить производительность системы.
Агенты репликации (replication agents) автоматизируют процесс репликации. Как правило, агент репликации — это задание службы SQL Server Agent, сконфигурированное администратором для выполнения специфических задач по расписанию. По умолчанию в среде Windows NT 4.0/2000 агенты репликации выполняются в контексте безопасности доменной учетной записи службы SQL Server Agent. В Windows 98/ Me они выполняются в контексте безопасности зарегистрированного в системе пользователя. Существует некоторое число агентов репликации для различных задач репликации. Каждый агент сконфигурирован так для запуска по определенному расписанию. Различные типы репликации используют один или несколько таких агентов.
Агент Snapshot создает исходную мгновенную копию каждой реплицируемой публикации, включая информацию о схеме. Его используют все типы репликации. Вы можете иметь один такой агент на каждую публикацию.
Агент Distribution передает моментальный снимок данных и последующие изменения от распространителя подписчикам. Этот агент используется при репликации моментальных снимков и репликации транзакций. По умолчанию для всех подписок на отдельную публикацию используется один агент Distribution. Такой агент называется разделяемым (shared). Однако вы можете настроить систему так, чтобы у каждого подписчика был личный, независимый (independent), агент Distribution.
Агент Log Reader перемещает транзакции, помеченные для репликации, из журнала транзакций с сервера-издателя на сервер-распространитель. Этот агент используется при репликации транзакций. Каждая из помеченных для репликации БД будет иметь один агент Log Reader, запускающийся на распространителе и подключающийся к издателю.
Агент Queue Reader вносит в публикацию изменения, сделанные подписчиками в автономном режиме. Репликация мгновенных снимков и репликация транзакций используют этот агент в случае, если разрешена очередь обновлений. Агент запускается на распространителе, и существует только один экземпляр такого агента, обслуживающий всех издателей и публикации для конкретного распространителя.
Агент Merge передает моментальный снимок данных от распространителя подписчикам. Он также перемещает и контролирует изменения в реплицируемых данных между издателем и подписчиками. Этот агент дезактивирует подписки, информация которых не обновлялась в течение максимального срока хранения публикации (по умолчанию — 14 дней). Этот агент используется в случае репликации сведением. Каждая подписка на объединенную публикацию имеет свой объединяющий агент, который синхронизирует данные между сервером, публикующим данные, и серверами-подписчиками.
Агент History Clean Up удаляет журнал событий агента из БД распространения, и используется для управления размером этой БД. Все типы репликации используют этот агент. По умолчанию он запускается каждые 10 минут.
Агент Distribution Clean Up удаляет реплицированные транзакции из БД распространения, и отключает неактивных подписчиков, данные которых не обновлялись в течение максимального периода хранения распространяемых данных (по умолчанию — 72 часа). Если разрешены анонимные подписки, реплицированные транзакции не удаляются до истечения максимального периода хранения. Репликация моментальных снимков и репликация транзакций используют этот агент. По умолчанию он запускается каждые 10 минут.
Агент Expired Subscription Clean Up выявляет и удаляет подписки с истекшим сроком хранения. Все типы репликации используют этот агент. По умолчанию он запускается один раз в день.
Агент Reinitialize Subscriptions Having Data Validation Failures повторно инициализирует все подписки, имеющие ошибки при проверке согласованности данных. По умолчанию этот агент запускается вручную.
Агент Replication Agents Checkup являет неактивных агентов репликации и заносит соответствующие записи в журнал приложений Windows. По умолчанию он запускается каждые 10 минут.
Агенты Snapshot, Distribution и Merge можно встраивать в приложения с помощью элементов управления ActiveX.
Для внедрения репликации необходимо знать, как работают все ее типы. Каждый тип репликации имеет свои преимущества и недостатки.
