
- •Академия специальных курсов по информационным технологиям
- •Глава 6. Автоматизация администрирования sql Server 2008 46
- •Глава 7. Выполнение административных операций при помощи объектных моделей smo, sql-dmo и wmi 66
- •Глава 8. Мониторинг и оптимизация производительности sql Server 2008 83
- •Глава 9. Применение sql Server Integration Services 106
- •Глава 10. Средства обеспечения отказоустойчивости sql Server 2008 131
- •Глава 11. Репликация в sql Server 2008 140
- •1. Планирование и установка sql Server 2008
- •1.1 Планирование установки sql Server 2008
- •1.1.1 Оценка архитектуры приложения на основе sql Server 2008
- •1.1.2 Выбор оборудования
- •1.1.3 Выбор редакции sql Server 2008
- •1.2 Установка sql Server 2008
- •1.2.1 Начало установки. Выбор набора компонентов
- •1.2.2 Работа с именованными экземплярами
- •1.2.3 Выбор учетной записи для служб sql Server
- •1.2.4 Выбор режима аутентификации sql Server 2008
- •1.2.5 Выбор кодировки и порядка сортировки
- •1.2.6 Остальные параметры установки
- •1.3 Автоматизированная и удаленная установка
- •1.4 Проверка установки и выполнение послеустановочных задач
- •1.4.1 Проверка результатов установки
- •1.4.2 Настройка серверных сетевых библиотек Сетевые библиотеки
- •Настройка сетевых библиотек
- •1.4.3 Другие послеустановочные задачи
- •2. Средства администрирования sql Server 2008
- •2.1.2 Окно Object Explorer («f8»)
- •2.1.3 Окно Summary («f7»)
- •Принцип работы с Solution Explorer:
- •2.1.5 Другие окна sql Server Management Studio
- •2.1.6 Способы создания скриптов в Management Studio
- •2.1.7 Дополнительные возможности Management Studio
- •2.3.2 Службы sql Server 2008
- •Службы, входящие в состав sql Server 2008:
- •2.3.3 Настройка клиентских сетевых библиотек средствами sql Server Configuration Manager. Sql Native Client
- •2.4.1 Применение sqlCmd
- •2.4.2 Специальный режим подключения Dedicated Administrator Connection (dac)
- •2.8 Другие графические утилиты sql Server 2008
- •2.9 Другие консольные утилиты sql Server 2008
- •3. Создание баз данных и настройка параметров
- •3.1 Служебные и учебные базы данных sql Server 2008
- •3.2 Физическая структура базы данных
- •3.2.1 Файлы баз данных и журналов транзакций
- •3.2.2 Определение размера файлов данных
- •3.2.3 Определение размера файлов журналов транзакций
- •3.2.4 Экстенты и страницы
- •3.2.5 Применение файловых групп
- •3.3 Логическая структура базы данных
- •3.4 Создание пользовательских баз данных
- •3.4.1 Создание базы данных из sql Server Management Studio
- •3.4.2 Создание скрипта, описывающего базу данных
- •Создание бд с помощью команды Create Database.
- •Генерация скрипта для существующей бд.
- •1 Способ: Создание скрипта на создание базы данных и настройку ее параметров
- •2 Способ: Создание скрипта, содержащего команды на создание объектов баз данных
- •Использование шаблона редактора кода
- •3.4.3 Перенос базы данных
- •Подключение файлов существующей базы данных
- •Копирование базы данных при помощи Copy Database Wizard
- •3.5 Основные параметры базы данных
- •3.5.1 Режим восстановления базы данных (Recovery Model)
- •3.5.2 Режимы работы базы данных
- •3.6 Сопровождение баз данных
- •3.6.1 Увеличение размера базы данных
- •3.6.2 Уменьшение размера базы данных
- •3.6.3 Перенос файлов базы данных
- •3.6.4 Переименование базы данных
- •3.6.5 Изменение владельца базы данных
- •3.6.6 Удаление базы данных
- •3.6.7 Проверка целостности базы данных
- •4. Безопасность sql Server 2008
- •4.1 Терминология и основы системы безопасности sql Server 2008
- •4.2 Учетные записи sql Server 2008
- •4.2.1 Выбор типа учетной записи
- •4.2.2 Создание учетной записи и настройка ее параметров
- •4.2.3 Режимы аутентификации sql Server 2008. Аудит попыток входа
- •4.2.4 Учетные записи, создаваемые по умолчанию
- •4.2.5 Серверные роли. Разрешения на уровне сервера
- •Добавление учетной записи в состав роли сервера и настройка прав
- •4.3 Пользователи баз данных и схемы
- •4.3.1 Создание, изменение и удаление пользователей базы данных
- •4.3.2 Встроенные пользователи базы данных
- •4.3.3 Встроенные роли баз данных
- •4.3.4 Создание пользовательской роли
- •4.3.5 Роли приложений
- •4.3.6 Управление схемами базы данных
- •4.3.5 Разрешения sql Server 2008
- •4.3.6 Предоставление прав на объекты в базе данных
- •4.4 Изменение контекста выполнения. Выражение Execute As
- •4.4.1 Предоставление права impersonate
- •4.4.2 Изменение контекста выполнения
- •5. Резервное копирование и восстановление баз данных sql Server 2008
- •5.1 Планирование резервного копирования
- •5.1.1 Выбор оборудования для хранения резервных копий
- •5.1.2 Устройства резервного копирования
- •5.1.3 Типы резервного копирования
- •5.1.4 Расписание резервного копирования
- •5.2 Проведение резервного копирования
- •5.2.1 Средства для выполнения резервного копирования
- •5.2.2 Параметры резервного копирования
- •5.2.3 Получение информации о резервном копировании и создание отчетов
- •5.3 Основы восстановления баз данных
- •5.3.1 Терминалогия восстановления бд из резервной копии
- •5.3.2 Общий план восстановления из резервной копии
- •5.3.3 Подготовка к восстановлению
- •5.4 Проведение восстановления
- •5.5 Специальные ситуации восстановления
- •5.5.1 Восстановление базы данных в оперативном режиме (online)
- •5.5.2 Восстановление отдельных страниц базы данных
- •5.5.3 Восстановление системных баз данных
- •Глава 6. Автоматизация администрирования sql Server 2008
- •6.1. Автоматизация административных операций средствами sql Server Agent
- •6.1.2. Параметры настройки sql Server Agent
- •6.2. Работа с заданиями sql Server Agent
- •6.2.1. Параметры заданий.
- •6.2.2. Параметры этапов заданий.
- •6.2.3. Запуск заданий.
- •6.2.4. Настройка расписания заданий.
- •6.2.5. Настройка параметров отчета о завершении задания.
- •6.2.6. Безопасность при выполнении заданий. Настройка учетных записей прокси
- •6.2.7. Просмотр истории выполнения заданий
- •6.3. Мультисерверные задания
- •6.3.1 Предварительная подготовка:
- •6.3.2 Создание и настройка мультисерверных заданий
- •6.4. Работа с предупреждениями
- •6.4.1 Создание предупреждения
- •6.4.2 Предупреждения типа sql Server event alert
- •6.4.3 Предупреждения типа sql Server Performance condition alert
- •6.5. Работа с операторами
- •6.6. Настройка электронной почты в sql Server 2008
- •6.6.1. Обзор возможностей sql Server 2008 для работы с электронной почтой
- •6.6.2. Работа с Database Mail (sqLiMail)
- •6.6.3 Настройка Database Mail
- •6.6.4 Хранимые процедуры Database Mail
- •6.6.5 Настройка sql Server Agent для использования электронной почты
- •6.6.6 Получение информации о работе Database Mail
- •6.6.7. Работа с sqlMail
- •6.6.8 Хранимые процедуры для работы с sqlMail
- •6.6.9. Применение объекта cdo.Message для работы с электронной почтой sql Server и sql Server Agent
- •6.6.10. Использование утилит для отправки сообщений из командной строки
- •6.7. Планы обслуживания баз данных (Database Maintenance Plans)
- •Глава 7. Выполнение административных операций при помощи объектных моделей smo, sql-dmo и wmi
- •7.1. Применение скриптов для выполнения административных операций
- •7.2. Объектная модель sql-dmo
- •7.2.1. Обзор объектной модели sql-dmo
- •7.2.2. Объект sqldmo.Application
- •7.2.3. Объект sqldmo.SqlServer2
- •7.2.4. Объект sqldmo.Database2
- •7.3. Объектная модель smo
- •7.3.1. Обзор объектной модели smo
- •7.3.2. Свойства и методы объектов smo
- •7.3.3. Объект smo.Server
- •7.3.4. Объект smo.Database
- •7.4.1. Характеристики wmi
- •7.4.3. Программные средства для работы с wmi
- •7.4.4. Подключение к службе wmi
- •7.4.5. Язык wql: подключаемся к объектам wmi
- •7.4.6. Работа с событиями в wmi
- •7.4.7. Объекты wmi Provider for Configuration Management
- •7.4.8. Работа с wmi Provider for Server Events
- •Глава 8. Мониторинг и оптимизация производительности sql Server 2008
- •8.1. Мониторинг активности пользователей
- •8.1.1. Применение Activity Monitor
- •8.1.2. Использование хранимых процедур и динамических представлений
- •8.1.3. Использование sql Profiler (профилировщика)
- •8.1.4. Использование хранимых процедур трассировки
- •8.1.5. Применение триггеров ddl
- •8.1.6. Другие средства мониторинга активности пользователей и уведомления о событиях
- •8.2. Журналы sql Server 2008
- •8.3. Мониторинг производительности sql Server 2008
- •8.3.1. Терминология мониторинга производительности
- •8.3.2. Средства для мониторинга и анализа производительности
- •8.3.3. Нагрузочное тестирование
- •8.3.4. Приемы работы с Системным монитором
- •8.3.5. Основы работы с объектами и счетчиками
- •8.3.6. Счетчики для анализа загрузки процессора
- •8.3.7. Счетчики для анализа загрузки оперативной памяти
- •8.3.8. Счетчики для анализа производительности дисковой подсистемы
- •8.3.9. Счетчики для анализа производительности сетевой подсистемы
- •8.3.10. Объекты System Monitor для мониторинга работы sql Server 2008
- •8.4. Оптимизация работы sql Server
- •8.4.1. Оптимизация операционной системы для работы с sql Server 2008
- •8.4.3. Оптимизация подключений к sql Server 2008
- •8.4.4. Оптимизация системы индексов. Использование Database Tuning Advisor
- •8.4.5. Оценка уровня фрагментации индексов и таблиц
- •8.4.6. Устранение фрагментации индексов и таблиц
- •8.4.7. Работа с блокировками
- •8.4.8. Оптимизация запросов
- •Глава 9. Применение sql Server Integration Services
- •9.1. Средства для работы с ssis
- •9.2. Преобразование пакетов dts sql Server 2000 в формат пакетов ssis
- •9.3. Использование мастера импорта/экспорта данных
- •9.4. Использование ssis Designer для создания пакетов
- •9.5. Менеджеры подключений (Connection Managers)
- •9.6. Работа с Data Flow Task
- •9.6.1. Что такое Data Flow Task
- •9.6.2. Элементы Data Flow Task
- •9.6.3. Источники и назначения Data Flow Task
- •9.6.4. Преобразования Data Flow Task
- •9.6.5. Пути и логика выполнение Data Flow Task
- •9.14. Другие задачи копирования объектов sql Server
- •9.19.1 Пример использования задачи wmi Event Watcher Task
- •9.21. Контейнеры ssis
- •8.21.1 Контейнер For Loop
- •8.21.2 Контейнер Foreach Loop
- •8.21.3 Контейнер Sequence
- •9.22. Задачи планов обслуживания (Maintenance Plans)
- •9.23. Ограничения предшественников (precedence constraints)
- •9.24. Протоколирование выполнения пакетов
- •9.25. Работа с конфигурациями
- •9.26. Хранение пакетов
- •9.27. Безопасность пакетов ssis
- •Использование ролей базы данных msdb
- •Применение цифровых подписей для пакетов
- •9.27.1 Настройка уровня защиты пакета
- •9.27.2 Использование ролей базы данных msdb.
- •9.27.3 Применение цифровых подписей для пакетов
- •9.28. Запуск пакетов ssis на выполнение
- •9.28.1 Использование утилиты dtexecui
- •Глава 10. Средства обеспечения отказоустойчивости sql Server 2008
- •10.1. Работа sql Server 2008 в кластере
- •10.1.1. Терминология и варианты конфигурации кластера
- •10.1.2. Установка sql Server 2008 в кластер
- •10.2. Автоматическая доставка журналов (log shipping)
- •10.2.1. Терминология доставки журналов
- •10.2.2. Настройка доставки журналов
- •10.2.3. Мониторинг доставки журналов
- •10.2.4. Действия в случае сбоя основного сервера
- •10.2.5. Отмена доставки журналов
- •10.3. Зеркальное отображение баз данных
- •10.3.1. Зеркальное отображение баз данных
- •10.3.2. Терминология зеркального отображения баз данных
- •10.3.3. Настройка зеркального отображения
- •10.3.4. Мониторинг зеркального отображения
- •10.3.5. Смена ролей серверов
- •10.3.6. Приостановка и отмена зеркального отображения
- •Глава 11. Репликация в sql Server 2008
- •11.1. Новые возможности репликации sql Server 2008
- •11.2. Терминология системы репликации
- •11.3. Типы репликации
- •11.4. Подготовка к настройке репликации
- •11.5. Настройка репликации
- •11.6. Средства администрирования и мониторинга репликации
- •11.6.1. Средства администрирования репликации
- •11.6.2. Применение Replication Monitor
- •11.6.3. Другие средства мониторинга репликации
- •Практические задания по курсу «администрирование баз данных
- •Задание для самостоятельной работы 1.1 Установка Microsoft sql Server 2008 Задание:
- •Решение:
- •Задание для самостоятельной работы 1.2 Просмотр журнала ошибок sql Server и системного журнала Windows Задание:
- •Решение:
- •Задание для самостоятельной работы 1.3 Просмотр созданных файлов и папок Задание:
- •Решение:
- •Задание для самостоятельной работы 1.4 Просмотр разрешений доступа, назначенных разделам реестра Задание:
- •Решение:
- •Задание для самостоятельной работы 2.1 Работа со скриптами в sql Server Management Studio и sqlcmd Ситуация:
- •Задание:
- •Решение: к пункту 1 — генерация скрипта на создание таблицы:
- •К пункту 3 — настройка псевдонима для обращения к серверу:
- •К пункту 2 — применение Copy Database Wizard.
- •Задание для самостоятельной работы 4.1 Назначение прав на объекты sql Server 2008 и изменение контекста выполнения Задание:
- •Решение: к пункту 1 — создание логинов:
- •К пункту 2 — предоставление разрешений на схему и проверка прав:
- •К пункту 3 - предоставление права на выполнение команды execute as:
- •Задание для самостоятельной работы 4.2 Шифрование информации в таблицах баз данных Ситуация:
- •Задание:
- •Решение: к пункту 1 — создание симметричного ключа:
- •К пункту 2 — создание зашифрованной копии таблицы:
- •К пункту 3 — запрос к зашифрованным данным:
- •Задание для самостоятельной работы 5.1 Резервное копирование и восстановление базы данных Задание:
- •Задание для самостоятельной работы 6.1 Применение заданий, предупреждений и операторов Задание:
- •Задание для самостоятельной работы 7.1 Применение объектной модели smo Задание:
- •Решение:
- •Задание для самостоятельной работы 7.2 Применение объектной модели sql-dmo Задание:
- •Решение:
- •Задание для самостоятельной работы 7.3 Работа с wmi Provider for Configuration Management Задание:
- •Решение:
- •Задание для самостоятельной работы 8.2 Приемы работы с Системным монитором Задание:
- •Решение: к пункту 1 — сохранение набора счетчиков Системного монитора в файл html:
- •К пункту 2 — использование файла html для создания журнала:
- •К пункту 3 — запуск журнала из командной строки:
- •К пункту 4 — анализ собранных данных в Excel:
- •Задание для самостоятельной работы 8.3. Оптимизация системы индексов Задание:
- •Решение:
- •Задание для самостоятельной работы 8.5 Управление уровнем блокировок Задание:
- •Решение: к пункту 1 — создание пустой базы данных Microsoft Access:
- •К пункту 2 — создание пакета ssis:
- •К пункту 3 — применение преобразований Data Flow Task:
- •К пункту 4 — создание пакетного файла с зашифрованной командной строкой:
- •Задание для самостоятельной работы 11.1 Настройка доставки журналов Задание:
- •Решение: к пункту 1 — установка именованного экземпляра sql Server 2008:
- •К пункту 2 — создание базы данных db1 на первом экземпляре сервера sql Server 2008:
- •К пункту 3 — создание таблицы: см. Задание. К пункту 4 — настройка автоматической доставки журналов:
- •К пункту 5 — просмотр информации о поставке журналов:
- •К пункту 6 — отмена доставки журналов:
- •Задание для самостоятельной работы 12.1 Настройка одноранговой репликации Задание:
- •Решение: к пункту 1 — копирование базы данных:
- •К пункту 2 — настройка одноранговой репликации: Часть 1 — настройка распределителя:
- •Часть 2 — назначение распределителя второму серверу:
- •Часть 3 — создание публикации:
- •Часть 4 — настройка свойств публикации:
- •Часть 5 — настройка топологии одноранговой репликации:
- •Часть 6 — проверка репликации:
6.6.4 Хранимые процедуры Database Mail
Хранимые процедуры предназначены для выполнения определенных действий. Они находятся в базе данных MSDB и принадлежат схеме dbo.
Наиболее часто используемые хранимые процедуры:
-
sp_send_dbmail — предназначена для отправки электронной почты. Пример: EXEC msdb.dbo.sp_send_dbmail @profile_name = 'MailProfile1', @recipients = 'admininstrator@nwtraders.msft', @subject = 'Заголовок сообщения', @body = 'Текст сообщения';
-
sysmail_delete_mailitems_sp — позволяет удалить ранее отправленные (успешно и неуспешно) сообщения электронной почты из таблиц Database Mail в базе данных MSDB;
-
sysmail_delete_log_sp — позволяет очистить таблицы базы данных MSDB. Но при ее использовании удаляются не сами сообщения, а протокол их отправки;
Database Mail можно использовать и для получения электронных сообщений службой SQL Server с указанного ему почтового ящика. Но специальных хранимых процедур для этой цели не предусмотрено. Для получения электронной почты придется использовать программные средства Service Broker.
6.6.5 Настройка sql Server Agent для использования электронной почты
-
Включить Database Mail и создать необходимый профиль и учетную запись, как это было описано выше;
-
Включить учетную запись, от имени которой SQL Server Agent подключается к SQL Server, в роль DatabaseMailUserRole в базе данных MSDB;
-
Сделать данный профиль профилем по умолчанию для учетной записи SQL Server Agent;
-
Открыть свойства SQL Server Agent и на вкладке Alert System установить флажок Enable mail profile.
-
В списке Mail system выбрать систему Database Mail, а в списке почтовых профилей — нужный профиль;
-
Перезапустить SQL Server Agent, чтобы изменения вступили в силу.
После этого SQL Server сможет средствами Database Mail отправлять информацию о сработавших оповещениях или, к примеру, о результатах выполнения заданий.
6.6.6 Получение информации о работе Database Mail
Вне зависимости от того, удалось ли отправить сообщение, хранимая процедура sp_send_ dbmail вернет стандартное сообщение "Mail queued", то есть письмо поставлено в очередь на отправку.
Для получения информации о результатах отправки сообщения можно:
-
Просмотреть журналы Database Mail - для этого можно воспользоваться командой View Database Mail Log из контекстного меню для контейнера Management Database Mail в Management Studio.
-
Воспользоваться специальными представлениями Database Mail в базе данных MSDB:
-
sysmail_allitems — полная информация обо всех отправленных средствами Database Mail письмах;
-
sysmail_faileditems — только письма, при отправке которых произошел сбой;
-
sysmail_sentitems — только успешно отправленные письма;
-
sysmail_unsentitems — только письма, которые еще не были отправлены, но стоят в очереди;
-
sysmail_mailattachments — только информация о сообщениях со вложениями
-
sysmail_event_log — возвращается информация из журнала Database Mail (та же, которую можно получить при помощи команды View Database Mail Log).
-
6.6.7. Работа с sqlMail
SQLMail — подсистема для взаимодействия SQL Server с электронной почтой. Она использовалась в предыдущих версиях SQL Server и оставлена для обеспечения обратной совместимости в SQL Server 2008. SQLMail может работать только с протоколом MAPI и для создания почтового профиля MAPI необходимо использовать внешнюю программу (в большинстве случаев Outlook).
Настройка SQL Server для работы с SQLMail
-
Средствами Exchange Server создать почтовый ящик для учетных записей, от имени которых работают SQL Server и SQL Server Agent.
-
Установить на компьютер, на котором работает SQL Server, Microsoft Outlook (любой версии — 97, 2000, XP или 2003).
-
Настроить почтовый профиль MAPI для работы с электронной почтой:
-
Войти локально на сервер от имени учетной записи SQL Server или SQL Server Agent;
-
Создать MAPI-совместимый почтовый профиль, при помощи мастера настройки учетных записей Outlook.
-
-
Настроить SQL Server и SQL Server Agent для работы с созданным почтовым профилем.
-
Для настройки SQL Server нужно воспользоваться свойствами контейнера Management Legacy SQLMail в SQL Server Management Studio. По умолчанию подсистема SQLMail в SQL Server отключена. При первом обращении к свойствам этого контейнера вам будет предложено ее включить. Параметр, который можно настроить в свойствах контейнера SQLMail — имя созданного почтового профиля.
-
Чтобы настроить SQL Server Agent для использования SQLMail, в вашем распоряжении — вкладка Alert System свойств SQL Server Agent в Management Studio. В списке Mail system вам потребуется выбрать SQLMail, а в списке Mail profile — имя созданного вами профиля.
-
После внесения изменений в свойства SQLMail для SQL Server и SQL Server Agent обе эти службы рекомендуется перезапустить.