
- •Академия специальных курсов по информационным технологиям
- •Глава 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 — проверка репликации:
8.1.2. Использование хранимых процедур и динамических представлений
Использование хранимых процедур:
Для просмотра активности пользователей можно воспользоваться системными хранимыми процедурами - sp_who, sp_who2 и sp_lock.
-
sp_who – возвращает информацию о соединениях установленых в настоящее время с SQL Server. Эта процедура может использоваться в двух вариантах:
-
без параметров – возвращает информацию о всех процессах.
-
с параметром (идентификатор процесса - spid) – возращает информацию только по заданному процессу.
sp_who2 – предоставляет более подробную информацию о процессах запущенных на SQL Server.
sp_lock – возвращает информацию о блокировках, которые применены к объектам определенным процессом. Эта процедура может использоваться в трех вариантах.
-
без параметров – возвращает информацию о блокировках для всех процессов.
-
с параметром (идентификатор процесса - spid) - будет представлена информация о блокировках только для этого процесса.
-
можно передать несколько идентификаторов сразу, разделив их запятыми – вернет информацию о блокировках для указанных процессов.
В случае необходимости, можно принудительно закрыть соединение при помощи команды KILL, передав ей идентификатор процесса: KILL 51.
Использование динамических представлениий
Динамические представления — специальный интерфейс, при помощи которого можно получать информацию о текущей работе сервера или БД. К ним можно обращаться с помощью команд Transact-SQL, как к обычным представлениям. Информация в этих представлениях динамически меняется, отражая изменения в работе сервера или базы данных:
-
sys.dm_exec_sessions – информация о сеансах пользователей
-
sys.dm_exec_connections - информация о сетевых параметрах подключений пользователей (тип сетевой библиотеки, размер пакета, номера портов и т.п.).
-
sys.dm_tran_locks - информация о блокировках, которые применены к объектам на SQL Server. Информация о сеансе пользователя, который применил данную блокировку, содержится в столбце request_session_id
8.1.3. Использование sql Profiler (профилировщика)
SQL Profiler - программное средство, используемое для трассировки сервера SQL Server. "Трассировка" - сеанс сбора информации о работе SQL Server 2008
Основное назначение:
SQL Profiler используется администраторами для:
-
анализа работы приложения;
-
определения оптимальности запросов, направляемых на сервер;
-
выявления команд Transact-SQL, при выполнении которых возникает ошибка;
-
сбора информации о пользовательской активности в течение продолжительного промежутка времени;
-
проведения мониторинга работы сервера в режиме реального времени.
Новые возможности:
-
профилировка Analysis Services;
-
профилировка событий Integration Services;
-
возможность при записи информации выполнения команды записывать показания счетчиков из Performance Monitor;
-
в Profiler добавлено множество новых событий и источников информации, которые могут выбираться для записи в файл трассировки;
-
возможность сохранить в формате XML шаблон трассировки, результаты трассировки, а также планы выполнения команд Transact-SQL, перехваченных профилировщиком;
-
возможность группировать события в окне профилировщика.
Работа с SQL Server Profiler
-
Запустить SQL Server Profiler - из меню Пуск Программы SQL Server 2008 Performance Tools SQL Server Profiler.
-
В открывшемся окне в меню File выбрать New Trace и подключиться к серверу SQL Server 2008, работу которого мы будем отслеживать.
-
Настроить параметры сеанса в окне Trace Properties, которое открывается автоматически переда началом сеанса трассировки (см. рис. 8.1).
Рис. 8.1. Настройка параметров сеанса трассировки
-
На вкладке General выбрать в списке Use the template наиболее подходящий шаблон. Выбор шаблона производится при помощи меню File Templates в SQL Server Profiler. Изначально в вашем распоряжении — восемь шаблонов:
-
Standard (default) — шаблон по умолчанию, позволяющий отслеживать все запускаемые на выполнение хранимые процедуры и команды Transact-SQL;
-
SP_Counts — сбор информации о запускаемых на выполнение хранимых процедурах и функциях с сортировкой по именам;
-
TSQL — сбор информации о всех командах Transact-SQL, запускаемых на выполнение на сервере, с указанием идентификатора пользовательских процессов и времени запуска;
-
TSQL_Duration — аналогичен предыдущему шаблону, но вместо информации о времени запуска команды TSQL записывается время, которое потребовалось на ее выполнение;
-
TSQL_Grouped — помимо информации о коде команды Transact-SQL и времени ее запуска, записывается также информация о имени приложения, учетной записи пользователя в ОС и учетной записи пользователя, которая была использована для подключения;
-
TSQL_Replay — запись максимально подробной информации о выполняемых командах Transact-SQL;
-
TSQL_SPs — помимо записи информации о начале запуска хранимой процедуры (SP:Starting) регистрируется информация о выполнении каждой из команд хранимой процедуры (SP:StmtStarting);
-
Tuning — используется для сбора информации необходимой Database Tuning Advisor.
-
На вкладке General если необходимо указать место сохраннения трассировочной информации:
-
Информация трассировки может быть запротоколирована в файл (по умолчанию размером 5 Мбайт):
-
-
параметр Enable File Rollover определяет, будет ли при заполнении одного файла автоматически создаваться следующий. Имя следующего файла будет таким же, как и имя предыдущего, но к его имени будет добавлен номер (1, 2, 3 и т.п.)
-
параметр Server processes trace data можно использовать для увеличения надежности записи информации трассировки. После установки этого флажка обработкой информации трассировки будет заниматься сервер.
-
Информация трассировки может быть сохранена в таблице SQL Server. Таблица с нужным набором столбцов будет создана автоматически.
-
С помощью параметра Enable Trace Stop Time можно указать время, когда трассировка будет отключена автоматически.
-
На вкладке Events Selection определить параметры сбора информации. В таблице на этой вкладке вы должны выбрать требуемые события (в строках) и информацию (в столбцах), которая будет для них записываться. Для отображения всех строк и столбцов, нужно установить флажки Show All Events и Show All Columns.
-
с помощью кнопки Column Filters (Фильтры столбцов) настроить фильтры на сбор необходимой информации (отслеживать действия, выполняемые в определенной БД, или определенным приложением, или определенным пользователем) – Like или Not Like;
-
при помощи кнопки Organize Columns (Организовать столбцы) настроить порядок столбцов для отображения или записи в профилировщике с возможностью группировки данных - раздел Group.
-
После задания всех параметров трассировки нажать на кнопку Run (Запустить) (см. рис. 8.2)
Рис. 8.2. Просмотр информации в ходе сеанса трассировки
В верхней части окна отображаются события, происходящие на сервере, а в нижней части - приводится подробная информация по каждому событию (например, код команд SQL).
Возможности, доступные в окне трассировки:
-
Если на вкладке Organize Columns в свойствах шаблона вы выбрали столбцы для группировки, вы можете сгруппировать по этим столбцам записи в окне просмотра. Для этой цели в меню View предусмотрена команда Grouped View;
-
Если в список Group был помещен только один столбец, то у вас появляется возможность использовать режим отображения Aggregated View (см. рис. 8.3). Этот режим включается при помощи команды Aggregated View из того же меню View.
Рис. 8.3. Режим отображения Aggregated View
-
Иы можете открывать в профилировщике события, сохраненные в файлах и таблицах трассировки. Также существует возможность повторять запротоколированные операции, с помощью меню Replay;
-
Вы можете связывать информацию трассировки с показателями счетчиков производительности System Monitor. Для этого:
-
определить сеанс трассировки, в ходе которого обязательно должна записываться информация для столбцов StartTime и EndTime;
-
запустить сеанс трассировки с записью информации в файл или таблицу. Одновременно с ним собрать в файл протокол показаний счетчиков Performance Monitor;
-
открыть собранную информацию из файла трассировки в профилировщике, а затем воспользоваться командой Import Performance Data из меню File.