
- •Лекция 01: Вводные замечания Основные понятия, принципы и ограничения реляционных баз данных Основные определения
- •Принципы, реализуемые реляционными субд
- •Ограничения реляционных баз данных
- •Реляционная судб ms sql Server
- •Ms sql Server как система управления обработкой транзакций
- •Ms sql Server как система поддержки принятия решений
- •Службы ms sql Server Серверная часть системы
- •Клиентская часть системы
- •Лекция 02: Что делают и за что отвечают администраторы баз данных Microsoft sql Server
- •Инсталляция и конфигурирование
- •Инсталляция программного обеспечения
- •Конфигурирование аппаратуры и программного обеспечения
- •Безопасность
- •Аудит системы
- •Обычная работа
- •Резервное копирование и восстановление
- •Управление пользователями
- •Прочая обычная работа
- •Уровень качества обслуживания
- •Мониторинг и настройки производительности
- •Состав системы и планирование мощности
- •Обеспечение периодов работоспособности системы
- •Планирование периодов неработоспособности
- •Восстановление после аварий
- •Документирование
- •Документация о конфигурации
- •Системный журнал
- •Документация о структуре системы
- •Планы обычного технического обслуживания
- •Планы восстановления после аварий
- •Проектирование и разработка
- •Создание модели данных и анализ
- •Проектирование базы данных
- •Разработка хранимых процедур
- •Разработка приложений
- •Информационная помощь другим сотрудникам
- •Прочие обязанности администратора баз данных
- •Администрирование кластера
- •Работа в службе технических консультаций для пользователей
- •Оценка закупаемого оборудования и программного обеспечения
- •Слежение за мощностью системы
- •Типы данных
- •Значение null
- •Правила порождения идентификаторов
- •Системные таблицы
- •Временные таблицы
- •Пользовательские таблицы
- •Физическая архитектура баз данных
- •Страницы и группы страниц
- •Файлы и группы файлов
- •Лекция 04: Основы программирования в ms sql Server Реляционная алгебра
- •Операции реляционной алгебры
- •Реализация операций реляционной алгебры в языке sql
- •Описание синтаксиса языка Transact-sql Управляющие конструкции
- •Логические операторы
- •Лекция 05: Создание и использование умолчаний, ограничений и правил
- •Умолчания
- •Определение и модифицирование умолчаний с помощью t-sql
- •Оператор create table с атрибутом default
- •Оператор alter table с атрибутом default
- •Оператор create default и процедура sp_bindefault
- •Процедура sp_unbindefault
- •Ограничения
- •Создание и модифицирование ограничений с помощью t-sql Ограничение not null
- •Ограничение unique
- •Ограничение primary key
- •Ограничение foreign key
- •Ограничение check
- •Правила
- •Создание Rule-объекта с помощью t-sql
- •Лекция 06: Создание и использование индексов Что такое индекс?
- •Понятия индексирования
- •Индексные ключи
- •Простые индексы
- •Составные индексы
- •Уникальность индекса
- •Уникальный индекс
- •Неуникальные индексы
- •Типы индексов
- •Кластеризованные индексы
- •Некластеризованные индексы
- •Полнотекстовые индексы
- •Использование коэффициента заполнения для предупреждения расщеплений страниц
- •Создание индексов
- •Использование Management Studio
- •Категория «Общие»
- •Категория «Идентификация»
- •Категория «Конструктор таблиц»
- •Спецификация пространства данных
- •Характеристики заполнения
- •Использование t-sql
- •Лекция 07: Программируемые объекты в ms sql Server Пользовательские функции sql Server
- •Функции Scalar
- •Функции Inline
- •Функции Multistatement
- •Изменение функций
- •Удаление функций
- •Использование sql Server Management Studio
- •Хранимые процедуры
- •Примеры использования хранимых процедур
- •Лекция 08: Другие программируемые объекты ms sql Server Определение триггера в стандарте языка sql
- •Реализация триггеров в среде ms sql Server
- •Примеры использования триггеров
- •Курсоры
- •Запрос курсора
- •Обработка курсоров
- •Преимущества использования курсоров
- •Курсоры базовой таблицы
- •Статические курсоры
- •Последовательные курсоры
- •Последовательные курсоры «только для чтения»
- •Курсоры, управляемые набором ключей
- •Работа с объединениями
- •Правила выбора типа курсора
- •Получение блокировок
- •Неявное преобразование типа курсора
- •Лекция 09: Проектирование системы Microsoft sql Server
- •Системные требования
- •Системное приложение
- •Oltp (системы оперативной обработки транзакций)
- •Dss (системы поддержки принятия решений)
- •Системы пакетной обработки данных
- •Требования
- •Требования к уровню обслуживания
- •Производительность
- •Мощность
- •Обеспечение работоспособности
- •Размещение базы данных
- •Журнал транзакций
- •Файлы данных
- •Приложение
- •Архитектура
- •Производительность и масштабируемость
- •Проектирование системы безопасности
- •Уровни системы безопасности Система безопасности уровня сервера
- •Система безопасности уровня базы данных
- •Права собственности на объект
- •Лекция 10: Microsoft sql Server и Microsoft Cluster Services Разновидности отказов
- •Обзор mscs
- •Основные понятия
- •Компоненты кластера
- •Программное обеспечение mscs для управления кластером
- •Взаимосвязь между серверами
- •Разделяемая дисковая система
- •Подсистемы ввода-вывода
- •Внутренняя raid-система
- •Внешняя raid-система
- •Категории приложений, работающих с кластерами
- •Режимы mscs
- •Активно-пассивные кластеры
- •Активно-активные кластеры
- •Примеры кластеризованных систем
- •Пример 1 – система с высокой готовностью со статическим балансированием нагрузки
- •Пример 2 – система с «горячим резервированием» с максимальной готовностью
- •Пример 3 – кластеризация части сервера
- •Пример 4 – только виртуальные серверы, без переходов по отказам
- •Конфигурирование sql Server для работы на кластере
- •Планирование конфигурации
- •Задание времени восстановления
- •Конфигурирование sql Server для активно-пассивных кластеров
- •Конфигурирование sql Server для активно-активных кластеров
- •Лекция 11: Транзакции и блокировка транзакций
- •Что такое транзакция?
- •Acid-свойства
- •Атомарность
- •Согласованность
- •Изолированность
- •Поведение параллельных транзакций
- •Задание уровня изолированности
- •Устойчивость
- •Режимы транзакций
- •Режим автофиксации
- •Явный режим
- •Фиксирование транзакций
- •Создание вложенных транзакций
- •Неявный режим
- •Откаты транзакций
- •Автоматические откаты
- •Программируемые откаты
- •Точки сохранения
- •Блокировка транзакций
- •Возможности управления блокировками
- •Уровни блокировок
- •Режимы блокировки
- •Разделяемая блокировка
- •Блокировка изменений
- •Монопольная блокировка
- •Блокировка намерения
- •Блокировка схемы
- •Блокировка массовых изменений
- •Блокирование и взаимоблокировки
- •Лекция 12: Управление пользователями и системой безопасности
- •Разрешение удалённого доступа
- •Разрешение удалённых соединений
- •Обеспечение безопасности внешнего доступа
- •Управление доступом к экземплярам sql Server
- •Выбор режима проверки подлинности
- •Настройка режима проверки подлинности
- •Соединение с экземпляром sql Server
- •Предоставление доступа пользователям и группам Windows
- •Предоставление доступа именам входа sql Server
- •Принудительное применение политики паролей
- •Управление разрешениями для экземпляра
- •Получение информации о принадлежности к серверной роли
- •Запрет доступа пользователям
- •Рекомендации по управлению доступом
- •Применение схем и ролей. Общие принципы
- •Управление доступом в службах отчётов
- •Управление доступом в службах уведомлений
- •Управление доступом в интеграционных службах
- •Управление доступом в службах репликации
- •Управление доступом для sql Server Agent
- •Управление доступом для Database Mail
- •Управление доступом к базе данных с помощью протокола http
- •Лекция 13: Репликации
- •Что такое репликация базы данных?
- •Понятия репликации Компоненты репликации
- •Издатели
- •Дистрибьюторы
- •Подписчики
- •Типы репликации
- •Репликация моментальных снимков
- •Репликация транзакций
- •Репликация слиянием
- •Данные репликации
- •Публикации
- •Push-подписка и pull-подписка
- •Push-подписка (принудительная)
- •Pull-подписка (по запросу)
- •Агенты репликации
- •Snapshot Agent (Агент создания снимков состояния)
- •Репликация слиянием
- •Репликация моментальных снимков
- •Лекция 14: Средства автоматического администрирования
- •Средства автоматического конфигурирования sql Server
- •Динамическое управление памятью
- •Как действует динамическое управление памятью
- •Пул памяти
- •Параметры конфигурирования памяти sql Server
- •Другие параметры динамического конфигурирования
- •Параметр locks (блокировки)
- •Параметр recovery interval (интервал восстановления)
- •Параметр user connections (количество соединений с пользователями)
- •Статистика
- •Команда create statistics
- •Процедура sp_createstats
- •Команда update statistics
- •Процедура sp_autostats
- •Контрольные точки
- •Планы обслуживания баз данных
- •Использование мастера для создания плана обслуживания
- •Лекция 15: Автоматизация административных задач с помощью службы sqlServerAgent
- •Задания
- •Создание задания в Management Studio
- •Использование t-sql
- •Просмотр журнала выполнения задания
- •Использование Management Studio
- •Использование t-sql
- •Предупреждения
- •Протоколирование сообщений в журнале событий
- •Создание предупреждения о событии sql Server
- •Создание предупреждения о производительности sql Server
- •Операторы
- •Лекция 16: Резервное копирование Microsoft sql Server
- •Воспроизведение
- •Отказы системы
- •Отказы оборудования
- •Отказы программного обеспечения
- •Человеческие ошибки
- •Журнальное протоколирование в sql Server Журнал транзакций
- •Поток откладываемой записи
- •Последовательная запись в журнал
- •Размер журнала транзакций
- •Воспроизведение с помощью журнала транзакций
- •Свойства журнала транзакций
- •Непротоколируемые операции
- •Bulk copy и программа bcp
- •Текстовые операции
- •Контрольные точки
- •Операции контрольной точки
- •Конфигурирование интервала между контрольными точками
- •Методы резервного копирования
- •Полное резервное копирование
- •Разностное резервное копирование
- •Резервное копирование журнала транзакций
- •Резервное копирование группы файлов
- •Резервное копирование файла данных
- •Комбинирование разностных резервных копий и резервных копий журнала транзакций
- •Выполнение резервного копирования
- •Создание логических устройств резервного копирования
- •Создание устройств резервного копирования с помощью t-sql
- •Создание удалённого устройства резервного копирования
- •Резервное копирование с помощью Management Studio
- •Лекция 17: Полная модель восстановления
- •Модель восстановления с неполным протоколированием
- •Восстановление базы данных из резервных копий
- •Извлечение информации резервного копирования
- •Восстановление базы данных через интерфейс среды sql Server Management Studio
- •Восстановление базы данных при простой стратегии резервного копирования с использованием t-sql
- •Восстановление базы данных при полной стратегии резервного копирования с использованием t-sql
- •Восстановление системных баз данных
- •Восстановление базы данных master
- •Восстановление баз данных msdb и model
Основные понятия
MSCS сокращает длительность простоев, осуществляя переходы по отказу между отдельными компьютерами, применяя при этом взаимосвязь между серверами и дисковую систему с общим доступом (рис. 10.2). В качестве взаимосвязи между серверами может применяться любое высокоскоростное соединение, например, сеть Ethernet или другое сетевое оборудование. Эта взаимосвязь функционирует как канал коммуникации между серверами, благодаря которому возможна двусторонняя передача информации о состоянии кластера и о конфигурации. Благодаря разделяемой дисковой системе возможен равноправный доступ всех серверов кластера к базе данных и к другим файлам с данными. Такая разделяемая дисковая система может быть реализована при помощи SCSI, SCSI поверх Fibre Channel, а также при помощи какого-либо нестандартного оборудования. Разделяемые диски могут быть как одиночными дисками, так и RAID-системой.
рис. 10.2. Кластер Windows 2000
Как только система будет сконфигурирована как сервер кластера, она будет преобразована из обычного сервера в так называемый виртуальный сервер. Виртуальный сервер похож на обычный сервер, но для него применяется абстрагирование и отказ от настоящей физической сущности компьютера. Так как аппаратная часть компьютера, образующая виртуальный сервер, может со временем меняться, то пользователь не будет знать, на каком именно сервере выполняется его приложение в данный момент времени. Поэтому пользовательские приложения выполняются не на конкретном комплекте оборудования, а на виртуальном сервере.
Виртуальный сервер существует как элемент сети и ему сопоставлен IP-адрес, применяемый в протоколе TCP/IP. Этот IP-адрес может передаваться от одного компьютера к другому, благодаря чему пользователи продолжают «видеть» виртуальный сервер независимо от того, на каком именно оборудовании он работает. На самом деле, этот IP-адрес переходит от одного компьютера к другому, что обеспечивает одинаковое представление виртуального сервера для наружного наблюдателя. Приложение, направленное по некоторому адресу, всё равно получит доступ, соответствующий этому адресу, даже если конкретный сервер, соответствующий этому адресу, и откажет (однако этот адрес теперь будет соответствовать другому серверу). Виртуальный сервер прячет от пользователя операции перехода по отказу, поэтому пользователь может продолжать свою работу, не зная о событиях, происходящих «за кулисами».
Компоненты кластера
Для создания кластера нужны некоторые компоненты: программное обеспечение для управления кластером, взаимосвязь между серверами и разделяемая дисковая система. Чтобы образовать кластер, эти компоненты должны быть сконфигурированы согласованно с приложениями, которые будут предназначены для работы на нём.
Программное обеспечение mscs для управления кластером
Программное обеспечение для управления кластером – это совокупность инструментальных средств, применяемых для технического обслуживания, конфигурирования и работы кластера. Оно содержит следующие подкомпоненты, работающие совместно и выполняющие, при необходимости, переход по отказу:
менеджер узлов (Node Manager) – поддерживает членство в кластере и передаёт «пульс» (heartbeats) членам кластера (узлам); этот пульс представляет собой просто периодически отсылаемые сообщения, означающие «Я жив»; если пульс от некоторого узла прекращается, то другой узел делает вывод, что этот узел перестал функционировать, и предпринимает шаги по приёму на себя его функций; менеджер узлов является одним из наиболее критичных элементов кластера, потому что он следит за состоянием кластера и решает, какие действия должны быть предприняты;
менеджер базы данных конфигурации (Configuration Database Manager) – поддерживает базу данных конфигурации кластера, в которой хранятся сведения обо всех компонентах кластера, как об абстрактных логических элементах (например, виртуальных серверах), так и физических элементах (например, разделяемых дисках); эта база данных подобна системному реестру Windows;
менеджер ресурсов / менеджер переходов по отказу (Resource Manager / Failover Manager) – запускает и останавливает службу MSCS; информацию (например, о потере узла, о добавлении узла и т.д.) менеджер ресурсов / менеджер переходов по отказу получает от монитора ресурсов и менеджера узлов;
обработчик событий (Event Processor) – инициализирует кластер и осуществляет маршрутизацию информации о событиях (routes event information) среди компонент кластера; обработчик событий также инициирует расширение кластера, давая указание менеджеру узлов о добавлении узла;
менеджер коммуникаций (Communications Manager) – управляет коммуникацией между узлами кластера; все узлы кластера, для обеспечения своей правильной работы, должны постоянно осуществлять коммуникацию друг с другом; если этой коммуникации между узлами не будет, то информация о состоянии кластера будет потеряна и кластер не сможет функционировать;
менеджер глобального обновления (Global Update Manager) – передаёт информацию о состоянии кластера (например, информацию о добавлении узлов в кластер, об удалении узлов и т.д.) всем узлам кластера;
монитор ресурсов (Resource Monitor) – отслеживает состояние различных ресурсов кластера и сообщает статистические данные; эта информация может применяться для принятия решений о необходимости выполнения на кластере переходов по отказу;
служба времени (Time Service) – гарантирует, что все узлы кластера сообщают одинаковое системное время; если бы службы времени не было, то события могли бы представляться в неверной последовательности, что приводило бы к неверным решениям; например, если бы один узел «думал» бы, что сейчас 2 часа дня и содержал бы старую копию файла, а другой узел «думал» бы, что сейчас 10 часов утра и содержал бы более новую версию этого файла, то кластер мог бы неправильно решить, что файл на первом узле является более свежим.