SQL2012_Administration_new


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте его и откройте на своем компьютере.
ФЕДЕРАЛЬНОЕ ГОСУДАРС
ТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕ
ЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛ
ЬНОГО ОБРАЗОВАНИЯ
«САНКТ
ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ
ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
УЧЕБНОЕ ПОСОБИЕ ПО КУРСУ
Администрирование баз данных Microsoft SQL Ser
ver
(название программы)
(по аккредитованной основной профессиональной образовательной программе
«230100 Информатика и вычислительная техника»)
(номер и название аккредитованной программы)
Методические материалы к учебному курсу
Санкт
тербург


Планирование и установка
SQL
Server
1.1 Планирование установки SQL Server
1.1.1 Оценка архитектуры приложения на основе
SQL
Server
1.1.2 Выбор оборудования
1.1.3 Редакции
SQL
Server
2012
1.1.4
Компоненты
SQL Server
2012
1.2 Установка SQL Server
1.2.1 Начало установки. Выбор набора компонентов
1.2.2 Работа с именованными экземплярами
1.2.3 Службы, устанавливаемые с SQL Server
1.2.3 Выбор учетной записи для служб
SQL
Server
1.2.4 Выбор режи
ма аутентификации SQL Server
1.2.5 Выбор кодировки и порядка сортировки
1.2.6 Остальные параметры установки
1.3 Автоматизированная и удаленная установка
1.4 Проверка установки и выполнение послеустановочных задач
1.4.1 Проверка результатов установки
1.4.2 Настройка серверных сетевых библиотек
1.4.3 Другие послеустановочные задачи
2.
Средства
администрирования
SQL Server
2.1 SQL Server Management Studio
2.1.1 Окно Registered Servers («Ctrl»+«Alt»+«G»)
2.1.2 Окно Object Explorer («F8»)
2.1.3
Окно
Solution Explorer («Ctrl»+«Alt»+«L»)
2.1.4
Другие
окна
SQL Server Management Studio
2.1.
5 Способы создания скриптов в
Management
Studio
2.1.6 Дополнительные возможности
Management
Studio
2.2 Business Intelligen
ce Development Studio
2.3 SQL Server Configuration Manager
2.3.1 SQL Server Configuration Manager
2.3.2 Службы
SQL
Server
2.3.3 Настройка клиентских сетевых библиотек средствами
SQL
Server
Configuration
Manager
SQL
Native
Client
2.4 SQLCmd
2.4.1 Применение
SQLCmd
2.4.2
Специальный
режим
подключения
Dedicated Administrator Connection (
DAC)
2.6 SQL Server Profiler
2.7 Database Engine Tuning Advisor
2.8 Другие графические утилиты SQL Server
2.9 Другие консольные утилиты SQL Server
3. Создание баз данных и наст
ройка параметров
3.1 Служебные и учебные базы данных SQL Server
3.2 Физическая структура базы данных
3.2.1 Файлы баз данных и журналов транзакций
3.2.2 Определение размера файлов данных
3.2.3 Экстенты и страницы
3.2.4 Применение файловых групп
3.2.5 Файлы журналов транзакций
3.3 Логическая структура базы данных
3.4 Создание пользовательских баз данных
3.4.2
Создание
базы
данных
SQL Server Management Studio
3.4.3 Создание скрипта, описывающего базу данных
3.4.4 Пер
енос базы данных
3.5 Основные параметры базы данных
3.5.1 Режим восстановления базы данных (Recovery Model)
3.5.2 Режимы работы базы данных
3.6 Автономные базы данных
3.6.1 Что
такое автономная база данных?
3.6.2 Миграция на частично автономную базу данных
3.7 Сопровождение баз данных
3.7.1 Увеличение размера базы данных
3.7.2 Уменьшение размера базы данных


3.7.3 Перенос файлов базы данных
3.7.4 Переименование базы данных
3.7.5 Изменение владельца базы данных
3.7.6 Удаление базы данных
3.7.7 Проверка целостности базы данных
. Безопасность
SQL
Server
4.1 Терминология и основы системы безопасности SQL Server
4.2 Учетные записи SQL Serve
4.2.1 Выбор типа учетной записи
4.2.2 Создание учетной записи и настройка ее параметров
4.2.3 Режимы аутентификации
SQL
Server
2012. Аудит попыток входа
4.2.4 Учетные записи, создаваемые по умолчанию
4.3 Роли уровня сервера
4.3.1 Фиксированные роли сервера.
4.3.2 Пользовательские роли сервер
4.4 Назначение разрешений на уровне сервера
4.4.1 Добавление учетной записи в состав роли сервера
4.4.2 Предоставление индивидуальных разрешений учетной записи или роли
4.5 Учетные данные (Credentials)
4.5.1 Создание учетных данных
4.5.2 Сопоставление учетных данных
5. Безопасность базы данных и
ее объектов
5.1 Пользователи баз данных и схемы
5.1.1 Пользователи базы данных
5.1.2 Схемы базы данных
5.2 Создание, изменение и удаление пользователей базы данных
5.2.1 Типы п
ользователей базы данных
5.2.2 Создание пользователей базы данных
5.3 Роли уровня базы данных
5.3.1 Встроенные роли баз данных
5.3.2 Создание пользовательской роли
5.3.3 Роли пр
иложений
5.4 Управление схемами базы данных
5.4.1 Создание схемы
5.4.1 Изменение и удаление схемы
5.5 Разрешения в базах данных SQL Server 2012
5.5.1 Перечень разрешений, предос
тавляемых на уровне схемы.
5.5.2 Предоставление прав на объекты в базе данных
5.6 Изменение контекста выполнения. Выражени
е Execute As
5.6.1 Предоставление права IMPERSONATE
5.6.2 Изменение контекста выполнения
6. Резервное копирование и восстановление баз данных
SQL
Server
6.1 Планирование резервного копирования
6.1.1 Выбор оборудования для хранения резервных копий
6.1.2 Устройства резервного копирования
6.1.3 Т
ипы резервного копирования
6.1.4 Расписание резервного копирования
6.2 Проведение резервного копирования
6.2.1 Средства для выполнения резервного копирования
6.2.2 Параметры резервного копирования
6.2.3 Получение информации о резервном копировании и создание отчетов
6.3 Основы восстановления баз данных
6.3.1 Терминалогия восстановления БД из резервной копии
6.3.2 Общий план восстановления из резервной копии
6.3.3 Подг
отовка к восстановлению
6.4 Проведение восстановления
6.5 Специальные ситуации восстановления
6.5.1 Восстановление базы данных в оперативном режиме (
online
6.5.2 Восстановление отдельных страниц базы данных
6.5.3 Восстановление системных баз данных
7. Автоматизация администрирования
SQL
Server
7.1. Автоматизация административных операций средствами SQL Server Agent
7.1.1.
SQL
Server
Agent
7.1.2. Параметры настро
йки
SQL
Server
Agent


7.2. Работа с заданиями SQL Server Agent
7.2.1. Параметры заданий.
7.2.2. Параметры этапов заданий.
7.2.3. Запуск заданий.
7.2.4. Настройка расписания задан
ий.
7.2.5. Настройка параметров отчета о завершении задания.
7.2.6. Безопасность при выполнении заданий. Настройка учетных
записей прокси
7.2.7. Просмотр истории выполнения заданий
7.3. Мультисерверные задания
7.3.1 Предварительная подготовка:
7.3.2 Создание и настройка мультисерверных заданий
7.4.
Работа с предупреждениями
7.4.1 Создание предупреждения
7.4.2 Предупреждения типа SQL Server event aler
7.5. Работа с операторами
7.6. Настройка электронной почты в SQL Server
7.6.1. Обзор возможностей
SQL
Server
2012 для работы с электронной почтой
7.6.2.
Работа
Database Mail (SQLiMail)
Настройка
Database Mail
7.6.4 Хранимые процедуры
Database
Mail
7.6.5 Настройка SQL Server Agent для использования эле
ктронной почты
7.6.6 Получение информации о работе Database Mail
7.6.7. Работа с
SQLMail
7.6.8 Хранимые процедуры для работы с
SQLMail
7.6.9. Применение объекта CDO.Message для работы с электронной почтой SQL Server и SQL Server Agent
7.6.10. Использование утилит для отправки сообщений из командной строки
7.7. Планы обслуживания баз данных (Database Maintenance Pl
ans)
8. Мониторинг и оптимизация производительности SQL Server
8.1. Мониторинг активности пользователей
8.1.1. Применение
Activity
Monitor
8.1.2. Использование хранимых процедур и динамических представлений
8.1.3. Использование
SQL
Profiler
(профилировщика)
8.1.4. Использование хранимых процедур трассировки
8.1.5. Применение триггеров
8.1.6. Другие средства мониторинга активности пользователей и уведомления о событиях
8.2. Использование подсистемы аудита
8.2.1 Основные сведения о подсистеме аудита SQL Server
8.2.2 Подсистема ауд
ита SQL Server
8.2.3 Настройка Аудита
8.2.4 Присоединение базы данных с определенным аудитом
8.2.5 Представления каталога
8.2.6 Разрешения
8.3. Расширенные события
8.3.1 Подсистема расширенных событий SQL Server
8.3.2 Создание сеанса расширенных событий
8.3.3 Настройка фильтров событий сеанса
8.3.4 Настройка хранилища данных сеанса
8.3.5 Сводка
8.3.6 Запуск сеанса событий
8.4. Журналы SQL Server
8.5.
Мониторинг производительности SQL Server
8.5.1. Терминология мониторинга производительности
8.5.2. Средства для монит
оринга и анализа производительности
8.5.3. Нагрузочное тестирование
8.5.4. Приемы работы с Системным монитором
8.5.5. Основы работы с объектами и счетчиками
8.5.6. Счетчики для анализа загрузки процессора
8.5.7. Счетчики для анализа загрузки оперативной памяти
8.5.8. Счетчики для анализа производительности дисковой подсистемы
8.5.9. Счетчики для анализа производительности сетевой подсистемы
8.5.10. Объекты
System
Monitor
для мониторинга работы
SQL
Server
8.6. Оптимизация работы SQL Server
8.6.1. Оптимизация операционной системы для работы с
SQL
Server
8.6.2. Оптимизация системы индексов. Использование Database Tuning Advisor


8.6.3. Оценка уровня фрагментации индексов и таблиц
8.6.4 Снижение фрагментации в индексе
8.6.5. Работа с блокировками
8.6.6. Оптимизация запрос
9. Применение
SQL
Server
Integration
Services
9.1. Средства для работы с SSIS
9.2. Использование мастера импорта/экспорта данных
9.3. Использование SSIS Designer для создания пакетов
9.4. Менеджеры подключений (Connection Managers)
9.5. Работа с Data Flow Task
9.5.1.
Что такое
Data
Flow
ask
9.5.2. Элементы
Data
Flow
Task
9.5.3. Источники и назначения
Data
Flow
Task
9.5.4. Преобразования
Data
Flow
Task
9.5.5. Пути и логика выполнение
Data
Flow
Task
9.6. Кон
тейнеры SSIS
9.6.1 Контейнер For Loop
9.6.2 Контейнер Foreach Loop
9.6.3 Контейнер Sequence
9.7. Ограничения предшественников (precedence constraints)
9.8. Протоколирование
выполнения пакетов
9.9. Развертывание проектов и пакетов
9.9.1 Модели развертывания
9.9.2 Развертывание проектов
9.9.3 Создание каталога служб SSIS
Создание и сопоставлени
е серверной среды
9.10. Запуск пакетов SSIS на выполнение
9.10.1
Запуск
пакета
SQL Server Management Studio
.10.2 Использование утилиты dtexecui
10. Средства обеспечения отказоустойчивости
SQL
Server
2012
10.1. Работа SQL Server
2012 в кластере
10.1.1. Терминология и варианты конфигурации кластера
10.1.2. Установка
SQL
Server
2012 в кластер
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. Приостановка и отмена зеркального отображения
10.4. Группы доступности AlwaysOn (SQL Server)
10.4.1 Обзор групп доступности AlwaysOn
10.4.2 Пр
еимущества групп доступности AlwaysOn
10.4.3 Термины и определения
10.4.4 Настройка экземпляра сервера для поддержки гру
пп доступности AlwaysOn
10.4.5 Создание и настройка новой группы доступности
10.4.6 Администрирование группы доступности
11. Репликация в
SQL
Server
11.1. Новые возможности репликации SQL Server
11.2. Терминология системы репликации
11.3. Типы репликации
11.4. Подготовка к настройк
е репликации
11.5. Настройка репликации
11.6. Средства администрирования и мониторинга репликации
11.6.1. Средства администрирования репликации
11.6.2. Применение
Replication
Monitor
11.6.3. Другие средства мониторинга репликации


Планирование и установка
SQL
Server
.1 Планирование установки
SQL
Server
Оценка архитектуры
приложения на основе
SQL
Server
Для разработ
ки структуры приложения необходимо учесть следующие моменты:
Обеспечение х
ранени
оперативных и архивных данных
. Рекомендуется БД
разделить на две
Рабочая
(оперативная) БД
называе
мая
базой данных
OLTP
online
transaction
processing
архивной
информа
ции
OLAP (online analytical processing).
Информация в
этой БД
, как правило,
доступна только на чтение и используется для
формирования отчетов
получения аналитической
информации.
Обеспечение доступа пользователей к БД
Обычно используются следующие вар
ианты:
применение терминальных технологий (Microsoft Terminal Server или Citrix).
применение Web
интерфейса (можно использовать и для пользователей из локальной сети).
Определение компонентной
структур
приложения.
ольшинство приложений, на основе
SQL
erver
можно разделить на три уровня:
уровень данных
уровень
бизнес
логик
уровень представления данных.
азработчик
может разнести
эти компоненты по отдельным компьютерам или, наоборот, объединить на
одном компьютере
ри этом следует принимать во вним
ание:
соображения производительности;
соображения отказоустойчивости
соображения безопасности.
Выбор оборудования
Минимальные требования
SQL
Server
подсистем
оборудования сервера.
Подсистема
Минимальные требования
Рекомендованные
требовани
Оценка
производительности
подсистемы
(значения счетчиков системного
монитора)
подсистема
центрального
процессора
процессор
86: 1,0 ГГц
процессор
64: 1,4 ГГц
ГГц и выше
Processor: % Processor Time
должно
превышать
подсистема
оперативной
памя
Экспресс
выпуски: 512 МБ
Все другие выпуски: 1 ГБ
Экспресс
выпуски: 1 ГБ
Все другие выпуски:
Для обеспечения
оптимальной
производительности
требуется не менее 4 ГБ
с последующим
увеличением по мере
роста размера базы
данных.
Memory
Pages
Sec
(число
бращений к файлу подкачки в
секунду)
среднее значение не
должно превыша
ть 10 для
продолжительного
промежутка
времени;
SQL
Server
Buffer
Manager
Buffer
cache
hit
ratio
количество запросов,
обслуживаемых из кэша)
должно
быть не меньше 90%
сетевая
дсистема.
Адаптер
Microsoft
замыкания
на себя (
Microsoft
Loopback
Adapter
). Он имеется в
дистрибутиве
Windows
4.0,
Windows
2000,
и 2003 (см.
рис. 2.1).
сетевой адаптер
дисковая
подсистема
Требования к месту на диске
определяются набором
устанавлив
аемых компонентов
Чем больше, тем лучше
Logical Disk: % Disk Time
(сколько
процентов от общего времени
дис
ковой подсистеме приходится
работать)
значение этого счетчика


Подсистема
Минимальные требования
Рекомендованные
требовани
Оценка
производительности
подсистемы
(значения счетчиков системного
монитора)
SQL Server 2012.
Компонент Database Engine и
файлы данных, репликация,
полнотекстовый поиск и
службы Data Quality Services
требуют как минимум 811 МБ
не должно приближаться к 100% на
протяжении продолжительного
промежутка времени.
Типы
хранилищ
Локальный диск, общее хранилище,
общая
папка SMB.
Важно!
Хранилище SMB может размещаться на файл
овом сервере Windows или на устройстве с
хранилищем SMB сторонних разрабочиков.
Если используется файловый сервер Windows, он
должен иметь версию 2008 или последующую
едакции
SQL
Server
Редакции
SQL
Server
Enterprise Edition
(64
разрядна
я и 32
разрядная версия).
Наиболее полноценная версия SQL Server
Поддерживаются все возможности SQL Server
обеспечивающие полный набор возможностей ЦОД с
исключительно высокой производительностью, неограниченными возможностями виртуализации и
счерпывающими средствами бизнес
аналитики, что позволяет добиться высокого уровня обслуживания
важнейших рабочих нагрузок и предоставить конечным пользователям доступ к анализу данных.
Устанавливается толь ко на серверную платформу
Windows
Windows
Server
2008/2012).
Business Intelligence
(64
разрядная версия и 32
разрядная версия). Данный выпуск представляет собой
комплексную платформу, которая дает организациям возможность строить и развертывать надежные,
масштабируемые и управляемые решения бизнес
аналит
ики.
В него включены функции просмотра и
представления данных в браузере, мощные возможности комбинирования данных и расширенное
управление интеграцией.
Standard Edition
(64
разрядная и 32
разрядная версия). Выпуск SQL Server 2012 Standard обеспечивает
осн
овные функции управления данными и предоставляет базу данных бизнес
аналитики для приложений,
работающих в отделах и небольших организациях. Поддерживаются распространенные средства
разработки в локальных системах и вычислительных облаках, что делает возмо
жным эффективное
управление базами данных с минимальными затратами ИТ
ресурсов.
При необходимости ее можно
обновить до Enterprise Edition.
та редакция может работать не более чем с 4 процессорами
Web Edition
(64
разрядная и 32
разрядная версия).
Выпуск SQ
L Server 2012 Web Edition
это вариант с
низкой совокупной стоимостью владения, предназначенный для размещения веб
сайтов и
дополнительных веб
услуг, который по доступной цене обеспечивает масштабируемость и функции
управления для небольших и крупномасшта
бных веб
проектов.
Может быть обновлена
до Enterprise
Edition
Developer Edition
(64
разрядная и 32
разрядная версия). Выпуск SQL Server 2012 Developer Edition
позволяет разработчикам создавать приложения любого типа на базе SQL Server.
Он включает все
нкциональные возможности выпуска Enterprise Edition, однако лицензируется как система для
разработки и тестирования, а не для применения в качестве рабочего сервера.
Выпуск SQL Server
Developer Edition является идеальным выбором для тех, кто создает и тест
ирует приложения.
Express
Edition
(64
разрядная и 32
разрядная версия). Выпуск SQL Server 2012 Express является
бесплатной базой данных начального уровня и идеально подходит для обучения, а также для создания
управляемых данными приложений, работающих на
рабочих станциях и небольших серверах.
Этот
выпуск
лучший выбор для независимых поставщиков программного обеспечения,
непрофессиональных разработчиков и любителей, создающих клиентские приложения.
Если необходимы
дополнительные функции базы данных, выпус
к SQL Server Express можно легко обновить до версий SQL
Server более высокого класса.
Компоненты
SQL
Server
SQL
Server
Database
Engine
В состав компонента Компонент SQL Server Database Engine входит
компонент Компонент Database Engine, основна
я служба для хранения, обработки и обеспечения
безопасности данных, репликации, полнотекстового поиска, средств управления реляционными и XML
данными и сервера служб Data Quality Services (DQS).


Analysis Services
Службы Analysis Services содержат средства
создания и управления приложениями
оперативной аналитической обработки (OLAP) и приложениями интеллектуального анализа данных.
Службы Reporting Services
Службы Службы Reporting Services включают в себя серверные и
клиентские компоненты для создания, упра
вления и развертывания табличных, матричных и графических
отчетов, а также отчетов в свободной форме.
Службы Службы Reporting Services являются расширяемой
платформой, которую можно использовать для разработки приложений отчетов.
Службы Integration Service
Службы Службы Integration Services представляют собой набор
графических средств и программируемых объектов для перемещения, копирования и преобразования
данных.
Они также включают компонент DQS для служб Службы Integration Services.
Master Data Services
Master Data Services (MDS)
это решение SQL Server по управлению основными
данными.
MDS можно настроить для управления любой структурой (товары, заказчики, счета).
Поддерживаются иерархии, детальная настройка безопасности, транзакции, управление версиям
и данных
и бизнес
правила, а также использование Надстройка для Excel для управления данными.
.2 Установка
SQL
Server
Начало установки
. Выбор набора компонентов
Первый этап установки
подготовительный
Платформа .NET 3.5 с SP1 является обязате
льной для SQL Server 2012 при выборе компонента
Компонента Database Engine, Службы Reporting Services, Master Data Services, Службы Data Quality
Services, репликации или Среда SQL Server Management Studio, и она больше не установливается
программой установ
ки SQL Server
Если программа установки запускается на компьютере, работающем под управлением Windows Vista
с SP2 или Windows Server 2008 с SP2 и платформа .NET 3.5 с SP1 не установлена, то программа
установки SQL Server потребует загрузить и установить эту
платформу, прежде чем можно будет
продолжить установку SQL Server.
Если установка запускается на компьютере, работающем под управлением Windows Server 2008 R2 с
SP1, то необходимо включить .NET Framework 3.5 с SP1 перед началом установки SQL Server 2012.
Если программа установки запускается на компьютере с операционной системой Windows Server
2012 или Windows 8 загрузки, настроенные SQL Server автоматически установят SP1 для платформы
.NET Framework 3.5 (этот процесс требует доступа к Интернету).
Наличие
.NET 4.0 является обязательным для SQL Server 2012. SQL Server устанавливает платформу
.NET 4.0 на шаге установки компонентов.
SQL Server 2012 не
устанавливает
и не включает оболочку Windows PowerShell 2.0, однако Windows
PowerShell 2.0 является необходи
мым компонентом для установки компонентов Компонент Database
Engine и Среды SQL Server Management Studio.
Для работы консоли управления Microsoft (MMC), среды SQL Server Data Tools (SSDT), конструктора
отчетов служб Службы Reporting Services и HTML
файлов
справки требуется браузер Internet Explorer
7 или более поздняя версия.
Далее производится запуск специальной программы
System
Configuration
Checker
, которая
осуществляет проверку
компьютер
12 параметр
на соответствие требованиям к оборудованию, к
, к установленным компонентам
и т.п
кнопк
Report
просмотр или
сохран
ение
отчет
, который
генерирует
System
Configuration
Checker
После ввода информации о пользовател
и серийном номере
осуществляется
выб
р необходимы
компонент
Требования дл
я выбранных компонентов показаны на панели
Требования для
выбранных компонентов.
Работа с именованными экземплярами
Редакции
Enterprise
Edition
Developer
Edition
поддерживают до 50 именованных экземпляров на одном
компьютере.
Уже имеющиеся экземпл
яры
SQL
Server
на вашем компьютере можно просмотреть,
воспользовавшись кнопкой
Installed
Instances
Первый экземпляр всегда экземпляр по умолчанию
default
instance
. Его имя совпадает с именем компьютера,
на который он установлен. Все остальные экзем
пляры
именованны
экземп
Пример:


Службы, устанавливаемые с
SQL Server
В зависимости от компонентов, которые выбраны для установки, программа установки SQL Server устанавливает
следующие службы.
SQL Server Database Services
служба реляционного компонента Компонент Database Engine в SQL
Server. Путь к исполняемому файлу:
MSSQL
Binn
sqlservr.exe.
Агент SQL Server
предназначен для выполнения заданий, наблюдения за SQL Server, предупреждения
о нештатных ситуациях.
Кроме того, позволяет автоматизировать некоторые задачи по
администрированию. Служба агента SQL Server присутствует, но отключена на экземплярах SQL Server
Express. Путь к исполняемому файлу:
MSSQL
Binn
sqlagent.exe.
Службы Analysis Services
предоставляют средства аналитической обработки в сети (OLAP) и средства
интеллектуального анализа данных для приложений бизнес
аналитики. Путь к исполняемому файлу:
MSSQLPATH&#x-4M-;SSQ;&#x-15L;P-1;ʩT;&#x-17H;&#x-300;
OLAP
Bin
msmdsrv.exe.
Службы Службы Reporting Services
предназначены для со
здания, выполнения, создания,
планирования, доставки отчетов и управления ими. Путь
исполняемому
файлу
MSSQLPATH&#x-4M-;SSQ;&#x-15L;P-1;ʩT;&#x-17H;&#x-300;
Reporting Services
ReportServer
Bin
ReportingServicesService.exe.
Службы Службы Integration Services
обеспечивают поддержку управления
хранением и
выполнением пакетов служб Службы Integration Services. Путь к исполняемому файлу:
MSSQLPATH&#x-4M-;SSQ;&#x-15L;P-1;ʩT;&#x-17H;&#x-300;
DTS
Binn
MsDtsSrvr.exe.
Браузер SQL Server
служба разрешения имен, которая предоставляет сведения о соединении с SQL
Server клиентским компьюте
рам. Путь к исполняемому файлу: c:
Program Files (x86)
Microsoft SQL
Server
Shared
sqlbrowser.exe.
Полнотекстовый поиск
быстро создает полнотекстовые индексы содержимого и свойства
структурированных и полуструктурированных данных, чтобы обеспечить фи
льтрацию документа и
разбиение по словам для SQL Server.
Модуль записи SQL
служит для резервного копирования и восстановления приложений для работы в
составе платформы служб теневого копирования томов (VSS).
Контроллер распределенного воспроизведения SQ
L Server
обеспечивает согласование
воспроизведения трассировки по нескольким клиентским компьютерам распределенного
воспроизведения.
Клиент распределенного воспроизведения SQL Server
один или несколько клиентских компьютеров
распределенного воспроизвед
ения, работающих вместе с контроллером распределенного воспроизведения
для имитации параллельных рабочих нагрузок на экземпляре Компонент SQL Server Database Engine.
Выбор учетной записи для служб
SQL
Server
На следующем шаге необходимо выбрать
учетн
запис
ь, от имени которой будут запускаться
служб
SQL
Server
Для запуска и выполнения каждая служба SQL Server должна иметь стартовую учетную запись
автоматического запуска, настраиваемую во время установки.
Можно назначить одну учетную запись входа вс
ем
службам SQL Server или настроить учетные записи служб индивидуально.
Можно также указать, будут службы
запускаться автоматически или вручную либо будут отключены.
Майкрософт рекомендует настраивать учетные
записи служб отдельно, чтобы каждой службе пред
оставлялся минимальный набор, с тем условием, чтобы
службам SQL Server предоставлялись минимальные права доступа, необходимые для выполнения их задач.
В качестве учетной записи служб
может быть
выбрана
либо
локальн
системн
учетн
запис
либо
доменн
учетн
запис
управляемая учетная запись служб
виртуальная учетная запись
встроенная
системная учетная запись.
Локальная системная учетная запись
обладает всеми необходимыми правами на локальном
компьютере.
SQL
Server
не сможет обращаться к вне
шним ресурсам домена.
Доменная учетная запись, специально созданная для служб SQL Server
. Для этой учетной записи
необходимо снять флажок "
User
must
change
password
next
logon
" и установить флажок "
Password
never
expires
". Также необходимо добавит
ь эту учетную запись в локальную группу администраторов на
этом компьютере.
Управляемая учетная запись службы (MSA)
это тип учетной записи домена, создаваемый и управляемый
контроллером домена.
Она назначается отдельному компьютеру
участнику для использ
ования при запуске
службы.
Управление паролем осуществляет автоматически контроллер домена.
MSA нельзя использовать
для входа на компьютер, но компьютер может использовать MSA для запуска службы Windows.
MSA имеет
возможность регистрировать имя участника
лужбы (SPN) с помощью Active Directory.
MSA присваивается
имя с суффиксом
, например
DOMAIN
ACCOUNTNAME$
При указании MSA следует оставить поле
пароля пустым.
Поскольку учетная запись MSA назначается одному компьютеру, ее нельзя использовать на
разных уз
лах кластера Windows.
Виртуальные
учетные записи
в Windows Server 2008 R2 и Windows 7 представляют собой
управляемые
локальные учетные записи
Управление виртуальной учетной записью осуществляется автоматически, и


она может получать доступ к сети в среде д
омена.
Если во время установки SQL Server в Windows Server
2008 R2 или Windows 7 используется значение по умолчанию для учетных записей служб, используется
виртуальная учетная запись с именем, соответствующим имени экземпляра, в формате
NT
SERVICE
SERVICE
NAME�
Службы, запускаемые от имени виртуальных учетных записей, получают
доступ к сетевым ресурсам с использованием учетных данных учетной записи компьютера в формате
domain_nam -4o;&#x-4m2;i-; n8_;&#x-4n8; -12;&#xm9e0;e
computer_nam o-1;m21;&#xp-16;&#xu8t3;r-2;&#x_-16;&#xn8a-;m2;Ḁe
При указании виртуальной учетной записи для запуска SQL
Server
оставьте поле пароля пустым.
четной записи, от имени которой работают службы
SQL
Server
, программа установки автоматически
предоставляет на локальном компьютере следующие системные права:
Log
service
ходить в систему как служба
t as part of the operating system
аботать
как
часть
операционной
системы
Log
batch
job
ходить в рамках выполнения пакета команд;
Replace a process
level token
аменять маркер безопасности процесса;
Bypass traverse checking
ходить скво
зь каталоги, на которые этой учетной записи не
предоставлены разрешения;
Adjust
memory
quotas
for
process
астраивать квоты на использование памяти для процесса.
Выбор режима аутентификации SQL
Server
На следующем экране мастера установки
обходимо
выбрать режим аутентификации
SQL
Server
Windows
Authentication
Mixed
Mode
SQL
Server
предусмотрено два типа учетных записей для подключения к
SQL
Server
учетн
ые
запис
Windows
учетн
ые
запис
SQL
Server
Учетн
ые
запис
Windows
основаны на учетных записях
Windows
, которым предоставляется право подключаться к
серверу
SQL
Server
Учетн
ые
запис
SQL
Server
это самостоятельные учетные записи
информация о которых хранится в базе
данных
Master
на
SQL
Server
. При подключении к серве
ру при помощи
учетн
запис
SQL
Server
пользователь
должен явно указать имя
учетн
запис
и пароль.
SQL
Server
учетн
запис
Windows
можно использовать всегда.
Учетн
запись
SQL
Server
можно
использовать только тогда, когда режим аутентификации устан
овлен в
смешанный режим (
ixed
При выборе
режим
аутентификации
Mixed
Mode
необходимо
определить пароль для учетной записи
SQL
Server
к паролю для
учетн
запис
автоматически применяются те же требования, что и
паролям
для учетных
записей
Windows
домен
Выбор кодировки и порядка сортировки
Следующий экран мастера установки
выбор
кодировки и порядка сортировки
Предлагаемые по умолчанию параметры
вис
т от региональных настроек компьютера.
Если установлены
русские региональ
ные настройки, то по умолчанию будет предложена кодировка
Unicode
Cyrilic
_General
, если
американские
Latin1_General
Остальные параметры установки
Если в числе устанавливаемых компонентов вы выбрали
Reporting
Services
, то на двух следующих экранах
мастера установки вам потребуется выбрать параметры для этой службы
Report Server virtual directory
Report Manager virtual directory
естонахождение базы данных
Report
Server
мя хоста для сервера
SMTP
и почтовый адрес отправителя
После
того, как вы
просмотрели выбранные вами параметры на экране
Ready
install
начнется сама установка.
.3 Автоматизированная и удаленная установка
Существует возможность выполнять
установку
SQL
Server
в автоматическом режиме или на удаленном
компьютере.
Для авт
оматизированной установки необходимо использовать файл ответов, в котором определены значения
параметров. Самый простой способ создать файл ответов
скопировать файл
template.ini
из корневого
каталога компакт
диска дистрибутива
SQL
Server
и использов
ать его как шаблон.
ариант команд
на запуск автоматизированной установки может выглядеть так:


убедиться, что в меню
Start
Programs
Windows
Explorer
появился новый раздел
Microsoft
SQL
Server
с ярлыками для утилит администрирования
SQL
Server
Если
же в процессе установки возникли ка
кие
то проблемы, то можно обратиться к
журналам
установки
SQL
Server
. Файл
журнала
формируется для каждого из компонентов
SQL
Server
2012
Настройка
серверных
сетевых библиотек
Сетевые библиотеки
Сетевая библиотека
это специальный программн
ый модуль, который принимает от клиентов запросы на
установку соединения с
SQL
Server
SQL
Server
настроить сетевые библиотеки можно только после установки сервера
(или использовать
специальные параметры в файле *.
ini
при выполнении автоматизи
рованной установки)
Если обращение
SQL
Server
2012
производится по сети, то на клиентском компьютере должна быть установлена
клиентская сетевая библиотека, соответствующая установленной серверной.
Однако чаще всего этим заниматься
нет необходимости, по
скольку клиентские приложения используют драйверы
OLE
ODBC
или
BDE
для
подключения к
SQL
Server
. Эти драйверы подключаются к серверной сетевой библиотеке
TCP
SQL
Server
предусмотрено
три
сетевые библиотеки:
Shared Memory
(Sm)
та библиотек
а используется только для локальных подключений
утилитами
администрирования.
По умолчанию она включена для всех редакций SQL
Server
2012
Named Pipes
(Np)
именованный канал в оперативной памяти, в который оди
процесс передает
информацию, а другой процес
с информацию считывает. Может использоваться как для локальных, так и для
удаленных подключений.
По умолчанию для всех редакций SQL
Server
она отключена.
TCP/IP
(Tcp)
сетевая библиотека, которая используется в подавляющем большинстве случаев
и почти
всеми клиентскими приложениями.
SQL
Server
она по умолчанию
отключена во всех редакциях
Настройка сетевых библиотек
SQL
Server
для настройки сетевых библиотек
используется
утилит
SQL
onfiguration
Manager
Работа с
серверными сетевыми библ
иотеками производится из контейнера
Server


Для
настро
йки
именованн
ого
экземпляр
на использование определенного порт
необходимо
ткрыть
SQL
Server
Configuration
Manager
Start
Progra
Microsoft SQL Server
Configuration Tools
SQL Server Configuration Manager
аскры
контейнер
Serv
Protocols for
имя
экземпляра
правой части экрана выб
рать
нужный
протокол
TCP
из контекстного меню откры
о свойства
на
вкладке
Adressess
определ
ить
значение свойства
Port
ерезапустить
SQL
Server
2012
тобы настройки вступ
ли в силу.
SQL
Server
можно сделать невидимкой в вашей сети, чтобы он не передавал информацию о себе другим
компьютерам (
и не появлялся в раскрывающихся списках серверов
SQL
Server
). Настроить этот параметр (он
называется
HideInstance
) можно из свойств контейнера
Protocols
for
имя_экземпляра
.3 Другие послеустановочные задачи
К другим
послеустановочным
задачам можно отн
ести:
создание пользовательской
БД,
настройка ее параметров и создание в ней необходимых объектов;
создание учетных записей подключения к
SQL
Server
, пользователей баз данных и настройка разрешений;
обеспечение отказоустойчивости
SQL
Server
: настройка
резервного копирования,
зеркального
отоб
жения баз данных
и т.п.
создание системы мониторинга и
тимизаци
производительности для вашего приложения;
развертывание клиентских приложений, их настройка и тестирование.
Средства
администрирования
SQL
Serv
er
2012
SQL
Server
Management
Studio
SQL
Server
Management
Studio
это главный рабочий инструмент администратора в
SQL
Server
. В нем
объединены возможности
Enterprise
Manager
Query
Analyzer
Analysis
Manager
, средств администрирования
Reporting
Services
управление репозиторием пакетов
Integration
Services
, а также
Visual
Studio
(поскольку при
создании скриптов используется теперь проектный подход).
Для
запуска
SQL
Server
Management
Studio
воспользуйтесь
ярлыком из меню
Start
Programs
SQL
rver
2012
Вы можете настроить удобную рабочую среду в
SQL
Server
Management
. Для восстановления конфигурации окон
по умолчанию
Window
Окно Registered Servers
(«Ctrl»+«Alt»+«G»)
Окно
Registered Servers
содержит список заре
гистрированных
SQL
Server
В окне Registered Servers автоматически отображаются
экземпляры
SQL Server,
установленные
на том же
компьютере, где запущен Management Studio
ервер
SQL Server, расположенн
на других компьютерах,
необходимо
регистр
ировать
контекстном
меню
контейнера
MS
SQL
Servers
выбрать
New
Server
Registration
В процессе регистрации
можно
указать
параметры подключения и
установить принудительное шифрование всего
сетевого трафика Management Studio к этому серверу.
Можно
добавлять р
егистрации не только для серверов
SQL
Server
, но и для их компонентов
Analysis
Server
Report
Server
DTS
Server
SQL
Mobile
). При создании регистрации
необходимо
выбрать тип сервера, к которому
будет производиться подключение,
воспользова
вшись
кнопками
на
окна
Registered
Servers
Из окна
Registered
Servers
очень удобно открывать выбранный вами сервер в
Object
Explorer
или открывать для
него уже подключенное к серверу окно редактора кода скриптов
из контекстного меню
сервера выбрать
Connect
New
Quer
Connect
Object
Explorer
Еще одной новой возможностью этого окна является то, что вы можете экспортировать информацию о всех
зарегистрированных в этом окне серверах (со всеми параметрами подключения, включая настройки сетевых
библиотек, пароли и т.
п.) в файл
XML
, а затем импортировать эту информацию в
Management
Studio
, например, на
другом компьютере, для переноса всех настроек. Эта операция производится при помощи команд
Import
Export
из контекстного меню для элементов верхнего уровня (например,
Database
Engine
) в этом окне.


Окно Object Explorer
(«F8»)
кно
Object
Explorer
это наследник
Enterprise
Manager
Object
Explorer
из
Query
Analyzer
SQL
Server
2000
встроенный в
Management
Studio
, предназначенный для выполнения
административных оп
ераций с серверами,
БД
объектами баз данных.
По сравнению с
Enterprise
Manager
, дерево объектов серверов
SQL
Server
в этом окне стало глубже
Контейнеры
базы данных также существенно изменились, чтобы отразить новую функциональность
SQL
Server
Поя
вилась возможность осуществлять фильтрацию и сортировку объектов.
Мастера (копирования базы данных, создания плана обслуживания и т.п.) теперь можно запускать только из
контекстного меню в
Object
Explorer
. Специального контейнера в меню
Tools
SQL
Server
Management
Studio
уже
не предусмотрено.
Окно
Solution Explorer
(«Ctrl»+«Alt»+«L»)
Окно
Solution
Explorer
позволяет организовывать в проекты скрипты на языке
SQL
или
MDX
. Проекты, в свою
очередь, можно организовывать в решения (
solutions
). Преимуществ
можно объединять
логически связанные между собой скрипты;
можно настроить свойства решения и отдельного проекта;
вместе с файлами скриптов
можно хранить дополнительную информацию, которая будет использоваться
для этих скриптов по умолчанию, или любые др
угие файлы
, которые
будут видны из контейнера
Miscellaneous
(Разное)
. Добавить их можно, воспользовавшись командой
Add
Existing
Item
контекстном меню для проекта;
решения и проекты можно сохранять в
базе данных
Visual
Source
Safe
программн
ое
средство,
предназначенн
для организации совместной работы над кодом
Принцип
работы
Solution Explorer
При помощи меню
View
или клавиатурной комбинацией
Ctrl
�+
Alt
�+
сделать видимым
Solution
Explorer
Затем при помощи меню
File
New
создать новый проект.
По умолчанию для создаваемого проекта будет
создано новое решение. Если вы хотите добавить проект к уже существующему решению, проект нужно
создавать из контекстного меню для решения в окне
Solution
Explorer
После того, как решение и проект будут созданы,
при помощи контекстного меню для этих объектов в
Solution
Explorer
можно добавлять новые скрипты и другие элементы проекта.
Информация решения
сохраняется
в двух файлах:
ssmssln
текстовый файл, который можно изменять самостоятельно, содержащий
информа
о проектах,
которые входят в решение, а также о файлах информации проектов с указанием пути к ним
sqlsuo
двоичный файл, определяющий различные
пользовательские параметры
SQL
Server
Management
Studio
, настроенные им при работе с данным решением.
нформация о проектах
сохраняется в
XML
совместимых
файлах
*.ssmssqlproj
для проектов скриптов
SQL
*.ssmsasproj
для проектов скриптов MDX
*.ssmsmobileproj
для
проектов
SQL Server Mobile.
Все перечисленные файлы размещаются
в подкаталоги внутри ка
талога
Мои документы
SQL Server
Другие
SQL Server Management Studio
Окно
Template
Explorer
позволяет найти нужный шаблон.
Для замены параметров скрипта конкретными
значениями используется
окно
Replace
Template
команд
Specify
Values
for
Template
Библиотека шаблонов является расширяемой.
SQL
Server
Management
Studio
также
поставляются
шаблоны для
скриптов
MDX
SQL
Server
Mobile
По умолчанию окно
Template
Explorer
закрыто. О
ткрыть его можно
при помощи меню
View
или при помощи клавиатурной комбинации
Ctrl
�+
Alt
�+
�.


Окна
Properties
SQL
Server
Management
Studio
бывают
двух
разновидностей
окна свойств, которые предназначены для административных целей. Эти окна открываются
из
контекстного меню для объектов в
Object
Explorer
окна свойств, которые предназначены для разработчиков и сделаны по образцу окон свойств в
Visual
Studio. Их можно открыть из контекстного меню объектов или при помощи меню View.
Окно
Bookmark
отображает
список закладок, которые могут относиться к самым разным скриптам.
Расставлять закладки можно при помощи панели инструментов
Text Editor
(меню
View
Toolbars
Text
Editor
).
Способы с
оздани
скриптов
Management
Studio
Первый способ.
втоматическ
генераци
скриптов из Object Explorer (см. рис
3.1.6
).
Например, для таблицы можно сгенерировать скрипты на ее создание, удаление, выборку данных, добавление
новых данных, изменение
и удаление
существующих записей.
Рис.
1.
Автоматическая генер
ация скриптов средствами
SQL
Server
Management
Studio
Второй способ.
Использование
графическ
ого
построител
запросов в SQL Server Management Studio.
Это средство
предназначено для
созда
ния
больш
их
запрос
множеством
соединений
, условий и
сортировок.
я его использования
Создать пустой скрипт
кнопка
New
Query
на
панели
инструментов
Standard
контекстного
меню окна запроса
выбрать
пункт
Design
Query
Editor
(см. рис.
1.6
В открывшемся окне построителя запросов выбрать нужные таблицы, столбц
ы в них, назначить столбцам
псевдонимы, выбрать порядок сортировк
и и фильтры и т.п. (см. рис.
.1.6


Рис.
1.6
Запуск построителя запросов
Рис.
1.6
Возможности построителя запросов
Третий способ.
Создание скриптов для административных операц
Для создания административного скрипта
(создание
учетн
запис
, предоставление разрешений и т.п.)
можно
восп
льзоваться
кнопк
Script
в верхней части окна
SQL
Server
Management
Studio
(см. рис.
1.6
При
помощи этой кнопки можно автоматически соз
дать скрипт, в который будут подставлены введенные вами на
графическом экране значения.
Рис.
.1.6
. Автоматическая генерация скриптов для действий, выполняемых средствами
Management
Studio
Дополнительные возможности
Management
Studio
SQL
Serve
Management
Studio
появилась новая возможность
Intellisense
, то есть подсказка
при вводе кода.
Для настройки
работ
с подсказками
необходимо:
меню
Tools
выбрать команду
Options
Затем
дереве
меню
развернуть
узел
Text Editor
All Languages
Genera
Группа
Statement Completion
отвечает
Intellisense
Business Intelligence Development Studio
SQL
Server
Data
Tools
графическое
средство
предназначенное
для
работы
программными
проектами
SQL
Server
SQL Server Data Tools
, как и
SQL
Serve
Management
Studio
, объединяет в себе возможности сразу
нескольких программных средств, которые в предыдущих версиях
SQL
Server
существовали по отдельности.
При помощи
SQL
Server
Data
Tools
вы можете работать с проектами следующих типов:
проекты
Analysis
Services
проекты
Integration
Services
проекты типа
Report
Project
проекты типа
Report
Model
ри запуске
SQL
Server
Data
Tools
открывается среда разработки
Visual
Studio
, в которой вы
должны создать
или открыть проект нужного вам типа и работать с ни
м стандартными средствами
Visual
Studio


SQL
Server Co
nfiguration
Manager
.1 SQL Server Configuration Manager
SQL Server Configuration Manager
средство
администрирования
SQL
Server
Запускается
меню
Start
Programs
Microsoft SQL
Server
Configuration Tools
SQL
Configuration Manager
Оно
объединяет
себе
возможности
Первый
контейнер ответственен за службы
SQL
Server
2012
, второй
за серверные сетевые библиотеки
SQL
Server
, третий
за
параметры работы
SQL
Native
Client
Службы
SQL
Server
SQL
Server
, как все серверные продукты
Microsoft
, реализован как набор
служб.
Для
каждой службы
создаются записи в разделе реестра
Внимание!
При запуске
сервера из командной
строки выводится
пошаговый отчет о ходе запуска.
Обычно
этот
режим
используется
для целей диагностики в случае сбоев при запуске
SQL
Server
, либо для проверки его
поведения при работе под определенной учетной
записью
Службы,
вход
щие
в состав SQL
Server
2012
SQL Server
это сам
SQL
Server
, ядро базы данных. Ответственно за работу файлами базы данных,
прием
пользовательских
подключений, выполнение запросов и т.п.
SQL Server Agent
служба, которая ответственна за автоматизацию ра
боты с
SQL
Server
. Она отвечает
за
выполнение заданий по расписанию, за
предупреждения
и другие служебные операции.
Report Server
эта служба представляет серверный компонент
Reporting
Services
. Она ответственна за
генерацию отчетов, предоставление их пол
ьзователям, выполнение различных служебных операций с
отчетами.
Analysis Services
ядро сервера баз данных
OLAP
Данная служба
ответственна за работу с базами
данных
OLAP
и их компонентами.
Integration
Services
служба, ответственная за работу с новой ср
едой
DTS
(то есть за операции
загрузки, выгрузки и преобразования
данных, которые
проводятся при помощи пакетов
DTS
msftesql
это та слу
жба, которая раньше называлась
Microsoft
Search
. Ее главная задача
работа с
полнотекстовыми индексами.
SQL Browser
служба, ответственная за формирование списка серверов
SQL
Server
в сети
SQL Writer
работает с
shadow
copies
(теневыми копиями)
баз данных
SQL
Server
2012
, используется
для проведения резервного копирования в
оперативном
режиме, без отключения пользова
телей.
В приведенном
списке отсутствует служба
Distributed
Transaction
Coordinator
так как
она считается теперь
компонентом операционной системы.
а вкладке
Advanced
Configuration
Manager
вы можете просмотреть или изменить многие важные параметры
рабо
ты служб
SQL
Server
, например, информацию об установленных пакетах обновления, параметрах
запуска и т.п.
Настройка клиентских сетевых библиотек средствами
SQL
Server
Configuration
Manager
SQL
Native
Client
се настройки, которые производятся из
Configuration
Manager
для клиентских библиотек, относятся к
SQL
Native
Client
SQL
Native
Client
это набор программных объектов, которые поставляются с
SQL
Server
и позволяют
использовать новые возможности
SQL
Server
SQL
Native
Client
использ
ует стандартный набор драйверов и
программных объектов
MDAC
Microsoft
Data
Access
Component
) и его можно считать надстройкой над


стандартными интерфейсами доступа к данным
OLE
ODBC
. Это
набор программных объектов совместим с
ADO
и его возможности мо
жно использовать из
ADO
напрямую.
Как
правило,
SQL
Native
Client
нужен программам, поставляемым с самим
SQL
Server
Установку
SQL
Native
Client
можно произвести либо при помощи программы установки
SQL
Server
, либо воспользовавшись
файлом
в каталоге
SQL Configuration Manager
для
SQL Native Client
можно
ключить принудительное шифрование всего трафика, которым клиент обменивается с
SQL
Server
определить, буде
м ли всегда доверя
ть сертификату
сервера
(без обычной проверки этого
сертификата
на
Certification
Authority
ключить или отключить определенные сетевые библиотеки и настроить их свойства;
астроить псевдонимы
aliases
Псевдонимы, которые настраиваются средствами
SQL
Con
figuration
Manager
, работают не только для
SQL
Native
Client
, но и для подключений по
OLE
ODBC
Внимание!
Обычно псевдоним нужен тогда, когда в клиентское приложение жестко прописано имя сервера, к которому оно
должно обращаться, а база данных перенес
ена на сервер с другим именем. В этом случае проще всего создать
псевдоним на клиенте, при помощи которого клиент, обращаясь по старому имени, будет перенаправляться на
новый сервер.
SQLCmd
.1 Применение
SQLCmd
утилита
предназначен
для
выполнения скриптов
Transact
SQL
из командной строки
тилита
работает по
OLE
без использования
SQL
Native
Client
Она может быть использована для
выполн
ения
команд
TSQL
, скрипт
или набор
скриптов из командной строки
может работать в
двух режимах: интерактивном и пакетном. При работе в интерактивном режиме
запускается
и затем в открывшемся приглашении
вводятся команды. В пакетном режиме вы сразу
передаете
нужный запрос или файл скрипта.
Пример использования утили
ты
в пакетном режиме
Внимание!
Для создания и отладки
скрипт
ов
для
среде
SQL
Server
Management
Studio
необходимо перевести
редактор кода в специальный режим
написания скриптов
из меню
Query
SQLCmd
Mode
Следует
учитывать, что
и в этом режиме
SQL
Management
Studio
будет использовать для подключения
SQL
Native
Client

отличие от
OLE
, используемого
) и поэтому
могут быть мелкие отличия в резул
ьтатах выполнения
скриптов
Специальный
режим
подключения
Dedicated Administrator Connection (DAC)
При запуске
SQL
Server
сразу резервирует ресурсы на одно подключение пользователя.
В случае
если
некий
запрос
забрал все ресурсы, администратор
ожет подключиться к серверу
, используя данный
резерв
, и
выполнить необходимые административные операции
Данная в
озможность подключения к
SQL
Server
2012
называется
Dedicated
Administrator
Connection
).
Стандартно для подключ
ения
к серверу в этом режи
ме, используется
с параметром
также можно
воспользоваться
для этой цели и
SQL
Management
Studio
Для подключения
в режиме
DAC
из
SQL
Server
Management
Studio
, нужно выполнить следующие операции:
Нажать
кнопку
New
Query
Database Engine
Query
Откроется
окно
Connect to Database
Engine
поле
Server Name
вве
сти
например
SQL
Выб
рать
режим аутентификации и подключ
иться
к серверу.
Особенности п
одключени
в режиме
DAC
по умолчанию соединение в режи
ме
DAC
можно установить только с локального компьютера. Чтобы
разрешить такие соединения с удаленного компьютера, необходимо настроить для параметра сервера
remote
admin
connection
значение
sp_configure 'remote admin connections', 1
к серверу
одновр
еменно мож
ет быть установлено
только одно соединение в этом режиме;


подключение в режиме
может производить
только от имени учетной записи, обладающей прав
ом
для
экземпляра
SQL
Server
подключение в этом режиме может быть установлено то
лько с использованием сетевой библиотеки
TCP
подключение в режиме
DAC
является "неубиваемым": его нельзя закрыть командой
при подключении в режиме
вы получаете возможность напрямую производить запросы и вносить
изменения в системные таблицы с
ервера в базе данных
master
только в режиме
DAC
вы можете получить доступ к секретной базе данных
Resource
(обратиться к ней
можно по команде
USE mssqlsystemresource
, содержащей
копии всех си
стемных
объектов
, которые
поставляются с
SQL
Server
. Измен
ения в нее вносятся только при установке пакетов обновления и
патчей.
SQL
Server
Profiler
SQL
Server
Profiler
предназначен для
трассирования
или запис
в файл или таблицу
SQL
Server
) всех
событий
SQL
Server
, включая выполняемые на нем команды
Tran
sact
SQL
Запустить это приложение можно из меню
Start
Programs
SQL
Server
Performance Tools
меню
Tools
двух
других
приложений
SQL Server Management Studio
Database Engine Tuning Advisor.
еречень возможностей
возможность
профилировки
событий
Analysis
Services
профилировка событий
Integration
Services
(например,
ход выполнения новых пакетов
DTS
возможност
при записи
информации выполнения команды записывать показания счетчиков из
Performance
Monitor
пределение того, что нужно запис
ывать в файл трассировки, теперь можно сохранить в формате
XML
в формате
XML
теперь можно сохранить и результаты трассировки (возможность записи в форматы
ANSI
OEM
UNICODE
также сохранена);
в формате
XML
можно сохранять планы выполнения команд
Transact
SQL
, перехваченных
профилировщиком. Затем сохраненные в таком формате планы можно открыть в
SQL
Server
Management
Studio
для дальнейшего анализа;
возможность группировать события прямо в окне профилировщика.
Database
Engine
Tuning
Advisor
рограммное
средство предназначен
облегчить работу по оптимизации индексов и других структур в базе
данных. Оно принимает в качестве исходной информации файл или таблицу трассировки, созданную при помощи
профилировщика, а также команду или набор команд из окна реда
ктора кода
SQL
Server
Management
Studio
Tuning
Advisor
, в соответствии с указанными вами параметрами, рассчитывает возможные варианты внесения
изменений
в структуру
объект
БД, по результатам анализа генерирует отчет (в формате
XML
) и рекомендации.
Tun
ing
Advisor
включен в
SQL
Server
в двух вариантах
графическом (исполняемый файл
). Его можно запустить из меню
Start
Programs
SQL
Server
2012
Performance Tools
или
меню
Tools
SQL Server Management Studio
или
SQL Server
Profiler.
Кроме
того
это
средство
запускается
режиме
анализа
команды
скрипта
Transact
SQL,
если
эту
команду
или
скрипт
целиком
выделить
окне
редактора
кода
SQL Server
Management
Studio
контекстном
меню
выбрать
Analyze Query in Database Tuning Advisor
консольном
. Запускается из командной строки команд
Tuning
Advisor
позволяет:
производить анализ для нескольких баз данных одновременно
в анализ включаются команды, работающие с временными таблицами
, пользовательские функции и
команды, которые выполняются три
ггерами;
настраивать максимум времени, которое
Database
Tuning
Advisor
затратит на анализ и выработку
рекомендаций.
настраивать работу
tabase
Tuning
Advisor
в режиме "никакие новые инд
ксы не создаем, определяем
только возможность удаления существующих
индексов";
производить
оценк
сценариев, предлагаемых пользователем, например: "А что будет, если этот индекс
добавить, а этот
удалить?"


ведется журнал анализа. В этот журнал, к примеру, записывается информация о всех записях из файла
трассировки, которы
е не удалось использовать для анализа;
сохранять параметры анализа в файле
XML
(при помощи меню
File
Export
Session
Definition
) и
использовать их повторно.
8 Другие графические утилиты
SQL
Server
Replication
Conflict
Viewer
позволяет просматривать и разрешать конфликты,
возникающие в процессе репликации слиянием (
merge
replication
). Обычно запускается из
SQL
Server
Management
Studio
Copy
Database
Wizard
позволяет перенести базы данных
SQL
Server
другой экземпляр
SQL
Server
2012
. Обычно запускается из
SQL
Server
Management
Studio
(контекстное
меню для базы данных в
Object
Explorer
Tasks
Copy
Database
Execute
Package
Utility
наследница
DTSRunUI
в предыдущих версиях
SQL
Server
Позволяет запустить на выполнение пакеты
SQL
Server
Integration
Services
, запланировать их выполнение
по расписанию или создать командную строку для запуска пакета из своего консольного аналога
Replication
Monitor
sqlmonitor.exe
средство
для мониторинга и диагностики репликации. Можно
запустить как из командной строки, так и из
SQL
Server
Management
Studio
SQL
Server
Import
and
Export
Wizard
утилита
заменившая
новой
версии
SQL
Server
старый
DTS
Import
Export
Wizard
SQL
Server
Integration
Services
Migration
Wizard
утилита
предназначенная
для
переноса
обновления
пакетов
DTS
созданных
SQL
Server
7.0
2000,
SQL
Server
новую
среду
SQL
Server
Integration
Services
Analysis
Servi
Deployment
Wizard
AnalysisServices
мастер
развертывания
проектов
Analysis
Services
другой
сервер
Start
Programs
SQL
Server
Analysis
Services
Reporting
Services
Configuration
Manager
RSConfigTool
эта
программа
предназначена
для
управления
настройками
Reporting
Services
Native
режиме
Она
доступна
через
меню
Start
Programs
SQL
Server
Configuration
Tools
9 Другие консольные утилиты
SQL
Server
bcp.exe
Bulk
Copy
Program
самый быст
рый способ загрузить данные на
SQL
Server
и выгрузить
их (только текстовые файлы). Новым в
SQL
Server
является возможность применения для этой
программы файла форматирования в формате
XML
cidump
exe
утилита, которая позволяет производить прове
рку целостности индексов и отображать их
статистику. Может использоваться также для выгрузки индексов: целиком или отдельных диапазонов;
dta.exe
консольный
вариант
Database Engine Tuning Advisor;
PSSDiag
exe
эта утилита призвана заменить утилиту
SQLDiag
из предыдущих версий
SQL
Server
Главное ее назначение
диагностика сервера. Она производит тестирование различных компонентов
сервера и выдает информацию о результатах проверки;
tablediff
exe
(Replication Table Diff Tool)
позволяет сравнивать информаци
ю в двух таблицах и
выводить протокол различий в файл или в таблицу
SQL
Server
. Как понятно из названия, в основном она
предназначена для диагностики репликации, однако ее вполне можно использовать и для других целей.
DTExec
exe
эта утилита позволяет зап
ускать на выполнение пакеты
SSIS
из командной строки.
Команду на ее запуск с необходимыми параметрами удобнее всего создавать при помощи утилиты
DTSRun
утилита для запуска пакетов
DTS
, которая поставлялась с
SQL
Server
2000. Она поставляется
SQL
Server
, но теперь ее предлагают использовать для единственной цели: сбора информации
журнала запуска отчетов с
Reporting
Services
DTUtil
утилита для управления пакетами
SSIS
(копирование, удаление, переименование и т.п.) из
командной строки;
lrtest
exe
Language
Resource
test
утилита, предназначенная для тестирования изменений, которые
вносятся в языковые ресурсы полнотекстовых индексов;


rsactivate
exe
Report
Server
Activation
Tool
утилита
которая
позволяет
инициализировать
Report
Serv
Используется после выполнения операций с сертификатами
Report
Server
или изменения важных
параметров его работы;
rsconfig
exe
Report
Server
Configuration
Management
эта утилита позволяет изменять настройки
Reporting
Services
из командной строки;
KeyMgmt
exe
(Report Server Key Manager)
позволяет выполнять различные операции с
сертификатами
Reporting
Services
Создание баз данных и настройка параметров
1 Служебные и учебные базы данных
SQL
Server
Служебные
SQL
Server
отображаем
контейнер
Databases
System
Databases
Object
Explorer
SQL
Server
Management
Studio
master
главная
служебная
база данных
всего сервера. В ней хранится общая служебная информация
всего сервера
. П
рактически все системные таблицы базы данных
maste
недоступны
не только для
прямого внесения изменений, но и для просмотра;
msdb
база данных
используе
мая
для хранения информации службы
SQL
Server
Agent
и друг
служебн
информация (например, история резервного копирования);
model
база данных
шаблон
для создания новых баз данных на
SQL
Server
tempdb
база данных
предназначен
для временных таблиц и хранимых процедур, создаваемых
пользователями и самим
SQL
Server
, а также для хранения копий изменяемых данных в режиме изоляции
транзакций
моменталь
ных снимков (
snapshot
isolation
и промежуточных данных при перестроении
индексов. Эта база данных создается заново всякий раз при запуске
SQL
Server
distribution
этой служебной базы данных изначально в
SQL
Server
нет. Она появляется при
настройке
репликации (для нее можно выбрать и другое название).
Служебные БД
SQL
Server
, не отображаемые в контейнере
Databases
Resource
mssqlsystemresource.mdf
база данных,
содержащая копии всех системных объектов,
поставляемых с
SQL
Server
2012
Подключи
ться к ней можно только в режиме
(и только когда
сервер запущен в однопользовательском режиме)
Служебные БД
SQL
Server
, отображаемые в контейнере
Databases
в списке
пользовательских баз данных
ReportServer$
служебные
базы
данных
компонент
porting Services
Физическая
структура
базы
данных
2.1 Файлы баз данных и журналов транзакций
Каждая
БД
SQL
Server
содержит файлы данных (data file) и файлы журналов транзакций (transaction log file). В
файлах данных хранятся все данные базы данных.
В файлы журналов транзакций производится последовательная
запись всех изменений, которые вносятся в базу данных.
Минимальный набор файлов для любой базы данных
один файл данных (*.
mdf
) и один файл журнала
транзакций (*.
ldf
). При необходимости можно созд
ать дополнительные файлы данных (*.
ndf
) и файлы журналов
транзакций (*.
ldf
).
Для
оптимизации
производительности
повышения
отказоустойчивости
рекомендуется размещать файлы
журналов транзакций и файлы данных на отдельных физических дисках.
Для
размещения
файлов
данных
файлов
журнала
часто
применяется
RAID
массив
Определение размера файлов данных
При определении размеров файлов данных следует опираться на те задачи, для которых используется база
данных.
Настройк
режима автоприращения
Производитс
при помощи графического интерфейса из окна создания новой базы данных или вкладки
General
свойств
существующей
БД
SQL
Server
Management
Studio
. Для этого нужно нажать на кнопку в столбце
Autogrowth
свойств данного файла.


Немедленная инициализация фай
лов:
Немедленная инициализация файлов (
Instant
File
Initialization
позволяет не заполнять файлы данных нулями, что
резко сокращает время, требуемо
для создания файлов баз данных или их увеличения. Однако эта возможность
используется только
если
учетная
запись, от имени которой работает
SQL
Server
, обладает специальной
привилегией операционной системы
SE_MANAGE_VOLUME_NAME
(по умолчанию такая привилегия есть у
встроенной группы
Administrators
Экстенты
страницы
3.2.4
Физически файлы данных разбиваются
на страницы, объединяемые в экстенты.
кстент
extents
блок резервируе
мого SQL Server
дисково
го
пространств
а, размером 64 КБ, д
физического
размещения
данных
индексов
. Состоит из
восьми
последовательно
расположенных
страниц
объемом
8 КБ
каж
дая
Экстенты
бывают
двух
типов
однородные
(uniform extents),
принадлежащие
одному
объекту
смешанные
(mixed extents),
которые
могут
принадлежать
более
чем
восьми
различным
объектам
Страница
это
минимальный
объем
дискового
пространства
выделяемо
SQL Server
для
хранения
данных
Одна
страница
занимает
Размер записи
(с учетом стандартных типов данных) не может
превышать размер страницы
Порядок
размещения
данных
зависит
того
определен
таблице
кластерный
индекс
начале
каждой
страницы
размешается
заголовок
занимающий
байт
, в котором
хранится
системная
информация
Внимание!
Для просмотра содержимого страниц вы можете воспользоваться утилит
ами
DBCC
DBCC IND
(имя БД, имя табл,
1)
список страниц, принадлежащих конкретной т
аблице
DBCC TRACEON
(3604)
разрешение команде DBCC PAGE отправлять сгенерированный ею текст клиенту, а не
в error log
DBCC PAGE
(имя БД, номер файла, номер страницы, 1)
вывод внутренней структуры указанной страницы
Применение файловых групп
Файл
овая группа
Filegroup
это способ организации файлов данных. По умолчанию для любой базы данных
создается файловая группа
и все
создаваемые файлы данных относ
ятся
к ней.
В случае необходимости
могут быть созданы дополнительные файловые группы дл
я обеспечения:
отдельного хранения системных и пользовательских данных, оперативных и архивных данных;
ручно
распределени
нагрузки в дисковой подсистеме
ручно
распараллеливани
запросов в дисковой подсистеме
оптимизации работы в многопроцессорных с
истемах, так как при обращении к каждой файловой группе
открывается новый поток операционной системы.
Создать новые файловые группы можно:
при помощи графического интерфейса
SQL
Server
Management
Studio
на вкладке
Filegroups
свойств базы
данных,
при
мощи
команд
CREATE DATABASE/ALTER DATABASE
Создаваемую файловую группу можно сделать файловой группой по умолчанию. В этом случае все новые
таблицы и индексы в базе данных будут при создании по умолчанию помещаться в эту файловую группу.
журн
алов транзакций
урнал транзакций является самой важной частью базы данных
это единственное место, в котором в случае
сбоя гарантируется наличие описаний всех изменений базы данных.
Если журнал транзакций отсутствует или поврежден после сбоя, тогда восс
тановление после сбоя выполнить
невозможно, в результате чего база данных становится сомнительной
suspected
. В этом случае базу данных
необходимо восстанавливать из резервных копий или использовать для восстановления менее желательные
режимы, такие как а
варийное восстановление.
Журнал транзакций представляет собой специальный файл, необходим
й любой базе данных для надлежащего
функционирования. В нем содержатся записи журнала, создаваемые в процессе ведения журнала, и журнал
используется для повторного ч
тения этих записей во время восстановления. Так же, как пространство, занятое
собственно записями журнала, транзакция в журнале транзакций резервирует также пространство для любых
потенциальных записей журнала, которые потребовались бы в случае необходимос
ти отменить транзакцию и
выполнить откат. Этим объясняется поведение, которое можно наблюдать, когда, например, для транзакции,


обновляющей 50 МБ данных в базе данных, на деле в журнале транзакций может потребоваться пространство в
100 МБ.
Когда создается
новая база данных, журнал транзакций, по существу, пуст. По мере
выполнения
транзакций
записи журнала последовательно записываются в журнал транзакций, из чего следует, что создание нескольких
файлов журнала транзакций не дает никакого выигрыша в производи
тельности, что является широко
распространенным заблуждением. Журнал транзакций будет использовать все файлы журнала по очереди.
Физическая архитектура журнала транзакций показана на рис.
1. Внутренне он разбит на небольшие части,
называемые виртуальным
и файлами журналов (или файлами
VLF
). Когда файл VLF заполняется, процедура
ведения журнала автоматически переходит к следующему VLF в журнале транзакций. Можно было бы подумать,
что, в конце концов, журнал транзакций столкнется с нехваткой места, но именн
о в этом вопросе журнал
транзакций решительно отличается от файлов данных.
Рис.
3.1.
Физическая архитектура журнала транзакций
В действительности журнал тр
анзакций является кольцевым файлом
когда процедура ведения
журнала
достигает
конца журнала транзакций, она снова
возвращается
в начало
файла
и начинает писать поверх того, что было там
ранее
(если записи помечены, как доступные для перезаписи)
Итак, как
осуществляется отбрасывание записей журнала, позволяющее занимаемое ими пространство
использовать повторно? Запись журнала транзакций становится не нужной, если имеют место следующие факты
Транзакция, частью которой является эта запись, зафиксирована.
Все
страницы базы данных, которые она изменила, записаны на диск процедурой контрольной точки.
Данная запись журнала не требуется для резервного копирования (полного, выборочного или журнала).
Эта запись журнала не требуется никакому компоненту, читающему жур
нал (например, средству
зеркального отображения базы данных или репликации).
Запись журнала, потребность в которой сохраняется, называется активной, и VLF, имеющий по крайней мере одну
активную запись журнала, также называется активным.
Активные VLF образу
ют логический журнал, являющийся
частью журнала транзакций, содержащей активные записи журналов.
Время от времени журнал транзакций проверяется с целью выяснения, являются ли активными все записи
журнала в заполненном VLF, или нет; если они все не активны
, VLF помечается как
Reused
(что означает, что
VLF можно перезаписывать, когда исчерпается свободное место в журнале транзакций). Этот процесс называется
усечением журнала, что не следует путать с реальным сокращением размера журнала транзакций.
На
рис.
показан журнал транзакций после проведения усечения.
Внимание
При усечении журнала никогда не изменяется физический размер журнала транзакций, а изменяется только
состояние частей журнала транзакций на активное или неактивное.
Структуру файла журнала т
ранзакций, а также размер и статус входящих в него
VLF
вы можете посмотреть с
помощью утилиты
DBCC
LOGINFO
в контексте конкретной базы данных.
Рис.
3.
Жур
нал транзакций после усечения журнала
При определении размеров файлов журналов транзакций следует учитывать следующие факторы:
в каком режиме используется база данных
OLTP
(10%
25% от общего размера файлов БД) или
OLAP
(минимальный размер);
какой режим в
осстановления (
recovery
model
) настроен для БД
какова частота резервного копирования.


Логическая
структура
базы
данных
Данные
хранимые
SQL Server
структурируются
таким
образом
что
они
принадлежат
одному
или
скольким
объектам
Объекты
отображаются
пользо
телям
подключившимся
Объект
Описание
Таблица
аждая
строка
таблицы
представляет
уникальную
запись
каждый
столбец
отдельное
поле
этой
записи
Тип
данных
указывает
данные
какого
типа
могу
храниться
столбце
Представление
содержит
некоторые
записей
столбцов
имеющихся
таблице
либо
объединяет
данные
разных
таблиц
представляя
пользователю
как
одну
таблицу
Индекс
структура
связанная
таблицей
или
представлением
повышаю
щая
скорость
выборки
записей
таблицы
Индексы
таблице
могут
быть
кластерными
кластерными
Ключ
столбец
или
группа
столбцов
уникально
идентифицир
ующих
запись
),
определяющих
связь
между
двумя
таблицами
или
используемых
для
построения
декса
Польз
вател
ские
типы
данны
создаются
пользователями
, на основе
одно
встроенных
типов
данных
SQL Server
2012
Хранимые
процедуры
набор
операторов
Transact
SQL,
скомпилированных
один
план
выполнения
Ограничения
правила
задающие
допустимые
значения
для
величин
хранящихся
полях
таблиц
Значения
умолчанию
определяют
какие
значения
будут
подставлены
поле
текущей
записи
данном
столбце
если
при
вводе
данных
значение
этом
поле
будет
пропущено
Триггеры
особый
вид
хранимых
процедур
автоматически
выполняемых
при
возникновении события с
которым триггер связан
Пользовательские
функции
программы
состоящие
одной
или
нескольких
функций
включающих
себя
операторы
Transact
SQL
Создание пользовательских баз данных
Пользовательские
базы данных в
SQL Server
2012 подразделяются на стандартные и автономные.
мена
должны быть
уникальны
для
каждого
экземпляра
SQL Server
При
выборе
имени
рекомендуется
следовать
правилам
установленным
для
имен
идентификаторов
SQL Server
Создание
данных
SQL Server Management Studio
елкнуть
правой кнопкой мыши по контейнеру
Database
в Object Explorer
контекстном меню выбрать
New Database
В о
ткр
ывшемся окне
диалог
New Database
, вве
сти имя создаваемой базы данных.
Для всех о
стальных
параметров
будут подставлены значения по умолчанию
Однако чаще всего при создании базы данных нам потребуется
указать свою собственную конфигурацию файлов
и файловых групп, сразу же настроить параметры базы данных, а иногда и определить расширенн
ые свойства.
Создание
скрипта
описывающего
данных
Для создания БД используется команда
TSQL
ожно
написать скрипт создания БД вручную,
сгенерировать
скрипт для существующей базы данных или воспользова
ться
шаблоном редактора код
Создание БД с помощью команды Create Database.
Создание
базы
данных
состоящей
одного
файла
данных
файла
журнала
помощью
Transact
SQL
Создание
базы
данных
состоящей
нескольких
файлов
помощью
Transact


Генерация скрипта для существующей БД.
Создать скрипт можно двумя способами.
1 способ: Создание скрипта на создание
базы данных и настройку ее параметров
Откры
SQL
Server
Management
Studio
и подключ
иться
к серверу, на котором расположена
база данных.
Раскры
контейнер
Databases
Щелк
нуть
правой кнопкой мыши по объекту нужной базы данных и в контекстном меню выб
рать
Script
Database
Create
New
Query
Editor
Windows
2 способ: Создание скрипта, содержащего
команды на создание объектов баз данных
Открыть SQL Server Management Studio и подключиться к серверу, на котором расположена база данных.
Раскрыть контейнер
Databases
Щелкнуть правой кнопкой мыши по объекту нужной базы данных и в контекстном меню выбрать
Tasks
Generate
Scripts
Используя
мастер
Generate
SQL
Server
Scripts
Wizard
выбрать
объекты, для которых должны быть
сгенерированы команды создания.
Внима
С помощью
мастер
а нельзя
сгенерировать команды
INSERT
для загрузки данных.
Использование
шаблон
редактора кода
Откры
SQL Server Management Studio
меню
File
выб
рать
New
File
В окне
New
File
в списке
Categories
выб
рать
категорию
SQL
Server
Que
Database
и в списке справа
выб
рать
подходящий шаблон для создания базы данных.
Шаблон будет
загружен в окно редактора кода
SQL
Server
Management
Studio
. Его можно доработать
вручную или
воспользовавшись
окном
Specify
Values
for
Template
Подключение файлов существующей базы данных
Отключить БД от тестового сервера
одним из
способов:
в контекстном меню для
Object
Explorer
выб
рать команду
Tasks
выполнить
команду
Например
перевести базу данных в
автономный
режим
воспользова
вшись
командой
Tasks
Take offline
Management Studio.
будет помечена в окне
Object
Explorer
ециальной красной меткой.
копир
овать
файлы
(файлы данных и журнала транзакций).
сли журнал транзакций утрачен, то его
можно сгенерировать заново,
использ
команду
CREATE DATABASE ... FOR_ATTACH_REBUILD_LOG
Вернуть
исходную
в рабочее состояние.
сли
была отсоеди
воспользоваться командой
Attach
из контекстного меню для контейнера
Databases
сли
была переведена в
автономный режим (
offline
Копирование базы данны
х при помощи Copy Database Wizard
С помощью мастера можно производить копирование БД как
между серверами
SQL
Server
так и с
сервер
SQL
Server
/2005
/2008
на
SQL
Server
: обновление базы данных произойдет автоматически.
Главное требование
оба сервера
(сервер
отправитель и
сервер
получатель
должны быть д
тупны по сети.
Мастер копирования баз данных можно запустить или из контекстного меню для контейнера
Databases
Object
Explorer
(команда
Copy
Database
), либо
с помощью утилиты
командной с
троки
CopyDatabaseWizard.


Основные параметры базы данных
Часть параметров базы данных доступны на вкладке
Options
свойств базы данных.
Также управлять параметрами
базы данных можно с помощью команды
ALTER DATABASE
Режим восстановления базы да
нных
(Recovery Model)
Параметр Recovery Model
определяет,
в каком режиме восстановления будет работать база.
Всего предусмотрено
три режима восстановления базы данных:
Full
(режим полного протоколирования)
максимальное число операций записывается в журна
транзакций. Журнал транзакций автоматически не
усекается
Только в этом режиме мы можем использовать
зеркальное отображение баз данных
автоматическую
доставк
журналов (
log
shipping
Bulk
logged
режим неполного протоколирования)
запись в журнал пра
ктически отключается для
операций
массового характера и
операци
по созданию, перестроению и удалению индексов.
Simple
(простая модель восстановления)
инимально протоколируются
те же операции, что и в режиме
восстановления
logged
, а кроме этого, жу
рнал транзакций автоматически
усекается
Режимы работы базы данных
Для баз данных
SQL
Server
предусмотрено несколько режимов работы
database
state
Режим
Описание
оперативный режим
нормальный рабочий режим работы БД
автоно
мный режим
недоступна для пользователей, на нее не расходуются ресурсы
сервера, файлы данных и журнала транзакций свободны для копирования средствами
операционной системы
БД
доступна только на чтение, протоколирование отключено, к
могут
обращаться
только системные администраторы.
екомендуется использовать для целей диагностики
только чтение
пользователи не могут вносить изменения в данные, скорость считывани
данных повышается за счет того, что никакие блокировки не нак
ладываются
чтение и запись
режим
в котором базы данных работают по умолчанию
обычный режим, в котором по умолчанию работают все базы данных
в базу данных допускаются только пользователи, которые принадлежат к рол
и базы данных
или одной из серверных ролей
или
в этом режиме разрешается только одно подключение к базе данных
Изменение режима работы базы данных требует отключения пользователей.
В зависимости от п
араметр
ком
анды
ALTER DATABASE
будет определяться ее
поведение:
параметр
перевести базу данных в нужный режим, если нет пользовательских
подключений, которые этому мешают.
Если
команда
не может изменить режим работы
немедленно, она не бу
дет ждать, а сразу вернет ошибку;
параметра
указать, сколько секунд будет выдано
пользователям до завершения работы и разрыва их соединений.
Например
Пример:


Автономные базы данных
Что такое автономная база данных?
Наряду с поддержкой стандартных пользовательских баз данных, в
SQL
Server
включена поддержка
автономных баз данных.
Автономная база данных
это база данных, изолированная от других баз данных и от экземпляра SQL Server,
на котором размещена эта база данных. SQL Server 2012 помогает пользователю изолировать свою базу данны
х от
экземпляра четырьмя способами:
Большая часть метаданных, описывающих базу данных, ведется в базе данных.
Все метаданные определяются с использованием одних и тех же параметров сортировки.
База данных может выполнять проверку подлинности пользователе
оступ к автономным базам данных
обеспечивается через пользователей автономных баз данных, которым не требуются имена входа
Среда SQL Server
предоставляет отчеты об автономности и может работать с ней.
Функция автономных баз данных SQL Server 2012 в н
астоящее время доступна только в частично автономном
состоянии.
Частично автономной базой данных является автономная база данных, которая разрешает
использование неавтономных функций.
Внимание!
Чтобы получить сведения о неавтономных объектах и функциях, и
спользуйте представления
sys.dm_db_uncontained_entities
sys.sql_modules (Transact
SQL)
Определив состояние автоно
мности элементов
, вы можете узнать, какие объекты и функции необходимо заменить или изменить для обеспечения
автономности
Миграция на частично автономную базу данных
Включение поддержки автономных баз данных
Перед созданием автономных баз данных
необходимо включить их поддержку на экземпляре SQL Server Database
Engine. Это можно сделать двумя способами.
1 способ: включение поддержки автономных баз данных через SSMS
В обозревателе объектов щелкните правой кнопкой мыши имя сервера и выберите пункт
roperties
На странице
Advanced
в разделе
Containment
установите параметр
Enable
Contained
Databases
автономные базы данных
в значение
True
Нажмите кнопку
Рис.
3.
ключение поддержки автономных баз данных
2 способ: включение поддержки автономных
баз данных с помощью
SQL
sp
GO
RECONFIGURE ;


Преобразование базы данных в частично автономную
База данных преобразуется в автономную путем изменения ее параметра
CONTAINMENT
. Сделать это можно
либо
спользова
вшись
графическим интерфейсом
либо
командой
TSQL
ALTER DATABASE
Преобразование базы данных в частично автономную с помощью Transact
SQL
Для программного преобразования существующей базы данных в частично автономную базу данных
используется опера
тор
Преобразование базы данных в частично автономную с помощью
SSMS
Для преобразования БД в
частично автономную
с помощью
SSMS
выполните следующие действия:
В обозревателе
объектов разверните узел
Databases
, щелкните правой кнопкой мыши базу данных,
которую необходимо преобразовать, а затем выберите пункт меню
Properties
На странице
Options
измените параметр
Containment
type
на
Partial
Нажмите кнопку
Миграция пользов
ателей в пользователей автономной базы данных
Для осуществления
миграци
всех пользователей
базы данных
, основанных на имени входа SQL Server, в
пользователей автономной базы данных с паролями
можно выполнить указанный ниже скрипт
При
использовании графического интерфейса
необходимо
ткрыть свойства базы данных в SQL Server
Management
Studio
ерейти на вкладку
Files
вести новы
й размер для файла базы данных
в столбце
Initial
Size
или добавить в список новый файл.
При использовании
команд
ALTER DATABASE
необходимо воспользоваться следующим синтаксисом:
Для увеличения размера существующего файла данных
Для добавления нового файла данных


.2 Уменьшение размера базы данных
Уменьшение размера файлов данных
можно произвести дву
мя способами:
спользуя
графическ
интерфейс
SQL
Server
Management
Studio
, в
контекстном меню
выбрать команду
Tasks
Shrink
и указать, что мы хотим уменьшить
: все файлы данных
БД
или только выбранный нами
файл
ри помощи команд
DBCC SHRINKDATABASE
(для
всех файлов базы данных) или
(дл
отдельного файла).
При уменьшении размера
файлов баз данных нужно учитывать следующие моменты:
при уменьшении размера всей
нельзя сделать
ее меньше исходного размера
определен
ного
при
создании. Но доби
ться такого результата вполне можно, если сжимать файлы по отдельности;
само
уменьшение
может производиться в четырех режимах:
по умолчанию: все используемые страницы переносятся в начало файла и пустое пространство
высвобождается для использования операци
онной системой;
в режиме
все используемые страницы переносятся в начало файла, но пустое
пространство не возвращается операционной системе;
в режиме
страницы внутри файла не переносятся,
файл уменьшается только за счет
пустого п
ространства в конце;
в режиме
файл не уменьшается, но
SQL
Server
пытается перенести все
используемые
в нем
страницы в другие файлы той же файловой группы.
Получить информацию о наличие свободного пространства
в файлах
базы
данных можно 2 с
пособами:
Используя
окно
Shrink
File
уменьшения
файла
SQL
Server
Management
Studio
используя
команды
для
файлов
журналов
транзакций
Используя
стандартные
отчеты из контекстного меню выбранной базы данных
Reports
Standard
Reports
Disk
Usage
.3 Перенос файлов базы данных
Перенос файлов базы данных производится
следующим образом
ереводим базу данных в
автономный
режим, например
Например
ALTER AUTHORIZATION ON DATABASE::[
имя
] TO
Внимание
Произвести смену владельца для системных базы данных
невозможно.


.6 Удаление базы данных
Удалить базу данных в
SQL
rver
можно двумя способами:
из контекстного меню
SQL
Server
Management
Studio
по команде
Команда
Описание
DBCC
CHECKDB
используется для проверки целостности
Осуществляет
провер
логическ
стру
ктурн
целостност
БД, н
аходит ошибки в организации данных
Может применяться
для
исправ
ления
обнаруженны
ошиб
к в разных режимах
DBCC
CHECKALLOC
работает с поднабором операций, которые выполняет
роизводит
проверки только на наличие ошиб
ок, связанных с организацией данных на диске. При
помощи нее можно также попытаться исправить обнаруженные ошибки
DBCC
CHECKCATALOG
выполняет часть действий, выполняемых
проверяет
структуру системных таблиц указанной
БД.
справлять ошибки эта команда не умеет
Безопасность
Server
2012
из обязанностей администратора
SQL
Server
2012
является
разграничени
доступа и защит
данных
SQL
Server
1 Терминология
и основы
системы безопасности
SQL
Server
вные термины и концепции системы безопасности
SQL Server
Principals
Принципалы
это те, кому в
SQL
Server
2012
можно предоставлять разрешения. Они могут
быть индивидуальными (например, учетная запись) или групповыми (например, роль). Принципалы в
SQL
Server
существуют на трех уровнях: уровне операционной системы
Windows
Windows
Domain
login
Windows
Local
login
),
уровне
серверов
SQL
Server
SQL
Server
login
и уровне базы данных
database
user
database
role
application
role
Secura
ble
защищаемые
все, на что в
SQL
Server
можно назначить разрешения. Они также
относятся к трем уровням
уровень сервера
SQL
Server
учетная запись
база данных
точка подключения
),
уровень базы данных
пользователь
роль
роль приложения
сборка
тип сообщения
маршрут
служба
привязка удаленной службы
олнотекстовый ката
лог
сертификат
асимметричный ключ
симметричный
ключ
контракт
, схема) и
уровень схемы
таблица
представление
функция
процедура
ограничение
целостности
очередь
статистик
пользовательский тип данных
синоним
агрегат
коллекция схем
XML
Процесс предоставления разрешений:
оздать
учетн
запись для подключения к
SQL
Server
Предоставить
учетн
запис
разрешения на уровне сервера;
оздать пользователя базы данных, котор
ому соответствует
учетная запись
подключения
редоставить пользователю необходимые разрешения
на уровне базы данных
Учетн
запис
SQL
Server
2.1 Выбор типа
учетн
SQL
Server
поддерживает два
тип
а учетных записей:
четная запись
indows
учетная запись
для локальной учетной записи
Windows
учетная запись
для
доменной учетной записи
Windows
учетная запись
для группы
Windows
В системные таблицы базы данных Master записывается информация об идентификаторе учетной
записи или группы
Windows (SID).
Аутентификация производится обычными средствами Windows при регистрации в систему.


Повышается уровень защищенности SQL Server, так как пароль не передается по сети открытым
текстом, как при использовании учетной записи SQL Server.
четная
запись
SQL
Server
ароль для это
учетн
запис
(его хэшированное значение) хранится
вместе с идентификатором
учетн
запис
в базе данных M
aster
При подключении пользователя к серверу
необходимо
указать имя
учетн
запис
и пароль.
Учетн
запис
L Server используются
в основном,
если к SQL Server подключаются
пользователи, не
имеющие права работы
в домен
(пользователи NetWare или Unix, а также
использующие Web
интерфейс).
Создание
учетн
запис
и настройка
параметров
Создать
учетн
любого типа можно
при помощи графического интерфейса
из окна
Login
New
Object
Explorer
SQL
Server
Management
Studio
аскры
контейнер
Security
Logins
контекстного меню
выбрать
команд
New
Login
из скрипта
Создать учетную запись
при
помощи команды
, например:
Изменить учетную запись
при помощи команды
Удалить учетную запись
при помощи команды
При создании учетной записи необходимо:
При
созда
учетн
запис
Windows
выбрать соответствующую учетную запись
Windows
(доменную
или локальную).
При создании
учетн
запис
SQL
Server
ввести
имя и пароль.
Пароль чувствителен к регистру всегда, а
имя
только тогда, когда чувствительность к регистру был
а определена при установке
SQL
Server
При создании
учетной записи
SQL
Server
будет автоматически создан
SID
. Если необходимо, вы можете
задать
SID
учетной записи самостоятельно!
Параметры
учетн
запис
Параметр
Описание
Enforce
password
policy
(исп
ользовать парольную
политику)
используется если
SQL
Server
работает под управлением
Windows
Server
Позволяет определить требования к паролям для
учетн
запис
SQL
Server
согласно параметрам политики безопасности
локального компьютера
Enforce
passwor
expiration
(включить устаревание
пароля)
определяет, будут ли на
учетн
запись
SQL
Server
распространяться те же, что и
для учетных записей
Windows
, требования по смене пароля через определенный
промежуток времени. Этот флажок можно установить только пр
и установленном
флажке
Enforce password history
User
must
change
password
next
logon
(пользователь
должен поменять пароль
при следующем входе)
кно для смены пароля появляется только в
SQL
Server
Management
Studio
Query
Analyzer
и большинство других
приложений при попытке подключиться от имени
такого пользователя просто вернут ошибку.
Mapped
certificate
(привязан к сертификату) и
Mapped
asymmetric
(привязан к
асимметричному ключу)
возможность просмотреть сертификат или асимметричный ключ,
который будет
применяться для данного пользователя. Назначить сертификат можно только при
помощи команды
Transact
SQL
Default
database
база данных, к которой по умолчанию будет подключаться пользователь при входе
на
SQL
Server
. По умолчанию
используется база данных
Default
language
язык, который по умолчанию будет использоваться во время сеансов данным
пользователем. В основном влияет на формат даты и времени, который будет
возвращаться
SQL
Server
Дополнительные параметры, настраив
аемые на вкладке
Status
свойств
учетн
запис
Permissions to connect to
database engine
разрешение
подключение
ядру
по умолчанию для всех
учетн
запис
устанавливается значение
, то есть
подключаться к SQL Server разрешено
Login
enabl
disabled
учетная запись
включен
/отключен
все
учетн
запис
по умолчанию включены. При отключении
включении
учетн
запис
и в
се разрешения сохраняются


Login
locked
out
учетная
запись
заблокирован
установить этот флажок вы не можете (только е
го снять). Учетная запись
пользователя блокируется автоматически после нескольких попыток неверного
ввода пароля для
учетн
запис
SQL
Server
, если такая блокировка настроена на
уровне
, а для
учетн
запис
установлен флажок
Enforce
password
policy
екретные" свойства
учетн
запис
, доступные только при использовании команды
CREATE LOGIN
ALTER LOGIN
или специальных функций TSQL
HASHED
возможность указать, что вы передаете не пароль, а его хэшированное значение.
CREDENTIAL
возможность назначить
етн
запис
объект
Credential
, который
обычно
используется в ситуациях, когда пользователь из кода
TSQL
должен выполнить
какие
то действия в ОС или на другом сервере
SQL
Server
SID
возможность явно назначить
учетн
ой
запис
глобально
уникальный идентифи
катор
безопасности (если его не указать, то он будет сгенерирован автоматически)
Просмотреть его можно при помощи функции
SUSER
SID
идентификатор
учетн
запис
в системных таблицах
SQL
Server
Просмотреть его можно при помощи функции
SUSER
ID
Режимы
аутентификации
SQL
Server
2012
. Аудит попыток входа
Режим аутентификации
выбирается
при установке SQL
Server
Поменять этот режим после установки можно
при помощи вкладки
Security
свойств
SQL
Server
SQL
Server
Management
Studio
SQL
rver
поддерживает
два
режима аутентификации:
Windows Authentification mode
режим
аутентификации
Windows).
Этот режим, который выбирается по
умолчанию при установке SQL
Server
, разрешает использовать для подключения к серверу только
учетн
запис
Windows;
SQL Server and Windows Authentification mode
режим
аутентификации
SQL Server
Windows).
В этом
режиме можно использовать оба типа
учетн
запис
учетн
запис
SQL Server, и
учетн
запис
Windows. Другое название этого режима
mixed mod
e (смешанный режим).
Внимание
При изменении режима аутентификации сервер
необходимо
перезапустить.
При переходе из режима аутентификации
Windows
в смешанный режим учетная запись
по умолчанию
останется отключенной. Ее необходимо включить при помощи ком
анды
ALTER LOGIN
или из
Management
Studio
Включение аудита:
Используя вкладку
Security
свойств
SQL
Server
при помощи группы переключателей
Login
Auditing
можно настроить
аудит входов на
SQL
Server
None
аудит отключен
Failed
logins
only
ауди
только неудачных
попыток входа
Successful
logins
only
аудит
только удачных
попыток входа
Both failed and
successful
logins
аудит
любых
попыток
входа
становить
флажок
Enable C2 Audit tracing
В этом случае очень подробная информация о любых
действ
иях пользователей (включая вход на сервер) будет записываться в текстовые файлы в каталог
Data
для данного экземпляра. С этим параметром нужно быть очень осторожным,
потому что информации будет
записываться очень много и
место на диске может закончиться.
2.4 Учетные записи, создаваемые по умолчанию
Чтобы улучшить разделение ролей, группы
BUILTIN
Administrators
Local
System
NT
AUTHORITY
SYSTEM
) не провизионируются автоматически в предопределенную роль сервера sysadmin.
Локальные администраторы могут пол
учить доступ к компоненту Database Engine в однопользовательском
режиме.
Если во время установки SQL Server на платформу Windows Server 2008 R2 или Windows 7 используется значение
по умолчанию для учетных записей служб, используется виртуальная учетная за
пись с именем, соответствующим
имени экземпляра, в формате
NT SERVICE
SERVICENAME&#x-10S;ۡR;V3I;&#x-12C;&#x-4E1;&#xN3A1;M1E;က.
осле установки
SQL
Server
в контейнере
Logins
создаются следующие
учетн
запис
NT SERVICE
MSSQLSERVER
или
NT SERVICE
MSSQL$
ИмяЭкземпляра
учетная запись для
экзе
мпляра по умолчанию компонента Database Engine
NT SERVICE
MSSQL$
ИмяЭкземпляра
учетная запись для
именованного
экземпляра компонента
Database Engine


SERVICE
SQLSERVERAGENT
SERVICE
SQLSERVERAGENT
ИмяЭкземпляра
учетная
запись для
службы
SQL Server
Agent
на соответствующем экземпляре
NT AUTHORITY
SYSTEM
локальная системная учетная запись операционной системы. Такая учетная
запись появляется в тех ситуациях, когда вы при установке настроили работу службы
SQL
Server
от имени
локальной системной учет
ной записи.
SERVICE
SQLWriter
учетная запись для
одуля записи SQL, используемого
для резервного
копирования и восстановления приложений для работы в составе платформы служб теневого копирования
томов (VSS).
NT AUTHORITY
NETWORK SERVICE
учетная
запись
Windows
используется
для
подключения
SQL
Server
Reporting
Services
Ей
автоматически предоставляются необходимые права на базу данных
и базы данных, используемые
Reporting
Services
учетная запись
типа
SQL
Server
, котор
создае
тся по умолчанию. Он
обладает правами системного
администратора
SQL
Server
. Удали
ь эт
учетн
запись
нельзя, но
можно переименовать или отключить.
4.3 Роли уровня сервера
SQL Server предоставляет роли уровня сервера, помогающие в управлении разрешениям
и на сервере. Эти
роли являются субъектами безопасности, группирующими других участников. Разрешения ролей уровня сервера
распространяются на весь сервер.
По умолчанию каждая учетная запись обладает на уровне всего сервера двумя правами:
(подкл
ючаться к серверу) и
(просматривать список баз данных). Для предоставления
пользователю дополнительных прав на уровне всего сервера можно воспользоваться серверными ролями,
добав
ив
учетную
запись
состав
роли
сервера
SQL Server
2012 под
держивает два типа ролей сервера: фиксированные роли сервера и пользовательтские
роли сервера.
Каждый член
фиксированной
роли сервера может добавлять другие имена входа к той же роли.
Члены пользовательских ролей сервера не могут добавлять других участнико
в на уровне сервера в роль.
Фиксированные
роли
сервера
Список
фиксированных
ролей
сервера
предопределен:
нельзя
удалить
фиксированные
роли
сервера
изменить
рава
Роль сервера
Разрешения
PUBLIC
эта роль отсутствует в списке серверных роле
й, но она существует и активно используется.
Права этой роли автоматически получают все, кто подключился к
SQL
Server
, и лишить
пользователя членства в этой роли невозможно;
SYSADMIN
роль, предоставляющая полные права на весь
SQL
Server
(и возможность пер
едавать эти
права другим пользователям). С точки зрения серверных разрешений это соответствует
праву
CONTROL
SERVER
с параметром
WITH
GRANT
(то есть возможностью передачи)
SERVERADMIN
оль
предоставляющая возможность изменять любые настройки работы серв
ера и
отключать сервер, но получать доступ к данным и изменять разрешения не разрешено
SECURITYADMIN
эта роль для того, кто выдает разрешения пользователям, не вмешиваясь в работу сервера.
Имеется возможность создавать
учетные записи
для обычных пользова
телей, изменять их
пароли, предоставлять разрешения в базах данных. Однако предоставить кому
либо
административные права или изменять учетную запись администратора не
может
BULKADMIN
роль для сотрудников, которые выполняют массовые загрузки данных в табл
ицы
SQL
Server
DBCREATOR
эта роль позволяет создавать
на
SQL
. Обычно эта роль предоставляется учетным
записям, используемым приложениями, которые хранят свои информацию на
SQL
Server
DISKADMIN
эта роль позволяет выполнять любые операции с файлами ба
з данных на диске
PROCESSADMIN
эта роль предназначена для выполнения единственной обязанности: закрытия
пользова
тельских подключений к серверу
SETUPADMIN
права этой роли позволяют подключать внешние сервера
SQL
Server
linked
servers
Внимание
Для
того чтобы получить перечень разрешений фиксированной роли сервера
можно воспользоваться системной
хранимой процедурой
sp_srvrolepermission
@srvrolename
role


Пользовательские
роли
сервера
MS
SQL
Server
включена
возможность создания польз
овательских ролей сервера.
Для создания
пользовательтской роли сервера
ребуется
разрешение
CREATE SERVER ROLE
или членство в
предопределенной роли сервера
sysadmin
Также требуется разрешение
IMPERSONATE
на участника
server_principal
для имен входа, разре
шение
ALTER
для ролей сервера, которые используются в качестве
участников server_principal, или членство в группе Windows, которая используется в качестве участника
server_principal.
Создание новой роли сервера через графический интерфейс
В обозревателе об
ъектов разверните сервер, на котором необходимо создать новую роль сервера.
Разверните папку
Security
Щелкните правой кнопкой мыши папку
Server
Roles
и выберите
New
Server
Role
В диалоговом окне
New
Server
Role
на странице
General
введите имя новой роли
сервера и определите ее
владельца (в поле
Owner
введите имя участника на уровне сервера, которому будет принадлежать новая
роль
В поле
Securables
выберите один или несколько защищаемых объектов уровня сервера.
В поле
Explicit
установите флажок, чтобы п
редоставить
Grant
, предоставить с правом передачи
With
Grant
или отменить
Deny
разрешение этой роли сервера на выделенные защищаемые объекты.
Если
разрешение не может быть предоставлено или отменено для всех выделенных защищаемых объектов,
разрешение
представляется как частично выбранное.
На странице
Members
с помощью кнопки
Add
добавьте имена входа, представляющие определенных
пользователей или их группы, в новую роль сервера.
Определяемая пользователем роль сервера может быть членом другой роли сер
вера.
На странице
Memberships
установите флажок, чтобы текущая, определяемая пользователем роль сервера стала членом
выбранных ролей сервера.
Нажмите кнопку
Рис.
Создание пользовательской роли сервера
Создание новой роли сервера
с помощью
Tran
sact
SQL
Для создания роли через программный интерфейс воспользуйтесь оператором
Внимание
Для просмотра ролей сервера выполните запрос к представлениям каталог
sys.server_role_members
sys.server_principals
После создания роли сервера необходимо настроить для нее разрешения уровня сервера при помощи
инструкций GRANT, DENY и REVOKE.
Для доб
авления или удаления имен входа из роли сервера используется инструкция


-works\roberto0] &#x/MCI; 2 ;&#x/MCI; 2 ;GO &#x/MCI; 5 ;&#x/MCI; 5 ;4. Для удаления роли сервера используется инструкци
Внимание
Определяемые пользователем роли сервера, владеющие защищаемыми объектами, не могут быть удалены с
сервера.
Чтобы удалить определяемую пользователем роль сервера, владеющую защищаемыми объектами,
необ
ходимо сначала передать эти объекты другому владельцу или удалить их.
Определяемые пользователем роли сервера, у которых есть члены, нельзя удалить.
Для удаления определяемой
пользователем роли сервера с членами необходимо сначала удалить члены из роли с
помощью инструкции
ALTER


Назначение разрешений на уровне сервера
С каждым защищаемым объектом в SQL Server связаны разрешения, которые могут быть предоставлены
участнику.
азрешени
на уровне сервера могут быть предоставлены
либо
через чл
енство в ролях сервера
либо
через
индивидуальное
назначение разрешений
принципалам
Разрешения в области сервера предоставляются
только в том случае, если текущей является база данных master.
Имена входа SQL Server и роли сервера
также
являются защищаемым
и объектами уровня сервера.
Добавление учетной записи в состав роли сервера
Добавление учетных записей подключения и пользовательских ролей сервера в
состав
роли
сервера
может
осуществляться следующими способами:
Из кода Transact
SQL
для
добав
ления
членов
состав
роли
сервера
необходимо использовать оператор
с параметром
роцедуры
sp_addrolemember
являются устаревшими).
ALTER SERVER ROLE
Для управления ролями сервера с помощью
SSMS
, можно воспользоваться либо
войством
Members
конкретной роли сервера (рис.4.2.а)
, либо вкладкой
Server Roles
в окне свойств учетной записи
(рис.4.2.б)
а)
б)
Рис.
.2.
Добавление членов в роль се
рвера
4.4.2 Предоставление индивидуальных разрешений
учетной записи
или роли
Для определения разрешений
на уровне сервера
вы можете воспользоваться либо графическим интерфейсом, либо
операторами языка
Transact
SQL
Из кода Transact
SQL
для
предоставления р
азрешений используются операторы
предоставляет разрешения на защищаемый объект
указывает, что предоставленное разрешение может быть передано
другим учетным записям безопасности.
Если субъект, получ
ивший данное разрешение, является ролью
или группой Windows, то для последующего предоставления разрешения пользователям, которые не
являются членами этой группы или роли, необходимо использовать предложение


GRANT EXECUTE ON TestMe TO User2 AS TesterRole;
Внимание
Объект, предоставляющий разрешение (или участник, указанный параметром AS), должен иметь либо
само разрешение с параметром
, либо разрешение более высокого уровня, которое
неявно
включает предоставляемое разрешение.
Владельцы объектов могут предоставлять разрешения на объекты, которыми они владеют.
Участники,
имеющие разрешение
CONTROL
на защищаемый объект, могут предоставлять разрешение на этот
защищаемый объект.
Участни
ки, которым предоставлено разрешение
CONTROL
, например члены предопределенной
роли сервера sysadmin, могут предоставить любое разрешение на любой защищаемый объект на сервере..
апрещает разрешение для участника.
Инструкция DENY отменяет раз
решение так, что его нельзя
больше унаследовать. Инструкция DENY имеет наивысший приоритет по сравнению со всеми
инструкциями разрешения, однако действие инструкции DENY не распространяется на владельцев
объектов или на членов роли
sysadmin
Если осуществл
яется отзыв разрешений с помощью инструкции
DENY на какой
либо объект по отношению к роли
public
, то этот отзыв распространяется на всех
пользователей и все роли, кроме владельцев объекта и членов роли
sysadmin
Внимание
При запрете разрешения
CONTROL
неявно запрещается разрешение
CONNECT
на этот сервер
следовательно у
частник
не сможет подключиться к этому серверу.
Участники, которым предоставлено разрешение
CONTROL
, например члены предопр
еделенной
роли сервера sysadmin, могут запретить любое разрешение на любой защищаемый объект на сервере.
Инструкция
завершится ошибкой, если не указан аргумент
при отзыве разрешения у
участника, которому это разрешение было предоставлено с пар
аметром
OPTION
удаляет разрешение, выданное или запрещенное ранее
Внимание
Участники, которым предоставлено разрешение
CONTROL
, например члены предопределенной
роли сервера sysadmi
n, могут отменить любое разрешение на любой защищаемый объект на сервере.
Владельцы объектов могут отменить разрешения на доступ к ним.
Если при
отзыве
разрешения участником, получившем его с помощью аргумента
GRANT
, не был
задан аргумент
ыполнение инструкции
REVOKE
завершается сбоем.
С помощью графического интерфейсв
SSMS
вы
мож
ете
предоставлять индивидуальные разрешения либо
используя окно свойств участника безопасности (учетной записи подключения или пользовательской роли
сервера)
на в
кладке
Securables
рис. 4.3.а
, либо окно свойств самого сервера
на вкладке
Permissions
(рис.
4.3.б)
Использование вкладк
Permissions
свойств сервера
предоставляет возможност
более точно настроить права для каждой учетной записи;
предоставить права
всем пользователям сразу;
посмотреть, кто предоставил данные права пользователю (значение в столбце
Grantor
посмотреть итоговые права для данного пользователя на уровне сервера. Для этой цели предназначена
вкладка
Effective
кладк
Securables
свойств уч
етной записи
позволяет настроить
Разршения на объект сервера;
Разрешения на объекты подключений по
HTTP
Разрешения на объекты других учетных записей


а)
б)
Рис.
.3.
Предоставление разрешений на уровне сервера
Внимание
Членам предопределенной рол
и сервера
sysadmin
и владельцам объекта не может быть отказано в разрешениях.
Для получения полного списка разрешений, которые могут быть предоставлены
вы можете воспользоваться
табличной функцией sys.fn_builtin_permissions
SELECT * FROM fn_builtin_permi
ssions(default);
4.5 Учетные данные (
Credentials
Учетные данные представляют собой запись, которая содержит сведения для проверки подлинности
(учетные данные), необходимы
для подключения к ресурсу вне SQL Server. Эти сведения используются SQL
Server. Бол
ьшинство учетных данных содержат имя пользователя Windows и пароль.
Хранимые в учетных данных сведения позволяют пользователю, подключившемуся к SQL Server с
применением проверки подлинности SQL Server, обращаться к ресурсам, размещенным вне данного экзем
пляра
сервера. Когда внешним ресурсом является ОС Windows, проверяется соответствие данных пользователя
сведениям, указанным в учетной записи Windows. Одни учетные данные могут соответствовать нескольким
зарегистрированным именам входа SQL Server. Но имя в
хода SQL Server может соответствовать только одним
учетным данным.
Системные учетные данные создаются автоматически и связываются с определенными конечными
точками. Имена для системных учетных данных начинаются с двух символов решетки (
4.5.1 Создание
учетных данных
Для создания
учетных данных вы можете воспользоваться графическим интерфейсом
SSMS
или
оператором
CREDENTIAL
Пример

Внимание
Секретный код шифр
уется главным ключом службы. Если главный ключ службы формируется повторно,
секретный код повторно шифруется, используя новый главный ключ службы.


4.5.2 Сопоставление учетных данных
После создания учетных данных можно сопоставить их имени входа SQL Server,
используя
оператор
или
Пример
Внимание
Имя входа SQL Server может быть сопоставлено только одним учетным данным, но одни учетные данные могут
быть сопоставлены нескольким имен
ам входа SQL Server.
Сведения об учетных данных доступны в представлении каталога
5. Безопасность базы данных и ее объектов
дминистратор
SQL
Server
2012
отвечает за
безопасное хранение данных в базе данных. Для этого
необходимо обеспечить
защищенный доступ пользователей к баз
данных и ее объектам.
а уровне базы данных
опредлены
следующие
участники безопасности:
ользователь базы данных
оль базы данных
и р
оль приложения
Чтобы можно было работать с объектами базы данных, имена входа дол
жны быть сопоставлены с
учетными записями пользователей базы данных. После этого пользователи базы данных могут быть добавлены к
ролям базы данных, наследуя все наборы разрешений, связанные с этими ролями.
Пользователи баз данных
и схем
ользова
тел
базы данных
Пользователи баз данных
database users
это специальные объекты, которые создаются на уровне
базы данных и используются для предоставления разрешений в базе данных (на таблицы, представления,
хранимые процедуры).
Встроенные пользовател
В каждой базе данных существуют предопределенный набор специальных пользователей:
владелец базы данных)
, представляет собой учетную запись пользователя, которая имеет неявно
заданные разрешения на выполнение любых действий с базой данных.Члены предо
пределенной роли
сервера
sysadmin
автоматически сопоставляются с
dbo
SQL
Server
dbo
имеет возможность
удалять свою базу данных
Внимание
Учетную запись пользователя
часто путают с предопределенной ролью базы данных
db_owner
. Но областью
действ
ия
db_owner
является база, а областью действия
sysadmin
является весь сервер. Членство в роли
db_owner
не дает доступа к пользовательским привилегиям роли
Guest
гость
Разрешения, предоставленные пользователю
гость
, наследуются пользователями, кото
рые
имеют доступ к базе данных, но не обладают учетной записью пользователя в базе данных.
Пользователя
гость
нельзя удалить, но его можно отключить, если отменить его разрешение
CONNECT
Разрешение
CONNECT
можно отменить, выполнив инструкцию
REVOKE CONNEC
T FROM GUEST
в любой базе
данных, кроме master или tempdb.
Внимание
Следует избегать использования учетной записи
guest
. При необходимости использования учетной записи
guest
следует предоставить ей минимальные разрешения
INFORMATION_SCHEMA
sys
Они нео
бходимы для работы SQL Server;
эти пользователи не
являются участниками и не могут быть изменены или удалены.


Схемы
базы данных
Схема
schema
представляет собой логическую область в БД, используемую для группировки объектов
БД под одним именем (п
ространство имен)
, при этом не имеет значения, кто является владельцем объекта.
терминах пространства имен полностью квалифицированное имя объекта будет выглядеть следующим образом:
Внимание
Если существуют ссылки на объект
ы базы данных, имеющие однокомпонентные имена, SQL Server в первую
очередь ищет эти объекты в схеме по умолчанию данного пользователя. Если объект не найден, SQL Server ищет
его в схеме
.Если этот объект не найден в схеме
возвращается ошибка.
Владе
льцем схемы может быть любой участник базы данных, при этом одному участнику может
принадлежать несколько схем.
По умолчанию, если разработчик создает объект в схеме, он принадлежит
участнику безопасности, являющемуся владельцем схемы, а не разработчику.
спользование схем упрощает процесс управления правами доступа к объектам. При распространении прав
доступа к объектам учитывается их иерархия, что подразумевает наследование прав доступа.
Применени
е схемы дает ряд дополнительных преимуществ по сравнению со старым подходом:
нескольким пользователям можно назначить одну и ту же схему по умолчанию;
несколько пользователей могут владеть одной и той же схемой. При этом один пользователь может
являться вл
адельцем сразу нескольких схем;
при удалении пользователя из базы данных не придется переименовывать его объекты;
объекты можно перемещать из одной схемы в другую, а принадлежность схемы передавать от одного
участника другому
как уже говорилось, упрощаетс
я предоставление разрешений для наборов объектов в базе данных.
Встроенные схемы
SQL Server поставляется с десятью предварительно определенными схемами, имеющими одинаковое имя
со встроенными пользователями и ролями базы данных.
Они существуют главным обра
зом ради обратной
совместимости.
Схемы
sys
INFORMATION_SCHEMA
зарезервированы для системных объектов. В этих схемах нельзя
создавать и удалять объекты;
Схема
представляет собой схему по умолчанию для вновь созданной базы данных. Владельцем схемы
является учетная запись пользователя
. Схемой по умолчанию для пользователей, созданных с
помощью команды Transact
SQL CREATE USER, является
. Пользователи, которым назначена схема
, не наследуют разрешения пользовательской учетной записи
. По
льзователи не наследуют
разрешения схемы, их наследуют объекты базы данных, содержащиеся в схеме
Схема
guest
схема по умолчанию для пользователя
guest
Схемы, имеющие одинаковые имена с предопределенными ролями базы данных, можно удалить, если они
не ну
жны.
Можно удалить следующие схемы
guest
sys
INFORMATION_SCHEMA
Внимание
Если их удалить из шаблона базы данных, эти схемы не появятся в новых базах данных.
Создание
, изменение и удаление
пользователей базы данных
Типы пользователей б
азы данных
При создании нового пользователя в текущей базе данных необходимо определить его тип
User
type
Существует одиннадцать типов пользователей:
Пользователи
сопоставленные с учетными записями подключения
. Это самый рас
пространенный тип
пользоват
елей
SQL
ser
with
ogin
Учетная запись подключения для пользователя
Windows.
Учетная запись подключения для
групп
Windows.
Учетная запись подключения
для проверки подлинности SQL Server.
Пользователи, проходящие проверку подлинности в базе данных. Доп
ускается только в
автономной базе
данных
SQL
ser
with
password


Пользователь, соответствующий пользователю Windows без
учетной записи подключения
Пользователь, соответствующий группе Windows без
учетной записи подключения
Пользователь автономной базы
данных с паролем.
Внимание
ля пользователя
проходящ
его
проверку подлинности в
автономной баз
данных
строк
подключения
должн
содержать имя автономной базы данных в качестве исходного каталога.
Создание пользователей в автономной базе данных позволяе
т отделить базу данных от экземпляра
компонента Database Engine, что позволяет легко переместить ее
другой экземпляр SQL Server
Пользователи, соответствующие участникам Windows, которые подключаются с помощью
учетной
записи подключения
группы Windows
Windows
ser
Пользователь, соответствующий пользователю Windows, который не имеет
учетной записи
подключения
, но может подключаться к компоненту Database Engine за счет членства в роли Windows.
Пользователь, соответствующий группе Windows, которая не име
ет
учетной записи подключения
, но
может подключаться к компоненту Database Engine за счет членства в другой роли Windows.
Пользователи, которые не могут проходить проверку подлинности. Такие пользователи не могут в
ходить
на SQL Server:
Пользователь без
уче
тной записи подключения
SQL
user
without
login
. Не может выполнить вход,
но ему
можно предоставлять разрешения, например, для
дополнительной настройки безопасности в
Service
Broke
Пользователь, связанный с сертификатом. Не может выполнить вход, но може
т предоставлять
разрешения и подписывать модули
User
mapped
certificate
Пользователь, связанный с асимметричным ключом. Не может выполнить вход, но может
предоставлять разрешения и подписывать модули
User
mapped
С помощью графического интерфейса
Management
Studio
из контейнера
Имя_Базы_Данных
Security
Users
при помощи
оператора
CREATE USER
При создании пользователя вам потребуется указать:
Имя пользователя
ип создаваемого пользователя
User
type
).
При этом
, в зависимости от типа создаваемого пользователя
может потребоваться указать дополнительные параметры:
Для пользователя с типом
SQL
ser
with
login
указать сопоставляемую ему учетную з
апись
подключ
ения, хран
ящуюся в БД
master
Пример
CREATE USER SQLAUTHLOGIN FOR LOGIN SQLAUTHLOGIN
Для пользователя
автономной базы данных
SQL
ser
with
password
указать
пароль
или учетную
запись
пользователя или группы
Windows
Пример
CREATE USER [Domain1
CREATE USER [Domain1
Для пользователя
Windows
user
на основе участников Win
dows без подключения к базе данных
master
синтаксис аналогичен
созданию
пользовател
, соответствующи
учетным записям
подключения, однако пользователи данной категории не имеют имени входа в базе данных master.
Пользователь должен получать доступ к компон
енту Компонент Database Engine с помощью имени
входа
группы
Windows
Пример
CREATE USER [Domain1
CREATE USER [Domain1
Для п
ользовател
которые не могут проходить проверку подлинности указать либо параметр
WITHOUT LOGIN, либо указать сертификат или асимметричный ключ, которым сопоставляется
пользователь:
Пример


Рис.
5.1.
Создание нового пользователя базы да
нных
Изменение свойств пользователя
и его удаление
С помощью графического интерфейса
Management
Studio
из контейнера
Имя_Базы_Данных
Security
Users
Изменение свойств пользователя
при помощи команды
Удаление пользователя
при помощи коман
ды
DROP USER
Пример
DROP
GO
Внимание
Пользователи, которые владеют защищаемыми объектами, не могут быть удалены из базы данных. Перед
удалением пользователя, который владеет защищаемым объектом, необходимо уд
алить или сменить владельца
защищаемого объекта.
Пользователь
guest
не может быть удален,
его
можно
только
отключить
при
помощ
инструкции REVOKE
CONNECT FROM GUEST в любой базе данных, кроме master или tempdb.
5.3 Роли уровня базы данных
Роли базы данных
это специальные объекты базы данных, которые используются для упрощения
предоставления разрешений в базах данных.
Роли баз данных подразделяются на
фиксированные (
встроенные
, пользовательские и роли приложений
(application roles).
Фиксированные
роли б
аз данных обладают предопределенным набором разрешений, а
пользовательские роли можно использовать для
настройки пользовательских групп разрешений
. Роли
приложений используются для предоставления разрешений на работу с объектами БД для приложений.


строенные р
оли баз данных
Встроенные роли обладают предопределенными правами, изменить которые невозможно.
Роль БД
Права
участника
этой
роли
db_owner
Может
выполнять
любые
задачи
SQL Server
Имеет
права
что
владельцы
участники
роли
DBO
dbo_accessadmin
Может
добавлять
удалять
нее
пользователей
Windows
или
SQL Server (
помощью
системной
хранимой
процедуры
sp_grantdbaccess)
dbo_securityadmin
Может
управлять
разрешениями
ролями
записями
участников
ролей
создателей
объе
ктов
используя
операторы
GRANT, REVOKE
DENY)
db_backupoperator
Может
выполнять
команды
DBCC,
инициировать
процесс
фиксации
транзакций
создавать
резервные
копии
используя
операторы
DBCC, CHECKPOINT
BACKUP Transact
SQL)
db_ddladmin
Может
доба
влять
изменять
удалять
объекты
используя
операторы
CREATE, ALTER
DROP)
db_datareader
Может
считывать
данные
пользовательских
таблиц
представлений
имеет
право
использовать
оператор
SELECT)
db_datawriter
Может
изменять
или
удалять
данные
пользовательских
таблиц
представлений
имеет
право
использовать
операторы
INSERT, UPDATE
DELETE)
db_denydatareader
может
считывать
данные
пользовательских
таблиц
представлений
имеет
права
использовать
оператор
SELECT).
Эта
роль
может
использоваться
ролью
db_ddladmin,
чтобы
предоставить
администратору
право
создавать
объекты
принадлежащие
роли
DBO,
при
этом
запретить
чтение
важных
или
секретных
данных
содержащихся
этих
объектах
db_denydatawriter
может
изменять
или
уда
лять
данные
пользовательских
таблиц
имеет
права
использовать
операторы
INSERT, UPDATE
DELETE)
public
роль предназначена для предоставления разрешений сразу всем пользователям базы данных
Внимание!
Роль
public
содержится в каждой базе данны
х, включая системные базы данных. Ее нельзя удалить, а также
нельзя добавлять и удалять пользователей из нее. Разрешения, предоставленные роли
public
, наследуются всеми
остальными пользователями и ролями, поскольку они принадлежат к роли
public
по умолчани
ю. Следует
предоставлять роли
public
только разрешения, необходимые для всех пользователей.
Внимание
Члены ролей базы данных
db_owner
db_securityadmin
могут управлять членством в предопределенных ролях
базы данных. Но только члены роли базы данных
db_o
wner
могут добавлять членов в предопределенную роль
базы данных
db_owner
В роли уровня базы данных можно добавить любую учетную запись базы данных и другие роли SQL Server.
Каждый член предопределенной роли базы данных может добавлять другие имена входа
к той же роли.
Создание пользовательской роли
Для создания пользовательской роли можно воспользоваться:
Графическим интерфейсом
Management
Studio
из контекстного меню для контейнера
Имя_базы_Данных
Security
Roles
Database
Roles
Командой
При создании роли
помимо имени
можно указать
ее владельца
(если
владелец
не указан,
владельцем
роли
автоматически станет создавший ее пользователь базы данных). Если вы создаете роль при помощи графического
интерфейса, вы сможете с
разу назначить роль владельцем схем в базе данных
, предоставить ей разрешения и
добавить
пользователей, которые будут обладать правами этой роли.
Предоставление прав пользовательским ролям производится точно так же, как и обычным пользователям базы
данных
Роли приложений
оль приложения
application
role
используется для
предоставл
ения разрешений
не пользователю, а
приложению, из которого пользователь подключается к
базе данных


Принцип
использования
роли приложения
Создать роль приложения и присво
ить ей
необходимые
разрешения
Пользователи открывают приложение и регистрируются
SQL
Server
Для включения роли
приложение выполняет хранимую процедуру
Преимущества
использования роли приложения
гарантируется, что приложение
будет обладать необходимыми правами в базе данных;
администратору достаточно создать
учетную запись
соответствующего ей пользователя
в базе данных, без
необходимости настраивать
для него
разрешения в базе данных.
едостат
рол
приложени
пароль роли
приложения передается по сети открытым текстом (предусмотрена возможность использования
функции ODBC
Encrypt
(), но реальной защиты она не обеспечивает). Как правило, этот пароль можно
извлечь и просто из двоичного кода клиентского приложения.
Создание рол
и приложения производится
контейнера
Имя
Базы
Данных
Security
Roles
Application Roles
Этой роли невозможно назначить
пользователей, зато ей потребуется указать пароль, который будет
использоваться при активизации.
помощью
оманд
Transact
L
CREATE APPLICATION ROLE
Предоставление прав этой роли
осуществляется также как
обычным пользователям или ролям базы данных.
Пример кода клиентского приложения:
DECLARE @appCookie varbinary(8000);
--
Внимание
При желании, конечно, к исходным правам можно и не возвращаться. Но, к примеру, если нам потребуется во
время работы роли приложения обратиться к другой баз
е данных, мы не сможем получить в ней других прав,
кроме прав, предоставленных для специального пользователя
Управление
схем
ами
базы данных
Каждая БД после создания имеет схему
dbo
вля
ющуюся
схемой по умолчанию при создании объ
ктов БД.
Пользо
вателю можно назначить схему по умолчанию. В эту схему
SQL
Server
будет по умолчанию помещать
объекты, которые создает пользователь. Кроме того, искать объекты, к которым обращается пользователь
(например, в случае запроса вида
SELECT * FROM Table1
),
SQL
erver
также будет в первую очередь в схеме
пользователя
по умолчанию.
оздани
схемы
Для создания схемы можно воспользоваться:
Графическим интерфейсом
Management
Studio
контейнер
Имя_Базы_Данных
Security
Schemas
оманд


При создании схемы
необходимо указать ее имя. Также вы
ете
явно указать
кто будет являться
владельцем схемы
owner
name
и о
пределить разрешения на объекты схемы для пользователей или ролей
базы
данных.
Внимание
При создании схемы через
программный интерфейс, вы можете
создать в с
хеме таблицу или представление при
помощи команд
CREATE TABLE
или
5.4.1 Изменение и удаление
схемы
Для и
зменени
и удалени
схемы
вы можете воспользоваться:
Графически
интерфей
Management
Studio
контейнер
Имя_Базы_Данных
Security
Schemas
Команд
изменение схемы
Команд
удаление схемы
Внимание
Нельзя удалить схему, пока в ней присутствует хотя бы один объект.
Разрешения
в базах данных
SQL
Server
Разрешени
я SQL Server
подразделяются на две группы:
Разрешения на выполнение инструкций
позволяют пользователям создавать структуру хранения данных
(таблицы, представления, создание резервных копий и т.п.)
Разрешения на доступ к объектам
определяют права д
оступа пользователей к объектам БД
таблиц
представления
, хранимы
процедур
, пользовател
баз данных
и т.п.)
Внимание
SQL
Server
существует
возможность предоставлять разрешения на уровне схемы. Если
вы назначите
пользователю разрешени
я на схему, то он получит разрешения на все объекты этой схемы.
Перечень разрешений, предоставляемых на уровне схемы.
Разрешение
Описание
ALTER
Разрешение применять инструкции
CREATE
ALTER
DROP
к защищаемому объекту и всем
объектам в его иерархи
и. Единственное что нельзя менять
владельца.
CONTROL
Разрешение на владение объектом и всеми объектами в его иерархии.
DELETE
Разрешение удалять существующую информацию из таблиц.
EXECUTE
Разрешение выполнять хранимые процедуры и функции.
INSERT
Разрешение на вставку новых данных в таблицы.
REFERENCES
азрешение, которое можно предоставить для целей проверки ограничений целостности. Если
две таблицы связаны с помощью внешнего ключа, это разрешение, выданное для главной
таблицы, позволит пользо
вателям извлекать данные из внешней связной таблицы без наличия
отдельного разрешения
SELECT
для внешней таблицы.
SELECT
Разрешение извлекать даные
из таблицы или представления.Может быть определено на уровне
отдельных столбцов таблицы или предствления.
TAKE
OWNERSHIP
Разрешение принять на себя владение
объектом.
UPDATE
Разрешение модифицировать существующие данные в таблице или представлении, за
исключением добавленния новых строк или удаления имеющихся. Может быть определено на
уровне столбца.
VIE
DEFINITION
Разрешение на просмотр синтаксиса
TSQL
, использованного для создания защищаемого
объекта
CREATE
Разрешение на создание объектов.
IMPERSONATE
Разрешение одной регистрационной записи или пользователю подменять другую


Предоставление пр
ав на объекты в базе данных
Для каждого разрешения мы можем установить
четыре
значения:
GRANT
разрешение явно предоставлено;
WITH
GRANT
разрешение не только предоставлено данному пользователю, но он еще и получил право
предоставлять это разрешение друг
им пользователям;
DENY
явный запрет на выполнение действия, определенного данным разрешением.
Как в любых
сис
темах безопасности, явный запрет имеет приоритет перед явно предоставленными разрешениями
REVOKE
отозванное разрешение или отозванный запрет.
Определить
разрешения можно
из
графическ
ого
интерфейс
Management
Studio
воспользовавшись вкладкой
Permissions
свойств объекта,
на который вы определяете разрешения. Правда, эта вкладка предусмотрена не для всех объектов, для
которых можно предоставить
разрешения
. Для просмотра действующих разрешений пользователя или роли
базы данных можно воспользоваться кнопка
Effective
Permissions
при помощи команд
(предоставить разрешение),
установить явный запрет)
(отменить
явно предоставленно
е разрешение или запрет).
Например:
Изменение контекста выполнения
. Выражение
Execute
зменение контекста выполне
ния команд
Transact
SQL
возможность
действовать от имени другого
пользователя
(разрешение
IMPERSONATE
).
Предоставление права IMPERSONATE
помощью графического интерфейса:
Для того, чтобы одному пользователю БД (
user
1) предоставить право
IMPERSONATE
на объект другого
пользователя БД (
user
2), необходимо:
ткры
свойства
первого
пользователя
user
Management
Studio
и пере
йти
на вкладку
Securables
ать
на кнопку
Add
под списком
Securables
устан
овить
переключатель в положение
All
objects
the
types
и наж
ать
а кнопку
списке типов объектов выб
рать
Users
и наж
ать
на кнопку
загруженном списке пользователей выб
рать
второго
пользователя
user
и устан
овить
для него флажок в
столбце
Grant
напротив разрешения
С помощью
команды GRANT:
Соотве
тствующая команда
Transact
SQL
может выглядеть так:
Изменение контекста выполнения
После
предоставаления права
можно использовать возможности выражения
Чаще всего выражение
EXECUTE AS
используется в определениях программных модулей
Transact
SQL
(процедур и
ли функций)
. Это позволяет менять контекст выполнения только на время работы данной хранимой
процедуры или функц
ии, например:


В случае, если
выражение
использ
уется
храним
процедур
функци
, ему можно
передать несколько зарезервированных значений, которые можно подставлять вместо имени пользователя:
EXECUTE AS
CALLER
все команды в хранимой процедуре или функции будут выполнены с правами
текущего пользо
вателя
EXECUTE AS SELF
все команды в хранимой процедуре или функции будут выполняться от имени
пользователя, который создает или изменяет данную процедуру или функцию;
EXECUTE AS OWNER
все команды хранимой процедуры или функции будут выполняться от им
ени
текущего владельца этой хранимой процедуры или функции.
Выражение
можно использовать не только для изменения контекста выполнения на уровне базы
данных, но и на уровне сервера (то есть
учетн
запис
). Для этой цели ключевое слово
меня
ется на
LOGIN
например:
Резервное копирование и восстановление баз данных
SQL
Server
2012
актор
, которые нужно учитывать при принятии решения о том, как будет проводиться резер
ное
копирование:
требования к скорости вос
становления,
размер базы данных,
бюджет, который есть в вашем распоряжении,
требования к производительности и выбранные режим восстановления базы данных и т.п.
Что нельзя сделать стандартными средствами резервного копирования
SQL
Server
невозмож
но производить резервное копирование на удаленный стриммер;
если у вас несколько серверов
SQL
Server
, вы не сможете управлять процессом резервного
копирования из единого центра: запускать резервное копирование придется на каждом сервере отдельно;
нет
возможности производить резервное копирование отдельных объектов базы данных
(только баз
данных вместе или отдельных файлов данных и файловых групп);
нет возможности генерировать отчеты о проведения резервного копирования в пользовательском
формате.
анирование
резервного копирования
Выбор оборудования для хранения резервных копий
Для хранения резервных копий можно использовать
ленточны
библиотек
(самый дорогой вариант
десятки тысяч долларов)
. Эти устройства отличаются
высокой скоростью рабо
ты и надежностью. Часто с ними поставляется специальное программное
обеспечение для проведения резервного копирования, оптимизированно
е для работы с этим устройством
стриммер,
локально
подключенн
к компьютеру, на котором работает
SQL
Server
жестк
диск или
RAID
массив: либо подключенн
локально к тому компьютеру, на котором работает
SQL
Server
, либо подключенн
к другому компьютеру. В этом случае резервное копирование может
производиться по сети.
Устройства резервного копирования
В SQL Ser
ver используется два типа устройств резервного копирования
постоянное и временное.
Временное устройство
представляет собой файл, создаваемый в момент
формирования
резервной копии.
Временное устройство
удобно использовать для создания копии БД, пересылаем
ой в другой офис.
Например:
Постоянные у
стройства резервного копирования
backup
devices
это специальные объекты, которые
хранятся в базе данных
Master
и являются представлениями резервных но
сителей.
Постоянные устройства


создаются перед
формированием резервной копии.
Их единственное назначение
хранить информацию о
пути к физическому файлу в
или о стриммере.
Постоянные устройства резервного копирования можно
использовать многократно, можн
о добавлять к ним данные, что позволяет автоматизировать операцию
резервного копирования.
Создать устройство
резервного копирования
можно:
используя
графическ
интерфейс
Management
Studio
из контейнера
Server
Objects
Backup
Devices
из кода
Transact
при помощи хранимой процедуры
, например:
После создания устройство можно использовать для резервного копирования.
Например
.3 Типы резервного копирования
SQL
Server
предусмотрено
пять типов
резервного копирования
олное резервное копирование
full
backup
или
base
backup
резервную копию записываются все данные,
котор
ые есть в
БД, при этом п
устые страницы не копируются
. П
олное резервное копирование
производится в
оперативном
режиме
online
, без отключения пользователей.
Стандартными средствами
SQL
Server
2012
ельзя произвести
резервное копирование
тех баз данных и фа
йлов, которые находятся в
автономном
режиме
offline
. Их резервное копирование следует производить средствами
азностн
ое резервное копирование
full
differential
backup
).
резервную копию записываются все
изменения, которые произведены с момента
посл
еднего
полного
резервного копирования.
азностное
резервное копирование можно использовать только в дополнение к полному
резервному копированию
езервное копирование журналов транзакций
transaction
log
backup
).
Возможно только если БД находится
в режиме
восстановления
full
или
bulk
logged
. В резервную копию записываются
только фрагменты
журнал
транзакций,
содержащие записи, сделанные после последнего резервирования журнала транзакций. Резервное
копирование журналов транзакций можно использовать только в
дополнение к полному резервному
копированию.
езервное копирование файлов и файловых групп
Применяется
для
создания резервных копий отдельных
файлов или групп файлов.
Для обеспечения целостности информации при проведении резервного
копирования файлов и ф
айловых групп
SQL
Server
2012
автоматически определяет поколения резервных
копий. Пока не будет завершено резервное копирование всех файлов/файловых групп в рамках одного
поколения, журнал транзакций очищаться не будет.
Копирующее резервное копирование
only
backups
). Оно предназначено в первую очередь для переноса
данных между компьютерами в виде резервных копий. Такой тип резервного копирования разделяется на
полное (в резервную копию будут помещены те же данные, что и при обычном полном резервном
опировании) и разностное (аналог обычного разностного). Этот тип резервного копирования отличается
только тем, что в столбце
copy
only
в таблице
backupset
базы данных
(в эту таблицу помещаются
данные о всех созданных резервных копиях) такие резервн
ые копии помечаются специальным флагом. За
счет этого флага резервные копии, созданные в режиме
, не учитываются в последовательности
обычных резервных копий. Резервное копирование в режиме
(а также восстановление созданных
этим способом
копий) невозможно произвести при помощи графического интерфейса
Management
Studio
Вместо этого вам потребуется воспользоваться ключевым словом
в командах
.4 Расписание резервного копирования
Корпорация
Microsoft
считает иде
альным вариантом
следующее
расписание резервного копирования:
раз в неделю
полное резервное копирование;
раз в сутки (каждую ночь)
разностное резервное копирование;
несколько раз в день
резервное копирование журналов транзакций.
Этот вариант наилучши
м образом подходит для больших баз данных (десятки и сотни Гбайт), которые активно
изменяются.
любом случае резервное копирование лучше производить тогда, когда нагрузка на сервер минимальна (обычно
ночью).
Рекомендуется всегда вместе с резервным копиров
анием пользовательских баз данных производить резервное
копирование баз данных
aster


Проведение
резервного копирования
.1 Средства для
выполнения
резервного копирования
Для выполнения резервного копирования можно воспользоваться:
скрипт
ransact
SQL
с командой
Backup
, который запускается по расписанию в автоматическом режиме
(при помощи задания
SQL
Server
Agent
графически
м
интерфейс
Management
Studio
. П
ри помощи него очень удобно
автоматически
сгенерировать скрипт
Transact
SQL
. Для это
й цели можно настроить на экране резервного копирования
нужные параметры и нажать на кнопку
Script
в верхней части экрана;
план
обслуживания базы данных (
Maintenance
Plan
).
При помощи плана обслуживания вы сможете не
только создать задание на резервное к
опирование базы данных, но и сразу запланировать его для
выполнения
по расписанию, настроить генерацию
отчета о резервном копировании
утилитой командной строки
. Эта утилита оставлена для целей обеспечения обратной
совместимости,
но,
тем не
менее,
она остается самым простым способом провести резервное копирование
баз данных
SQL
Server
по расписанию с одновременным созданием отчета;
Параметры резервного копирования
Для выполнения
резервного копирования можно
воспользоваться
графическим интерф
ейсом
Management
Studio
из контекстного меню для соответствующей базы данных выбрать команду
Tasks
Back
контекстным меню для контейнера
Server
Objects
Backup
Devices
командой
BACKUP
Параметры резервной копии
, задаваемые через гр
фический интерф
ейс и командой BACKUP
При проведении резервного копирования можно выбрать множество параметров. Для каждого
них
представлено название на графическом интерфейсе
Management
Studio
и соответствующий синтаксис команды.
Database
имя базы данных, резервн
ое копирование которой мы будем производить. В команде
BACKUP
указывается как
BACKUP DATABASE имя_базы данных
Recovery
model
справочная информация о текущем режиме восстановления БД. Изменить режим
восстановления можно только из свойств базы данных
Back
up type
(Full, Differential, Transaction Log)
тип
резервного
копирования
Для полного или
разностного резервного копирования используется команда
(для разностного еще
указывается параметр
), для резервного копирования жур
нала транзакций
команда
. Обратите внимание, что в скрипте вы можете также указать параметр
который определяет копирующий режим. На графическом экране выбрать его вы не сможете;
Backup
component
выбор резервного копирования вс
ей базы данных или отдельных файловых групп
(отдельных файлов)
. В команде
для указания файлов или файловых групп используются ключевые
слова
Backup
set
name
имя резервной копии (
backup
set
набор носителей, которые относятся к од
ной
резервной копии). В команде
указывается при помощи параметра
. Получить информацию об
имени резервной копии можно при помощи кнопки
Contents
на том же экране или при помощи команды
Description
описание резервной копии. У
казывается при помощи параметра
, просмотреть
можно так же, как и имя
Backup
set
will
expire
срок (или дата), после которой резервная копия будет считаться устаревшей и
перезаписываться SQL Server автоматически. Значение 0 означает, что копия
никогда не будет считаться
устаревшей. В команде
для указания срока/времени устаревания используются параметры


можно указать файл, стриммер
или логическое устройство, на котором будет создаваться второй
экземпляр резервной копии (полностью идентичный первому).
Overwrite
media
эти параметры (на графическом экране они расположены на вкладке
Options
позволяют определить режим перезаписи носит
еля (файла на диске или магнитной ленты). В вашем
распоряжении
следующие варианты
Append
the
existing
media
set
(соответствует параметрам
не перезаписывать
заголовок носителя и
NOINIT
не перезаписывать старую резервную копию);
Overwrite
all
existing
backup
sets
(соответствует параметрам
заголовок носителя
сохранится, но все старые резервные копии будут перезаписаны);
Check
media
set
name
and
backup
set
expiration
(соответствует параметрам
перезап
ись будет произведена только в том случае, если имя резервной копии совпадает с
существующей на носителе, но существующая резервная копия устарела);
Backup
new
media
set
and
erase
all
existing
backup
sets
(соответствует параметрам
вне зависимости от заголовков и времени устаревания существующей резервной копии
носитель (лента или файл) будут полностью перезаписаны, включая их заголовок);
При использовании команды
у вас есть еще одна возможность контролировать перезапись:
ределить пароль для резервной копии при помощи параметра
Verify backup then finished
проверить целостность резервной копии после завершения резервного
копирования. Проверяется размер, структура заголовка и соответствие контрольной сумме (е
сли она была
записана). Никакой параметр команды
этому параметру не соответствует. Вместо этого после
окончания резервного копирования будет выполнена команда
RESTORE VERIFYONLY
Perform
checksum
before
writing
media
при установке этого парамет
ра
SQL
Server
будет, во
первых,
проверять, контрольную сумму (или контрольный бит) для каждой страницы базы данных, а, во
вторых,
записывать свои контрольные суммы для резервной копии. Этому параметру соответствует ключевое слово
в команде
BACKUP
Continue
error
продолжать или нет резервное копирование, если при проверке контрольных сумм в
базе данных были обнаружены ошибки. Соответствует параметру
CONTINUE_AFTER_ERROR
. По умолчанию
используется
STOP_AFTER_ERROR
при обнаружении подобных ошиб
ок резервное копирование
останавливается
Truncate
the
transaction
log
переключатель устанавливается в это значение по умолчанию, если вы
производите резервное копирование журнала транзакций. Он означает "очистить журнал транзакций после
резервного копир
ования". Поскольку этот режим используется то умолчанию, то в команде
ему
ничего не соответствует;
Back
the
tail
the
log
and
leave
the
database
the
restring
state
этому
значению
переключателя
соответствуют
параметры
команде
Они означают: произвести
резервное копирование журнала без его очистки и перевести базу данных в состояние
(при этом
она станет недоступной для пользователей). Такой режим используется только в ситуации, когда для ваш
их
серверов настроена автоматическая передача журналов транзакций (
log
shipping
) и вы хотите поменять
ролями главный и резервный сервер;
В команде
вам доступны еще несколько важных параметров, которых нет на графическом
экране:
STANDBY
использ
уется вместо
в той же ситуации. Отличается тем, что база данных
для пользователей будет открыта, но в режиме
(то есть она будет доступна только на чтение);
LOG
TRUNCATE
ONLY
(эти ключевые слова являются синонимами)
возможность очист
ить
журнал транзакций без проведения резервного копирования. Обычно используется тогда, когда место
в журнале транзакций внезапно кончилось, и вам нужно как можно быстрее обеспечить пользователям
возможность нормальной работы
Unload
the
tape
after
backup
соответствует параметру
команды
BACKUP
. При использовании
этого параметра картридж автоматически извлекается из стриммера по окончании резервного копирования.
Этот параметр устанавливается по умолчанию при использовании стриммера. Запретить автомат
ическое
извлечение можно при помощи параметра
Rewind
the
tape
before
unloading
соответствует параметру
и устанавливается по умолчанию.
Перед извлечением картридж будет перемотан на начало. Запретить перемотку можно при помощи
параметра
. В
SQL
Server
появилась новая команда, которая позволяет просто перемотать
ленту в картридже на начало, не выполняя других операций:


Параметры резервной копии, задаваемые только командой BACKUP
BLOCKSIZE
возможность ука
зать оптимальный размер блока для стриммера. Параметр необязательный
и влияет только на производительность (в некоторых ситуациях);
STATS
через сколько процентов от общего объема резервного копирования будут выдаваться
информационные сообщения. По умолча
нию
через каждые 10 процентов;
COPY
ONLY
возможность выбрать копирующий тип резервного копирования;
RESTART
в предыдущих версиях
SQL
Server
этот параметр позволял продолжить приостановленную
операцию резервного копирования (например, после вставки но
вого картриджа, когда на старом
закончилось место). В
SQL
Server
игнорируется;
READ_WRITE_FILEGROUPS
возможность провести резервное копирование только файловых групп,
доступных для записи (открытые только на чтение будут игнорироваться)
Примеры ком
анды
олное резервное копирование базы данных
на диск:
азностное резервное копирование той же базы данных
Команда на проведение резервного копирования журнала транзакций:
граничения, которые налагаются на
ри вы
полнении резервного копирования
нельзя
создавать новые файлы базы данных и у
далять старые;
нельзя уменьшать размер существующих файлов
ельзя производить резервное копирование базы данных, которая находится в
автономном
режиме
offline
рекомендуется производить резервное копирование баз данных только в то время, когда нагрузка
на сервер
со стороны пользователей минимальна.
.3 Получение информации о резервном копировании и создание отчетов
Для того, чтобы создать отчет о резервном копировании можно:
воспользоваться стандартным форматом отчетов о резервном копировании
, создава
емом с помощью
утилиты командной строки
SQLMAINT
Рис.
5.
1.
Стандартная форма отчета о резервном копировании
создать отчет в своем собственном формате
при помощи информации из таблиц БД


Основы восстан
ления баз данных
3.1 Терминалогия
восстановления БД из резервной копии
store
(восстановление с носителя)
о время этого процесса производится перенос данных из резервной
копии на сервер баз данных.
ecovery
восстановление работоспособности
устран
ение
все
проблем, которые могут быть с
БД,
открытие БД
для доступа польз
ователей. Процедура
recovery
должна быть произведена после
восстановления с носителя
restore
, однако она запускается и в других ситуациях
ailure
сбой
в работе базе данных
например,
возникли
ошибки на диске, на котором была расположена
и прог
раммные файлы сервера при этом остались в рабоч
м состоянии, и вам потребуется
произвести восстановление только базы данных.
isaster
катастрофический отказ сервера
например, из
за скачка напряжения, пожара, затопления и т.п.
При восстановлении в случ
такой ситуации
вам придется вначале установить
и программное
обеспечение
SQL
Server
, а потом уже производить восстановление рабочих баз данных.
3.2 Общий план восстановления из резервной копии
Общий план восстановления:
роизводится процедура
resto
необходимая информация восстанавливается с носителя.
Официальное
название этого этапа
фаза копирования данных
data
copy
phase
сли производится также восстановление журналов транзакций, то следующим действием
SQL
Server
записывает в базу данных в
сю информацию о завершенных транзакциях из журнала транзакций. Эта
операция называется
roll forward
(завершение). Сам этап называется
фазой повтора
redo
phase
а оба
первых этапа вместе
этап завершения
roll
forward
step
алее в версии
SQL
Server
Enterprise
Edition
(только в этой редакции) пользователям открывается
доступ к
. Открытие доступа н
а этом этапе
это новая возмож
ность
SQL
Server
2012
. Она имеет свое
название:
fast recovery
(быстрое восстановление). Если же пользователь на этом этапе
попытается
обра
титься к данным, измененным нез
ершенными транзакциями, то доступ ему будет закрыт за счет
механизма блокировок;
Затем
SQL
Server
обнаруживает в ж
нале все незавершенные транзакции и отменяет их. Эта операция
называется
rollback
откат т
ранзакций, а сам этап
называется
этапом отката
rollback
phase
После этого к
открывается доступ в обычном режиме во всех версиях
SQL
Server
нформация о восстановлении
записывается в служебные таблицы
restorehistory
restorefile
Подготовка к восстановлению
Перед восстановлением
необходимо
запретить пользователям доступ к подлежащей восстановлению базе
данных. Это можно сделать разными способами:
установить для параметра
Restrict
Access
свойств
БД
значение
. Если же пользователи
вашей базы данных
могут подключаться с
правами
, то для этого параметра можно установить
значение
если на сервере имеется только одна рабочая база данных, можно на время восстановления отключить
сетевой доступ к
SQL
Serve
. Для этого можно, например, на время восстановления отключить
протокол
TCP
в контейнере
SQL
Server
Network
Configuration
SQL
Server
Configuration
Manager
если БД сильно повреждена и находится
автономном режиме
offline
необходимо
отсоедини
ть


RESTORE
HEADERONLY
возвращает информацию
имени резервной копии, ее типе, описании,
времени создания и времени устаревания и другую служебную информацию резервной копии;
RESTORE
LABELONLY
выводится
служебная информация о метке носителя. В основном она
нужна для картриджей стриммеров, но может
применяться и для файлов.
Пример:
Проведение восстановления
Запустить восстановление можно
при помощи графического интерфейса
Management
Studio
контекстное меню для контейнера
Databases
Restore
Database
контекстное меню для базы данных
Tasks
Restore
при
помощи
команды
RESTORE
Параметры, используемые при восстановлении БД из резервной копии, приведены ниже.
Destination
restore
database
имя восс
тана
ливаемой
БД, которое может быть выбрано из списка
или введено вручную.
point
time
возможность провести восстановление на определенный момент времени.
Используется только при
восстановлении журналов транзакций. Этот переключатель соответствует
параметру
команды
, например,
Для команды
можно указать еще два параметра:
восстановление на метку транзакции
. Обычно
метка тран
закции применяется перед
выполнением
рискованных операций. Создать метку транзакции можно очень просто:
Для восстановления потребуется использовать параметр
, чтобы
остановиться точно на этой
метке или
WITH STOPBEFOREMARK = 'mark1'
для остановки точно перед
этой меткой
восстановление на номер последовательности в журнале транзакций
log
sequence
number
LSN
Номер
LSN
есть у каждой операции, которая зафиксирована в журнале транзакций. После
того, как
номер
LSN
найден, использ
уются
параметры
например:
From
database
для обнаружения резервных копий будет использоваться истор
ия резервного копирования
из таблиц базы данных
sdb
. В списке можно выбрать не только текущую базу данных, но и другие базы
данных, которые есть на этом сервере;
From
device
вам потребуется указать местонахождение резервной копии явно. Эта возможность
спользуется
в тех си
туациях, когда вам нужно восстановить базу данных на другой сервер, или
местонахождение резервной копии изменилось
Select
the
backup
sets
restore
в этом списке вам потребуется установить флажки напротив тех
резервных копий, котор
ые вы планируете восстановить. Обратите внимание, что флажки можно поставить
напротив
нескольких резервных копий. В этом случае для каждой выбранной резервной копии будет
выполнена отдельная команда
Дополнительные параметры восстановления
Эти
пара
метры представлены на вкладке
Options
окна восстановления базы данных
Management
Studio
Overwrite
the
existing
database
установленный флажок позволяет перезаписать существующую базу
данных. Фактически он отменяет проверки, которые призваны
не допустить
потери данных в случае
ошибочного восстановления.
Для отмены проверок используется параметр
WITH
REPLACE
в команде
RESTORE
Таких проверок предусмотрено три:
запрещено восстанавливать резервную копию
чужой базы данных на сервер, если под этим именем на
вере есть своя база данных;


запрещено перезаписывать файлы, которые относятся к
, находящимся в
автономном
режиме
offline
, и, кроме этого, вообще любые файлы, которые не относятся к
SQL
Server
запрещено производить восстановление
, если на ней остал
часть журнала транзакций, резервное
копирование которой еще не производилось (
tail
log
Preserve
the
replication
settings
сохранить настройки репликации при восстановлении. Соответствует
параметру
KEEP_REPLICATION
команды
. Обыч
но используетс
я только тогда, когда база данных
одновременно участвует и в репликации, и в автоматической
доставк
е журналов
log
shipping
Prompt before restoring each backup
выводить приглашение перед восстановлением каждой следующей
резервной
копии из выбранного ва
ми списка. Обычно этот параметр используется только тогда, когда
каждая копия лежит на своем картридже стриммера, и вам нужно их менять. Этот параметр можно
настроить только на графическом экране
Management
Studio
(поскольку в коде
Transact
SQL
для
восстан
овления каждой резервной копии вам придется использовать свою собственную команду
Restrict
access
the
restored
database
ограничить доступ к
восстанавливаемой
базе данных. Это значит,
что после восстановления доступ будет открыт только членам
роли базы данных
и членам
серверных ролей
dbcreator
. Этот параметр обычно применяется в тех ситуациях, когда после
восстановления базы данных вам необходимо произвести дополнительные проверки или внести
исправления.
Ему соответствует п
араметр команды
RESTORE WITH RESTRICTED_USER
Restore
the
database
files
позволяет определить новый путь для
восстанавливаемых
файлов баз
данных.
Этому флажку в команде
соответствует параметр
, например:
Recovery
state
определяет, будет ли
открыта для пользователей после окончания восстановления с
носителя.
В вашем распоряжении
три варианта:
WITH
RECO
VERY
восстановление в обычном режиме. Этот параметр используется по
умолчанию;
WITH
NORECOVERY
после окончания процесса восстановления процедура
RECOVERY
не
начнется. Базы данных останется в нерабочем состоянии восстановления. Этот параметр
используетс
если вы хотите
восстановить дополнительн
ую резервную копию (
например, резервную копию журнала
транзакций
WITH
STANDBY
процедура
начнется,
но вся
информация о всех отмененных
незавершенных транзакци
ях будет записана в файл отмены
ользовател
и смогут обращаться к
БД в
режиме
read
only
при этом
сохраняется возможность
восстановления
следующих резервных копий
журналов транзакций.
Параметры восстановления используемые только в командном режиме
Данные
параметр
нельзя выбрать при помощи графичес
кого интерфейса:
PAGE
возможность указать
определенные страницы в
, которые будут восстанавливаться.
CHECKSUM
NOCHECKSUM
возможность включить или отключить проверку контрольных сумм при
восстановлении. По умолчанию такая проверка производится, а в
случае выявления расхождений
восстановление прекращается и выдается сообщение об ошибке
CONTINUE
AFTER
ERROR
STOP
ERROR
будет ли остановлено восстановление в случае
обнаружения ошибок в контрольной сумме.
По умолчанию будет
MEDIANAME
возможность
указать имя носителя, с которого производится восстановление.
Используется только для дополнительных проверок
MEDIAPASSWORD
PASSWORD
при помощи эт
параметр
вам потребуется указать парол
и для
носителя и резервной копии соответственно, которые
был
использован
при резервном копировании. Если
вы производите восстановление резервной копии на другой сервер, то пароль указывать не нужно
PARTIAL
возможность указать, что в ходе данного сеанса восстановления мы будем производить
восстановление только о
дной файловой группы (если резервное копирование про
изводилось по файловым
группам)
RESTART
возможность продолжить операцию восстановления с того момента, когда она была прервана;
REWIND
NOREWIND
производить ли после окончания восстановления
перемот
ку ленты в картридже
или нет. По умолчанию используется значение
, то есть производить;
STATS
определяет частоту появления информационных сообщений. По умолчанию информация о ходе
восстановления выводится после восстановления каждых 10 (примерно) п
роцентов резервной копии;


UNLOAD
NOUNLOAD
выгружать картридж из
стриммера
после окончания восстановления или нет.
По умолчанию используется значение
, то есть выгружать.
включает в себя также и
перемотку ленты на начало, и поэтому вместе
использоваться не может.
Специальные ситуации восстановления
.1 Восстановление
базы данных в оперативном режиме (
online
Оперативное восстановление
online
restore
возможность
восстановлени
на работающей базе данных.
Если
возможно,
SQL
Server
автоматически применяет режим оперативного восстановления при восстановлении
отдельных файлов или файловых групп, а также при страничном восстановлении.
Чтобы запретить применение оперативного восстановления можно перед восстановлением выполнить ко
манду
Ограничения:
необходимо
перевести в
автономный
режим
offline
тот файл или файловую группу, восстановление
которого вы производите.
Остальные
файлы или файловые группы могут оставаться в рабочем режиме.
резервное копиров
ание на работающей базе данных может использоваться только для
, которые работают
в режиме восстановления
full
или
bulk
logged
оперативное
восстановление первого файла базы данных или первичной файловой группы (в которых
находятся системные таблицы и ка
рта размещения данных) производить нельзя.
Пример
Восстановление отдельных страниц базы данн
Еще одна новая возможность
SQL
Server
возможность
восстанов
ления отдельных страниц данных
page
restore
).
По умолчанию восстановление запускается в оперативном режиме, без отключения пользователей от базы
данных. Больше 1000 поврежденных страниц
восстанавливать нельзя.
Ограничения:
используется редакция
Enterprise
Edition
восстанавливаемые страницы не относятся к журналу
транзакций
, к служебным страницам базы данных и
полнотекстовым каталогам;
база данных работает в режиме
full
или
bulk
logged
айловые группы, к
которым
относятся восстанавливаемые страницы, доступны и на чтение, и на запись.
Порядок действий при восстановлении отдельных страниц:
наруж
ение
наличия
поврежденных страниц
при просмотре журналов событий SQL Server
или
при
помощи ко
манд DBCC (например, DBCC CHECKDB
Сам SQL Server выявляет поврежденные страницы
при
помощи анализа контрольных сумм или контрольных бит.
олуч
ение
информаци
о номерах поврежденных страниц
и ном
рах файлов, в которых эти страницы
находятся
Эта информаци
я хранится в таблице
suspect_
базы данных
sdb
столбец
омер
страниц
столбец
file_id
номера файлов
Запуск
команд
на восстановление базы данных:
Восстановление
системных баз данных
Особенности в
осстановлени
базы данных
роизводить восстановление
базы данных
можно
только
после перезапуска сервера в
однопользовательском режиме
sqlservr.exe
сли
сильно
повреждена
, то сервер может не запуститься. В этом случае,
необходимо
перестроить
базу данных
. В
SQL
Server
для этой цели используется программа установки
SQL
Server


ля базы данных
доступен только один тип резервного копирования: полное резервно
е копирование
всей базы данных. Поэтому восстановить мы можете только всю базу данных
Master
целиком
осле восстановления базы данных
сервер автоматически перезагру
жается
осле перестроения базы данных
необходимо восстанов
ить
баз
данных
После восстановлени
Master
, рекомендуется проверить, не возникло ли
следующих
проблем на
SQL
Server
учетн
ыми
запис
можно использовать хранимую процедуру
sp_validatelogins
с пользователями баз данных
можно
использовать хранимую
процедуру
со списком баз данных на сервере. Если какой
то базы данных в списке нет, но файлы ее остались на диске,
эту базу данных можно заново
присоединить
к серверу.
Автоматизация администрирования
SQL
Server
2012
ногие административные операции на сервере являются повторяющимися
резервное копирование;
проверк
целостности баз данных;
загрузк
и выгрузк
данных;
перестроение индексов и дефрагментаци
При этом часто
необходимо, чтобы администратор немедленно
извещался о каки
то важных событиях на
сервере.
1. Автоматизация административных операций средствами
SQL
Server
Agent
SQL
Server
Agent
SQL
Server
Agent
служба
SQL
Server
предназначенная для
автоматизация выполнения административных
операций.
Основными объектами данной службы являются:
задани
jobs
именованны
набор
действий, которые можно выполнять по расписанию;
предупреждени
alerts
действи
, которые выполняются в ответ на событие, происшедшее на
SQL
Server
. События
это либо ошиб
ки с определенным номером на
SQL
Server
, либо выход счетчика
производительности за
определенные
границы, либо специальные события
WMI
оператор
operators
запис
в адресной книге, на которые будут отправляться сообщения.
Требования
Для использования ав
томатизации административных операций необходимо:
чтобы служба
SQL
Server
Agent
работала
чтобы
SQL
Server
Agent
работал от имени доменной учетной записи
той же, от имени которой работает сам
SQL
Server
) и
эта доменная учетная запись обладала на компьюте
ре пр
авами локального администратора;
чтобы параметры
SQL
Server
Agent
соответствовали вашим потребностям.
ля
SQL
Server
Agent
предусмотрена своя система журналов, при помощи которой можно получить информацию
всех происходящих с ним событиях. Просмотр
еть эти журналы можно из контейнера
SQL
Server
Agent
Error
Logs
(Журналы ошибок) в
Management
Studio
1.2. Параметры настройки
SQL
Server
Agent
Параметры
SQL
Server
Agent
, как и большинства других объектов
SQL
Server
, можно изменить двумя
способами:
при помощи графического интерфейса
Management
Studio
. Для этого достаточно открыть свойства
контейнера
SQL
Server
Agent
Object
Explorer
при помощи специальных хранимых процедур
например,


Параметр
Описание
Вкладка
General
Auto restart SQL Server
if it stops unexpectedly
Автоматически перезапускать
SQL
Server
при неожиданной ост
ановке.
SQL
Server
Agent
будет контролировать работу службы
SQL
Server
и при необходимости
запускать его заново.
Auto restart SQL Server
Agent if it stops
unexpectedly
Автоматически перезапускать
SQL
Server
Agent
при неожиданной остановке. Этот
параметр
определяет, будет ли
SQL
Server
контролировать работу службы
SQL
Server
Agent
и при необходимости производить перезапуск
File name
разделе
Error Log
это путь к текстовому файлу протокола работы службы SQL Server Agent.
Просмотреть этот протокол можно п
ри помощи контейнера
SQL Server
Agent
Error Logs
(Журнал ошибок)
Include
execution
trace
messages
Включить сообщения трассировки. Если этот флажок установлен, то в файл протокола
будет также записываться трассировочная информация для процесса
SQL
Server
Agent
Write
OEM
file
Записывать файл в формате
OEM
. По умолчанию текстовый файл протокола создается
в формате Юникод. Если вам нужен файл в обычном текстовом формате, можно
установить этот флажок
Net
send
recipient
Получатель по
Имя (
адре
компьютера или имя пользователя,
которому будут автоматически передаваться по
Вкладка
Advanced
Forward events to a
differ
ent server
Перенаправлять события на другой сервер. По умолчанию, если на вашем компьютере
установлено несколько экземпляров
SQL
Server
, все сообщения будут передаваться на
тот экземпляр, который был установлен первым.
Unhandled events
группе
Events
еперехваченные события. На другой
SQL
Server
будут передаваться записи только о
тех событиях, для которых не настроены предупреждения
All events
группе
Events
Все события. Будет передаваться информация о
всех событиях
If event has severity at or
abov
группе
Events
Если у события важность находится на уровне или выше. Возможность настроить
фильтр для передаваемых сообщений по их важности. По умолчанию используется
самый низкий уровень 001, поэтому передаваться будут все сообщения
Define
idle
CPU
ndition
Определить условия простоя центрального процессора. Возможность определить для
задания момент
запуска
при наименьшей загруженности ЦП.
Average CPU usage falls
below
Средняя загрузка центрального процессора падает ниже… (по умолчанию 10
процентов)
And remains below this
level for
И остается ниже этого уровня в течение… (по умолчанию 600 секунд, то есть 10
минут)
Вкладка
Alert
system
Enable
mail
profile
Включить почтовый профиль. Если этот флажок установлен,
SQL
Server
Agent
получает возможность
взаимодействовать с электронной почтой и в нашем
распоряжении появляется еще две возможности:
Mail
system
Почтовая система. Возможность выбрать одну из двух систем для взаимодействия с
электронной почтой:
Database
Mail
SQLiMail
SMTP
) или
SQLMail
MAPI
). При
помощи кнопки
Test
(Проверить) можно проверить работоспособность настроенных
параметров для работы с электронной почтой, отправив пробное сообщение
Save copies of the sent
messages in the Sent
Items folder
Сохранять копии отправленных сообщений в п
апке
Sent Items.
Эта возможность
доступна только тогда, когда для отправки сообщений используется протокол
MAPI

значит, используется подсистема
SQLMail
Чтобы параметры, связанные с настройками электронной почты, вступили в силу, службу
SQL
Server
Agen
необходимо перезапустить
To line
CC line
Subject
разделе
Pager e
mails
возможность определить префиксы и суффиксы для строк
Тема
соответственно


Параметр
Описание
Include body of e
mail in
notification message
Включить тело письма в уведомля
ющее сообщение. Если этот флажок установлен, то
на пейджер или сотовый телефон будут отправляться уведомления (о перехваченной
ошибке или результатах выполнения задания) целиком. Если этот флажок снят, то на
пейджер или телефон придет краткое уведомление б
ез подробной информации
Fail
safe
operator
"оператор последней надежды".
Replace tokens for all job
responses to alerts
Заменять маркеры для всех заданий, которые запускаются в ответ на оповещения.
Этот параметр определяет, можно ли будет использовать
специальные
подстановочные символы в параметрах заданий, которые запускаются автоматически
при срабатывании предупреждений
Вкладка
System
Shutdown time
out
interval (in seconds)
Время ожидания при отключении (в секундах).
ремя
на завершение
выполн
ющегося
задани
я.
По истечении
указанного
времени работа задани
е будет
завершено принудительно
step
proxy
account
Учетная запись
Windows
, от имени которой в ходе выполнения заданий будут
выполняться различные действия в
тот параметр доступен толь
ко для служб
SQL
Server
Agent
, которые входят в состав
SQL
Server
7.0 и 2000 (если вы решили
администрировать их из
Management
Studio
). Для
SQL
Server
учетные записи
прокси настраиваются из контейнера
SQL
Server
Agent
Proxies
кладк
Connection
lias
local
host
server
Псевдоним для локального сервера
севдоним для экземпляра
SQL
Server
(он
обязательно должен быть расположен на том же компьютере), к которому будет
подключаться
SQL
Server
Agent
. Этот параметр нужно заполнять в том случае, если
для
"нормального имени"
SQL
Server
на вашем компьютере уже существует какой
то
другой псевдоним, перенаправляющий запросы к нему на другой сервер
SQL
Server
connection
Подключение к
SQL
Server
. В
озможность определить учетную запись, которая будет
использоват
ься службой
SQL
Server
Agent
для подключения к
SQL
Server
кладк
History
Limit size of job history
log
Ограничить размер жур
нала истории выполнения заданий. Е
сли этот флажок снят, то
старая информация о выполнении заданий из журналов событий
SQL
Serve
Agent
удаляться не букдет
. Вам потребуется удалять ее вручную. Если же этот флажок
установлен (по умолчанию), то можно настроить два дополнительных параметра:
Maximum job history log
size (in rows)
максимальное количество записей для истории выполнени
я заданий (в строках)
Maximum job history
rows per job
максимальное количество записей для одного задания
Automatically
remove
agent
history
Автоматически удалять историю агента
. В
озможность определить, через какое время
записи о истории выполнения зада
ний будут удаляться автоматически
. Работа с заданиями
SQL
Server
Agent
Задания
jobs
это именованные наборы действий, которые можно запланировать для выполнения по
расписанию. Задания могут создаваться и в автоматическом режиме, например, при настр
ойке доставки журналов
или репликации.
Для создания нового задания:
Раскрыть котейнер
Jobs
(Задания) в
SQL
Server
Agent
з контекстного меню для этого контейнера выбрать
команд
New
. Откроется окно, аналогичное
представленному на рис.
астроить
свойства задания.


Рис.
6.
1.
Окно свойств задания
SQL
Server
Agent
Для копирования задания с одного сервера на другой:
Выбрать задание, для которого необходимо создать копию;
контекстном меню для этого задания выбрать команду
Script
(Отскриптоват
ь задание как)
CREATE
New
Query
Editor
Window
(Новое окно редактора запросов). В
окно редактора кода будет
загружен скрипт с командами на создание задания с аналогичными параметрами
справить некоторые параметры в скрипте, сохранить его и запустит
ь на выполнение на другом сервере.
Данным
способ
можно
воспользоваться
и для получения информации о хранимых процедурах, которые можно
использовать для создания заданий из кода
Transact
SQL
2.1. Параметры заданий.
На вкладке
General
(Общие) вы может
е настроить или просмотреть общие параметры для задания:
Name
(Имя)
Имя для создаваемого задания. Используйте любое удобное для вас словосочетание
Owner
(Владелец)
владелец данного задания. По умолчанию владельцем становится тот, кто это задание
созда
л. Информация о владельце обычно используется для определения прав, с которыми задание может
выполняться
Category
(Категория)
используется для группировки заданий и для сортировки при отображении заданий в
Management
Studio
Description
(Описание)
описа
ние задания
Enabled
(Включено)
если задание в настоящее время вам не нужно, но может потребоваться в будущем, вы
можете просто снять этот флажок. Отключенное задание выполняться не будет. Можно также отключить
расписание для этого задания
Source
(Источни
сервер, который запускает данное задание на выполнение (
master
server
). Этот параметр
используется только для мультисерверных заданий
Created
(Создано)
время создания задания
Last
modified
(Изменено в последний раз)
время последнего изменения зада
ния
Last
Executed
(Запускалось в последний раз)
Время последнего запуска на выполнения задания
2.2. Параметры этапов заданий.
На вкладке
Steps
(Этапы)
определяются
этапы
steps
), то есть действия, из которых состоит задание. Само
создание этапа произ
водится при помощи кнопки
New
(Новый). Вам потребуется указать имя создаваемого этапа
и выбрать его тип.
Типы этапов:
Replication
задания с такими этапами создаются автоматически при настройке репликации;


ActiveX
Script
(Скрипт
ActiveX
при помощи это
го типа задания вы можете сделать на SQL Server и в ОС
абсолютно все (включая возможности любых других типов этапов). Для работы с SQL Server в вашем
распоряжении
объектные модели SQL
DMO, SMO и поставщика WMI для SQL Server, для работы с
объектные
модели Windows Script Host, Scripting Runtime, WMI и т.п.
Operation
System
CmdExec
(Команда операционной системы)
этот тип задания позволяет выполнить
какую
либо команду из командной строки ОС (и проверить для нее код возврата). Обычное применение
эта
пов этого типа
копирование файлов в операционной системе, отправка электронной почты из
командной строки, подключение сетевых дисков и т.п.
Transact
SQL
Script
SQL
(Скрипт
Transact
SQL
тип этапа по умолчанию. Он позволяет выполнить на
сервере наб
ор команд
Transact
SQL
. Как и при помощи скриптов
ActiveX
, при помощи этапа этого типа
также можно сделать абсолютно все. Доступ к обычным объектным моделям
Windows
из кода
Transact
SQL
можно получить при помощи хранимых процедур автоматизации (
Свойства этапов:
кла
General
(Общие)
Run
(Запустить как)
возможность запустить этап от имени определенной учетной записи. В
списке буд
т доступны
SQL
Agent
Service
Account
и учетные записи
прокси, которые созданы для
этапа данного типа из контейнера
SQL
Server
Agent
Proxies
(Прокси).
кладк
Advanced
(Дполнительно)
success
action
(Действие при успехе) и
failure
action
(Действие при сбое)
возможность
определить, соответственно, что должно произойти после успешного или неуспешного (возникла
ошибка) выполнения
этого этапа. В вашем распоряжении
три варианта (они одинаковые как для
успешного завершения, так и для неуспешного):
Go to the next step
(Перейти к следующему этапу). Этот вариант используется по умолчанию для
успешно завершившихся этапов;
Quit the job r
eporting success
(Выйти из задания, просигнализировав об успешном выполнении).
Этот вариант предлагается использовать для последнего этапа, если он завершился успешно;
Quit the job reporting failure
(Выйти из задания, просигнализировав об ошибке). Это знач
ение
по умолчанию предлагается выбирать при возникновении ошибки в ходе выполнения этапа.


2.3. Запуск заданий.
Задание может запускаться:
автоматически с помощью расписания;
автоматически в ответ на событие, которое произошло на
SQL
Server
. Для этого необходимо настроить
редупреждение, при срабатывании которого будет автоматически запущено наше задание (вкладка
Alerts
свойств этого задания);
вручную из контекстного меню для задания в
Management
Studio
(команда
Start
);
вручную с помощью хранимой процедурой
sp_start_job
. Настройка расписания заданий.
Выбор расписания:
Чтобы открыть список всех имеющихся расписаний
выбрать
команд
Manage
Schedules
из контекстного
меню для контейнера
SQL
Server
Agent
Jobs
Чтобы выбрать для задания
расписание, определенное для
другого задания,
необходимо
воспользова
ться
кнопкой
Pick
на вкладке
Schedules
Необходимо учитывать, что у расписания и у задания должен быть один и тот же владелец.
Настройка расписания:
Для одного задания можно настроить несколько расписаний.
На
вклад
Schedules
свойств задания нажать кнопку
New
Задать имя и в
ыбрать тип
расписания при помощи списка
Schedule
Type
в окне свойств расписания:
Recurring
овторяющееся действие;
One
time
ействие будет выполнено только один раз;
Start
automatically
whe
SQL
Server
Agent
starts
адание будет запускаться автоматически каждый
раз при запуске
SQL
Server
Agent
Start
whenever
the
CPU
become
idle
апускать во время простоя центрального процессора.
Состояние простоя определяется на вкладке
Advanced
(Дополн
ительно) свойств
SQL
Server
Agent
Если необходимо, расписание можно отключить, сняв флажок
Enabled
в свойствах расписания.
2.5. Настройка параметров отчета о завершении задания.
Настроить параметры "отчета" задания о своем завершении можно при помощи
вкладки
Notifications
свойств
задания. На этой вкладке вы можете настроить следующие параметры:
mail
page
net
send
возможность выбрать объекты операторов для отправки предупреждений о
выполнении задания соответственно, по электронной почте, на пейдж
ер и по сети (средствами службы
Messenger
, которая в
Windows
2003 по умолчанию отключена). В ва
шем распоряжении
три варианта:
When
the
job
fails
тправлять предупреждение только тогда, когда при выполнении задания возникла
ошибка. Этот вариант выбирает
ся по умолчанию;
When
the
job
succeeds
редупреждение будет отправляться только при успешном выполнении
задания;
When
the
job
Определение учетной записи для выполнения этапов задания
Создать объект
Credential
открыть контейнер
Security
Credentials
Management
udio
воспользоваться командой
New
Credential
в контекстном меню для этого контейнера. Откроется окно
создания нового объекта
Credential
. В нем вам потребуется указать


Credential
name
Имя учетной записи;
Identity
(Идентификатор)
выбрать локальную или
доменную учетн
запись
Windows
, обладающую
необходимыми правами для выполнения
соответствующе
этап
задания;
Password
(Пароль) и
Confirm
Password
(Подтверждение пароля)
пароль для данной учетной записи.
оздать учетную запись прокси для
SQL
Server
ent
открыть
контейнер
SQL
Server
Agent
Proxies
Выбрать нужный тип этапа и в контекстном меню для подконтейнера этого типа воспользоваться командой
New
Proxy
открывшемся
окне
, см.
рис.
2,
необходимо:
в поле
Proxy
name
(Имя прокси) ввести имя созда
ваемой учетной записи прокси;
в поле
Credential
name
(Имя учетной записи) выбрать созданный ранее объект
Credential
в поле
Description
(Описание)
ввести описание для создаваемой учетной записи (по желанию);
в списке
Subsystems
(Подсистемы) указать типы э
тапов, для которых можно будет использовать
созданную учетную запись прокси.
Рис.
6.
Окно создания новой учетной записи прокси
ткрыть свойства этапа задания и в списке
Run
на вкладке
General
выбрать созданную учетную запись
прокси.
Изменение контек
ста выполнения для этапа
Transact
SQL
Script
ы можете поменять контекст выполнения в ходе выполнения
этапа
Transact
SQL
Script
. Это можно сделать
двумя способами:
использовать в коде скрипта конструкцию
воспользоваться полем
Run
user
на вкл
адке
Advanced
свойств этого этапа.
. Просмотр истории выполнения заданий
Просмотреть историю выполнения заданий в
SQL
Server
2012
можно
оспользова
вшись
журналами
SQL
Server
Agent
ыбрав
в контекстном меню для задания команду
View
History
. Откроет
ся окно просмотра журналов с
настроенным фильтром, аналогичное представленному на рис.


Рис.
6.
Просмотр журнала выполнения задания
Воспользоваться
Activity
Monitor
, для получения сводной информации по всем заданиям.
Для этого
необходимо
найти
объект
Activity
Monitor
под контейнером
SQL
Server
Agent
Management
Studio
и в
контекстном меню для него воспользоваться командой
View
Activity
. В ваше распоряжение будет
представлена информация, аналогичная показанной на рис.
Рис.
6.
кно
Job
Activity
Monitor
Из этого же окна вы можете открыть свойства задания или просмотреть подробную историю его
выполнения.
Информацию для представления на экране
Job
Activity
Monitor
берет из таблицы
базы
данных
Получить самую полн
ую информацию из таблицы
sysjobactivity
при помощи хранимой процедуры
оспользоваться возможностями этапов заданий. Для некоторых типов этапов (например,
CmdExec
или
Transact
SQL
Script
) вы можете настроить запись возвращаемых результа
тов в файл или протоколирование
информации о выполнении в таблицу
sysjobstepslogs
. Эти настройки производятся при помощи вкладки
Advanced
свойств этапа.
. Мультисерверные задания
Использование
SQL
Server
Agent
предоставляет возможность создания мультисе
рверных заданий. Такие задания
создаются на центральной машине, а затем распространяются на множестве удаленных компьютеров, где и
выполняются.
В системе мультисерверных заданий используются серверы двух типов:
главный сервер
master
server
MSX
серве
р, на котором создаются мультисерверные задания. Этот
сервер посылает информацию о заданиях и этапах для выполнения на другие серверы и принимает от них
отчеты
выполнени
сервер
получатель заданий


Предварительная подготовка:
Необходимо
проверить,
что
службы
SQL
Server
SQL
Server
Agent
на главном серв
ере и серверах
получателях заданий
работают от имени
доменных учетных
записей и
облада
необходимыми правами друг
на друга.
Рекомендууется
, чтобы учетные записи
SQL
Server
SQL
Server
Agent
главного сервера обладали
административными правами на сервере
олучателе заданий, и наоборот.
одключиться к главному серверу из
Management
Studio
и в контекстном меню для службы
SQL
Server
Agent
этого сервера выбрать
Multi
Server
Administration
Make
this
Master
. Откроется мастер настройки
главного сервера
Maste
Server
Wizard
На экране
Master
Server
Operator
ввести данные оператора мультисерверного администрирования (
MSX
Operator
). Это
обычный оператор, то есть запись в адресной книге с информацией об адресе электронной
почты, пейджера и сетевым адресом. Един
ственное его отличие заключается в том, что только этот оператор
будет уведомляться о результатах выполнения мультисерверных заданий.
а экране
Дополнительные настройки мультисерверных заданий:
Если вы назначили для этапов мультисерверного задания выполнение не с обычными правами учетной записи
SQL
Server
Agent
, а от имени специальных учетных записей
прокси, то вам придется выполнить до
полнительные
действия:
Настроить на
Перенаправление истории выполнения заданий на сервер
мастер:
Для перенаправления истории
на сервере
получателе
на в
кладке
Advanced
свойств
SQL
Server
Agent
установить
флаг
Forward
Events
different
server
и в списке
Server
указать сервер
MSX
, рис.


Рис
6.
5.
Окно
Advanced
свойств
SQL Server Agent
Переопределение задания на сервере
получателе
Если вы изменили
задание на сервере
мастере, то автоматически новое определение задания не будет загружено
сервером
получателем. Чтобы инициировать такую загрузку, можно использовать хранимую процедуру
. Ее параметры зависят от того, как именно изменило
сь задание.
. Работа с предупреждениями
Предупреждения
alerts
еще
одно важное средство автоматизации работы с
SQL
Server
. Предупреждения
позволяют реагировать на события, которые происходят на
SQL
Server
. К таким событиям относятся:
события
SQL
Serv
ля удобства любые события
SQL
Server
, которые можно зафиксировать (перехватить)
называются ошибками.
ользователь (или разработчик) может сам сгенерировать ошибку с нужным кодом;
выход значения счетчика
System
Monitor
за указанные вами пределы;
событ
ия
WMI
Создание предупреждения
з контейнера
SQL
Server
Agent
Alerts
воспользоваться командой
контекстного меню
New
Alert
Далее на вкладке
General
свойств создаваемого
предупреждения
вы можете настроить:
Name
(Имя)
имя для создаваемого предупре
ждения;
Enable
(Включить)
если этот флажок будет снят, то предупреждение работать не будет. Обычно
используется для того, чтобы на время отключить оповещение без его удаления;
Type
(Тип)
тип предупреждения. От него зависит, что именно будет отслеживать
это
предупреждение и какие параметры
можно будет для него настроить:
SQL
Server
event
alert
редупреждение
будет реагировать на встроенные или пользовательские
ошибки
SQL
Server
SQL
Server
performance
condition
alert
удет отслеживаться выход значени
я выбранных вами
счетчиков производительности в
System
Monitor
за указанные вами границы
WMI
event
alert
удут отслеживаться события объектов
WMI
На вкладке
Response
свойств предупреждения вы можете настроить реакцию на событие, на которое
настроено да
нное предупреждение. В вашем распоряжении
возможность выполнить задание SQL Server
Agent или оповестить оператора.


При помощи вкладки
Options
вы можете настроить дополнительные параметры для реакции на события.
Здесь можно определить, будет ли полная ин
формация о событии передаваться операторам при отправке
уведомления по электронной почте, пейджеру или сети, указать дополнительный текст для сообщения,
которое будет передаваться оператору. При помощи раздела
Номер
ошибки
Описание
появление этой ошибки говорит о нехватки
SQL
Server
специальной области ОП, чтобы наложить
новые блокировки в ОП. Для решения
этой проблемы можно увеличить объем ОП на сервере, или
в некоторых ситуациях выполнить хранимую процедуру
с параметром
ошибка, свидетельствующая о
взаимоблокировке
deadlock
) на сервере. Взаимоблокировки
обычно являются следствием
недостаточно продуманных транзакций.
сбой резервного копирования
для начала резервного копирования недостаточно системных ресурсов сервера
произошло аварийное закрытие пользовательского соединения
закончилось место в журнале тра
нзакций.
астро
перехват
пользовательских ошибок:
оздать пользовательское сообщение
при помощи хранимой процедуры
sp_addmessage
указав его номер
(он обязательно должен быть больше 50000), уровень важности (от 0 о 25) и текст сообщения ошибки.
априм
ер:
астроить триггеры с командой
. Соответствующая команда в теле триггера может выглядеть
так:
Параметр
указавает на необходимость
записать информац
ию в журнал событий
Windows
(ошибка
попадет в журнал событий приложений с номером 17063, а наш номер 50001 будет использован только в
тексте сообщения).
астр
оить
предупреждение, которое выполнит нужные действия.


Предупреждения
типа
SQL Server Perfor
mance condition alert
Данные предупреждения
настраиваются для того, чтобы отслеживать выход за предельные значения для
счетчиков производительности. Для таких оповещений можно настроить:
Object
(Объект)
имя объекта в
System
Monitor
Counter
(Счетчик)
счетчик для данного объекта, значение которого будет отслеживаться;
Instance
(Экземпляр)
экземпляр объекта, мониторинг которого будет производиться. Например,
экземплярами объекта
Databases
будут базы данных на сервере
SQL
Server
Alert
counter
(Опове
стить если счетчик)
предупреждение сработает, если станет справедливым одно из
трех условий:
rises
above
значение счетчика превысит значение, указанное в поле
Value
falls
below
упадет ниже этого значения;
becomes
equal
станет равным указанному
значению.
Например, если мы настроим параметры для оповещения аналогично рис.
, предупреждение сработает при
заполнении журнала транзакций базы данных
более чем на 80 процентов.
Рис.
6.
Настройка предупреждения для переполнения журнала транзакци
. Работа с операторами
Операторы
можно представить как записи в адресной книге на
SQL
Server
. На адреса, определенные в этой
адресной книге, можно настраивать отправку информации о выполнении задани
и срабатывании
предупреждений.
Создание операторов
Создание операторов производится из контекстного меню для контейнера
SQL
Server
Agent
Operators
(Операторы). Для каждого оператора можно определить:
Name
(Имя). Максимальная длина
128 символов;
Enabled
(Включено).
тот флажок используется для временного
отключения оператора в случае
необходимости;
mail
name
(Адрес электронной почты). Иногда вместо адреса конкретного пользователя удобно
использовать список рассылки или совместно используемый почтовый ящик;
Net
send
address
(Адрес для отправки сетевых со
общений) Эти сообщения передаются при помощи
службы
Messenger
. Здесь можно использовать или имя учетной записи
Windows
, или имя/
адрес
рабочей станции администратора;
Pager
mail
name
(Адрес электронной почты для пейджера).
ля его использования вам пот
ребуется
дополнительно
настроить соответствующий шлюз на почтовом сервере.


В нижней части вкладки
General
(Общие) свойств оператора вы можете настроить расписание работы
этого оператора. Оно будет применяться только для сообщений, отправляемых на пейджер.
На вкладке
Notifications
(Уведомления) для оператора можно выбрать предупреждения и задания. При
срабатывании этих предупреждений или выполнении заданий администратору будут отправляться
сообщения. Назначить предупреждения и задания оператору можно и из с
войств предупреждений и
заданий.
. Настройка электронной почты в
SQL
Server
.1. Обзор возможностей
SQL
Server
для работы с электронной почтой
SQL
Server
с электронной почтой можно работать тремя способами:
средствами
Database
Mail
другое название
SQLiMail
). Это новая подсистема для работы с электронной
почтой. Она ориентирована на использование протокола
SMTP
. Это
наиболее функциональный и
рекомендуемый способ;
средствами
SQLMail
, то есть при помощи той же подсистемы, что в пред
ыдущих версиях
SQL
Server
Microsoft
обещает исключить эту подсистему в будущих версиях
SQL
Server
, так что в новых разработках
ориентироваться на нее не стоит. В этой подсистеме используются протокол
MAPI
и почтовый профиль
Outlook
средствами операционно
й системы и нестандартными возможностями
SQL
Server
Например:
при помощи объекта
CDO.Message
и хранимых процедур
Set up Database Mail...
астроить
Database Mail;
Manage
Database Mail accounts and profiles
правление
учетными
записями
профилями
Database
Mail
View
change
system


По умолчанию подсистема Database Mail на SQL Server
отключена, и поэтому поя
вится окно
сообщения с предложением ее включить. Включить Database Mail можно также при помощи утилиты SQL
Server Surface Area Configuration.
экран
New
Profile
настроить параметры почтового профиля для работы с
Database
Mail
указать имя почтового про
филя
и описание
настроить учетные записи для работы по протоколу
SMTP
. Для одного почтового профиля вы вполне
можете настроить несколько почтовых профилей
SMTP
определить используемый
SQL
Server
адрес электронной почты
указать
почтовый сервер (и номер
порта для подключения по протоколу
SMTP
),
указать
режим аутентификации при подключени
и к почтовому серверу (см. рис.
Рис.
6.
Настройка учетной записи
SMTP
для
Database
Mail
На экране
Manage
Profile
Security
определить принадлежность профилей
public
) или личны
private
).
Как общий почтовый профиль, так и личный почтовый профиль можно назначить профилем по
умолчанию (default).
Общие почтовые профили доступны для всех пользователей базы данных MSDB
но подсистему
Database Mail можно настрои
ть и для любой пользовательской базы данных
тогда общий профиль
станет доступным для всех пользователей этой базы данных).
Личные почтовые профили доступны только для тех пользователей, которым
они
явно назначены на
вкладке
Private Profiles
этого экрана
На экране
Configure
System


Verbose
наиболее полное прот
околирование, будет записываться максимум информации о работе
Database
Mail
После этого мастер настроит систему
Database
Mail
на сервере.
После завершения настройки Database Mail необходимо
предоставить пользователям, которые (или от имени
которых) буд
т отправлять электронн
почт
средствами Database Mail, необходимые права. Для этого
нужно
ключить их в
специальную роль
DatabaseMailUserRole
в базе данных MSDB.
ранимы
процедур
Database
Mail
Хранимые процедуры предназначены для выполнения опред
енных действий
Они
находятся в базе данных
MSDB
и принадлежат схеме
Наиболее часто используемые хранимые процедуры:
редназначена для отправки электронной почты.
Пример
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'MailProfile1'
, @recipients =
'[email protected]', @subject = 'Заголовок сообщения', @body = 'Текст сообщения';
Для получения информации о результатах
отправки
сообщения
можно:
росмотреть журналы
Database
Mail
ля этого можно воспользоваться командой
View
Database
Mail
Log
из контекстного меню для контейнера
Management
Database
Mail
Management
Studio
оспользоваться специальными представлениями
Database
Mail
в базе
данных
полная
информаци
всех отправленных средствами
Database
Mail
письмах;
только письма, при отправке которых произошел сбой;
только успешно отправленные письма;
только письма, которые еще не были отправлены, но стоят в очереди;
только информация о сообщениях со вложениями
возвращается информация из журнала
Database
Mail
(та же, которую можно
получить при помощи кома
нды
View
Database
Mail
Log


. Работа с
SQLMail
SQLMail
подсистема для взаимодействия
SQL
Server
с электронной почтой. Она использовалась в
предыдущих версиях
SQL
Server
и оставлена для обеспечения обратной совместимости в
SQL
Server
SQLMail
ожет работать только с протоколом
MAPI
и для
создания почтового профиля
MAPI
необходимо
использовать внешнюю программу (в большинстве случаев
Outlook
Настройка
SQL
Server
для работы с
SQLMail
редствами
Exchange
Server
создать почтовый ящик для учетн
апис
, от имени котор
работа
SQL
Server
SQL
Server
Agent
становить на компьютер, на котором работает
SQL
Server
Microsoft
Outlook
(любой версии
97, 2000,
или 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
tudio
. В списке
Mail
system
вам потребуется
выбрать
SQLMail
, а в списке
Mail
profile
имя созданного вами профиля
После внесения изменений в свойства SQLMail для SQL Server и SQL Server Agent обе эти службы
рекомендуется перезапустить.
6.8 Хранимые про
цедуры для работы с
SQLMail
Для работы с
SQLMail
используются те же хранимые процедуры, что и в
SQL
Server
предназначена для отправки сообщений электронной почты, например:
EXEC master.dbo.xp_sendmail @recipients='[email protected]
s.msft',
@subject='Заголовок сообщения', @message='Текст сообщения';
EXEC master.dbo.xp_sendmail @recipients='[email protected]',
@query = 'select * from Table1' ;
возвращает уникальный идентификатор сообщения, которое пришло п
о времени
последним;
возможность считать сообщение из почтового ящика на
Exchange
Server
. Принимает номер
сообщения, который обычно возвращает хранимая процедура


Пример кода
для использования этого объекта н
а языке
VBScript
'Объявляем переменную для нашего сообщения
oMessage
'Создаем объект CDO.Message
Данный
вариант с параметрами по умолчанию будет работать только в том случае, если на вашем компьютере
установлен
Exchange
Server
2000 или 2003 или установлен
настроенной службой
SMTP
, так как
физически
сообщение будет помещено в каталог
по
умолчанию
, откуда его и должна
забрать служба
Exchange
Server
или
Настройка возможности отправки сообщений через любой почтовый сервер
Для возможности отправки сообщений через
любой почтовый сервер, который поддерживает прот
окол
SMTP
необходимо
настроить параметры отправки:
oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
(значение 1, которое используется по умолчанию, означает
использовать каталог
Pickup
Указать почт
овый сервер можно так:
oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _
"smtp.YourServer.com"
Настройка режима аутентификации производится при помощи объекта CDO.Configuration:
oMessage.Configuration.Fi
elds.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
Значение 1 означает, что используется базовая аутентификация, значение 0
без аутентификации (анонимно),
значение 2
аутентификация NTLM.
Имя пользователя и пароль можно
передать так:
oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = _
"[email protected]"
oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = _
"Pass
word"
Определение использования специфического порта
Иногда необходимо определить использование специфического порта (отличного от 25),
а также
будет или нет
использоваться SSL и время тайм
аута:
oMessage.Configuration.Fields.Item _
("http://schemas.micros
oft.com/cdo/configuration/smtpserverport") = 25
oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
oMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnection
timeout") = 60


Сохранение изменений, вносимых в конфигурацию
oMessage.Configuration.Fields.Update
метод
Send():
oMessage
Send
Для устранения
проблем с кодировками
перед отправкой необходимо
добавить строку вида
oMessage
TextBodyPart
Включение использования хранимых процедур автоматизации
Этот код можно напрямую использовать в этапах типа
ActiveX
Script
для заданий
SQL
Server
Agent
. При помощи
хранимых процедур автоматизации
Работа с планами обслуживания
производится из контейнера
Man
agement
Maintenance
Plans
SQL
Server
Management
Studio
Планы обслуживания можно создавать двумя способами:
при помощи мастера. Запустить мастер можно при помощи команды
Maintenance
Plan
Wizard
из
контекстного меню для контейнера
Maintenance
Plans
едствами графического интерфейса
SSIS
. Графический интерфейс для создания планов обслуживания
можно запустить из
Management
Studio
(команда
New
Maintenance
Plan
(Новый план обслуживания) в
контекстном меню для контейнера
Maintenance
Plans
(Планы обслуживан
ия)), а можно и обычным для
SSIS
способом при помощи консоли
SQL
Server
Business Intelligence Development Studio. Графический
интерфейс предоставляет большую функциональность по сравнению с мастером, однако использовать его
сложнее.
Создание планов обслужи
вания баз данных при помощи мастера:
На экране
Select


Reorganize
index
реорганизовать индекс (или множество индексов
ком
андой
ALTER INDEX ...
Rebuild
index
перестроить индекс или индексы командой
ALTER INDEX ... REBUILD
Update
statistics
обновить статистку для всех или указанных таблиц и представлений при помощи
команды
UPDATE STATISTICS
Clean
history
возможность удалить историю резервного копирования, выполнения заданий
SQL
Server
Agent
и выполнения планов обслуживания из таблиц базы данных
MSDB
. Удаление будет
производиться хранимыми процедурами
sp_delete_backuphistory
Работа с созданным планом обслуживния
Из контекстного меню для соз
данного плана обслуживания в контейнере
Maintenance
Plan
вы сможете:
View
History
получить информацию об истории выполнения данного плана;
Modify
открыть пакет
SSIS
для плана выполнения, чтобы просмотреть его или внести необходимые
изменения;
Execute
запустить план на выполнение;
Rename
ереимен
овать
Отчет о результатах выполнения планов
Отчет о результатах выполнения планов обслуживания создается в виде текстового файла (см. рис.
).
При
необходимости, можно создать отчет на ос
нове информации
из таблицы
sysdbmaintplan_history


Рис.
6.
Пример отчета о выполнении плана обслуживания баз данных
Отметим еще два момента, связанных с планами обслуживания баз данных:
SQL
Server
вы можете использовать планы обслужива
ния старых версий
SQL
Server
. Однако они
будут доступны только в том случае, если вы обновляли до
SQL
Server
сервер предыдущей версии, в
которой такой план был создан. Найти такие планы можно будет в контейнере
Management
(Управление)
Legacy
(Унасле
дованное)
Database
Maintenance
Plans
(Планы обслуживания баз
данных). Создать планы старого образца в
SQL
Server
2012
невозможно;
вместо планов обслуживания баз данных можно использовать утилиту командной строки
. Эта
утилита позволяет выполнить
те же операции по обслуживанию из командной строки и сгенерировать
отчеты о
выполнении,
как в текстовом формате, так и в формате
HTML
Мониторинг и оптимизация производительности SQL Server
2012
. Мониторинг активности пользователей
.1. Применен
ие
Activity
Monitor
Консоль
Activity Monitor
встроена
SQL Server Management Studio.
Найти ее можно в
контекстном меню для
объекта сервера
SQL
Server
Object
Explorer
В этой консоли предусмотрено три вкладки:
а вкладке
Process
Info
информаци
подключениях
SQL
Server
: д
ля каждого из процессов мож
просмотреть последнюю выполненную команду (пункт
Details
в контекстном меню) и принудительно
закрыть это подключение (команда
Чтобы просмотреть все подключения
(системные и
пользовательские)
, нужно нажать кнопку
Filter
и снять флажок
Apply
Filter
а вкладке
Locks
Process
информация о
блокировк
установленных
конкретным
процесс
на
объекты
баз данных.
а вкладке
Locks
Object
информация о
блокировк
установленных
конкретн
ый
бъект
Использование хранимых процедур и динамических представлений
Использование хранимых процедур:
Для просмотра активности пользователей можно воспользоваться системными хранимыми процедурами
возвращает и
нформацию о
соединения
установленых
в настоящее время с SQL Server. Эта
процедура может испол
ьзоваться в двух вариантах:
без параметров
возвращает
информацию о всех процессах.
параметром (
идентификатор процесса
возращает
информацию только п
заданному
процессу.
предоставляет более подробную информацию о процессах запущенных на SQL Server
возвращает
информацию о блокировках, которые применены к объектам определенным
процессом.
Эта процедура может использоваться в трех ва
риантах
без параметров
возвращает
информацию о блокировках для всех процессов.


с параметром (идентификатор процесса
будет представлена информация о блокировках только
для этого процесса.
можно передать
несколько идентификаторов сразу, раздел
ив их запятыми
вернет информацию о
блокировках для указанных процессов
В случае необходимости
, можно
принудительно закрыть соединение при помощи команды
, передав ей
идентификатор процесса:
KILL 51
Использование динамических представлениий
Динамиче
ские представления
специальный интерфейс, при помощи которого можно получать информацию о
текущей работе сервера или
. К ним можно обращаться
с помощью
команд
Transact
SQL
, как к обычным
представлениям. Информация в этих представлениях динамически меня
ется, отражая изменения в работе сервера
или базы данных
информация о сеансах пользователей
информация о сетевых параметрах подключений пользователей (тип сетевой
библиотеки, размер пакета, номера портов и
т.п.)
нформаци
о блокировках, которые применены к объектам на
SQL
Server
Информация о сеансе пользователя, который применил данную блокировку, содержится в столбце
Использование
SQL
Profiler
профилировщик
SQL
Profiler
программно
средств
о,
используемое для трассировки
сервер
SQL
Server
"Трассировка"
сеанс
сбора информации о работе
SQL
Server
Основное назначение:
SQL
Profiler
используется администраторами для:
анализа работы приложения;
определ
ения оптимальности запросов, направляемых на сервер;
выявления
команд
Transact
SQL
, при выполнении которых
возникает ошибка;
сбор
информации о пользовательской активности в течение продо
лжительного промежутка времени
проведени
мониторинга работы сервера
в режиме реального времени.
Новые возможности:
профилировк
Analysis
Services
профилировка событий
Integration
Services
возможность при записи информации выполнения команды записывать показания счетчиков из
Performance
Monitor
Profiler
добавлено множ
ество новых событий и источников информации, которые могут выбираться для
записи в файл трассировки;
возможность сохранить в формате
XML
шаблон трассировки,
результаты трассировки
, а также
планы
выполнения команд
Transact
SQL
, перехваченных профилировщиком
возможность группировать события в окне профилировщика.
Работа с SQL Server Profiler
апустить
SQL Server Profiler
меню
Пуск
Программы
SQL Server
Performance Tools
SQL Server Profiler
открывшемся окне в меню
File
выбрать
New Trace
и п
одключиться к серверу SQL Server
, работу
которого мы будем отслеживать.
астроить параметры сеанса
в окне
Trace Properties
, которое открывается автоматически переда началом
сеанса трассировки (см. рис.


Рис.
8.
1.
Настройка параметров сеанса тр
ассировки
На вкладке
General
выбр
ать
списке
Use the template
наиболее подходящий
шаблон
ыбор шаблона
производится при помощи меню
File
Templates
в SQL Server Profiler. Изначально в вашем
распоряжении
восемь шаблонов:
1).
Standard
default
шаблон по
умолчанию
, позволяющий
отслеживать все запускаемые на
выполнение хранимые процедуры и команды
Transact
SQL
2).
Counts
сбор
информаци
о запускаемых на выполнение хранимых процедурах и функциях
сортир
овкой
по именам;
3).
TSQL
сбор
информаци
о всех команд
ах
Transact
SQL
, запускаемых на выполнение на сервере
, с
указанием
идентификатора пользовательс
ких процессов и времени запуска
4).
TSQL
Duration
аналогичен
предыдущ
ему
шаблон
, но вместо информации о времени запуска
команды
TSQL
записывается время, которое
потребовалось на
выполнение;
5).
TSQL
Grouped
помимо информации о коде команды
Transact
SQL
и времени ее запуска,
записывается также информация о имени приложения, учетной записи пользователя в
и учетн
запис
пользователя, котор
был
использован
а д
ля подключения
6).
TSQL
Replay
запись
максимально подробн
информаци
о выполняемых командах
Transact
SQL
7).
TSQL
SPs
помимо
записи информации о начале запуска хранимой процедуры (
регистрируется
информаци
о выполнении каждой из команд хранимо
й процедуры
8).
Tuning
используется для сбора
информации
необходимой
Database
Tuning
Advisor
На вкладке
General
если необходимо указать место сохраннения трассировочной информации:
1).
Информация трассировки может быть запротоколирована в фа
(по умолчанию размером
Мбайт
параметр
Enable
File
Rollover
определяет, буд
т ли при заполнении одного файла
автоматически создаваться следующий. Имя следующего файла будет таким же, как и имя
предыдущего, но к его имени будет добавлен номер (1, 2, 3
и т.п.)
параметр
Server
processes
trace
data
можно использовать для увеличения надежности записи
информации трассировки.
После
установ
ки
это
флажк
обработкой информации
трассировки будет заниматься сервер.
2).
Информация трассировки может быть сохранена
таблиц
SQL Server. Таблица с нужным набором
столбцов будет создана автоматически.
3).
С помощью п
араметр
Enable
Trace
Stop
Time
можно
указать время, когда трассировка будет
отключена автоматически.
На вкладке
Events Selection
определить параметры сбора инф
ормации. В таблице на этой вкладке вы
должны выбрать требуемые события (в строках) и информацию (в столбцах), которая будет для них
записываться. Для отображения всех строк и столбцов, нужно установить флажки
Show All Events
Show All Columns


1).
с помощью к
нопки
Column
Filters
(Фильтры столбцов) настроить фильтры на сбор необходимой
информации (отслеживать действия, выполняемые в определенной БД, или определенным
приложением, или определенным пользователем)
Like
или
2).
при помощи кнопки
Organize
Col
umns
(Организовать столбцы) настроить порядок столбцов для
отображения или записи в профилировщике с возможностью группировки данных
раздел
Group
После
задания всех
параметр
трассировки нажать на кнопку
Run
(Запустить
(см. рис.
Рис.
8.
2.
Прос
мотр информации в ходе сеанса трассировки
верхней части
окна отображаются
события,
происходящие
на сервере, а в нижней части
приводится подробная
информация
по каждому событию
(например, код команд
SQL
).
озможности, доступные в окне
трассировки
сли
на вкладке
Organize Columns
в свойствах шаблона вы выбрали столбцы для группировки, вы можете
сгруппировать по этим столбцам записи в окне просмотра. Для этой цели в меню
View
предусмотрена
команда
Grouped View
сли в список
Group
был помещен только один
столбец, то у вас появляется возможность использовать
режим отображения
Aggregated View
(см. рис.
3). Этот режим включается при помощи команды
Aggregated View
из того же меню
View
Рис.
8.
3.
Режим отображения
Aggregated
View
ы можете открывать
в проф
илировщике события, сохраненные
файл
и таблиц
трассировки.
Также
существует возможность
повтор
ять запротоколированные операции, с помощью
меню
Replay
ы можете
связыва
информаци
трассировки с показателями счетчиков производительности System
Monit
or.
Для этого
определить сеанс трассировки, в ходе которого обязательно должна записываться информация для
столбцов
StartTime
EndTime
запустить сеанс трассировки с записью информации в файл или таблицу. Одновременно с ним собрать в
файл протокол показа
ний счетчиков
Performance Monitor


открыть собранную информацию из файла трассировки в профилировщике, а затем воспользоваться
командой
Import Performance Data
из меню
File
1.4. Использование хранимых процедур трассировки
Функциональные возможности
хран
имых процедур трассировки
практически идентичны возможностям
профилировщика. Главное отличие заключается в том, что все настройки придется производить из кода
TSQL
писок хранимых процедур с краткой характеристикой:
позволяет настроить п
араметры сеанса трассировки;
Создание триггер
В самом простом варианте триггер
может выглядеть так:
CREATE TRIGGER DDLTrigger1 ON DATABASE FOR DROP_TABLE

PRINT
'Таблица была удалена'
В теле триггера
DDL
можно использовать:
хранимые процедуры
Database
Mail
, для отправки уведомлений по эле
ктронной почте.
функцию
для получения
более подробн
информаци
о сути происходящих событий.
Например, чтобы получить информацию о конкретном запросе, который произвел удаление таблицы (с
именем таблицы), можно использовать код вида
CREATE T
RIGGER DDLTrigger1 ON DATABASE FOR DROP_TABLE AS
SELECT EVENTDATA().value(
'(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)');
команды на откат транзакций, так как т
риггеры
являются
часть
транзакции, которая их вызвала. Например,
при помощ
и такого триггера можно вообще запретить удалять таблицы в данной базе данных:
CREATE TRIGGER DDLTrigger1 ON DATABASE FOR DROP_TABLE AS
PRINT
'Удалять таблицы в этой базе данных запрещено!';
ROLLBACK
. Другие средства мониторинга активности пользо
вателей и уведомления о событиях
SQL
Server
предусмотрены и другие возможности уведомления администратора о событиях,
происходящих на сервере.
спользование предупреждений
SQL
Server
Agent
. Предупреждения
очень простое в настройке, удобное и
наде
жное средство. В основном оно предназначено для предупреждения администратора о системных
проблемах сервера, но его можно использовать и для мониторинга действий пользователя. Для этого обычно
используются пользовательские ошибки, которые генерируются при
помощи оператора
. Сам
этот оператор можно поместить в триггеры
DDL
или обычные триггеры.
спользова
постоянно работающ
его
скрипт
WMI
, который работает с поставщиком
WMI
Provider
for
Server
Events
. Преимуществом такого подхода является то, чт
о вы не зависите от работы сервера при
отправке уведомлений. Для оповещения администратора можно использовать, например, средства объектной
модели
CDO
, предназначенной для работы с электронной почтой.


рименение
уведомлений о событиях
Event
Notifications
. После настройки уведомлений о событиях
информация об интересующих администратора событиях (к ним относятся выполнение команд
DDL
события трассировки) передается в очередь программного модуля
Service
Broker
в виде файлов
XML
8.2. Использование подсист
емы аудита
8.2.1 Основные сведения о подсистеме аудита SQL Server
Аудит
это сочетание в едином пакете нескольких элементов для определенной группы действий сервера или
базы данных. Компоненты подсистемы аудита SQL Server совместно формируют выходные данн
ые, называемые
аудитом. Подсистема аудита SQL Server использует расширенные события для создания аудита.
Аудит
экземпляра SQL Server или отдельной базы данных включает в себя отслеживание и протоколирование
событий, происходящих в компоненте Database Engi
ne. Аудит SQL Server позволяет проводить аудит сервера,
который может включать в себя спецификации аудита сервера для событий на уровне сервера, а также
спецификации аудита базы данных для событий на уровне базы данных. События аудита могут записываться в
журналы событий или файлы аудита.
Аудит на уровне сервера поддерживается во всех выпусках SQL Server. Аудит на уровне базы банных доступен
только в выпусках Enterprise Edition, Developer Edition и Evaluation Edition.
8.2.2 Подсистема аудита SQL Server
Объ
ект
Подсистема аудита SQL Server
объединяет отдельные экземпляры действий или групп действий уровня
сервера или базы данных, за которыми нужно проводить наблюдение. Аудит работает на уровне экземпляра SQL
Server. В одном экземпляре SQL Server может существ
овать несколько аудитов.
При определении аудита задается место для вывода результатов. Оно называется
назначением аудита
. Аудит
создается в
отключенном
состоянии и не выполняет автоматический аудит никаких действий. После включения
аудита назначение аудита
начинает получать от него данные.
Спецификация аудита сервера
Объект
Спецификация аудита
сервера
принадлежит аудиту. На каждый аудит можно создать один объект
спецификации аудита сервера, поскольку они оба создаются в области экземпляра SQL Server.
Специф
икация аудита сервера собирает множество групп действий уровня сервера, вызываемых компонентом
расширенных событий. В спецификацию аудита сервера можно включить
группы действий аудита
. Группы
действий аудита
это стандартные группы действий, являющиеся ат
омарными событиями, происходящими в
компоненте Database Engine. Эти действия передаются аудиту, который регистрирует их в целевом объекте.
Спецификация аудита базы данных
Объект
Спецификация аудита базы данных
также принадлежит подсистеме аудита SQL Server
. Для каждого
аудита каждой базы данных SQL Server можно создать одну спецификацию аудита базы данных.
Спецификация аудита базы данных включает действия аудита уровня базы данных, вызываемые компонентом
расширенных событий. В спецификацию аудита базы данн
ых можно добавлять либо группы действий аудита,
либо события аудита.
События аудита
это атомарные действия, аудит которых может производиться ядром
SQL Server.
Группы действий аудита
это стандартные группы действий. Они расположены в области базы
данны
х SQL Server. Эти действия передаются аудиту, который регистрирует их в целевом объекте.
Назначение
Результаты аудита отправляются цели, которая может быть файлом, журналом событий безопасности Windows
или журналом приложений Windows
Журналы необходимо пе
риодически просматривать и архивировать, чтобы у
цели оставалось достаточно места для создания дополнительных записей.
Важно
Любой прошедший проверку пользователь может осуществлять чтение и запись в журнале событий приложений.
Для работы с журналом собы
тий приложений необходимо меньше разрешений, чем для работы с журналом
событий безопасности Windows; журнал событий приложений менее защищен, чем журнал событий безопасности
Windows.
Для записи в журнал событий безопасности Windows необходимо добавить в по
литику
Создание аудитов
безопасности
учетную запись службы SQL Server.
Кроме того, политика безопасности
Аудит доступа к
объектам
должна быть включена для регистрации как
успешных
, так и
неуспешных
действий.
Если данные аудита сохраняются в файл, то для п
редотвращения подмены можно ограничить доступ к файлу
следующим образом.


Учетная запись службы SQL Server должна обладать разрешением на чтение и запись.
Администраторам аудита обычно требуется разрешение на чтение и запись. Здесь подразумевается, что
адми
нистраторы аудита
это учетные записи Windows, предназначенные для администрирования
файлов аудита, в том числе копирования их в другие общие папки, резервного копирования и других
операций.
Агенты чтения аудита должны иметь разрешение только для чтения ф
айлов аудита.
8.2.3 Настройка Аудита
Для определения аудита можно использовать среду SQL Server Management Studio или Transact
SQL. После
создания и включения аудита он начнет вести записи в целевое назначение.
Просматривать журналы событий Windows можно
с помощью программы
Средство просмотра событий
Windows. Для чтения целевых файлов можно использовать
Средство просмотра журнала
, среду SQL Server
Management Studio или функцию
fn_read_audit_file
Обычно процесс создания и использования аудита происходит
следующим образом.
Создайте аудит и определите цель.
Созда
либо спецификаци
аудита сервера, либо спецификаци
аудита базы данных, котор
ую
сопостав
те
аудит
Включ
ите
спецификаци
аудита.
Включите аудит.
Производит
считывание событий аудита с помощью
Просмотр
событий
Windows,
Средства просмотра
журнала
или функции
fn_get_audit_file
Внимание!
В случае ошибки при инициализации аудита сервер не будет запущен. В этом случае сервер может быть запущен,
в режиме минимальной конфигурации с парметром
Есл
и ошибка аудита вызывает отключение сервера или не дает ему запуститься, поскольку для аудита был задан
режим
ON_FAILURE=SHUTDOWN
, то в журнал будет записано событие
MSG_AUDIT_FORCED_SHUTDOWN
. Поскольку выключение происходит при первом возникновении этого
события, это событие будет записано один раз. Это событие записывается после получения сообщения об ошибке,
означающего, что аудит вызвал отключение. Администратор может обойти выключения, вызываемые аудитом,
запустив SQL Server в однопользовательском режи
ме, используя флаг
. При запуске в однопользовательском
режиме будет произведено изменение настроек любого аудита, запускающегося в этом сеансе, для которого было
задано условие ON_FAILURE=SHUTDOWN. Такие аудиты будут запускаться с условием
ON_FAILURE=CO
NTINUE. Если SQL Server запускается с использованием флага
, то в журнал ошибок будет
записано сообщение MSG_AUDIT_SHUTDOWN_BYPASSED.
Присоединение базы данных с определенным аудитом
При присоединении базы данных, имеющей спецификацию аудита с иден
тификатором GUID, который не
существует на сервере, такая спецификация аудита получит состояние
потерянная
. Поскольку в экземпляре
сервера не существует аудита с совпадающим идентификатором GUID, события аудита записываться не будут.
Исправить эту ситуацию
можно, используя команду ALTER DATABASE AUDIT SPECIFICATION для
присоединения потерянной спецификации аудита к существующему аудиту сервера. Также можно использовать
команду CREATE SERVER AUDIT для создания на сервере нового аудита с указанным идентификат
ором GUID.
Базу данных, для которой была задана спецификация аудита, можно присоединить к другому выпуску SQL Server,
не поддерживающему подсистему аудита SQL Server, например SQL Server Express, но запись событий аудита
производиться не будет.
8.2.5 Предс
тавления каталога
Для получения сведений о подсистеме аудита SQL Server вы можете использовать следующие представления:
Представления каталога
Описание
sys.database_ audit_specificati
ons
Содержит сведения о спецификациях аудита базы данных в аудите SQL
Server на экземпляре сервера.
Содержит сведения о спецификациях аудита
базы данных в аудите SQL
Server на экземпляре сервера для всех баз данных.
sys.server_audits
Содержит по одной строке для каждого аудита SQL Server в экземпляре
сервера.
sys.server_audit_specifications
Содержит сведения о спецификациях аудита сервера в подсистеме аудита
SQL Server на экземпляре сервера.


Содержит данные о подробных сведениях (действиях) спецификации
аудита сервера в аудите SQL Server экземпляра сервера.
sys.server_fil
e_audits
Содержит расширенные сведения о типах аудита файлов в подсистеме
аудита SQL Server на экземпляре сервера.
Разрешения
Чтобы создать, изменить или удалить аудит сервера или спецификацию аудита сервера, участникам на уровне
сервера требует
ся разрешение
ALTER ANY SERVER AUDIT
или
CONTROL SERVER
Чтобы создать, изменить или удалить спецификацию аудита базы данных, участникам базы данных требуется
разрешение
ALTER ANY DATABASE AUDIT
либо разрешение
ALTER
или
CONTROL
на эту базу данных.
Кроме
того, участникам необходимо разрешение на подключение к базе данных либо разрешение ALTER ANY
SERVER AUDIT или CONTROL SERVER.
Внимание
Члены роли
sysadmin
могут изменять любой компонент аудита; члены роли
db_owner
могут изменять
спецификации аудита в б
азе данных. Подсистема аудита SQL Server выполнит проверку наличия у имени входа,
пытающегося выполнить создание или изменение спецификации аудита, хотя бы разрешения ALTER ANY
DATABASE AUDIT.
Однако при присоединении базы данных проверка не производится.
Считается, что
спецификации аудита базы данных надежны настолько, насколько надежны участники, имеющие роль
sysadmin
или
db_owner
Расширенные события
Подсистема расширенных событий SQL Server
Подсистема расширенных событий SQL Server имеет масш
табируемую и легко настраиваемую архитектуру,
которая позволяет пользователям собирать именно такое количество информации, которое необходимо для
устранения нарушения в работе или выявления проблемы производительности.
Расширенные события
это упрощенная
система мониторинга производительности, в которой применяется
очень небольшой объем ресурсов. Система расширенных событий имеет два графических пользовательских
интерфейса (
New Session Wizard
New Session
), которые позволяют создавать, изменять, выводить
анализировать данные сеанса.
Подсистема расширенных событий не зависит от событий. Подсистема может привязать любое событие к
любой цели, так как не ограничена содержимым события.
События отделены от объектов
получателей событий, называемых в расширен
ных событиях
целями
. Это
означает, что любая цель может получать любые события.
Кроме того, любое возникающее событие
может автоматически потребляться целью, которая регистрирует его и предоставляет дополнительный
контекст событий.
События отделены от дей
ствий, предпринимаемых при возникновении события. Следовательно, любое
действие можно связать с любым событием.
Предикаты могут применять динамические фильтры, когда необходимо получить данные события. Это
делает инфраструктуру расширенных событий более г
ибкой.
Расширенные события могут синхронно создавать данные событий (и асинхронно обрабатывать эти данные), чем
обеспечивается гибкое решение для обработки событий. Кроме того, расширенные события предоставляют
следующие возможности
Унифицированный подхо
д к обработке событий во всей серверной системе, одновременно разрешающий
пользователям изолировать отдельные события для устранения неполадок.
Интеграция и поддержка существующих инструментов приложения трассировки событий Windows.
Полностью настраиваем
ый механизм обработки событий на основе языка Transact
SQL.
Возможность динамического мониторинга активных процессов с минимальным влиянием на эти
процессы.
Сеанс работоспособности системы по умолчанию
system_health
, который выполняется без каких
либо
заметных последствий для производительности. В этом сеансе собираются системные данные, которые
можно использовать для решения проблем производительности.


8.3.2 Создание сеанса расширенных событий
Сеанс расширенных событий можно создать для диагностики тр
ассировок SQL Server, что дает возможность
решать, например, следующие проблемы
Находить наиболее ресурсоемкие запросы.
Находить основные причины конфликтов кратковременных блокировок.
Находить запросы, которые блокируют другие запросы.
Устранять непо
ладки чрезмерного использования ЦП, вызванные перекомпиляцией запросов.
Устранять неполадки взаимоблокировок
Для повышения удобства выбора и отслеживания расширенных событий на сервере предусмотрен мастер
создания сеансов, который помогает создавать сеанс
ы расширенных событий
В обозревателе объектов разверните узел
Management
, а затем узел
Extended Events
Щелкните правой кнопкой мыши
Sessions
и выбери
New Session Wizard
На странице
Introduction
нажмите кнопку
Next
. Установите флажок
Do not show this pa
ge again
, если
мастер планируется использовать повторно и не требуется читать введение каждый раз при запуске
мастера.
На странице
Внимание
События из канала
Debug
скрыты по умолчанию. Чтобы просмотреть события отладки, выберите
Debug
раскрывающемся списке
Channel
Настройка фильтров событий сеанса
Можно ограничивать отслежив
аемые события с помощью фильтров (также называемых предикатами). На
странице
Внимание
При настройке предложения группирования для фильтра лишние круглые скобки будут удалены из
фильтра после сохранения ре
зультата. Например, при создании фильтра группирования
Предложения 1
Предложения 2
предложения будут заключаться в круглые скобки.
После сохранения фильтра лишние
круглые скобки будут удалены.
Удаление круглых скобок не влияет на логику фильтрации.


Настройка хранилища данных сеанса
Подсистема расширенных событий SQL Server использует целевые объекты для вывода данных.
Целевые объекты
хранят в себе данные и могут выполнять такие действия, как запись в файл или статистическая обработка данных
событий
Ниже приведены целевые объекты, которые могут быть использованы для сеанса расширенных событий.
etw_classic_sync_target
. Служит для согласования событий SQL Server с данными событий приложений и
операционной системы Windows.
event_counter
. Относится ко
всем событиям, происходящими после запуска сеанса расширенных
событий. Эта цель используется для получения сведений о характеристиках рабочей нагрузки без затрат
на сбор всех событий.
event_file
. Используется для записи выходных данных сеанса событий из
полных буферов памяти на
диск.
histogram
. Используется для подсчета количества указанных событий на основании указанного действия
или столбца события.
pair_matching
. Эта цель позволяет определить, что указанное парное событие не произошло в
правильной по
следовательности.
ring_buffer
. Используется для хранения данных о событиях в памяти по принципу очереди (FIFO) или по
принципу FIFO для каждого события.
Выберите метод сбора данных для анализа и на странице
Specify Session Data Storage
выполните следующи
действия
Для больших наборов данных и создания записей журнала установите
флажок
Save data to a file for later
analysis
, затем выполните следующие действия.
В поле
File name on server
введите путь и имя файла либо нажмите кнопку
Browse
, чтобы
указать к
аталог файлов на сервере, где следует сохранять данные.
В поле
Maximum file size
укажите максимальный размер файла, который будет использоваться в
качестве целевого. Если максимальный размер файла не задан, файл будет увеличиваться до
заполнения диска.
змер файла по умолчанию составляет 1 ГБ.
Установите флажок
Enable file rollover
, чтобы разрешить включить переключение файлов.
В поле
Maximum number of files
введите максимальное число файлов, которые следует
сохранять в файловой системе.
Для сбора неда
вних данных установите флажок


. Журналы
SQL
Server
Для
отслеживания событий, связанных с работой сервера
SQL
Server
можно использовать
журналы сервера:
журнал событий
Server
2012
, журнал событий
SQL
Server
Agent
, журнал событий
Windows
и журнал
событий приложений
Windows
Просмотр журналов:
SQL
Server
Management
Studio
из
контейнера
Management
SQL
Server
Logs
выбрать нужный журнал в
списке журналов
и из
контекс
тно
меню выбрать
View
SQL
Server
Log
. Откроется окно просмотрщика
журналов (см. рис.
4).
Рис
8.
4.
Окно
просмотрщика
журналов
SQL Server Management Studio
ри помощи просмотрщика журналов
можно
просматривать не только журналы
SQL
Server
, но и журнал
SQL
Server
Agent
Windows
Database
Mail
экспортировать данные из журналов при помощи кнопки
Export
(Экспортировать), в том числе в очень
удобный для загрузки в базу данных формат
CSV
настраивать фильтрацию и производить поиск нужной информации.
Для
более
детального
протоколирования событий
, происходящи
на сервере, можно воспользоваться параметром
. Его можно установить на вкладке
Security
свойств сервера.
. Мониторинг производительности
SQL
Server
. Терминология монитор
инга производительности
Эталонный график производительности (Performance baseline)
это набор самых важных показателей
производительности, который был собран при приеме задачи в эксплуатацию, когда нагрузка на сервер и
размер базы данных еще минимальны.
мерения производительности при рабочей нагрузке (workload performance measurements)
сбор
показателей счетчиков производительности на регулярной основе.
Главная задача
определить тенденции
в развитии производительности и понять, когда у нас могут возник
нуть проблемы в работе пользователей.
Узкие места
(bottlenecks)
то есть те ресурсы, недостаток которых тормозит работу всей системы. Это
может быть физический компонент сервера, система индексов в базе данных
SQL
Server
и т.п. После
выявления узких мест
администратор должен принять меры к их устранению.
ремя отклика системы на запросы пользователей
(response time
субъективный
показатель
работы
сервера,
зависящий от специфики работы пользователей.
Главная задача администратора при оптимизации
производ
ительности
сделать значение этого показателя приемлемым для пользователей.
ропускная способность (throughput)
объективный показатель работы сервера, например, сколько
транзакций в секунду он может обработать.
Нагрузочное тестирование
stress
testing
искусственная имитация нагрузки со стороны пользователей.


. Средства для мониторинга и анализа производительности
Системный монитор (
System
Monitor
это
средство предназначено для работы со счетчиками
производительности
как для операционной си
стемы, так и для
SQL
Server
Утилита командной строки logman
позволяет выполнять протоколирование показаний счетчиков в файлы
на диске или источники данных
ODBC
точно так же, как и графиче
ская версия Системного монитора
тилита командной строки relog
позволяет производить конвертацию файлов с собранными
показаниями счетчиков из одного формата Системного монитора в другой (например, из двоичного формата
в текстовый
илита
командной строки
typeperf
пред
ставляет возможность для просмотра
показаний счетчиков
Системного монитора в командной строке;
рофилировщик (SQL Server Profiler)
позволяет найти и запротоколировать команды, которые передаются
на сервер приложением, а также найти запросы, на выполнение которых требуется много времени
Network Monitor
позволяет выявить
проблемы с сетью
Database Tuning Advisor
исползуется д
ля анализа и оптимизации си
стемы индексов;
SQL Server Management Studio
используется д
ля оптимизации запросов к
SQL
Server
. Нагрузочное тестирование
Для п
роведения нагрузочного тестирования используются утилиты специально предназначеные для того, чтобы
имитировать работу большой группы пользователей
средства нагрузочного тестирования (
stress
testing
utility
).
Главный
набор
таких
утилит
называется
Microsof
SQL
Server
Support
Escalation
Services
Support
Utilities
Другое
название этого набора
RML
(Replay Markup Language
. Это название используется чаще, поскольку утилиты
скачиваются с сайта
Microsoft
в виде файла
и устанавливаются в каталог
rml
анный набор включает
три
утилиты:
консольная утилита с большим количеством параметров командной строки
(утилита
чувствительна к регистру параметров)
. Например, если мы хотим запустить на выполнение на локальном
сервере файл с командами
SQL
одновременно
от имени 50 пользователей, соответствующая
команда может выглядеть так:
Program
Files
rml
ostress
Northwind
MyApp
sql
эта утилита может работать только по
ODBC
выполнение одних и тех же команд занимает при исп
ользовании этой утилиты во много раз больше
времени, чем при работе в
Query
Analyzer
и других аналогичных средствах.
может работать в двух режимах:
нагрузочн
ый
stress
mode
, этот режим используется по умолчани
ю)
предназначен для оценки
производительнос
ти сервера под определенной нагрузкой. В нем в произвольной последовательности
выполняются команды с использованием указанного вами количества потоков (подключений
пользователей)
режим повторного выполнения
replay
mode
предназначен
для точного повторно
го выполнения тех
команд, которые были запротоколированы средствами профилировщика.
утилита,
предназначенная для конвертации файлов,
созданны
профилировщиком
формат *.RML
, пригодный для передачи файлов утилите
специальный программный компонент, используемый
утилитой
для взаимодействия со службой Distributed Transaction Coordinator (DTC) и отслеживания
идентификаторов процессов (SPID) на SQL Server
Дополнительные средства нагрузо
чного тестирования
утилита,
предназначенная с
пециально для нагрузочного тестирования дисковой
подсистемы.
программное средство
которое можно использовать для целей нагрузочного тестирования.
Его можно найти на компакт
диске
source
Kit
для
SQL
Server
2000. Фактически эт
шаблон приложения на
языке
Visual
Basic
, который можно изменить для своих целей.
программа, которая использует средства работы с потоками .
NET
. Ее
можно загрузить из
Интернета вместе с исходным
кодом. Интерфейс этой программы представлен на рис.


Рис.
8.
5.
Интерфейс
DBStressUtility
Если сохранять результаты трассировки из окна
SQL
Server
Profiler
в файл скрипта
, то профилировщик
автоматически добавляет между каждой командой в скрипте
ключевое слово
DBStressUtility
, встретив такое
слово, прекращает чтение файла команд и выполняет только те команды, которые были в файле до первого
появления
. Точно также
DBStressUtility
относится и к пустым строкам. Поэтому перед передачей этой ути
лите
файла команд необходимо очистить его от команд
и пустых строк
. Приемы работы с Системным монитором
Запустить Системный монитор проще всего из меню
Пуск
Программы
Администрирование
Производительность
ониторинг рекомендуется производить
не с консоли сервера, а с рабочей станции
администратора.
В консоли Системного монитора (см. рис.
6) предусмотрено два главных узла:
Системный монитор
сведены возможности для интерактивного анализа производительности (
line
мониторинг)
Журналы и
предупреждения производительности
сведены возможности для автоматизации сбора
информации.
Рис.
8.
6.
Системный монитор
Режимы представления информации
Изменять текущий режим можно при помощи кнопок
Просмотр...
на панели задач. Каждый из этих режимов
пользуется в своей ситуации:
Просмотр диаграммы
режим, используе
мый
по умолчанию (он представлен на рис.
6).
ыделить
график для нужного счетчика можно, выбрав этот счетчик в списке внизу экрана и нажав на кнопку
Выделить
(или
trl;Ctrl+H&#xH-13;
Просмотр гис
тограммы
этот режим
удобен для сравнения
значен
одних и тех счетчиков с разных
серверов;
Просмотр отчета
наиболее удобный способ
отслежива
ния
значени
сразу большого количества
счетчиков.


Создание журнала
четчиков
(узел Журналы и предупреждения произ
водительности)
Из контекстного меню для контейнера
Журналы счетчиков
выбрать команду
Новые параметры журнала
Ввести имя для нового журнала
На перво
вкладке
окн
е свойств журнала
выбрать объекты (то есть полные наборы счетчиков для
определенной по
дсистемы) и
отдельные счетчики, информация
которых будет записываться в журнал.
астроить интервал сбора значений счетчиков.
При необходимости можно также определить учетную запись
пользователя, которая будет использована при подключении к серверу.
второй вкладке
Файлы журнала
выбрать
тип файлов журналов и указать каталог,
в который они будут
помещаться (
по умолчанию запись производится в файл двоичного формата с расширением
На последней вкладке
Расписание
определить время начала и окончан
ия сбора информации, а также
определить команду
, которая будет выполнена после окончания сбора данных.
В случае необходимости
запуск журнала
можно осуществить вру
ную из
контекстного меню для журнала.
Если необходимо перенести созданный журнал счетчик
ов на другой компьютер его можно сохранить
в виде
файла
HTML
. Для этого достаточно щелкнуть правой кнопкой мыши по окну графика в Системном мониторе
и в контекстном меню выбрать
команду
Сохранить как
Для сохранения
значени
счетчиков из журнала,
нужно так
же щелкнуть правой кнопкой мыши по созданному журналу и выбрать в контекстном меню
команду
Сохранить параметры как
Для того, чтобы создать новый журнал на основе файла
HTML
, нужно щелкнуть правой кнопкой мыши по
контейнеру
Журналы счетчиков
и в контекстн
ом меню выбрать
Новые параметры журнала из
Windows
Server
2003 появилась еще одна версия Системного монитора, которая реализована в виде консольного
приложения. Она представлена файлом
. Возможности у этого варианта Системного монитора
те
, что и у графического (не поддерживается только работа с файлами
HTML
). Эту утилиту очень удобно
использовать для запуска сбора информации в журнал по расписанию или в ответ на какое
то событие.
. Основы работы с объектами и счетчиками
Системн
мони
тор
использует
это объекты и счетчики, при помощи которых и производится сбор информации.
Добавление счетчиков производится при помощи окна, аналогичного представленному на рис.
Рис.
8.
7.
Добавление счетчиков в Системном мониторе
Отметим некоторые м
оменты, связанные с выбором счетчиков:
один журнал (или одно окно Системного монитора) можно выб
рать счетчики с разных серверов
бъект
это набор счетчиков, который относится к определенной подсистеме. Для некоторых объектов
(например объекта
Databases
) можно выбрать конкретные экземпляры этого объекта на данном сервере при
помощи списка справа. Для других объектов (например,
) может быть только один экземпляр объекта;
раткую справку по
выбранному
счетчику можно
получить
, нажав на кнопку
Объяснение
Более
подробн
справк
счетчикам
SQL Server
приведена
Books Online (
ветка
SQL Server Books Online
SQL
Server Database Engine
Administering the Database Engine
Monitoring and Tuning for
Performance
Monitoring Resource Usage
Using SQL Serv
er Objects


. Счетчики для анализа загрузки процессора
Объект
Счетчик
Описание
Решение
(Процессор)
(% загруженности
процессора)
Значение этого счетчика не
должно превышать 80 в течение
длительного промежутка
времени. Если
оно стабильно
больше, это значит, что
процессорная подсистема
работает с перегрузкой и
является узким местом сервера.
бнов
ить
процессор, или сн
ять
сервера часть нагрузки, или
пере
йти
на многопроцессорную
систему
ысокое значение
счетчика может возникну
ть
за дефицита
или перегрузки
дисковой подсистемы. Поэтому
добавление дополнительной
или замена
RAID
массива на
более быстрый может
одновременно
решить проблемы
с процессором
(Система)
(Длина
очереди процессора)
казывает, сколько запросов
стоит в очереди на обработку
центральным процессором.
Значение этого счетчика не
должно в течение
продолжительного времени
превышать 2, умноженное на
количество процессоров в
системе
(Процесс) для
процесса
жным
номером
показывает, сколько времени
затрачивается процессором на
обслуживание запросов
SQL
Server
(Процессор)
(% работы в
привилегированном
режиме)
показывает, сколько времени
тратится на обслуживание
апросов ядра. Это время
должно быть как можно
меньше: на загруженном
сервере все ресурсы должны
отдаваться серверным
приложениям (то есть
SQL
Server
).
Если оно необычно большое
(составляет десятки процентов),
то нужно проверить, нет и у вас
проблем с сист
емой.
(Процессор)
(% времени
прерываний)
показывает, сколько времени
процессору требуется на
обработку прерываний от
оборудования. Если при
установк
какого
либо
оборудования значение этого
счетчика сильно возрастает, с
этим обо
рудованием наверняка
какие
то проблемы
Необходимо
заменить
оборудование
Проблемы при работе на многопроцессорных системах
При работе на многопроцессорных системах
SQL
Server
не всегда корректно производит распараллеливание при
выполнении запросов. За счет
избыточного числа переключений между процессорами (
context
switching
) скорость
выполнения запроса на многопроцессорной системе может оказаться заметно ниже, чем на однопроцессорной. В
этой ситуации в вашем распоряжении
два решения:
спользовать параметр
настройки сервера
. Этот параметр определяет
стоимость запроса
секундах
, начиная с которой выполнения запроса будет распараллеливаться;


спользовать флаг трассировки
, который
запрещает распараллеливание запросов. Помим
о решения
проблем с некорректным распараллеливанием, его применение
не позволит
особо "тяжелы
" запрос
захватить все ресурсы всех процессоров.
Включить его можно так:
Вначале определяем, что флаг будет распространен на все подключения
TRACEON
Затем включаем сам флаг трассировки
TRACEON
(8687)
Можно настроить автоматическое включение этого флага трассировки при запуске сервера
при запуске
службы SQL Server используется параметр командной строки
T с номером флага трассировки. В этом
учае флаг будет автоматически применяться ко всем клиентским подключениям
Для просмотра информации о
всех установленных флагах трассировки можно использовать команду
DBCC TRACESTATUS(
. Счетчики для анализа загрузки оперативной памяти
Объект
Сче
тчик
Описание
(Память)
(Обмен
страниц в сек)
количество обращений в секунду к файлу подкачки. Пороговое
значение этого счетчика в течении длительного промежутка времени
должно находится
в пределах от 5 до 10.
(Менеджер
фера) для
данного
экземпляра
(Процент
попаданий в кэш
буфера)
показывает, сколько запросов пользователей (в процентах к общему)
обслуживаются из буфера без необходимости обращения к диску.
Рекомендуется, чтобы в течение длительного п
ромежутка времени
значение этого счетчика было не меньше 90 процентов
(Процесс)
счетчиков
показывает, сколько памяти в настоящий момент использует каждый
процесс. Значение этого счетчика для объекта процесса
SQL
Ser
ver
нужно сравнить с экземпляром
(Процесс)
(Ошибок
страницы/сек)
сколько раз для этого процесса пришлось обращаться к файлу
подкачки. Значение этого счетчика для объекта процесса
SQL
Server
нужно сравнить с экземпляром
(Память)
(Доступно байт)
представляет объем физической памяти, которая свободна и может
быть немедленно выделена какому
либо процессу. Значение этого
счетчика в течение длительного промежутка времени не должно
приближаться к 0
(Менеджер
памяти)
Общая
память
сервера
(KB))
счетчик для объекта соответствующего экземпляра
SQL
Server
определяет, сколько именно памяти (виртуальной, включая страницы
в файле подкачке) используют подсистемы
SQL
Serv
. Это значение
должно быть существенно ниже, чем объем физической оперативной
памяти на сервере
. Счетчики для анализа производительности дисковой подсистемы
Объект
Счетчик
Описание
(Логический диск) или
(Физический диск
(Процент
загрузки диска)
в течение продолжительного промежутка времени значение
не должно приближаться к 100. Если дисковая подсистема
постоянно загружена почти на 100 процентов, то очевидно,
что она является узким местом системы и ее надо за
менить.
Если вы не уверены, что за активность дисковой подсистемы
ответственен именно
SQL
Server
, есть смысл проверить
значение
(обмен данными, байт в секунду)
для объекта
(Процесс
) (сравнить это значение для
экземпляра
SQL
Server
и о
бъекта
(Физический диск) и
(Текущая длина
показывает, сколько запросов стоит в очереди на обработку
дисковой подсистемы. Значение его на протяжении


Объект
Счетчик
Описание
(Логический диск)
очереди диска)
продолжительн
ого промежутка времени не должно
превышать 2 для одного диска (если, к примеру, в
RAID
массиве находится 10 дисков, то среднее значение этого
счетчика не должно быть больше 20).
(Физический диск) и
(Логический диск).
(%
Активности диска при
чтении)
роцент времени, затраченного выбранным дисковым
устройством на обработку запросов на чтение данных.
(Физический диск) и
(Логический диск).
(% Активности диска
при записи)
роцент времени, затраченного выбранным дисковым
устройством на обработку запросов на запись данных.
. Счетчики для анализа производительности сетевой подсистемы
Проблемы с производительностью работы сети
можно разделить на два типа
е хватает произ
водительности конкретного сетевого адаптера, установленного на сервере.
Чтобы проверить это, можно воспользоваться счетчиком
Всего байт/сек
для объекта
Сетевой интерфейс
(выбрав нужный сетевой интерфейс из списка). Это значение предлагается сравнивать с п
аспортным для
данного сетевого интерфейса. Если сетевой интерфейс действительно работает на пределе своих
возможностей, то его можно заменить на специальный серверный мультипортовый адаптер.
Проблемы
в общем уровне загрузки сети.
В Системном мониторе нет о
бъекта, который бы позволил
отследить общий уровень загрузки сети
. Для этих целей предназначен
сниффер от
Microsoft
, который
называется
(объект
Менеджер буфера: процент
попаданий в кэш)
главный счетчик, который позволяет определить, достаточно ли памяти
отведено самому
SQL
Server
. В системах
OLTP
значение этого счетчика в
течение длительного времени работы сервера должно быть выш
е 90 процентов.
Для хранилищ данных допускаются более низкие значения
(объект
Менеджер буфера: размер
кэша в страницах)
этот счетчик показывает, сколько памяти выделено под кэш
SQL
Server
. В
идеале значение этого параме
тра должно
быть приближено
к размеру
физической
на сервере.
значительное
увеличение
этого показателя означает, что при выполнении
операций вста
вки и изменения данных
SQL
Server
приходится выполнять
большое количество ресурсоемких операций по разбиению страниц и переносу
части существующей страницы на новое место.
(объект Блокировок
SQL
Server
: Среднее вр
емя
ожидания (миллисекунд))
этот счетчик показывает, сколько
времени
в среднем процессам пользователей
приходится проводить в очереди, чтобы наложить на ресурс блокировку.
Максимально допустимое значения этого счетчика полностью зависит от вашей
задачи, к
акое
то среднее значение для всех приложения здесь определить
сложно. Слишком высокое значение этого счетчика может означать проблемы с
блокировками в вашей базе данных.


Основные счетчики
SQL
Server
Описание
этот счетчик определяет, сколько операций полного сканирования таблиц (без
обращения к индексам)
SQL
Server
выполняет в секунду. Для хранилищ данных
такие операции совершенно нормальны и каких
то подозрен
ий вызывать не
должны. Однако если слишком большое количество операций полного
сканирования проводится в базе данных, обслуживающей
OLTP
систему, то,
вполне возможно, индексов в базе данных недостаточно.
Просмотр значения счетчиков
SQL
Server
Чтобы п
росмо
треть значения счетчиков
SQL
Server
из кода
Transact
SQL
необходимо
обрати
ться
к специальному
представлению
sysperfinfo
в базе данных
К сожалению, большая часть значений счетчиков представлена в
в кумулятивном виде (то есть эта
информ
ация постоянно складывается с момента запуска сервера). Поэтому попытка просмотреть, к примеру,
информацию счетчика
Buffer cache hit ratio
для объекта
при помощи запроса вида
select * from sysperfinfo WHERE counter_name = 'Buffer cache hit
ratio'
вернет вам совершенно
некорректн
значение
(при том, что процент никак не может быть выше 100).
Пример получения информации
редположим, что мы хотим запротоколировать информацию о количестве транзакций в секунду для базы
данных
. При это
м сбор информации должен производиться в течение 1 минуты, а интервал для сбора
должен составлять 5 секунд. Код
Transact
SQL
для решения этой задачи может быть следующим:
Создаем временную таблицу со столбцами времени и значения счетчика
CREATE TABLE #P
erfTable(ts DATETIME, TranPerSec BIGINT)
DECLARE @iVar1 INT, @iVar2 INT, @dStartTime DATETIME
Получаем текущее время


максимальное влиян
ие на оптимизацию
Windows
для работы
SQL
Server
оказывает единственный
параметр,
обраться до
которого
можно
следующим образом
1).
открыть папку
Рис.
8.
Параметры службы
Serve
(Сервер) на компьютере
Windows
4).
В этом окне представлены настройки для службы
Server
(Сервер). При этом при помощи
переключателей в группе
Критерии оптимизации
мы можем определить, как именно будет
распределяться оперативная память на нашем сервере:
наиме
ньшая занимаемая память
это положение переключателя означает, что максимум
оперативной памяти будет выделяться обычным приложениям, запускаемым пользователем.
сбалансированная оптимизация
компромиссный вариант. Память будет равномерно
распределяться м
ежду пользовательскими приложениями и серверными службами;
максимальная пропускная способность доступа к общим файлам
максимум оперативной
памяти будет выделен под файловый кэш. Это значение оптимально для работы фай
лового
сервера и сервера печати
макси
мальная пропускная способность для сетевых приложений
максимум оперативной
памяти будет выделен серверным службам, например,
SQL
Server
Oracle
Exchange
Server
и т.п.
При установке
SQL
Server
Exchange
Server
переключатель автоматически переводится в э
то
положение (при установке
Oracle
нет).
Дополнительные
параметры настройки производительности
Windows
доступны
в окне свойств
компьютера:
1).
открыть свойства компьютера
2).
на вкладке
Advanced
(Дополнительно) нажать на кнопку
Options
(Параметры)
3).
в откры
вшемся окне
Performance Options
(Параметры быстродействия) на вкладке Advanced
(Дополнительно)
настроить параметры в соответствии с
рис.


Рис.
8.
Параметры быстродействия
Windows
Отметим еще несколько моментов:
для обеспечения наилучшей производит
ельности и защищенности сервера рекомендуется отключить
все
службы, которые на сервере не используются;
запускать утилиты администрирования только на рабочей станции администратора, а не на рабочем сервере
категорически не рекомендуется использоваться на
сервере заставки
OpenGL
антивирусное программное обеспечение может очень сильно снизить производительность работы
компьютера, на котором установлен
SQL
Server
. Оптимизация системы индексов
. Использование Database Tuning Advisor
Для использова
ния
Database
Tuning
Advisor
необходимо:
обрать информацию о запросах пользователей
средствами
SQL
Server
Profiler
, выбрав шаблон
, и
сохранив ее в
таблиц
на сервере
SQL
Server
или
в файле скрипта с расширением
*.sql
апус
тить
Database Tuning Adv
isor
меню
Пуск
Программы
Microsoft SQL Server
Performance
Tools
Database Engine Tuning Advisor
одключиться к серверу, для которого будет производиться оптимизация индексов.
Database
Tuning
Advisor
будет автоматически запрашивать с этого сервер
а необходимую служебную информацию
и сохранять на нем
временн
ую данные
левой части
интерфейса
Database
Tuning
Advisor
окн
Session
Monitor
(Монитора сеанса)
отображается
список
сеансов тюнинга.
Зеленым флажком помеч
аются
сеансы, для которых заверше
анализ и созданы рекомендации;
з контекстного меню для объектов сеанса
можно
открыть данный сеанс, скопировать его,
переименовать, удалить, запустить анализ и т.п.
окне справа, содержащем
информаци
о текущем сеансе
выбрать протокол рабочей нагрузки
(workload).
Им может быть таблица трассировки на SQL Server или файл одного из трех типов:
воичный файл трассировки, созданный профилировщиком (*.trc);
айл трассировки в формате
XML
(собранный протокол можно сохранить в этом формате,
воспользовавшись
ком
анд
ой
File
(Файл)
Save
(Сохранить как) в профилировщике);
крипт
Transact
SQL
*.sql
помощью
параметр
Database
for
workload
analysis
(База данных для анализа рабочей нагрузки)
указать в
качестве БД,
в которой будут создаваться временны
объект
atabase
Tuning
Advisor
специально
созданную
для этой цели
новую базу данных;
нижней части вкладки
General
(Общие) выбрать базы данных и таблицы, для которых будет производиться
анализ системы индексов
анализ
может производиться
сразу
для
нескольких
БД)


а в
кладк
Tuning
Options
(Параметры тюнинга) настрой
параметр
тюнинга. В большинстве ситуаций
оптимальными параметрами будут следующие:
снять
флажок
Limit
tuning
time
не ограничивать время анализа.
нятие ограничени
по времени
обеспечит максимальн
ое качество анализа;
установить
переключатель
Indexes
and
indexed
views
анализировать возможность применения
индексов и индексированных представлений. Это обеспечит максимальную
гибкость при проведении
анализа
установить переключатель
Full
partitioning
использовать полные возможности секционирования;
установить переключатель
not
keep
any
existing
PDS
не сохранять какие
либо существующи
физические структуры хранения
. При этом будут генерироваться не только предложения по созданию
новых индексов, н
о и по удалению существующих, если они практически не используются.
Нажать
кнопку
Start
Analysis
(Начать анализ) на панели инструментов. Наблюдать за ходом выполнения вы
сможете на вкладке
Progress
(Прогресс).
После завершен
ия анализа
откроется вкладка
commendations
(Рекомендации), на которой
будет
представлен список объектов (индексов, индексированных представлений, разделов), которые нужно создать
или удалить.
Результаты анализа размещаются на вкладке
Reports
(Отчеты).
осле изучения результатов анализ
а вы
можете воспользоваться
меню
Actions
(Действия)
Database
Tuning
Advisor
, содержащим
три пункта:
Apply
recommendations
(Применить рекомендации)
выполнить команды на создание и удаление
объектов, немедленно или по расписанию;
Save
recommendations
(Сохр
анить рекомендации)
рекомендации будут сохранены в файле скрипта.
При этом вы сможете выбрать, использовать ли команды на создание и удаление объектов в оперативном
режиме (с параметром
ONLINE
) или в автономном режиме (
Evaluate
recommendations
(оценить рекомендации)
создать новый сеанс анализа, в котором
предлагаемая конфигурация индексов, индексированных представлений и разделов будет считаться
действующей, и провести анализ, приняв ее за исходную. Фактически а этом режиме вы проводите
анализ
типа "а что, если...".
Существует консольный вариант
Database
Tuning
Advisor
. Возможности этой утилиты совпадают с
возможностями графического варианта
Database
Tuning
Advisor
, поэтому консольный вариант используется в
основном для автоматизации
сеансов тюнинга.
роблемы, связан
с применением
Database
Tuning
Advisor
Database
Tuning
Advisor
иногда отказывается запускаться на относительно маломощных компьютерах (на
которых тем не менее нормально работает сам
SQL
Server
2012
). При попытке подклю
читься к серверу он
выдает ошибку 2812
"Could not find stored procedure 'msdb..sp_DTA_help_session'"
(не
могу найти хранимую процедуру
'msdb..sp_DTA_help_session'
). Такой хранимой процедуры
действительно нет, но только потому, что
Database
Tuning
Advisor
должен создать ее вместе с другими
необходимыми объектами в базе данных
олные
возможности
Database
Tuning
Advisor
доступны
только
редакции
SQL
Server
Enterprise
Edition
Оценка уровня фрагментации
индексов и таблиц
Фрагментация возника
ет в процессе изменений данных (INSERT, UPDATE и DELETE), выполняемых на
таблице и, следовательно, в индексах, определенных для таблицы. Так как эти изменения обычно не
распределяются равномерно по строкам таблицы и индекса, заполненность каждой страницы с
о временем может
меняться.
Для запросов, выполняющих просмотр части или всех индексов таблицы, этот вид фрагментации может
приводить к чтению дополнительных страниц.
Это затрудняет параллельный просмотр данных.
Логическая фрагментация
то процент неупор
ядоченных страниц конечного уровня индекса.
Неупорядоченной называется страница, для которой следующая физическая страница, выделенная для
индекса, не является страницей, на которую ссылается указатель следующей страницы в текущей
конечной странице.
Фрагм
ентация экстентов
то процент неупорядоченных экстентов на конечном уровне кучи.
Неупорядоченным называется такой экстент, для которого экстент, содержащий текущую страницу кучи,
не расположен физически непосредственно за кластером, содержащим предыдущую
страницу.
Оценить уровень фрагментации можно
тремя
способами:


Команда
TSQL
DBCC SHOWCONTIG
возвращает информацию о степени фрагментированности индексов
Эту команду можно запускать с разным набором параметро
в.
При запуске без параметров
возвращается
информаци
о степени фрагментации первого индекса для каждой из таблиц в текущей базе данных.
Пример
DBCC SHOWCONTIG ('HumanResources.Employee', 'PK_Employee_EmployeeID')
Информация, возвращаемая коман
дой
DBCC SHOWCONTIG
приведена в таблице.
Параметр
Описание
Pages scanned
(Просканировано страниц)
количество страниц в БД, используемых индексом
Extents switches
(Переключения экстентов)
количество переходов между экстентами при просмотре
страниц инде
кса. В идеале этот параметр не должен
превышать количество страниц, деленное на 8
Pages
per
Extent
(Средние страницы на
экстент)
среднее количество страниц, приходящихся на экстент.
В идеале это значение должно быть равно 8 (или
близко к нему).
Density
Best
Count
Actual
Count
(Плотность сканирования [Лучший показатель:
Реальный показатель])
отношение идеально возможного количества переходов
между экстентами к реальному.
Чем ближе к 100
процентам, тем лучше
Logical
Scan
Fragmentation
(Фрагме
нтация
логического сканирования)
процент страниц индекса (из просмотренных),
нарушающих требование: каждая страница индекса
должна идти следующей после предыдущей не только по
номеру, но и по физическому расположению в файле
базе данных
Extent
Scan
Frag
mentation
(Фрагментация
сканирования экстентов)
почти то же самое, только оцениваются не страницы
индекса, которые идут не по порядку, а экстенты,
принадлежащие этому индексу, которые идут не друг за
другом. Этот параметр оказывает меньшее влияние на
ость работы (и обычно он сам существенно меньше,
Logical
Scan
Fragmentation
Bytes
free
per
page
(Средний размер
пустого пространства на страницах)
чем выше этот показатель, тем хуже. Обычно
значительный размер этот показателя возникает после
даления большого числа данных из таблицы
Page
Density
(Средняя плотность
страницы)
определяет, на сколько в среднем заполнена каждая
страница индекса.
Чем выше этот показатель, тем
лучше
Scan Density
(Плотность сканирования)
лотность сканирования
быть максимально
близк
к 100 процентам
Logical
Scan
Fragmentation
(Фрагментация
логического сканирования)
рагментация логического сканирования должна быть
максимально близка к 0 процентам. Если уровень
фрагментации составляет 30
40 процентов и вы
ше, есть
смысл подумать о проведении дефрагментации
Page
Density
(Средняя плотность
страницы)
средняя плотность страницы должн
быть максимально
близк
к 100 процентам
рафически
средства
SQL Server Management Studio.
Object
Explorer
раскрыть
онтейнер
имя
сервера
Databases
Базы
данных
имя
базы
данных
Tables
Таблицы
имя
таблицы
Indexes
Индексы
),
открыть свойства для нужного индекса и перейти на вкладку
Fragmentation
(Фрагментация) (см. рис.
).
На этой вкладке приводится самая в
ажная и
нформаци
по фрагментации (о заполнении страниц
и общая оценка фрагментации).


Рис.
8.
Оценка степени фрагментации индекса
Использование динамической функции
sys
index
physical
stats
Возвращает сведения о размере и фрагментации данных и ин
дексов указанной таблицы или представления. Для
индекса возвращается одна строка для каждого уровня сбалансированного дерева в каждой секции.
Для кучи
возвращается одна строка для единицы распределения IN_ROW_DATA каждой секции.
Для данных больших
объектов
(LOB) возвращается одна строка для единицы распределения LOB_DATA каждой секции.
Если в
таблице существуют превышающие размер страницы данные строки, то возвращается одна строка для единицы
распределения ROW_OVERFLOW_DATA каждой секции.
Не возвращает свед
ения об оптимизированных для
памяти xVelocity индексах columnstore.
Синтаксис


1 | DEFAULT }

)

Аргументы
database_id
| NULL | 0 | DEFAULT
Идентификатор базы данных. Укажите значение NULL, чтобы вернуть сведения для всех баз данных в
экземпляре SQL Server.
object_id
| NULL | 0 | DEFAULT
Идентификатор объекта таблицы или представления, имеющего индекс. Укажите значение NULL, чтобы
вернуть данные для всех таблиц и представлений в указанной базе данных.
index_id
| 0 | NULL |
1 | DEFAULT
Идентификатор индекса. Укажите значение NULL, чтобы
вернуть данные для всех индексов базовой
таблицы или представления. Если будет указано значение NULL для аргумента
index_id
, также
необходимо указать значение NULL для аргумента
partition_number
partition_number
| NULL | 0 | DEFAULT
Номер секции в объек
те. Чтобы получить сведения обо всех секциях объекта, укажите значение NULL.
mode
| NULL | DEFAULT
Имя режима. Аргумент
mode
задает уровень просмотра, используемый для получения статистики.
Допустимыми входными данными являются значения DEFAULT, NULL, LI
MITED, SAMPLED и
DETAILED.
Значение по умолчанию (NULL) соответствует значению LIMITED.
Режим
LIMITED
является самым быстрым, в нем производится наименьшее число просмотров
страниц. Для индекса просматриваются только страницы родительского уровня в сбалан
сированном
дереве (то есть страницы, расположенные выше конечного уровня).
Для кучи просматриваются
только связанные PFS
и IAM
страницы. Страницы данных в куче просматриваются в ограниченном
режиме.


В режиме
SAMPLED
возвращается статистика на основе 1
оцентной выборки всех страниц в
индексе или куче.
Результаты в режиме SAMPLED следует рассматривать как приблизительные.
Используйте режим
SAMPLED
, чтобы получить оценку значения для compressed_page_count.
В режиме
Основные столбцы звращаемой табл
Столбец
Описание
database_id
Идентификатор базы данных таблицы или представления.
object_id
Идентификатор объекта таблицы или представления, для которых создан индекс.
index_id
Идентификатор индекса.
0 = куча.
index_type_desc
Описание
типа
индекса
HEAP
CLUSTERED INDEX
NONCLUSTERED INDEX
PRIMARY XML INDEX
SPATIAL INDEX
XML INDEX
index_depth
Количество уровней индекса.
1 = куча или единица распределения LOB_DATA или ROW_OVERFLOW_DATA.
index_level
Текущий уровень индекса.
0 для
конечного уровня индекса, для кучи и единиц распределения LOB_DATA
или ROW_OVERFLOW_DATA.
Значения больше 0 соответствуют неконечным уровням индекса. Наибольшее
значение аргумент
index_level
имеет на корневом уровне индекса.
Неконечные уровни индекса обр
абатываются только в том случае, если задан
аргумент
mode
= DETAILED.
avg_fragmentation_in_percent
Логическая фрагментация для индексов или фрагментация экстентов для куч в
единице распределения IN_ROW_DATA.
Значение измеряется в процентах и учитывает
несколько файлов.
page_count
Общее количество страниц индекса или данных.
avg_page_space_used_in_percent
Средний процент доступного места для хранения данных, используемого всеми
страницами.
record_count
Общее количество записей. Для кучи число за
писей, возвращаемых этой
функцией, может не соответствовать числу строк, возвращаемых запросом
SELECT COUNT(*) из кучи. Это происходит потому, что строка может содержать
несколько записей.
ghost_record_count
Количество фантомных записей в единице распре
деления, готовых к удалению
задачей очистки фантомных записей.
min_record_size_in_bytes
Минимальный размер записи в байтах.
max_record_size_in_bytes
Максимальный размер записи в байтах.
avg_record_size_in_bytes
Средний размер записи в байтах.
rwarded_record_count
Количество записей в куче, содержащих указатели на данные в других местах.
(Такое состояние возникает во время обновления, когда не хватает места для
сохранения новой строки в исходном расположении.)
compressed_page_count
Количество
сжатых страниц.
Вновь выделенные для куч страницы не сжаты с использованием сжатия
PAGE. Куча сжимается с использованием метода PAGE в двух особых
ситуациях: при массовом импорте данных или перестройке кучи.
Типичные операции DML, которые вызывают выделе
ние страниц, не
связаны со сжатием PAGE.
Перестройте кучу, если значение
compressed_page_count увеличивается сверх порогового.
Для таблиц с кластеризованным индексом значение
compressed_page_count указывает эффективность сжатия PAGE.


Внимание
Функция
динамического управления sys.dm_db_index_physical_stats заменяет инструкцию DBCC SHOWCONTIG.
Данная функция динамического управления не принимает связанные параметры операторов CROSS APPLY и
OUTER APPLY.


Внимание
Всегда следует проверять, что функции DB_ID и OBJECT_ID возвращают допустимый идентификатор.
.4 Снижение фрагментации в индексе
Если индекс становится фрагмент
ирован настолько, что это влияет на производительность запросов, для
снижения фр
агментации есть три возможности:
Удаление и повторное создание кластеризованного индекса.
Повторное создание кластеризованного
индекса перераспределяет данные и приводит к полн
ому заполнению страниц данных. Уровень
заполнения можно настроить с помощью параметра FILLFACTOR инструкции CREATE INDEX.
Недостатком этого метода является то, что в цикле удаления и повторного создания индекс находится в
автономном режиме, а также то, что
эта операция является атомарной.
Если создание индекса прервано,
он не создается заново.
Внимание
Для снижения фрагментации экстентов кучи создайте кластеризованный индекс таблицы, а затем удалите
его. Во время создания кластеризованного индекса данные
перераспределяются.
Когда затем
кластеризованный индекс удаляется для повторного создания кучи, данные не перемещаются и их
распределение остается оптимальным.
При создании и удалении кластеризованного индекса таблицы дважды перестраиваются все ее
некласт
еризованные индексы
Перестроение индексов, для устранения фрагментации,
как в режиме «
online
», так и в режиме
offline
Дефрагментацию индексов можно производить разными способами:
С помощью команды
ALTER INDEX ... REBUILD
можно выполнить перестроение ко
нкретного
индекса или группы индексов указанной таблицы или представления. Эта команда полностью
удаляет существующий индекс или индексы и создает их заново, устраняя всякую фрагментацию.
Например:
чтобы произвести полное перестроение индекса
ALTER INDEX PK_Employee_EmployeeID ON HumanResources.Employee REBUILD
чтобы перестроить все индексы для указанной таблицы или представления:
ALTER INDEX ALL ON HumanResources.Employee REBUILD
Внимание
При перестроении некластерного индекса его
можно отключить командой
ALTER INDEX DISABLE
результате места на диске для этой операции потребуется намного меньше.
С помощью графического интерфейса
SQL
Server
Management
Studio
можно выполнить
перестроение конкретного индекса или всех индексов выбра
нной таблицы: из контекстного меню
индекса или контейнера
Indexes
выбрать команду
Rebuild
Внимание!
При перестроении индексов статистика автоматически не обновляется. Поэтому выполнение
практически любого запроса к базе данных будет приводить к автоматиче
скому перерасчету статистики.
Если вы производите перестроение индексов на регулярной основе, рекомендуется после завершения
этой операции сразу произвести обновление статистики во всей базе данных.
Реорганизация индексов,
для переупорядочения страниц инд
екса конечного уровня в логическом
порядке
Так как эта операция выполняется в режиме «
online
», во время выполнения инструкции индекс
доступен. Кроме того, операция может быть прервана без потери уже выполненной работы. Недостатком
этого метода является то
, что он не так хорошо выполняет реорганизацию данных, как операция
перестроения индекса, и не обновляет статистику.
При помощи команды
ALTER INDEX ... REORGANIZE
производится дефрагментация только
страниц самого нижнего уровня индекса (листовых). Например
ALTER INDEX PK_Employee_EmployeeID ON HumanResources.Employee
REORGANIZE


С помощью графического интерфейса
SQL
Server
Management
Studio
можно выполнить
реорганизацию конкретного индекса или всех индексов выбранной таблицы: из контекстного меню
индекса и
ли контейнера
Indexes
(Индексы) выбрать команду
Reorganize
(Реорганизовать).
Внимание!
Выполнение инструкции
DBCC SHRINKFILE
или
DBCC SHRINKDATABASE
может вызвать фрагментацию,
если индекс частично или полностью перемещается во время операции сжатия. Поэто
му, если необходимо
выполнить операцию сжатия, нужно выполнить ее до устранения фрагментации
Работа с блокировками
Уровни блокировки в
SQL
Server
локировка уровня базы данных (
). Такие блокировки автоматически накладываются на любую базу
данных,
к к
оторой подключен пользователь
локировки уровня объекта (например,
). Такие блокировки могут накладываться на таблицу или
индекс,
как при выполнении обычных запросов, так и при выполнении служебных операций с этими объектами;
локировки уровня экст
ента (
). Они используются только при
выполнении
служебных операци
создание новых таблиц, увеличени
размера файлов баз данных и т.п
локировки уровня страницы (
). При их применении блокируется вся страница размером 8 Кбайт, со
всеми записями, ко
торые в ней находятся. Такой тип блокировки может применяться как для страниц данных,
так и для страниц индексов;
локировки уровня записи/ключа (
). Такие блокировки накладываются на отдельные записи.
Блокировки типа
накладываются на записи в та
блицы без кластерного индекса (
heap
), а блокировки типа
на записи в таблицах, для которых предусмотрен кластерный индекс.
Эскалация блокировок
SQL
Server
управляет уровнем блокировок автоматически
, пытаясь вначале использовать
только блокировки на
овне записи.
В случае необходимости
SQL
Server
может принять решение об использовании блокировок более
высокого уровня. Такое повышение уровня называется
эскалацией блокировок
lock
escalation
Решение об эскалации блокировок
SQL
Server
принимает в двух с
итуациях:
огда запрос пытается применить к одному объекту (таблице или индексу) более 5000 блокировок на уровне
записи или страницы. При этом
SQL
Server
никогда не производит эскалацию с уровня записи до уровня
страницы, а сразу пытается наложить блокиро
вку на таблицу;
огда место в области
, отведенной на работы с блокировками, заканчивается. На каждую блокировку
SQL
Server
отводит
байт. Размер области памяти для работы с блокировками
SQL
Server
по умолчанию
(при установленном параметре сервера
, равном 0) устанавливается динамически. Как только размер
этой области достигает 40 процентов от общего размера памяти, которую использует процесс
SQL
Server
(она
ограничивается операционной системой или параметром
MAX SERVER MEMORY
, то
SQL
Server
автома
тически пытается произвести эскалацию блокировок. Если размер области оперативной памяти достиг
60 процентов от объема памяти, максимально доступной
SQL
Server
, создание новых блокировок не
производится, а клиенту возвращается ошибка
unable to alloca
невозможно
разместить ресурсы блокировки).
Мониторинг событий эскалации блокировок
Мониторинг событий эскалации блокировок
можно производить при помощи профилировщика, выбрав в нем
событие
Решение проблем эсклации блоки
ровок:
Использова
соответствующ
уров
ень
изоляции транзакций
таким образом
можно
вообще избавиться о
блокировок при запросах на чтение данных. Блокировки при операциях записи не налагаются при
использовании уровней:
для параметра базы
данных
READ_COMMINTED_SNAPSHOT
установлено значение
(новый уровень изоляции, который появился в
SQL
Server
еревести базу данных в состояние
(Только чтение). В этом случае при обращении к ней никакие
блокиров
ки использоваться не будут, что может дать очень большой выигрыш в производительности и
повысить количество пользователей, которые могут ра
ботать с таблицей одновременно


сли
изначально
нужно повысить уровень блокировки, то можно использовать хинты
в запросах
Использовать
храним
процедур

SQL
Server
вместо нее рекомендуется
использовать команду
ALTER INDEX
). При помощи этой процедур
можно вообще отключить блокировку на
уровне страниц и записей:
SQL
Server
будет автоматически применять блокировку на уровне объекта. Эту
хранимую процедуру можно использовать для настройки уровня блокировок:
для некластерного индекса;
для кластерного индекса (эти же настройки будут одновременно применены для таблицы)
для таблицы, у которой нет кластерных индексов
передать этой хранимой процедуре вместо имени
индекса имя таблицы
Чтобы избавиться от блокировок уровня страницы необходимо установить
значение
для параметра
в этой хранимой процеду
ре.
Использовать графический интерфейс
SQL Server
для
настройки уровня блокировки
открыть свойства индекса в Object Explorer,
перейти на вкладку
Options
(Параметры) и воспользоваться флажками
Use row locks then accessing the
index
(Использовать бло
кировки записей при обращении к индексу) и
Use page locks then accessing the
index
(Использовать блокировки страниц при обращении к индексу).
Настроить вручную размер
области блокировки в памяти
(если места выделено
недостаточно
. Для этой цели
можно испол
ьзовать параметр конфигурации сервера
Lock
, а также попробовать увеличить количество
оперативной памяти, доступной SQL Server, при помощи увеличения физической оперативной памяти на
сервере или при помощи параметра
MAX SERVER MEMORY
Использовать флаги тра
ссировки:
Флаг
отключает любую эскалацию блокировок. С этим параметром нужно быть очень осторожным,
так как вы можете резко снизить производительность работы сервера и увеличить расход оперативной
памяти. Кроме того, вы рискуете при исчерпании операт
ивной памяти, отводимой на блокировки,
получить ошибку 1204.
лаг
отключает эскалацию блокировок, производимую по счетчику (5000 блокировок на нижнем
уровне), однако при исчерпании места в области оперативной памяти, отводимой под блокировки,
эскалац
ия все равно будет происходить.
Если одновременно установить флаги 1224 и 1211, то приоритет будет отдан флагу 1224.
. Оптимизация запросов
Статистика
это служебная информация о распределении данных в столбцах таблиц
Для баз данных
SQL
Server
по умолчанию устанавливаются параметры
AUTO_CREATE_STATISTICS
Для
создания и обновления статистики вручную
используются команды
CREATE STATISTICS
UPDATE
птимизаци
запросов
айти запросы, которые подлежат оптим
изации
Воспользоваться
SQL
Profiler
, установив фильтр на время выполнения запроса (
). Например, в
число кандидатов на оптимизацию могут попасть запросы, время выполнения которых составило более 5
секунд.
спользовать информацию о запросах, предос
тавляе
мую
средствами
Index
Tuning
Wizard
Database
Tuning
Advisor
Установить
для соединени
параметр


Чтобы просмотреть
реальный план выполнения запроса
перед выполнением запроса
установить
в меню
Query
флажок
Include
Actual
Execution
Plan
Рис.
8.
План выполнения запроса в
SQL
Server
Management
Studio
окне
Management
udio
выполн
ить
команду
Гиды по планам выполнения
Очень часто бывает так, что код запроса нам не изменить: он жестко "прошит" в код откомпилированного
риложения. Чтобы справиться с этой проблемой, в
SQL
Server
появилась новая хранимая процедура
. Она позволяет создавать так называемые
руководства по планам выполнения
plan
guides
), которые будут автоматически применяться к соотве
тствующим запросам.
На что следует обратить внимание при анализе запросов
Если вы анализируете запросы, которое выполняет к базе данных какое
либо приложение, есть смысл в первую
очередь обратить внимание на следующие моменты:
насколько часто в планах выпо
лнения запроса встречается операция
Table
Scan
(Полное сканирование
таблицы);
используются ли в коде курсоры?;


используются ли в коде временные таблицы или тип данных
используются ли в коде
команды на изменение структуры временных таблиц;
если прил
ожение передает на сервер команды
EXECUTE
рекомендуется
заменить их на вызов хранимой
процедуры
повышения производительности можно добиться, устранив необходимость повторной компиляции хранимых
процедур и построения новых планов выполнения
запросов.
постараться не смешивать в коде хранимой процедуры команды
DML
DDL
следить за тем, чтобы параметры подключения
Чтобы открыть окно
SSIS
Designer
, достаточно
запустить
Data
Tools
меню
Пуск
Программы
SQL
Server
создать новый проект на основе шаблона
Integration
Services
Project
. Окно
SSIS Designer
откроется
автоматически
рис
1).
Рис.
9.
1.
Интерфейс
SSIS
Designer
SQL
Server
Import
and
Export
Wizard
мастер импорта
экспорта, позволяющий создавать простые
пакеты для перекачивания данных из одного источника в другой.
Мастер
импорта
экспорта можно запустить:
из командной строки при помощи команды
из
SSIS
Designer
при помощи меню
Project
SSIS Import and Export Wizard


SQL Server Management Studio,
если
дереве
Object Explorer
щелкнуть
правой
кнопкой
мыши
объ
екту
базы
данных
контекстном
меню
выбрать
Tasks
Import Data
Export Data
Утилиты комадной строки:
Для запуска пакета используется утилита
. Быстро сгенерировать для нее командную строку
(или точно также запустить пакет) можно при помощи
графической утилиты
dtexecui
Для выполнения административных задач над пакетами (копирования, перемещения, удаления,
шифрования и т.п.) предназначена утилита
. Использование мастера импорта/экспорта данных
Мастер импорта и экспорта SQL Server м
ожет копировать данные из любого источника, для которого существует
управляемый поставщик данных .NET Framework или собственный поставщик данных OLE DB, а также в любой
такой источник. Доступны поставщики для следующих источников данных.
SQL Server
Нестр
уктурированные файлы
Microsoft Office Access
Microsoft Office Excel
При запуске мастера из
SQL
Server
Management
Studio
, в нем автоматически настраиваются параметры
подключения. Если мастер запускается из командной строки при помощи команды
се параметры
подключений потребуется настроить вручную.
На первом экране
Choose a Data Source
, нужно выбрать источник данных. Набор остальных параметров,
которые можно заполнить на этом экране, зависят от выбранного источника данных.
в мастере доступны не
все источники данных, к которым можно подключиться из
SSIS
Designer
Например, в вашем распоряжении нет источников данных
Raw
File
Source
XML
XML
Source
доступны все источники данных
ODBC
. Источники данных
ODBC
доступны при помощи драйвера


При помощи кнопки
Edit
SQL
мы можем при желании вмешаться в создание таблицы, явно
определив код команды
Create
Table
На экране
Save
and
Execute
Package
можно выбрать следующие действия:
Execute
immediately
запустить пакет на выполнение сразу после завершения работы мастера;
Sav
SSIS
Package
сохранить пакет
SSIS
в БД
на
SQL
Server
или в виде файла на диске.
После нажатия на кнопку
Next
будет открыто окно, в котором необходимо определить уровень защиты
пакета (см. рис.
2).
Рис.
9.
2.
Экран сохранения пакетов
SSIS
На сл
едующем экране, который называется
Save SSIS Package
необходимо определить параметры
сохранения
имя пакета, его описание и сервер, на который он будет помещен (с параметрами
аутентификации при подключении к этому серверу).
После нажатия на кнопку
Finish
пакет будет запущен на выполнение. Необходимо убедиться, что его
сохранение и выгрузка данных происходят нормально.
По окончании при помощи кнопки
Report
можно сгенерировать отчет о выполнении пакета.
. Использование
SSIS
Designer
для создания пакетов
SSIS Designer
встроен
Business Intelligence Development Studio.
Для запуска
SSIS
Designer
и создание нового
пакета необходимо:
Запустить
Data Tools
Создать новый проект
меню
File
New
Project
. В окне
New
Project
в списке типов проекта нужно
выбрать
Business
Intelligence
Projects
, а в списке доступных шаблонов в правой части экрана
Integration
Services
Project
Ввести информацию об имени создаваемого проекта и размещении его файлов и нажать на кнопку
Откроется окно
SSIS
Designer
с загруженным
в него новым пустым пакетом
SSIS
. В окне
SSIS
Designer
четыре вкладки:
Control
Flow
(Поток управлляющих элементов)
использууется для управления ходом выполнения
пакетов;
Data
Flow
(Поток данных)
предназначена для редактирования элементов
Data
Flow
Ta
, при
помощи которых и определяются параметры перемещения данных;
Event
Handlers
(Обработчики событий)
используется для регистрации обработчиков событий,
которые могут возникнуть при выполнении пакета;
Package
Explorer
(Проводник пакета)
просмотровщи
к компонентов объекта, представляющего
пакет
SSIS


Разместить на вкладке
Control
Flow
элемент
Data
Flow
Task
, перетащив его с панели
Toolbox
(меню
View
Toolbox
), рис.
Рис.
9.
3.
Работа с
SSIS
Designer
Настроить подключение к источнику данных при пом
ощи объектов менеджеров подключений (
Connection
Managers
) (см. рис.
4). Область для работы с этими объектами размещается в нижней части экрана.
Рис.
9.
4.
Настройка
Connection
Manager
Создать соединение с приемником данных, например для файла Excel D:
Employees.xls
Excel
Настроить параметры задачи
Data
Flow
Task
, перетащив из
Toolbox
на розовое поле вкладки
Data
Flow
источник (
source
) и назначение (
destination
) для передаваемых данных (созданные назначения находятся в
самом низу списка эл
ементов в
Toolbox
Определить параметры источника. Для этого, щелкнув по объекту источника правой кнопкой мыши,
выбрать в контекстном меню команду
Edit
Определить связь между источником и назначением. Для этого:
выделить настроенный источник
OLE DB Sou
. Тогда для него появятся две стрелки
зеленая и
красная, направленные вниз.
зацепить мышью зеленую стрелку (она означает успешное извлечение данных) и перетащить ее на
назначение
, после чего схема
Data
Flow
Task
будет выглядеть так,
как
представлено на рис.


Рис.
9.
5.
Определение связей между источником и назначением
Настроить назначение (Excel Destination), открыв его свойства при помощи команды
Edit
в контекстном
меню и выбрав требуемые параметры на вкладке
Connection Manager
Убедиться, что пакет выполняет все нужные действия. Для этого, достаточно запустить его на выполнение
при помощи меню
Debug
Start
Debugging
или
Debug
Start
without
debugging
. Если вы запустили
пакет с отладкой, после окончания его работы завершите от
ладку при помощи меню
Debug
Stop
Debugging
Открытие существующего пакета
Чтобы сравнить созданный вручную пакет
SSIS
, и тот пакет, который был создан мастером, необходимо:
В окне
Solution
Explorer
щелкнуть правой кнопкой мыши по контейнеру
SSIS
Package
и в контекстном
меню выбрать
Add
Existing
Packages
Затем в открывшемся окне выбрать в поле
Package
location
значение
SQL
Server
, ввести имя вашего сервера
и нажать на кнопку в правой части от поля
Package
path
В открывшемся списке пакетов и планов о
бслуживания баз данных, которые находятся на сервере, выбрать
созданный вами пакет и нажать на кнопку
Чтобы открыть этот пакет в
SSIS
Designer
, достаточно в контекстном меню для него выбрать команду
Open
. Менеджеры подключений (
Connection
Manager
Работа с пакетом
SSIS
начинается с определения соединений (
connections
). Настройка соединений производится
при помощи
менеджеров подключений
Connection
Managers
) в одноименном окне, которое находится в нижней
части вкладок
Control
Flow
Data
Flow
Eve
Handlers
Менеджер подключения
это графическая оболочка, при помощи которой производится настройка
подключения к источнику данных и создается строка подключения (
connection
string
). Строка подключения
создается и записывается в пакет автоматически. П
осмотреть строку подключения можно из окна редактора кода
XML
для нашего пакета (меню
View
Code
SSIS
Designer
Создание менеджера подключения:
Щелкнуть правой кнопкой мыши по пустому пространству в окне
Connection
Managers
и выбрать в
контекстном меню
нужный тип создаваемого менеджера соединения.
Если вы выберете тип
New
Connection
, то в вашем распоряжении будут все доступные типы менеджеров
соединения.
Новый менеджер соединения можно создать также при помощи меню
SSIS
New Connection
Типы соединений
Тип соединения
Описание
используется объект
Connection
(не
ADO
NET
). Для подключения можно использовать
любой из драйверов
OLE
, установленный на вашем компьютере
использовуются средства объектной библиотеки
ADO
NET
. Можно использова
ть три
"родных" поставщика .
NET
, а также любой из драйверов
ODBC
. Требует больше ресурсов
используется для подключения к
Excel
. При его настройке необходимо выбрать версию фа
йла
Excel
и имя файла, к которому мы подключаемся. Этот тип подключения выделен как
отдельный только для удобства, реально для него используется подключение по
OLE


Тип соединения
Описание
поставщиком
новый тип менеджера подключения, при помощи
которого можно указать файл или каталог с
набором файлов, которые смогут затем использовать самые разные задачи. Например, если
файл содержит скрипт
Transact
SQL
, этот скрипт сможет выполнить
Execute
SQL
Task
. При
настройке потребуется выбрать имя файла
талога и указать режим подключения: будет ли
использован существующий файл
каталог или он будет создан во время выполнения пакета
предназначен для работы с текстовыми файлами, содержащими наборы данных отделяемые
разделителями (запятая, точка с
запятой и т.п.)
предназначен для настройки соединения с сервером
FTP
. Настраивается для задачи
FTP
Task
Для этого соединения можно указать сервер
FTP
и используемый им порт, имя пользователя и
пароль, активный и пассивный режим работы. Может использ
оваться для передачи данных в
обоих направлениях
предназначен для обмена данными по Интернет
протоколам при взаимодействии с
Web
службами. Обычно используется задачей
Web
Service
Task
это путь к очереди
Microsoft
Message
Queue
Services
, котор
ая может быть использована для
обмена сообщениями между пакетами
SSIS
(или приложениями). Используется задачей
Message
Queue
Task
предназначен для подключения к базам данных
OLAP
. При его настройке вы можете указать
либо компьютер, на котором ра
ботает служба
Analysis
Services
, либо путь к проекту
Analysis
Services
в текущем решении. Чаще всего этот тип используется вместе с
Analysis
Services
Processing
Task
для автоматизации процессинга кубов
эти аналоги подключений
предназначены для работы с несколькими
файлами одновременно. Можно указывать как списки файлов (разделяя их имена
вертикальной чертой), так и все файлы в определенном каталоге (при помощи символа
звездочки
используется для подклю
чения к источникам данных при помощи драйверов
ODBC
. Можно
использовать существующий источник данных
ODBC
или создать новый прямо в процессе
настройки этого менеджера подключений
используются драйверы
поставщики
OLE
. Этот тип менеджера подключе
ний можно
использовать для подключения к самым разным источникам данных
использует средства объектной модели
SMO
для подключения к
SQL
Server
. Обычно
этот
тип
используется
для
задач
переносу
объектов
SQL Server (
Transfer Databases Task
Transfer Error Messages Task, Transfer Jobs Task, Transfer Logins Task
используется для настройки подключения к почтовому серверу, работающему по протоколу
SMTP
. Можно указать адрес сервера, режим аутентификации и защиты по
. Обычно это
тип менеджера подключений используется только для задачи
Send
Mail
Task
используется в ситуациях, когда в ходе выполнения пакета
SSIS
задача
Data
Flow
Task
загружает данные в назначение
SQL
Server
Mobile
(то есть базу данных
SQL
Server
2008
Mobile
Edition
). Для нее вы можете настроить имя базы данных
SQL
Server
Mobile
Edition
, имя пользователя и пароль
используется для подключения к определенному пространству имен
WMI
с указанием имени
пользователя и пароля для подключения. Обычно
этот тип используется для задач
WMI
Data
Reader
Task
WMI
Event
Watcher
Task
Какой бы тип менеджера подключений вы не выбрали, созданные вами объекты появятся в окне
Connection
Managers
. При помощи команды
Edit
в контекстном меню для данного менеджера
вы сможете еще раз открыть
графический интерфейс настройки его параметров, а при помощи команды
Properties
просмотреть список
свойств для данного менеджера и при необходимости изменить их значения.


. Работа с Data Flow Task
Что
такое
Data
Flow
Task
После создания менеджеров подключений в окне
Connection
Managers
, следующая задача
создать нужные
задачи на вкладке
Control
Flow
Самая распространенная задача в пакетах
SSIS
это задача
Data
Flow
Task
. Ее основная задача
определять
один или нес
колько потоков данных (
data
flow
), то есть направлений по перекачке данных с одного источника
данных на другой, с возможностью их одновременной проверки и преобразования.
Для этой задачи в
SSIS
Designer
предусмотрена отдельная вкладка. Однако работать на
этой вкладке можно
только тогда, когда на вкладке
Control
Flow
будет добавлена в проект хотя бы одна задача
Data
Flow
Task
. После
щелчка правой клавишей мыши по задаче и выбора в контекстном меню команды
Edit
автоматически откроется
вкладка
Data
Flow
2. Элементы
Data
Flow
Task
Data
Flow
Task
предусмотрено четыре типа элементов:
Data
Flow
Sources
источники данных, с которых
Data
Flow
Task
будет скачивать данные. В вашем
распоряжении
шесть разновидностей источников. Все они доступны в разделе
Data
Flow
Sources
Toolbox
. Вам потребуется перетащить нужный источник на пустое место на вкладке
Data
Flow
определить его свойства (например, для большинства источников вам потребуется выбрать менеджер
подключения);
Data
Flow
Destinations
пункты назначени
я для данных, в которые эта задача будет помещать
полученные с источника и преобразованные данные. Все 11 назначений доступны из раздела
Data
Flow
Destinations
Toolbox
. Работа с ними производится точно так же, как и с источниками;
Data
Flow
Transformatio
преобразования, которые будут выполнены в процессе перекачки данных.
Множество преобразований доступно из раздела
Data
Flow
Transformations
Toolbox
. Обычно они
помещаются между источником и назначением данных (см. рис.
6).
Рис.
9.
6.
Применение
преобразований в
SSIS
Designer
Paths
эти компоненты выглядят как зеленые и красные стрелки, которые используются для соединения
элементов
Data
Flow
Task
друг с другом. Зеленая стрелка означает нормальное прохождение данных, а
красная
направление переда
чи данных при возникновении ошибок. Эти стрелки становятся видимыми,
если выделить соответствующий элемент в
SSIS
Designer
. Пути не только определяют логику выполнения
задачи, но и могут также использоваться для отладки.
.3. Источники и назначения
Data
Flow
Task
Работа с большинством источников и назначений
Data
Flow
Task
выглядит одинаково: вначале назначение нужно
перетащить из
Toolbox
, а затем настроить его свойства. Для большей части источников и назначений вам
потребуется указать в свойствах созданн
ый вами менеджер подключений подходящего типа (неподходящие будут
просто не видны).
Ниже представлена информация о тех источниках и назначениях, при настройке которых могут возникнуть
вопросы, и о тех, которые не используют менеджеры подключений:
возможность получить данные с источника при помощи объекта
объектной библиотеки
ADO
NET
. Требует менеджера подключений типа
ADO
NET


предназначен для помещения данных в объект
Работа со всеми преобразованиями выглядит одинаково
Необходимо перетащить элемент преобразования из раздела
Transformations
Toolbox
на свободное место
SSIS
Designer
на вкладке
Data
Flow
),
Затем соединить преобразование стрелками с источниками, назначениями или другими преобразованиями.
Настроить свойства данного преобразования, указывая только те столбцы, с которыми действительно
производятся какие
то преобразования
Data
Flow
Task
предусмотрено 28 типов преобразований.
Тип преобразования
Описание
Aggregate
(Агрегат)
предназначено для расчета итоговых значений по столбцам перекачиваемых записей.
Это преобразование скачивает все записи в ОП и считает по ним итоги
Audit
(Аудит)
возможность использовать в пакете значения системных переменных (например,
имени пользователя, который запустил пакет). Фактически появляется новый
источник данных, столбцы которого соответствуют данным системным переменным
Character Map
(Карта
символов)
это преобразование позволяет применить к значениям, получаемым с источника,
строковые функции (например, перевод в верхний). Для каждого столбца в свойствах
этого преобразования можно указать два назначения:
place
upgrade
(то есть
мен
яться будет значения того же столбца) и
New
column
(результаты преобразования
будут помещены в новый столбец).
Copy Column
(Копирование столбца)
используется для "размножения" существующего столбеца, сделав из него два.
Conditional Split
(Условное разде
ление)
оно проверяет каждую запись источника на соответствие набору определенных в нем
условий, и результат записывается в соответствующее назначение в зависимости от
того, какое именно условие вернуло для данной записи значение

Data Conversion
Преобразование типов
данных)
позволяет в процессе перекачки данных изменить тип данных. Это преобразование
добавляет к исходным столбцам новые, которые можно использовать в назначении.
Data Mining Query
(Запрос к модели добычи
данных)
позволяет для каж
дой записи на источнике выполнить запрос на языке
DMX
к модели
добычи данных на
Analysis
Services
. При этом значения из источника можно
использовать как параметры, передаваемые этому запросу.
Derived Column
(Производные столбцы)
позволяет применять встр
оенные функции
SSIS
(строковые, математические,
даты/времени, преобразования типов данных и т.п.) для значений в столбцах


Тип преобразования
Описание
источника. При этом можно заменять новыми значениями значения в существующем
столбце, а можно создать новый столбец, который можно буд
ет использовать в
назначении.
Export Column
(Экспортировать
столбец)
для этого преобразования необходимы два столбца: с данными
BLOB
и обычными
строковыми значениями. В столбце со строковыми значениями должны находится
имена файлов. Это преобразование зап
ишет двоичные данные для каждой записи в
файл на диске с именем, которому будет соответствовать название текстового столбца.
Наиболее очевидное применение этого преобразования
экспорт изображений из
базы данных в файлы на диске
Import Column
(Импортиров
ать
столбец)
предназначено для обратной задачи: импорта двоичных данных из файлов на диске в
базу данных. В столбце источника должны быть указаны имена файлов с путями. Для
каждой записи источника будет открываться соответствующий файл и записываться в
олбец назначения
Fuzzy Grouping
(Нечеткая группировка)
В этом преобразовании используются элементы искусственного интеллекта для
группировки записей на источнике. В свойствах этого преобразования вам нужно
будет выбрать столбец (или несколько столбцов) и
сточника, для которого будет
производиться группировка, допустимые строковые преобразования и уровень
"похожести" для группировки (от 0,00 до 0,99). Записи на источнике останутся в
неприкосновенности, но для назначения можно будет использовать три
дополнит
ельных столбца:
уникальный идентификатор записи источника;
идентификатор группы, к которой преобразование "решило" отнести эту
запись;
счет, значение от 0 до 1, которое отражает степень похожести
данной записи на "идеальную" (
canonical
) для данной группы.
Lookup
(Обращение к
внешнему источнику)
для каждой записи из источника будет выполнен специальный запрос к внешнему
источнику данных (при этом значения из первого источника будут использоваться как
параметры в этом внешнем з
апросе). Затем данные из возвращаемого запроса можно
будет использовать вместе со столбцами источника в назначении.
Fuzzy Lookup
(Нечеткое
обращение к внешнему
источнику)
так называемые нечеткие сравнения. Вы можете задать "уровень похожести" от 0 до 1.
Соответственно, из внешнего источника данных будут возвращаться не только
совпадающие значения, но и "похожие" на значения с источника.
Merge
(Слияние) и
Union All
(Полное
объединение)
эти преобразования позволяют поместить одинаковые по формату данные
из
нескольких источников в одно назначение. Отличие между ними заключается в том,
что преобразование типа
перед загрузкой данных в назначение вначале
получает их из всех источников и сортирует их, а
загружает данные
последовательно в том по
рядке, в котором они поступили из источников
Merge Join
(Соединение
слиянием)
преобразование, которое обеспечивает объединение (правое, левое или внутреннее)
данных из разных таблиц по ключу. Это преобразование рекомендуется использовать
только тогда, к
огда необходимо объединять данные из таблиц на разных источниках
данных. В этом преобразовании мы можем использовать два источника данных.
Multicast
(Множественная
передача)
это преобразование распараллеливает поток входящих данных. В нем используется
ин источник и множество назначений. Одинаковая информация будет записана во
все назначения.
OLE DB Command
Команда
OLE DB)
это преобразование позволяет использовать команду
SQL
для каждой записи, которая
передается с источника, причем в этой команде
SQL
информацию из этой записи
можно использовать в качестве значений параметров. Это преобразование требует
один источник (только типа
) и одно назначение (только типа

Percentage Sampling
(Процентная выборка)
принимает данн
ые из одного источника и передает их в два назначения. При этом в
одно назначение (оно называется
ampling
nselected
utput
) будут передаваться
данные в том же виде, в котором они поступили с источника, а в другое, которое
называется
sampling
selected
out
, поступит случайная выборка значений, которые
передаются с источника. При этом вы можете определить процент значений, который
попадет в выборку.
Pivot
(Смена стобцов и
строк)
при применении этого преобразования увеличивается количество строк, зато
ижается количество записей. Вам потребуется в свойствах преобразования на
вкладке
Input
Columns
выбрать нужные столбцы источника, а затем перейти на
вкладку
Input
and
Output
Properties
и для столбцов источника настроить значение


Тип преобразования
Описание
свойства
, опреде
лив, какая роль в преобразовании предназначается
данному столбцу. Затем в разделе
Output
Columns
нужно создать столбцы, которые
будут передаваться назначению, и привязать их к столбцам источника при помощи
свойства
PivotKeyValue
Unpivot
(Обратная
смена).
производит нормализацию таблицы.
Row Count
(Счетчик
строк)
считает количество строк источника, которое прошло через него, и сохраняет это
значение в переменной пакета (перед настройкой этого преобразования переменная
должна быть уже создана).
Row Sampl
ing
(Выборка
строк)
это преобразование случайным образом выбирает из всех записей источника точно
указанное количество записей. Источник у этого преобразования может быть только
один, а назначений может быть два
для полного набора записей и для выборки
Script Component
(Компонент скрипта)
можно использовать не только как преобразование, но и как источник или назначение
данных. В этом преобразовании вы можете использовать свой собственный
программный код (только
Visual
Basic
NET
) для выполнения каких
бо операций с
данными, которые передаются с источника. При размещении данного преобразования
в пакете нужно выбрать: будет ли
Script Component
выступать в роли источника,
назначения или преобразования. Если вы выбрали для него роль преобразования, то
его н
ужно будет разместить, как и другие преобразования, между источником и
назначением (см. рис.
7).
Рис.
9.
7.
Настройка преобразования
Script
Component
Slowly Changing
Dimension
Transformation
(Преобразование
медленно
изменяющегося
измерения)
предназнач
ено для внесения изменений в измерения кубов
Analysis
Services
на основе
информации из реляционного источника данных
Sort
(Сортировка)
предназначено для сортировки записей, которые поступают с источника.
Term Extraction
(Извлечение термина) и
Term Look
(Извлечение термина из
внешнего источника)
сложные преобразования, использующие элементы полнотекстового поиска. Они
могут работать только для источников на английском языке.
извлекает из источника существительные и словосочетания с сущ
ествительными (в
зависимости от выбранного режима) и записывает их в назначение.
позволяет также обратиться к еще одному источнику (он называется
справочной
таблицей
reference
table
)), и определить, сколько найдено между двумя источниками
совп
адений. Затем сумма совпадений вместе с извлеченными существительными и
словосочетаниями записывается в назначение
.5. Пути и логика выполнение
Data
Flow
Task
Пути
это зеленые и красные стрелки, которые соединяют назначения и преобразования. Зеленые
стрелки
означают нормальное прохождение данных, а красные
это путь для передачи данных, при обработке которых
возникли ошибки. Красные стрелки предусмотрены не для всех преобразований. Если сбор информации о
проблемных записях вам не нужен, вы можете не
использовать красную стрелку.
Для многих преобразований можно использовать несколько вводов (
Input
) и несколько выводов (
Output
).
Если открыть свойства пути (команда
Edit
в контекстном меню), то можно настроить имя пути, описание и
отображаемую надпись дл
я пути (
).
SSIS
Designer
к любому пути можно присоединить просмотрщик данных
Data
Viewer
графический
интерфейс, который во время работы пакета будет показывать пересылаемые данные (см. рис.
8).


Рис.
9.
8.
Применение просмотрщика дан
ных
Настройка просмотровщика
Щелкнуть правой кнопкой мыши по пути и в контекстном меню выбрать
Data
Viewers
Затем нажать на кнопку
Add
Выбрать один из четырех предложенных типов просмотрщика (самый удобный
Grid
).
На второй вкладке вы можете настроить
свойства просмотрщика, например, выбрать отображаемые
столбцы. После настройки просмотрщика рядом с путем в
SSIS
Designer
появится специальная иконка.
Как только первая группа записей поступит в просмотрщик, выполнение пакета приостановится. Вы
сможете пр
одолжить выполнение при помощи зеленой кнопки в верхнем левом углу просмотрщика или
просто его закрыв.
. Контейнеры
SSIS
Контейнеры
это специальные задачи
Control
Flow
, которые предназначены для размещения в них других задач
Control
Flow
. В основном к
онтейнеры используются для организации циклов в пакетах. В
SSIS
предусмотрено
четыре типа контейнеров:
For Loop
Foreach Loop
Sequence
Task
Host
Все контейнеры доступны в
Toolbox
на вкладке
Control
Flow
, кроме
Task
Host
. Этот контейнер создается
автомат
ически для любой задачи и используется для хранения значений свойств, настроенных на графическом
экране
SSIS
Designer
для этой задачи. Его невозможно увидеть в
SSIS
Designer
обращение к нему возможно
только из программного кода.
.1 Контейнер For Loop
Этот контейнер предназначен для организации цикла. Для этого контейнера предусмотрено три главных свойства:
InitExpression
определяет исходное значение счетчика. Например, если в нашем пакете определена
целочисленная переменная
Counter
, то значение этог
о свойства может выглядеть как
EvalExpression
проверяемое выражение. Цикл будет выполняться до тех пор, пока это выражение
возвращает истину. Например, если нам нужно выполнить какие
то задачи пять раз, то значение этого
свойства может выгл
ядеть как
AssignExpression
выражение, которое будет изменять значение нашего счетчика. В нашем примере оно
может выглядеть, например, как
@Counter = @Counter + 1
После настройки свойств этого контейнера нам останется просто перетащить в не
го нужную задач (или набор
задач) из
ToolBox
и настроить их.


.2 Контейнер Foreach Loop
Контейнер
Foreach
умеет передавать информацию о текущем обрабатываемом элементе переменным пакета. Для
настройки соответствий переменных возвращаемым значениям испол
ьзуется вкладка
Variable
Mappings
свойств
контейнера
Foreach
При помощи контейнера
Foreach
можно проходить по элементам следующих коллекций:
File
Enumerator
возможность пройти по всем файлам какой
либо папки в файловой системе.;
Item
Enumerator
возмо
жность пройти по записям таблицы, которую нужно будет создать прямо в
окне свойств этого контейнера;
Enumerator
возможность пройти по всем записям в объекте


выполняться следующей. Однако свойства ограничений предшественников сильно отличаются от свойств потоков
данных в
Data
Flow
Task
Из контекстного меню для стрелки настраиванется ее
тип
следующая задача, на которую указывает эта стрелка, будет выполнена только в том случае,
если предыдущая задача завершится успешно. Этому типу соответствует зеленый цвет стр
елки.
переход к элементу, на который указывает стрелка, будет произведен только в случае
возникновения ошибки при выполнении предыдущей задачи. Цвет стрелки этого типа
красный.
Рис.
9.
14.
Для задачи
Script
Task
3 предусмотрено два ограничения предшественников
Проверку
на успешность можно производить не только при помощи значений констант, которые возвращает
задача при выполнении, но и при помощи своих собственных выражений. Их можно настроить в свойствах
элемента логики выполнения.
. Протоколирование выполнения паке
тов
Информацию о том, как прошло выполнение пакета, и если возникли ошибки, то какие, можно получить из
протоколов выполнения пакета.
Для настройки протоколирования пакета необходимо:
SSIS Designer
выбрать
меню
SSIS
Logging
Откроется
окно
Configure SS
IS Logs
рис
15).


Рис.
9.
15.
Настройка протоколирования пакета
SSIS
Установить в дереве
Containers
флажки напротив пакета и тех его элементов, для которых необходимо
включить протоколирование.
Затем на вкладке
Providers and Logs
необходимо выбрат
ь тип поставщика протоколирования (то есть
формат протоколирования). В вашем распоряжении
пять вариантов:
протоколирование в текстовый файл (необходимо
наличие менеджера подключения
File
Connection
Manager
ovider for SQL Profiler
протоколирование в файл (
) в формате
SQL
Server
Profiler
(необходимо наличие менеджера подключения
File
Connection
Manager
протоколирование в таблицу
sysdtslog90
в базе данных
на
SQL
Serve
(нужен менеджер подключения
OLE
Connection
Manager
SSIS log provider for Windows Event Log
протоколирование
журнал
событий
приложений
Application
Event
Log
).
Менеджер подключения не нужен;
SSIS Log Provider for XML files
запись протокола буде
т вестись в файлы
XML
на диске
(необходимо наличие менеджера подключения
File
Connection
Manager
Перейти на вкладку
Events
и выбрать события для записи в протокол. Обратите внимание, что более точно
выбрать события можно при помощи кнопки
Advanced
на это
й вкладке.
Развертывание проектов и пакетов
Модели развертывания
Службы Integration Services поддерживают две модели развертывания: модель развертывания проекта и модель
развертывания пакетов. Модель развертывания проектов позволяет развертыват
ь проекты на сервере Службы
Integration Services.
Тип модели развертывания, выбранный для проекта, определяет варианты развертывания и администрирования,
доступные для проекта. В следующей таблице приведены различия и подобия использования модели
разверты
вания проекта и модели развертывания пакетов.
Использование модели развертывания проекта
Использование модели развертывания пакетов
Единицей развертывания является проект.
Единицей развертывания является пакет.
Для присвоения значений свойствам паке
та
используются параметры.
Для присвоения значений свойствам пакета используются
конфигурации.
Проект, содержащий пакеты и параметры, создается в
виде файла развертывания проекта (с расширением
ISPAC).
Пакеты (с расширением DTSX) и конфигурации (с
расш
ирением DTSCONFIG) сохраняются в файловой
системе отдельно.
Проект, содержащий пакеты и параметры,
развертывается в каталог служб SSISDB на экземпляре
SQL Server.
Пакеты и конфигурации копируются в файловую систему
на другом компьютере. Пакеты также мог
ут быть
сохранены в базе данных MSDB на экземпляре SQL
Server.


Для компонента Database Engine требуется интеграция
со средой CLR.
Интеграция со средой CLR для компонента Database
Engine не требуется.
Значения параметров, относящихся к среде,
сохраняют
ся в переменных среды.
Значения конфигурации, относящиеся к среде,
сохраняются в файлах конфигурации.
Проекты и пакеты в каталоге могут быть проверены на
сервере перед выполнением. Для выполнения проверки
можно использовать среду SQL Server Management
tudio, хранимые процедуры или управляемый код.
Проверка пакетов производится перед их выполнением.
Также пакеты можно проверить с помощью программы
dtExec или управляемого кода.
Пакеты выполняются путем запуска выполнения в
компоненте Database Engine. И
дентификатор проекта,
явные значения проекта (необязательно) и ссылки на
среду (необязательно) назначаются выполнению перед
его запуском. Кроме того, вы можете выполнить пакет
с использованием dtExec.
Пакеты выполняются с помощью программ выполнения
dtExe
c и DTExecUI. Применимые конфигурации
определяются по аргументам командной строки
(необязательно).
Во время выполнения события производятся пакетом и
автоматически записываются и сохраняются в каталог.
Эти события можно запрашивать с помощью
представлени
й Transact
SQL.
Во время выполнения события, производимые пакетом,
автоматически не записываются. Для записи событий в
пакет должен быть добавлен регистратор.
Пакеты выполняются в отдельном процессе Windows.
Пакеты выполняются в отдельном процессе Wind
ows.
Для планирования выполнения пакетов используется
агент SQL Server.
Для планирования выполнения пакетов используется
агент SQL Server.
Развертывание проектов
В основе модели развертывания про
екта лежит файл развертывания проекта (с расширением
ISPAC
). Файл
развертывания проекта
это автономная единица развертывания, включающая в себя только важные сведения о
пакетах и параметрах проекта. В файл развертывания проекта не заносятся все сведения,
содержащиеся в файле
проекта служб Integration Services (с расширением DTPROJ). Например, в файле развертывания проекта не
хранятся дополнительные текстовые файлы, используемые при записи примечаний, и, как следствие, они не
развертываются в каталог.
Для
развертывания проекта на сервере служб Службы Integration Services необходимо выполнить следующие
задачи.
Создайте каталог SSISDB, если он еще не создан.
Мастер преобразования проекта служб Integration Services
преобразует проект в модель развертывания
проекта.
При создании проекта в службах Службы SQL Server 2012 Integration Services (SSIS) по умолчанию
проект использует модель развертывания проекта.
Если проект был создан в более раннем выпуске служб Службы Integration Services, то после открытия
фай
ла проекта в среде Visual Studio необходимо преобразовать проект в модель развертывания проекта.
Разверните проект на сервере служб Службы Integration Services.
По желанию создайте среду для развернутого проекта.
9.9.3 Создание каталога служб SSIS
После
разработки и тестирования пакетов в SQL Server Data Tools можно выполнить развертывание проектов,
содержащих пакеты, на сервере
Службы Integration Services. Прежде чем развертывать проекты на сервере служб
Службы Integration Services, необходимо создать к
аталог
SSISDB
на этом сервере.
Программа установки SQL
Server 2012 не создает этот каталог автоматически. Его необходимо создать вручную, следуя приведенным ниже
инструкциям.
Вы можете создать каталог SSISDB в среде Среда SQL Server Management Studio (мож
но также создать каталог
программным способом с помощью Windows PowerShell).
Откройте
SQL Server Management Studio.
Подключитесь к SQL Server.
В обозревателе объектов разверните узел сервера, щелкните правой кнопкой мыши узел
Integration
Services Catalo
и выберите пункт
Create Catalog
Установите
флажок
Enable CLR Integration
Каталог использует хранимые процедуры CLR.


Щелкните
Enable automatic execution of Integration Services stored procedure at SQL Server startup
чтобы хранимая процедура
catalog.
startup
выполнялась каждый раз при перезапуске экземпляра сервера
служб Службы SSIS.
Хранимая процедура осуществляет обслуживание состояния операций для каталога SSISDB. Она
исправляет состояние любых пакетов, выполнявшихся в момент отключения экземпляра
сервера служб
Службы SSIS.
Введите пароль и нажмите кнопку
Этот пароль защищает главный ключ базы данных, используемый для шифрования данных каталога.
Сохраните пароль в надежном месте.
Рекомендуется также создать резервную копию главного ключа
базы
данных.
Создание и сопоставление серверной среды
Вы создаете серверную среду, которая должна указывать значения среды выполнения для пакетов, которые
содержатся в проекте, развернутом на сервере Службы Integration Services. Можно сопоставить переменные сре
ды
с параметрами для определенного пакета, для пакетов точки входа или для всех пакетов в данном проекте. Пакет
точки входа
обычно родительский пакет, который выполняет дочерний пакет.
У представлений можно запрашивать список серверных сред, ссылок на с
реды и переменных сред. Также можно
вызывать хранимые процедуры для добавления, удаления и изменения сред, ссылок на среды и переменных сред.
В среде Management Studio в обозревателе объектов разверните узел
Integration Services Catalogs�
SSISDB
и найди
те папку
Environments
для проекта, для которого требуется создать среду.
Щелкните правой кнопкой мыши папку
Environments
и выберите команду
Create Environment
Введите имя для среды и, при желании, описание, затем нажмите кнопку
Щелкните правой
кнопкой мыши новую среду и выберите команду
Properties
На странице
Variables
выполните следующие действия, чтобы добавить переменную.
Выберите
Type
переменной. Имя переменной не обязательно должно совпадать с именем параметра
проекта, с которым эта
переменная будет сопоставлена.
Введите необязательное
Description
для переменной.
Введите
Value
переменной среды.
Укажите, содержит ли переменная конфиденциальное значение, установив или сняв флажок
Sensitive
. Если флажок
Sensitive
установлен, значени
е переменной не отображается в поле
Value
Конфиденциальные значения шифруются в каталоге SSISDB.
На странице
Permissions
предоставьте или запретите соответствующие разрешения выбранным
пользователям и ролям, выполнив следующие действия.
Щелкните
Brows
и выберите одного или нескольких пользователей и ролей в диалоговом окне
Browse All Principals
В области
Logins or roles
выберите пользователя или роль, которой будут предоставлены или
запрещены разрешения.
В области
Explicit
щелкните
Grant
или
Deny
рядом с каждым разрешением.
Чтобы создать скрипт среды, щелкните
Script
. По умолчанию скрипт открывает новое окно редактора
запросов.
Чтобы сохранить изменения в свойствах среды, нажмите кнопку
В узле
SSISDB
в обозревателе объектов раскройте пап
ку
Projects
, щелкните правой кнопкой мыши
проект и выберите команду
Configure
На странице
References
нажмите кнопку
Add
, чтобы добавить среду, а затем нажмите кнопку
чтобы сохранить ссылку на среду.
Снова щелкните правой кнопкой мыши проект
и выберите пункт
Configure
Для сопоставления переменной среды с параметром, добавленным в пакет во время разработки, или с
параметром, созданным во время преобразования проекта Службы Integration Services в модель
развертывания проекта, выполните следую
щие действия.
На вкладке


Для сопоставления переменной среды со свойством диспетчера со
единений выполните следующие
действия. Параметры для свойств диспетчера соединений автоматически создаются на сервере служб
SSIS.
На вкладке
Connection Managers
на странице
Parameters
нажмите кнопку обзора рядом с полем
Value
Нажмите кнопку
Use enviro
nment variable
, а затем выберите созданную переменную среды.
Нажмите кнопку
дважды для сохранения изменений.
. Запуск пакетов
SSIS
на выполнение
После развертывания проекта на сервере служб Службы Integration Services пакет можно запускать на сер
вере.
В отчетах об операциях можно просматривать сведения о выполненных или выполняемых в данный момент на
сервере пакетах.
Запуск
пакета
SQL Server Management Studio
Откройте
среду
SQL Server Management Studio
подключитесь
экземпляру
SQL S
erver,
котором
содержится
каталог
служб
Integration Services.
В обозревателе объектов разверните узел службы
Integration Services Catalogs
, разверните узел
SSISDB
перейдите к пакету, содержащемуся в развернутом вами проекте.
Щелкните имя пакета право
й кнопкой мыши и выберите команду
Execute
Настройте выполнение пакета с помощью параметров на вкладках
После запуска утилиты необходимо:
На вкладке
General
выбрать нуж
ный пакет.
На вкладке
Configurations
добавить конфигурации для пакета, которые будут изменять его при выполнении.
Из пяти возможных типов конфигураций для пакетов здесь можно выбрать только один тип
файлы
конфигурации в формате
XML
На вкладке
Command
iles
определить один или несколько текстовых файлов с командами. В командном
файле должны находиться дополнительные параметры для утилиты
, которые будут передаваться ей
напрямую, без возможности обработки и редактирования. Если вы укажете на этой вк
ладке, например, файл
, то командная строка будет дополнена параметром
/COMMANDFILE "D:
На вкладке
Connection
Managers
будут перечислены все менеджеры подключений, имеющиеся в пакете.
Если вы установите флажок напротив менеджера подкл
ючения, у вас появится возможность
отредактировать строку подключения для этого менеджера. Исправленная строка подключения будет
использована только на время данного запуска пакета.
На вкладке
Execution
Options
можно настроить еще несколько важных параметр
ов:
Fail the package on validation warnings
Если при проверке пакета будет сгенерировано какое
либо
предупреждение, эта утилита вообще не будет пытаться запускать пакет, а сразу завершит работу с
ошибкой;
Validate
package
without
exe
uting
Если установит
ь этот флажок, то при нажатии на кнопку
Execute
пакет будет просто проверен на наличие ошибок. Выполняться пакет не будет.
Maximum
concurrent
executables
. Этот параметр определяет, сколько исполняемых файлов среды
выполнения
SSIS
может быть одновременно за
пущено во время работы этого пакета. По умолчанию
это значение равно
1 (число исполняемых файлов не ограничено);


Enable
package
checkpoints
. Контрольные точки позволяют продолжить выполнение пакета с
определенной задачи (если возникла ошибка). Однако если
задача (или контейнер, например
Foreach
считается атомарной единицей пакета. Если при выполнении, к примеру, задачи
Data
Flow
Task
возникла ошибка, то выполнение пакета можно продолжить, только начав эту задачу заново
посередине выполнения задачи остан
овиться нельзя.
На вкладке
Reporting
вы можете выбрать набор и параметры информационных сообщений, которые будут
выводиться в окно выполнения dtexecui или просто в стандартную консоль dtexec.
На вкладке
Logging
можно настроить свои параметры протоколирован
ия работы пакета, если те параметры
протоколирования, которые были определены для пакета при его создании, по каким
то причинам вас не
устраивают. Эти параметры будут использованы только для текущего запуска пакета.
Вкладка
Set Values
предназначена для изм
енения свойств элементов пакета в ходе его выполнения
(фактически это
альтернатива конфигурациям). Вам потребуется указать путь для свойства и новое
значение.
Вкладка
Verification
позволяет определить дополнительные проверки, цель которых
обеспечить за
щиту
от неверных версий пакетов. На этой вкладке вы можете определить требование цифровой подписи, и
проверку версий и идентификаторов пакета.
На вкладке
Command
Line
находится итог всех настроек, которые были произведены на предыдущих
вкладках
сгенериро
ванная командная строка для утилиты
. Вы можете скопировать эту
командную строку или произвести ее дополнительное редактирование прямо в этом окне.
Запустить пакет на выполнение, нажав на кнопку
Execute
(Запустить).
Для запуска пакетов по расписани
ю используются два способа:
Воспользоваться средствами
SQL
Server
Agent
. Необходимо будет создать задание (
job
SQL
Server
Agent
создать в нем этап (
step
) типа
SQL
Server
Integration
Service
Package
Сгенерировать командную строку для утилиты
dtexec
и з
апланировать ее для выполнения по расписанию
стандартными средствами планировщика операционной системы.
Средства обеспечения отказоустойчивости
SQL
Server
2012
Работа
SQL
Server
в кластере
Терминология и варианты конфигурации
кластер
Физически кластер
это два или более компьютер
(близких по параметрам оборудования), подключен
внешнему
RAID
массиву
, причем у
внешнего
RAID
контроллера
должна быть общая шина
SCSI
shared
SCSI
),
которая обеспечивает подключение к нему более
чем одного сервера одновременно.
На каждом сервере
должно
быть
установлено программное обеспечение
Windows
Server
Enterprise
Edition
или
Datacenter
Edition
настроена служба
Clustering
Service
. У каждого сервера есть свое имя, но пользователи при
ращении
к службе,
работающей в кластере (например,
SQL
Server
) видят не одно из этих имен, а имя третьего компьютера
виртуального сервера, работу которого и защищает кластер.
ермины, которые используются
для кластеров:
узел
(node)
физический компьютер
, вход
ящий
в кластер. Кластеры могут
состоять
из 2, 4, 8 или 16 узлов;
виртуальный сервер
virtual
server
сервер, к которому
обращаются пользователи при работе с
приложением.
Виртуальный сервер соответствует кластеру, а не одному
из
физическ
компьютер
. При
выходе из строя одного узла в кластере работ
оспособность
виртуального с
ервера обеспечивает другой узел;
основной узел
primary
node
это
физический сервер, который
в обычном режиме выполняет все задачи
виртуального сервера, обслуживая запросы пол
ьзователей;
вторичный узел
secondary
node
это физический сервер,
выполняющий
в обычном режиме роль
запасного. Служба
Clustering
Services
передает на него информацию
обо
всех процессах, которые работают
на основном сервере. В случае выхода из строя осно
вного сервера
всю нагрузку виртуального сервера
примет на себя
вторичный
переключение узлов
failover
смена ролей основного и вторичного узла. Обыч
о происходит в
автоматическом режиме при выходе из строя основного узла, но такое переключение вполне мо
жно
произвести и вручную.


Конфигурации кластера
В конфигурации
активный/пассивный
в обычном режиме нагрузку со стороны пользователей
обслуживает только основной узел. Вторичный узел выполняет только роль запасного и не несет
никакой
дополнительной
нагрузки
. Такая конфигурация является наиболее надежной и удобной, но при этом
вторичный сервер будет фактически простаивать.
В конфигурации
активный/активный
оба
узла, входящие в кластер, обслуживают два виртуальных
сервера
каждый со своей задачей. При этом дл
я одной задачи первый сервер выполняет роль основного,
а второй сервер
роль вторичного. Для второй задачи уже второй сервер выполняет роль основного, а
первый сервер
вторичного. При выходе из строя любого из серверов, входящих в кластер, всю нагрузку
рименяет на себя
оставшийся сервер.
Установка
SQL
Server
в кластер
Для установки
SQL
Server
2012
в кластер необходимо:
астро
ить
кластер
операционной
системе
Выбрать соответствующ
редакци
SQL
Server
аксимальное число узлов в кластере
завис
т от редакции
SQL
Server
SQL
Server
Standard
Edition
поддерживает
максимально
два узла в кластере.
Редакции
Enterprise
and
Developer
поддерживают кластер из стольких узлов, сколько поддерживает операционная система
бъединить в кластер 32
раз
рядную и 64
разрядную версию
SQL
Server
невозможно
Настроить конфигурацию оборудования используемых серверов.
Рекомендуется
спользовать для кластера
два идентичных с точки зрения оборудования сервера. Если
на серверах разное количество процессоров и
, то использование "лишних" процессоров и
необходимо
запретить
еревести в автоматический режим запуска службы
Windows
Cryptographic Service Provider
(в русском
варианте
Службы криптографии) и
Task
Scheduler
становить и перевести в автоматически
режим запуска службу
Distributed
Transaction
Coordinator
. Эта
служба должна быть приведена в рабочее состояние до
установки
SQL
Server
в кластер.
бедиться, что ни один из узлов создаваемого кластера не является контроллером домена.
SQL
Server
е может работать в
кластере на контроллере домена.
тключить
протокол
NetBIOS
на всех сетевых адаптерах, которые используются для обмена служебной
информацией кластера
апус
тить установку
SQL
Server
в кластер:
на экране выбора компонентов установить
для самого ядра
SQL
Server
и для
Analysis
Services
флажок
Create
failover
cluster
. Далее потребуется ввести
информацию об имени виртуального сервера,
адресе, используемом общем диске и т.п.
Автоматическая
доставк
а журналов (
log
shipping
2.1. Терминология доставки журналов
Автоматическая
доставк
а журналов
log
shipping
технология, которая призвана повысить
отказоустойчивость
работы
приложения и
повысить
скорость восстановления
данных в случае сбоя
Доставк
а журналов
предусматривает
и роли для серверов. Эти роли могут играть три отдельных сервера, а
можно совместить их все, к примеру, на одном сервере:
основной сервер
primary
server
сервер, на котором
находится
оперативная
база данных. На этом
сервере созда
ются
резервные копии жур
налов транзакций. База данных, для которой настраивается
доставк
а журналов, называется, соотве
ственно, основной базой данных (
primary
database
вторичный сервер
secondary
server
сервер, на котором находится вторичная база данных (
secondary
database
для которой автоматически выполняется операция
восстановлени
журналов транзакций;
сервер мониторинга
monitor
server
сервер, который
осуществл
ет
тслежива
ние
доставк
резервных
копий журнала транзакций
и в случае
возникновения
проблем оповеща
о них
администратора. Сервером
мониторинга можно при желании сделать основной или вторичный сервер.
Термин
failover
означает то же, что и для кластера: переключение ролей сервера, когда вторичный
сервер
занимает место основного.
При этом о
сновной
сервер
может с
тать вторичным или быть
вообще
выведен из
работы
, например, для ремонта.
Для изменения роли резервного сервера необходимо вручную открыть доступ пользователей на резервный сервер,
содержащий копию базы данных: поменять
адрес или имя резервного сервера,
изменить записи на сервере
, использовать псевдонимы на компьютерах пользователей, перенастроить источники данных
ODBC
и т.п.


Настройка
доставк
и журналов
Настроить
доставк
у журналов можно как при помощи графического интерфейса
Management
Studio
так и при
помощи команд
Transact
SQL
SQL
Server
астройка
доставк
и журналов производится из вкладки
Transaction
Log
Shipping
свойств базы
данных (см. рис.
).
Эту вкладку
можно открыть также
из контекстного меню базы данных при помощи
команды
asks
Ship
Transaction
Logs
Рис.
10.
1.
Экран настройки доставки журналов
Настройка параметров
доставк
и журналов:
Enable
this
primary
database
log
shipping
configuration
этот
флажок
включает
доставк
журналов
для
данной
базы
данных
должн
работа
в режиме восстановления
full
(полного
протоклирования)
Кнопка
Backup
Settings
открывает
окн
о диалога
Transaction
Log
Backup
Settings
, в котором вы сможете
настроить параметры резервного копирования жу
нала транзакций основной
БД:


Restore
options
можно будет определить местонахождение файлов базы данных и жур
налов
транзакций создаваемой базы данных;
Yes
restore
existing
backup
the
primary
database
если уже
имеется
полная резервная
копия основной базы данных
необходимо указать
сетевой путь к файлу с полной копией;
the
secondary
database
initi
alized
в этом случае вам потребуется самостоятельно
позаботиться о
создании
вторичной баз
данных и ее исходной синхронизации с основной.
На вкладке
Copy Files
необходимо определить
параметры копирования файлов резервных копий
журналов транзакций:
Desti
nation
folder
copied
files
локальный каталог на
вторичном сервере,
и сетевой
каталог на файл
сервере;
Using
the
following
SQL
Server
login
возможность явно указать
учетн
запись
SQL
Server
котор
будет использоваться для подключения к серверу мониторинга.
Получение информации о доставке журналов


Для
получения информации о
доставк
е журналов можно
воспользоваться встроенным отчетом
Management
Studio
Чтобы п
олучить отчет о
доставк
е журналов
необходимо
ткрыть
Management
Studio
и в дереве
Object
Explorer
выделить строку с именем сервера. Это может быть
основной сервер, вторичный сервер или сервер мониторинга: в отчете будет показана только информация о
той части
доставк
и жу
рналов, которая выполняется на этом сервере;
окне
Summary
раскрыть список рядом с окном
Report
и выбрать тип отчета, который называется
Transaction
Log
Shipping
Status
рис.
Рис.
10.
2.
Отчет о доставке журналов
Просмотр истории выполнения заданий
Просмотреть
информацию об истории выполнения заданий
доставк
и журналов можно так:
В окне
Object
Explorer
выбра
контейнер
SQL
Server
Agent
для нужного сервера
SQL
Server
Agent
раскры
в нем контейнер
Jobs
(Задания)
. При настройке
доставк
и журналов авт
оматически создаются
четыре задания:
LSBackup
задание для резервного копирования журналов транзакций. Оно создается на основном
сервере;
LSCopy
задание для сетевого копирования созданных файлов
резервных
копий. Оно создается на
вторичном сервере;
LSRestore
задание для восстановления созданных резервных копий. Оно также создается на
вторичном сервере;
LSAlert
задание для
опроса основного и резервного сервера. Оно создается на сервере
мониторинга.
Откры
контекстное меню для нужного задан
ия и выб
рать
команду
View History
кроется окно
просмотра истории выполнения заданий, аналогичное представленному на рис.
Рис.
10.
3.
История выполнения задания


Создание отчетов о доставке журналов в своем собственном формате
Для создания отчетов
о доставке в своем собственном формате
можно воспользоваться данными из таблиц и
хранимых процедур мониторинга.
аблицы мониторинга:
План действий в случае сбоя основного сервера
следующий
тключить все четыре задания, которые создаются в процессе настройки
доставк
журналов.
Либо отключить само задание
из контекстного меню для объекта задания в Object Explorer
(контейнер
SQL Server Agent
Jobs
) выбрать команду
Disable
Либо
отключить
расписание
для задания
открыть свойства задания, перейти на вкладку
Schedules
выделить нужное расписание и нажать на кнопку
Edit
атем в свойствах расписания нужно снять
флажок
Enabled
ручную скопировать и вос
тановить те резервные копии журналов транзакций
, которые были созданы на
основном сервере, но еще не были восстановлены
на вторичном сервере.
Для этого можно в
ручную
запустить на выполнение
задани
LSCopy
... и
LSRestore
. при помощи
команды
Start job
из контекстного
меню в Object Explorer.
Если нужно запретить работу с основным сервером, то можно произвести резервное копи
рование остатка
журнала с параметром
NORECOVERY
. В этом случае будет не только создана резервная копия журнала
транзакций, но и закрыт доступ к базе данных для пользователей.
еревести базу данных на
вторичном сервере в рабочее состояние из режима
NORECOVE
или
STANDBY
(в зависимости от параметров
доставк
и журналов). Для этого достаточно выполнить команду
RESTORE DATABASE с параметром WITH RECOVERY, например:
RESTORE DATABASE db1copy WITH RECOVERY
Переключить клиентские приложения на работу со вторичным с
ервером
. В вашем распоряжении
следующие варианты:
переименовать вторичный сервер (а, возможно, и вторичной базы данных). После выполнения этой
операции клиентские компьютеры начнут обращаться к новому серверу автоматически;
изменить записи на сервере
если
клиентские приложения
для подключения используют полное
доменное имя сервера
изменить
адрес вторичного сервера
сли клиенты подключаются по
адресу;
нес
изменени
я в клиентские приложения:
измен
ить
сервера в клиентском приложении;
прим
ить
псевдоним для
SQL
Server
(псевд
имы придется создавать на каждом клиентском
компьютере);
измен
ить
свойств
источника данных
ODBC
(тоже на каждом клиенте).
В случае возврата в строй
основно
сервер
Произв
ести
резервное копирование вторичной базы д
анных (которая в настоящее время выполняет
функцию рабочей).
Восстанав
ить
эту резервную копию на основном сервере;
Перенацели
клиентские приложения вновь на основной сервер;
Удал
ить
старые задания для резервного копирования, сетевого копирования, восстан
овления и
мониторинга;
Настр
оить
доставк
у журналов заново.


Отмена
доставк
журналов
Для отмены доставки журналов необходимо:
Management Studio
вкладке
Transaction Log Shipping
основной
базы
данных
снять
флажок
Enable this
as a primary database
in a log shipping configuration
ать
кнопку
Автоматически будет выполнено:
удаление
задани
на резервное копирование, сетевое копирование и восстановление журналов
транзакций.
удаление
информаци
мониторинга
доставк
и журналов для этой базы данных
Удалить вручную з
адание для мониторинга.
Привести в рабочее состояние в
торичн
баз
данных
выполнив
повторное восстановление последней резервной копии журнала транзакций с параметром
RECOVERY
Воспользоваться
специальны
хранимы
ми процедурами
на ос
новном сервере
чтобы убрать с него все настройки доставки журналов для указанной вами
базы данных:
имущества
зеркального отображения
БД по
сравнению с кластером:
зеркальное отображение
баз данных не требует применения специального оборудования;
серверы, которые участвуют в
зеркальном отображении
могут не
находиться рядом друг с другом;
зеркальном
отображении
используются две отде
льные копии
, что повышает надежность работы.
Примущества зеркального отображения БД п
о сравнению с
доставк
ой журналов:
переключение ролей в случае отказа основного сервера может производиться автоматически (при
наличии
следящего
сервера
witness
server
не нужно вносить какие
либо изменения в сетевую инфраструктуру или настройки клиентов. Клиенты
при необходимости автоматически переключаются на использование зеркальной копии (это относится
только к приложениям, которы
используют
SQL
Native
Client
или
NET
SQL
Provider
). Информацию о
зеркальной копии можно указать в строке подключения (ее также может передать основной сервер при
подключении к нему клиента);
рименение
зеркального отображения баз данных
позволяет избежать задержки и гарантировать
идентич
ность копий данных на обоих серверах.
Для
зеркального отображения
можно использовать два режима:
инхронный режим
при использовании этого режима транзакция не будет завершена, если она не
прошла на обоих серверах.
корость работы транзакци
й может существ
енно замедлиться. Этот режим
работы подразделяется еще на два:
high
availability
. Для этого режима обязательно использование
следящего
сервера. Этот режим
гарантирует отказоустойчивость. В случае, если основной сервер (он называется сервером
принципалом) с
тановится недоступным,
следящий
сервер автоматически меняет ролями
сервер
принципал и сервер
зеркало. Если становится недоступным сервер
зеркало, продолжается обычная
работа. В случае же, если, к примеру, стали одновременно недоступными и
следящий
сервер,
сервер
зеркало, то прекратится и работа базы данных на сервере
принципале
чтобы гарантировать,
что сервер будет работать только в отказоустойчивом режиме;


high
protection
. В этом режиме можно обойтись без
следящего
сервера.
Любая транзакция в этом
режи
ме обязательно должна быть завершена на обоих серверах: так гарантируется идентичность
данных на основной базе данных и на зеркале.
синхронный режим
транзакция вначале завершается на первом сервере, а затем информация о ней
немедленно
передается на втор
ой сервер. Задержек при работе транзакций не будет, но данные между
серверами могут синхронизироваться с небольшим отставанием.
Терминология
зеркального отображения
баз данных
база данных
принципал
principal
database
это
база данных, с которой
в обычном режиме работают
пользователи
. Она является источником информации для зеркаль
ной копии
зеркальная база данных
mirror
database
копия базы данных
принципала, которая получает информацию
об изменениях и которая может использоваться в
случае
выхо
да из строя принципала для целей обеспечения
отказоустойчивости;
следящий
сервер
witness
server
выделенный
сервер,
осуществля
ющий
мониторинг
зеркального
отображения
и в случае сбоя сервера
принципала автоматически перев
одящий
в рабочее состояние базу
анных
зеркало;
переключение ролей
role
switching
процесс, в рамках которого сервер
принципал и сервер
зеркало
меня
ются ролями;
переключение в случае отказа сервера
принципала
failover
процесс, когда
зеркальная база данных
приводится в рабочее состо
яние. Обычно возникает автоматически, если с базой данных
принципалом
возникли проблемы.
сеанс
зеркального отображения
mirroring
session
работа
базы данных
принципала,
зеркальной базы
данных
следящего
сервера в режиме синхронизации баз данных.
квору
мом зеркального отображения
mirroring
quorum
есь набор участников сеанса
зеркального
отображения
Настройка
зеркального отображения
Предварительная подготовка:
еркальное отображение использует технологию
точек подключений по
HTTP
HTTP
endpo
ints
), которые
работают только под
Windows
Server
2003 или
Windows
еркальное отображение
может быть настроено только между двумя физическими
сервера
ми
В случае
использования
следящ
его
сервер
потребуется тр
етий
физически
сервер
ключить
возможность
настройки зеркального отображения
определив в параметрах запуска сервера
флаг
трассировки 1400. Для этого
в свойствах службы
SQL
Server
Configuration
Manager
на
вкладк
Advanced
строке
Startup
астройк
зеркального отображения.
араметр
зер
кального отображения
можно настроить
двумя способами: при помощи графического интерфейса
SQL
Server
Management
Studio
или при помощи команд
Transact
SQL
Рассмотрим первый вариант:
контекстном меню для объекта базы данных
прин
пала
Object
Explorer
выб
рать команду
Tasks
Mirror
. Откроется вкладка
Mirroring
окна свойств базы данных.
вкладке
Mirroring
запустить
мастер
Configure
Database
Mirroring
Security
Wizard
нажав
кнопку
Configure
Security
астер
позволяет
созда
точки подключения по
HTTP
всех серверах, а также
выбрать учетные записи, которые будут использоваться для взаимодействия серверов. По умолчанию имя
точки подключения будет на всех серверах одинаковым
Для сервера
принципала по
умолчанию для точки подключения использует
ся порт
5022
, а для зеркального и следящего сервер
ыбр
ать
режим зеркального отображения на вкладке
Mirroring
свойств базы данных. В нашем
распоряжении
три варианта:


Sync
ronous
with
aut
matic
failover
режим, ориентированный на максимальную
тказоустойчивость. Все
транзакции
применяются одновременно и на сервере
принципале, и на
зеркальном сервере. Следящий сервер (для выбора этого режима он необходим) производит
мониторинг состояния обоих серверов и в случае необходимости производит автоматич
еское
изменение статуса зеркального сервера, открывая к нему доступ пользователей;
Asynchronous
high
performance
этот режим ориентирован на максимальную производительность
работы. Транзакции изначально применяются только
сервер
принципа
ле, а на зер
кальный сервер
они передаются в асинхронном режиме, с небольшой задержкой;
Synchronous
high
protection
режим, ориентированный на обеспечение идентичности данных на
обоих серверах.
Транзакции обязательно должны быть успешно завершены и
сервере
принци
пале,
и на зеркальном сервере. Автоматическое переключение зеркального сервера в рабочий режим при
этом не производится.
Нажать
кнопк
Start
Mirroring
, чтобы запустить базу данных в режиме зеркального отображения.
3.4. Мониторинг зеркального отображения
Мониторинг процессов зеркального отображения в
SQL
Server
можно производить несколькими способами.
спользоваться вкладкой
Mirroring
свойств базы данных. Общая информация о состоянии зеркального
отображения
отображается
в поле
Status
в нижней части
вкладк
оспользоваться счетчиками Системного монитора
для объекта
MSSQL
$имя_экземпляра:
Database
Mirroring
К главным счетчикам для этого объекта можно отнести:
Transaction
Delay
с какой задержкой происходит синхронизация серверов;
Redo
Queue
скол
ько килобайт накопилось в очереди для применения на зеркальном сервере
Bytes
Received
Sec
Bytes
Sent
Sec
при помощи этих двух счетчиков можно определять,
насколько активно происходит обмен информацией между сервером
инципалом и зеркальным
сервером.
Воспользоваться
специальны
ми
системны
представления
ми, хранящимися в
базе данных master
информация
о всем базам данных на сервере, которые принимают
участие в зеркальном отображении;
сводная и
нформация по всем точкам подключения по
HTTP
, которые используются для зеркального отображения баз данных
получени
информации на следящем сервере. В ней
перечислены сервер
принципал и зеркальный сервер, режим зеркальног
о отображения, текущее
состояние каждой из баз данных, принимающих участие
в зеркальном отображении и т.п.;
информаци
по сетевым соединениям, которые
используются для зеркального отображения.
Воспользоваться
событи
зерк
ального отображения
Database Mirroring State Change
, информацию о
котор
можно получить при помощи профилировщика или Event Notifications.
Это событие
находится в
группе Database. Главны
столб
этого события
State
и Text
Столбец State позволяет узнат
ь, как
именно изменилось состояние базы данных, принимающ
участие в зеркальном отображении, а столбец
Text позволяет получить текстовое описание для этого события с дополнительной информацией.
Смена ролей серверов
При переключении
ролей серверов
необходимо перенаправить клиентов, которые обращались к серверу
принципалу, на сервер
зеркало.
При использовании подключений по
ODBC
или
OLE
необходимо
производить такое переключение
вручную. Это можно сделать, например, изменив настройки на всех клиент
ских компьютерах, или поменяв
имя бывшего зеркального сервера, изменив его
адрес и т.п.
сли клиентское приложение использовало для подключения к серверу средства
SQL
Native
Client
или
Про
следящий
сервер клиентские компьютеры ничего не знают и указывать его
в строке подключения
не
надо.


ри варианта смены ролей серверов
при зеркальном отображении ба
данных:
автоматическое переключение ролей серверов
при выходе из строя сервера
принципала.
Необходимо, чтобы в системе был настроен следящий сервер, а само зеркальное отображение работало в
режиме
Synchronous
with
automatic
ailover
переключение ролей вручную
, когда
оба сервера
остаются доступными. В этом случае серверы просто
меняются ролями;
Этот вариант
обычно используется администратором для проверки возможности переключения или для
того, чтобы на время отключить сервер
принципал. Эту операцию можно произвести двумя способами:
на вкладке
Mirroring
свойств зеркалированной базы данных нажать на кнопку
Failover
выполнить команду
Transact
SQL
ALTER
DATABASE
имя
зеркалированной
базы
данных
SET
PARTNER
FAILOVER
переключение р
олей вручную в аварийном режиме
, когда
сервер
принципал
недоступен.
тот вариант используется в аварийной ситуации, когда сервер
принципал внезапно выходит из строя
, а
администратору нужно как можно
быстрее
обеспечить восстановление работоспособности серве
ра и
нормальную работу клиентов. Для выполнения этой операции
сервере, который выполнял роль
зеркального, нужно выполнить команду
Transact
SQL
ALTER DATABASE
имя
зеркалированной
базы
данных
Использование графического интерфейс
Для приостановки работы
сеанса зеркального отображения необходимо
нажать на кнопку
Pause
на вкладке
Mirroring
свойств базы данных.
Для продолжения работы нужно нажать на кнопку
Resume
Использование
команд
Transact
SQL
Для приостановки зеркального ото
бражения:
ALTER DATABASE
имя
зеркалированной
базы
данных
Удаление зеркального отображения
ажать на кнопку
Stop
Mirroring
на вк
ладке
Mirroring
свойств базы данных
или выполнить команду
ALTER DATABASE
имя
зеркалированной
базы
данных


Внимание
Базы данных
получатели
не являются
резервными копиями.
Необходимо регулярно создавать резервные копии
баз данны
х и их журналов транзакций.
Можно создать резервную копию базы данных
источника любого типа. Кроме того, можно создавать резервные
копии журналов и полные резервные копии баз данных
получателей.
Каждый набор баз данных доступности размещается с помощью
плики доступности
. Существует два типа
реплик доступности: одна
первичная реплика
в которой размещаются базы данных
источники, и от одной до
четырех
вторичных реплик
, в каждой из которых размещается набор баз данных
получателей. Каждая вторичная
реплика с
лужит потенциальным назначением отработки отказа для группы доступности.
Группа доступности
выполняет переход на другой ресурс на уровне реплики доступности.
Реплика доступности обеспечивает
избыточность только на уровне базы данных: для набора баз данных
из одной группы доступности.
Отработка
отказа не вызывается проблемами баз данных, например обозначением базы данных как подозрительной в связи с
потерей файла данных или повреждением журнала транзакций.
Первичная реплика делает базы данных
источники дост
упными для соединений с клиентами для чтения и записи.
Кроме того, в процессе, называемом
синхронизацией данных
, который происходит на уровне базы данных,
первичная реплика отправляет записи журнала транзакций каждой базы данных
источника в каждую базу дан
ных
получатель.
В каждой вторичной реплике кэшируются записи журнала транзакций (
фиксируется
журнал), а затем
эти записи применяются в соответствующей базе данных
получателе.
Синхронизация данных выполняется между
базой данных
источником и каждой подключен
ной базой данных
получателем независимо от остальных баз
данных.
Поэтому приостановка или сбой базы данных
получателя не затрагивает другие базы данных
получатели,
а приостановка или сбой базы данных
источника не затрагивает остальные базы данных
источники
Также можно настроить одну или несколько вторичных реплик для поддержки доступа только для чтения к базам
данных
получателям и настроить какую
либо вторичную реплику для резервного копирования в базы данных
получатели.
Для развертывания Группы доступно
сти AlwaysOn требуется
WSFC
кластер
. Все реплики доступности в
заданной группе доступности должны располагаться на разных узлах одного кластера WSFC.
Единственное
исключение состоит в том, что при переносе в другой кластер WSFC группа доступности может вре
менно
находится в двух кластерах.
Группа ресурсов WSFC создается для каждой создаваемой группы доступности. Кластер WSFC отслеживает
данную группу ресурсов для оценки работоспособности первичной реплики.
Кворум для Группы доступности
AlwaysOn рассчитывает
ся на всех узлах в кластере WSFC вне зависимости от того, хранится ли на данном узле
кластера какая
либо реплика доступности.
В отличие от процесса зеркального отображения базы данных, в
Группы доступности AlwaysOn нет роли следящего объекта.
На следующе
м рисунке показана группа доступности, которая содержит максимальное число реплик доступности:
одну первичную реплику и четыре вторичные.
реимущества
групп
доступности
AlwaysOn
Группа доступности
AlwaysOn имеет следующие преимущества:
Поддерживает до пяти реплик доступности.
Реплика доступности
является выделенным экземпляром
группы доступности, который размещается на конкретном экземпляре SQL Server и поддер
живает
локальную копию каждой базы данных доступности, которая принадлежит группе доступности.
Каждая
группа доступности поддерживает одну первичную реплику и до четырех вторичных реплик.
Поддерживает альтернативные режимы доступности следующим образом:


ежим асинхронной фиксации
представляет собой решение аварийного восстановления, которое
хорошо работает тогда, когда реплики доступности распределены на различных расстояниях.
Режим синхронной фиксации
отдает предпочтение высокому уровню доступности и
защите
данных перед производительностью за счет повышения задержки транзакций.
Отдельно взятая
группа доступности может поддерживать до трех реплик доступности с синхронной фиксацией, в
том числе текущую первичную реплику.
Поддерживает различные формы от
работки отказа другой группы доступности: автоматический переход
на другой ресурс, запланированный переход на другой ресурс вручную (обычно называемый «переходом
на другой ресурс вручную») и принудительный переход на другой ресурс вручную (который обычно
азывается «принудительной отработкой отказа»).
Позволяет настроить данную реплику доступности для поддержки одной или обеих возможностей
активных вторичных реплик.
Доступ с подключением только для чтения
, который позволяет использовать подключения только
для чтения для доступа и чтения баз данных во время работы в качестве вторичной реплики.
Выполнение операций резервного копирования
для своих баз данных во время работы в качестве
вторичной реплики.
Поддерживает прослушиватель группы доступности для каж
дой группы доступности.
Прослушиватель
группы доступности
― это сервер, к которому могут подключаться клиенты, чтобы получить доступ к
базе данных из первичной или вторичной реплики группы доступности AlwaysOn.
Прослушиватели
группы доступности направляют
входящие соединения на первичную реплику или на доступную только
для чтения вторичную реплику.
Прослушиватель обеспечивает быструю отработку отказа приложений
после отработки отказа группы доступности.
Поддерживает гибкую политику отработки отказа для обе
спечения большего управления отработкой
отказа группы доступности.
Поддерживает автоматическое восстановление страниц для защиты от повреждения.
Поддерживает шифрование и сжатие, обеспечивающие безопасный, высокопроизводительный транспорт.
Предоставляет
интегрированный набор средств для упрощения развертывания и управления группами
доступности, включая
инструкции
Transact
SQL для создания групп доступности и управления ими.
Средства
Среда
SQL Server Management Studio:
Мастер создания группы доступ
ности создает и настраивает группы доступности.
Мастер добавления базы данных в группу доступности добавляет одну или несколько баз
данных
источников к существующей группе доступности.
Мастер добавления реплики в группу доступности добавляет одну или нес
колько баз данных
получателей к существующей группе доступности.
Мастер отработки отказа группы доступности запускает переход на другой ресурс вручную для
группы доступности.
Панель мониторинга AlwaysOn отслеживает группы доступности AlwaysOn, реплики
ступности и базы данных доступности и оценивает результаты политик AlwaysOn.
В области сведений обозревателя объектов отображаются основные сведения о существующих
группах доступности.
Командлеты PowerShell
Термины и определения
руппа доступнос
онтейнер для набора баз данных
базы данных доступности
, которые совместно
отрабатывают отказ.
аза данных доступности
аза данных, принадлежащая к группе доступности. Для каждой базы
данных доступности группа доступности поддерживает одну копию
для записи и чтения (
база данных
источник
) и от одной до четырех копий только для чтения (
базы данных
получатели
Чтобы можно было добавить базу данных в группу доступности, база данных должна быть в режиме
online
, быть доступной для чтения и записи и с
уществовать на экземпляре сервера, на котором
располагается первичная реплика. При добавлении база данных присоединяется к группе доступности как
база данных
источник, оставаясь доступной для клиентов.
База данных
получатель не существует до тех
пор, пока
резервные копии новой базы данных
источника не будут восстановлены на экземпляр сервера,
на котором размещается вторичная реплика (с помощью инструкции RESTORE WITH NORECOVERY).
Новая база данных
получатель находится в состоянии RESTORING до тех пор, пока
не войдет в состав
группы доступности. Присоединение переводит базу данных
получатель в режим
ONLINE
и инициирует
синхронизацию данных с соответствующей базой данных
источником.
Синхронизация данных
это процесс, в ходе которого изменения в базе данных
сточнике
воспроизводятся в базе данных
получателе.
В процессе синхронизации данных база данных
источник
отправляет записи журнала транзакций в базу данных
получатель.
аза данных
источник
опия
базы данных доступности для чтения и записи.


аза данных
лучатель
опия базы данных доступности только для чтения.
еплика доступности
кземпляр группы доступности, который размещается на определенном
экземпляре SQL Server и поддерживает локальную копию каждой базы данных доступности, входящей в
группу дост
упности. Существует два типа реплик доступности: одна
первичная реплика
и не более
четырех
вторичных реплик
ервичная реплика
еплика доступности делает базы данных
источники доступными для соединений
чтения и записи с клиентов, а также отправляет запи
си журнала транзакций для каждой базы данных
источника каждой вторичной реплике.
торичная реплика
еплика доступности, которая поддерживает вторичную копию каждой базы
данных доступности и служит потенциальным назначением отработки отказа для группы до
ступности.
При необходимости вторичная реплика может поддерживать доступ только для чтения к базам данных
получателям и создание резервных копий баз данных
получателей.
рослушиватель группы доступности
мя сервера, к которому могут подключаться клиенты
, чтобы
получить доступ к базе данных из первичной или вторичной реплики группы доступности AlwaysOn.
Прослушиватели группы доступности направляют входящие соединения на первичную реплику или на
доступную только для чтения вторичную реплику.
Настро
йка экземпляра сервера для поддержки групп доступности AlwaysOn
Для поддержки Группы доступности AlwaysOn экземпляр сервера должен находиться на узле в отказоустойчивом
кластере WSFC, в котором
размещается группа доступности. Д
ля
сервера
должна быть включ
ена поддержка
Группы доступности AlwaysOn и должна
существовать
конечная точка зеркального отображения базы данных.
Включите функцию «
AlwaysOn Availability Groups
» на всех экземплярах сервера, которые будут
использоваться в одной или нескольких группах до
ступности. На данном экземпляре сервера может быть
размещена только одна реплика доступности для данной группы доступности.
Выполните подключение к узлу отказоустойчивой кластеризации Windows Server (WSFC), на котором
размещен экземпляр SQL Server, на кот
ором требуется включить группы доступности AlwaysOn.
меню
Start
последовательно
укажите
пункты
All Programs
Microsoft SQL Server 2012
Configuration Tools
SQL Server Configuration Manager
диспетчере
конфигурации
SQL Server
щелкните
SQL Server Se
rvices
правой
кнопкой
мыши
щелкните
экземпляр
SQL Server,
для
которого
требуется
включить
группы
доступности
AlwaysOn,
после
чего
щелкните
Properties
Перейдите
вкладку
AlwaysOn High Availability
Проверьте
, что поле
Windows failover cluster name
сод
ержит имя локального отказоустойчивого
кластера. Если это поле пусто, то данный экземпляр сервера в настоящее время не поддерживает
Группы доступности AlwaysOn. Либо локальный компьютер не является узлом кластера, кластер
WSFC завершил работу, либо этот вы
пуск SQL Server 2012 не поддерживает Группы доступности
AlwaysOn.
Установите
флажок
Enable
AlwaysOn Availability Groups
нажмите
кнопку
Диспетчер
конфигурации SQL Server сохранит внесенные изменения.
ручную перезапустит
службу SQL Server. Это позво
лит выбрать время перезапуска, которое лучше
всего подходит под требования вашего предприятия. После перезапуска службы SQL Server функция
AlwaysOn будет включена, а свойство
IsHadrEnabled
будет установлено в значение 1.
Убедитесь, что в экземпляре сервер
а есть конечная точка зерка
льного отображения базы данных или
создайте ее.
Пример создания
конечной точки зеркального отображения базы данных на экземпляре SQL Server
Machine
Instance
, использующей
порт 5022
с помощью
команды PowerShell
Внимание
Этот пример работает только на экземпляре сервера, на
котором в данный момент отсутствует конечная точка
зеркального отображения базы данных.


Создание и настройка новой группы доступности
Для создания и настройки группы доступности AlwaysOn в SQL Server 2012 вы можете использовать мастер
создания груп
п доступности в среде Среда SQL Server Management Studio.
В обозревателе объектов подключитесь к экземпляру сервера, на котором размещена первичная реплика
доступности.
Разверните
узел
AlwaysOn High Availability
узел
Availability Groups
Для запуска ма
стера создания группы доступности выберите команду
New Availability Group Wizard
При первом запуске этого мастера отображается страница
Introduction
. Чтобы в будущем эта страница не
отображалась, можно щелкнуть
Do not show this page again
Прочитав эту с
траницу, нажмите кнопку
Next
На странице
Specify Availability Group Name
введите имя новой группы доступности в поле
Availability
group name
. Это имя должно быть действительным идентификатором SQL Server, который является
уникальным для отказоустойчивого
кластера WSFC и для домена в целом.
Максимальная длина имени
группы доступности составляет 128 символов.
На странице
Select Databases
в сетке приведен список пользовательских баз данных на подключеном
экземпляре сервера, которые могут стать
базами данных
доступности
. Выберите одну или несколько из
указанных баз данных для участия в новой группе доступности.
Эти базы данных станут
первоначальными
базами данных
источниками
Внимание
Для каждой из перечисленных баз данных столбец
Size
отображает размер баз
ы данных, если он известен.
Столбец
Status
показывает, соответствует ли эта база данных
предварительным условиям
, необходимым
для баз данных доступности.
Если необходимые условия не выполняются, краткое описание состояния
указывает на причину того, почему
эта база данных не может использоваться.
После изменения базы данных для обеспечения соответствия требованиям щелкните
Refresh
, чтобы
обновить сетку баз данных.
На странице
Specify Replicas
укажите и настройте одну или несколько реплик для новой группы
оступности. Страница содержит четыре вкладки.
Эти вкладки представлены в следующей таблице.
Вкладка
Краткое описание
Replicas
На этой вкладке можно задать каждый экземпляр SQL Server, где будет размещена
вторичная реплика. Обратите внимание, что первич
ная реплика должна быть размещена на
экземпляре сервера, с которым в данный момент установлено соединение.
Endpoints
Эту вкладку можно использовать для проверки существующих конечных точек зеркального
отображения баз данных, а также для их автоматическог
о создания в случае, если они
отсутствуют на экземпляре сервера, служба которого использует проверку подлинности
Windows.
Примечание
Если какой
либо экзе
мпляр сервера запускается под учетной записью, которая не является
учетной записью пользователя домена, то необходимо вручную перейти на свой экземпляр
сервера до продолжения работы с мастером.
Backup
Preferences
Эту вкладку можно использовать для зада
ния настроек резервного копирования для группы
доступности в целом, а также для задания приоритетов резервного копирования для
отдельных реплик доступности.
Listener
Эта вкладка используется для создания прослушивателя группы доступности. По
умолчанию ма
стер не создает прослушиватель.
На странице
Select Initial Data Synchronization
выберите, как именно необходимо создать новые базы
данных
получатели и присоединить их к группе доступности. Выберите один из следующих параметров.
Full
ыберите этот режи
м, если ваша среда удовлетворяет требованиям для автоматического
запуска начальной синхронизации данных.
При выборе режима
Full
после создания группы
доступности мастер выполнит резервное копирование всех баз данных
источников из журналов
транзакций в сете
вую папку и восстановит резервные копии на всех экземплярах серверов, на
которых размещены вторичные реплики. После этого мастер выполнит присоединение всех баз
данных
получателей к группе доступности. В поле


Join only
сли вы вручную подготовили базы данных
получатели на экземплярах серверов, на
которых будут ра
змещены вторичные реплики, то можно указать этот режим. Мастер выполнит
присоединение существующих баз данных
получателей к группе доступности.
Skip initial data synchronization
ыберите этот параметр, если вы хотите использовать
собственные резервные к
опии баз данных
источников и их журналов.
На странице
Validation
выполняется проверка соответствия значений, заданных в этом мастере,
требованиям мастера создания группы доступности. Чтобы внести изменения, нажмите кнопку
Previous
вернитесь к предыдущей
странице мастера и измените одно или несколько значений.
Нажмите кнопку
Next
, чтобы вернуться на страницу
Validation
, а затем нажмите кнопку
run Validation
На странице
Summary
проверьте параметры, выбранные для новой группы доступности. Чтобы внести
зменения, щелкните
Previous
, чтобы вернуться на нужную страницу.
После внесения изменений
нажмите кнопку
Next
, чтобы вернуться на страницу
Summary
Если параметры выбраны правильно, можно нажать кнопку
Script
, чтобы создать скрипт шагов, которые
будут вып
олняться мастером. Теперь нажмите кнопку
Finish
, чтобы создать и настроить новую группу
доступности.
На странице
Progress
установки
отображается ход выполнения этапов создания группы доступности
(настройка конечных точек, создание группы доступности и при
соединение к группе вторичной реплики).
После завершения выполнения этих шагов на странице
Results
отображаются результаты выполнения
каждого шага. Если эти шаги завершатся успешно, новая группа доступности будет полностью настроена.
Если один из шагов за
вершится ошибкой, то может потребоваться завершение настройки вручную или
использование мастера для ошибочного шага.
Сведения о причинах данной ошибки можно отобразить,
перейдя по соответствующей ссылке «
Error
» в столбце
Result
По завершении работы масте
ра нажмите кнопку
Close
, чтобы выйти из него.
Администрирование группы доступности
Управление существующей группой доступности AlwaysOn в SQL Server 2012 включает в себя одну или
несколько следующих задач.
Изменение свойств существующей реплики д
оступности, например для изменения клиентского доступа к
соединению (для настройки вторичных реплик, доступных для чтения), изменение режима отработки
отказа, режима доступности или задание времени ожидания сеанса.
Добавление или удаление вторичных репли
к.
Добавление или удаление базы данных.
Приостановка или возобновление работы базы данных.
Выполнение запланированного перехода на другой ресурс вручную (переход на другой ресурс вручную)
или принудительного перехода на другой ресурс вручную (принуди
тельный переход на другой ресурс).
Создание или настройка прослушивателя группы доступности.
Управление доступными для чтения вторичными репликами определенной группы доступности.
Необходимо настроить доступ для чтения для одной или нескольких реплик
, выполняемых под вторичной
ролью, и настроить маршрутизацию только для чтения.
Управление резервными копиями вторичных реплик определенной группы доступности. Необходимо
настроить место выполнения задач по созданию резервных копий и написать скрипты для
этих задач.
Необходимо создать скрипты заданий резервного копирования для каждой базы данных в группе
доступности на каждом экземпляре SQL Server, на котором размещается реплика доступности.
Удаление группы доступности.
Миграция между кластерами групп
доступности AlwaysOn для обновления ОС
Репликация в
SQL
Server
2012
Новые возможности репликации
SQL
Server
Репликация
процесс синхронизации информации на разных источниках данных.
овы
возможност
системы репликации
SQL Server
ддерживается репликация практически любых изменений в структуре опубликованных таблиц;
реализована "умная" доставка мо
ментальных снимков баз данных (
snapshots
: в случае, если
при передаче
файлов моментального снимка
произошел сбой, при повторе передачи бу
дут переданы только файлы,
доставлен
серверу
получателю;


появилась модель одноранговой репликации, в которой нет разницы между подписчиком и издателем. При
одноранговой репликации изменения можно производить на любом сервере
информация между всеми
серверами, которые участвуют в такой репликации, автоматически синхронизируется;
в репликации слиянием (
merge
replication
) можно использовать логические записи
когда запись из двух
связанных между собой физических таблиц для целей репликации рассматривае
тся как одна запись;
SQL
Server
может напрямую выступать в качестве подписчика для баз данных
Oracle
. Кроме того, он
сам может выступать в качестве издателя для других серверов баз данных, таких, как
IBM
2 или
Oracle
столбцы
идентификатор
а (
identit
columns
) можно реплицировать
с сохранением данного свойства
моментальные снимки
для целей
инициализации
базы данных
подписчика можно передавать вру
чную
при помощи резервной копии
реализована возможность диагностики репликации при помощи отправки спе
циальных небольших
диагностических объемов данных (
трассировочных маркеров,
tracer
tokens
появилась новая объектная модель для программного управления системой репликации. Эта объектная
модель называется
RMO
Replication
Management
Objects
Термин
ология системы репликации
аспространитель
distributor
главный участник системы реплакации, осуществялющий обмен
данными между издателем и подписчиками.
В БД распространителя,
по умолчанию она называется
хранятся основные настройки репли
кации.
Распространителе
м может
выступать
только
SQL
Server
Издатель
publisher
это источник данных для репликации. Издателем в системе репликации
SQL
Server
может выступать либо экземпляр
SQL
Server
2012
SQL
Server
SQL
Server
, или
сервер
Oracle
Подписчик
subscriber
сервер,
принима
ющий
данные
издателя. Подписчиком могут быть как серверы
SQL
Server
, так и другие серверы баз данных (например,
Oracle
или
IBM
2).
Статья
article
это данные какой
либо таблицы или представления
на издателе.
Поддерживается
горизонтальная и
или вертикальная фильтрация данных, включаемых в статью
Публикация
publications
это
объединение одной или нескольких статей одной БД, рассматриваемое как
единое целое.
Подписчики подписываются именно на п
убликацию. Подписаться на часть публикации
нельзя.
Подписка
subscription
это запрос на получение публикации. Она определяет, какую публикацию
запрашивает подписчик и с какой часто
й. Подписки могут быть двух видов:
принудительная
push
этом случае
передачу информации инициирует издатель
запрашивающая
pull
в качестве инициатора
выступает подписчик.
Процесс р
епликаци
и осуществляется
специальны
программны
ми
модул
ями
, называ
емыми
агентами
репликации.
Существует
пять
основных
агентов:
Snapshot
gent
задачей этого программного модуля является создание моментальных снимков
snapshots
). Моментальный снимок
это полная копия информации (и структура, и данные), которая
содержится в публикации, на
определенный
момент времени
Log
Reader
Agent
этот
модуль осуществляет мониторинг журнала транзакций на издателе и заносит
информацию о всех транзакциях, которые затрагивают информацию в публикации, в базу данных
. Затем эта информация передается подписчику, где исполь
зуется для изменения его
таблиц
Distribution
Agent
этот программный модуль осуществляет физическое перемещение моментальных
снимков и информации о транзакциях подписчик
и применяет к ним эту информацию. Для
принудительных (
pull
подписок этот программный модуль работает на
спространителях
, а для
запрашивающих (
pull
подписок
на подписчиках
Merge
Agent
этот программный модуль при репликации слиянием выполняет функции
Distribution
Agent
. Кроме того, он также ответственен за разрешение конфликтов репликации, которые могут
возникнуть при использовании этого типа репликации;
Queue
Reader
Agent
этот агент используется только при репликации транзакций с использованием
очередей. Его задача
считывать из очереди сообщения, получаемые с подписчика и передавать их
издателю для в
ыполнения различных операций.
Помимо перечисленного набора в репликации
SQL
Server
используется еще несколько агентов, которые в
основном предназначены для удаления
стар
евшей
информации.


Для запуска агентов репликации по расписанию используются задан
ия
SQL
Server
Agent
Для каждого агента
сохраняется
история работы, которую можно использовать для диагностики проблем.
Типы репликации
Репликация моментальных снимков
snapshot
replication
тип репликации, когда информация на
подписчике через опре
деленные интервалы времени перезаписывается информацией с издателя. Никакого
отслеживания происходящих изменений при этом не происходит. Этот тип репликации обычно
используется в ситуации, когда нужно передавать небольшой объем данных, и эти данные изменяю
тся
достаточно сильно.
Репликация
транзакций
transactional
replication
при
использовании
этого типа репликации
вначале к
подписчику применяется моментальный снимок исходных данных с издателя (
«инициализация»
подписчик
, а
затем
через определенные инт
ервалы подписчику передается и применяется информация об
произошедших на издателе изменениях
транзакциях. Для репликации транзакций предусмотрены
специальные подтипы, которые позволяют настроить режимы репликации, отличные от стандартного
репликация
тра
нзакций с возможностью внесения изменений на подписчике
. Заметим, что если
на подписчике изменения нужно вносить
постоянно
, то, возможно, в этой ситуации лучше подойдет
репликация слиянием.
При настройке репликации транзакций с возможностью внесения измене
ний на
подписчиках нам нужно будет выбрать один
из
двух режимов
предупрежден
ия издателя о таких
изменениях:
немедленное извещение об изменениях (
immediate
updating
). При выборе этого режима должно
существовать постоянно доступное сетевое соединени
е между и
здателем и подписчиком
извещение об изменениях с использованием очередей (
queued
updating
). Информация о
внесенных на подписчиках изменениях помещается в очередь и по определенному расписанию
передается на издателя, который
уведомляет
о них остальных подп
исчиков.
Постоянно
доступное сетевое соединение при этом не нужно.
одноранговая репликация
(peer replication)
, в которой изменения можно вносить на любой из
серверов, участвующих в репликации. Вся информация между ними
будет
автоматически
синхронизирована.
епликация слиянием
(merge replication)
ри использовании этого типа репликации изменения можно
вносить как на издателе, так и на подписчиках. Все изменения
с помощью триггеров
сводятся
воедино на
издателе, который разрешает конфликты в случае их возник
новения. Для разрешения конфликтов
репликации можно определить свою собственную программную логику. Затем итоговый вариант данных
передается подписчикам.
Подготовка к настройке репликации
пределиться с типом репликации и теми данными, которые будут
реплицироваться.
ринять решение относительно ролей серверов, которые будут участвовать в репликации. При назначении
ролей серверам в основном во внимание нужно принимать:
загрузку сервера;
топологию сети
удобство администрирования.
роизвести проверку и
спользуемых форматов символьных данных на серверах
участниках репликации.
пределиться, какие объекты базы данных издателя должны игнорироваться при репликации (
внешни
ключ
и,
услови
я на значение,
триггер
а,
столбц
счетчика
), воспользовавшись параметром
В случае использования
репликаци
слиянием
необходимо
в каждой таблице или представлении создать столбец типа
, для возможности
уникально идентифицировать каждую реплицируемую запись.
поместить команды


Настройка репликации
ассмотрим
настройку наиболее распространенного типа репликации
репликации транзакций.
астро
ить
распространителя
, воспользовавшись
мастер
Configure
Distribution
Wizard
Object
Explorer
консоли
SQL
Server
Management
Studio
из контекстного меню для контейнера
Replication
Configure
Distribution
На первом экране мастера
Distributor
необходимо определиться
будет ли сервер
полнять роль
распространителя для самого себя или он будет обслуживаться внешним сервером
распространителем.
На экране
Snapshot
Folder
нео
бходимо
определить каталог, в который будут помещаться
моментальные
снимки
ри использовании
локального
каталога нельзя будет использовать
запрашивающие (
pull
подписки
, поэтому рекомендуется
создат
ь сетевую папку и предоставить
нее права на чтение и з
апись для той учетной записи, от имени которой работает
SQL
Server
Agent
На экране
Distribution
Database
требуется
определить имя и местонахождение файлов для базы
данных
распространителя
а экране
Publishers
выбрать те серверы, которые смогут использов
ать этот
распространитель
На
последнем
экране
Wizard
Actions
необходимо
дать команду на настройку
распространителя
создание базы данных распределение. Отсюда же мы можем дать команду на генерацию скрипта с
командами
Transact
SQL
, который будет выполнять
выбранные нами на графическом экране
действия.
ать
на кнопку
Finish
для
завершения
настройк
распространителя
озда
ть
публикаци
ю, воспользовавшись
мастер
New Publication Wizard
: в SQL Server Management
Studio из контекстного меню для контейнера
Rep
lication
Local Publications
New Publication
На экране
Publication Databases
выбрать базу данных с информацией для публикации.
экране
Publication Type
выб
рать
тип
публикации
Transactional Publication
На экране
Articles
создать статью для публика
ции. Для этого
в списке объектов раскрыть узел
Tables
и установить флажки напротив
публикуемых
таблиц.
сли необходимо, о
тфильтровать столбцы,
развернув узел для таблицы и сняв флажки напротив тех столбцов, которые не должны
реплицироваться.
На экране
Filt
Table
Rows
если необходимо,
нажать кнопку
Add
отфильтровать записи в
выбранных
таблицах,
воспользовавшись
выражение
WHERE
На экране
Snapshot
Agent
настроить параметры запуска агента моментальных снимков
Create
snapshot
immediately
моментальн
ый снимок
публикуемых
данных будет сделан
сразу после публикации, и он будет сохраняться в папке, чтобы можно было бы настраивать
подписки.
Schedule the Snapshot Agent to run at the following times
настроить
создание
моментального
снимка
расписанию
экране
Agent Security
нажать
кнопку
Security Settings
выбрать
учетные
записи
имени
которых
будут
работать
Snapshot Agent
Log Reader Agent.
ажать на кнопку
Finish
, определить имя для публикации и произвести создание публикации.
оздать принуд
ительную подписку, воспользовавшись
мастер
New
Subscriptions
Wizard
из
контекстного меню для контейнера
Local
Subscriptions
для того сервера, который является издателем и
дистрибьютором выбрать
команд
New
Subscriptions
а экране
Distribution
Agent
Loc
ation
выб
рать
тип для создаваемой подписки:
принудительная
push
или
запрашивающая (
На экране
Subscribers
выбрать сервер, который будет подписчиком для публикации. Для того, чтобы
добавить
нужный сервер
, нужно нажать на кнопку
Add
Subscriber
New
Server
Subscriber
подключиться к серверу
SQL
Server
с правами администратора.
а этом
экране
выбрать базу данных,
которую будут передаваться реплицируемые данные.
На экране
Distribution
Agent
Security
настроить учетную запись для
Distribution
Age
и настроить
параметры его подключения к
распространителю
и подписчику.
На экране
Synchronization
Schedule
настроить расписание репликации.
Для этого
в списке
Agent
Schedule
выбрать
соответствующий
параметр
Define
Schedule
определить
и настроить пар
амет
ры для создаваемого расписания,
рис.


Рис.
11.
1.
Настройка расписания для репликации
Run
continuously
репликация будет производиться непрерывно с минимальными
интервалами
Run
demand
only
апускать
только по запросу
На экране
Initialize
Subscriptions
определиться со временем инициализации базы данных
подписчика. В нашем распоряжении
два варианта:
Immediately
емедленно
At first
synchronization
ри первой синхронизации, то есть
во время первого сеанса
репликации согласно настроен
ному расписанию.
Если
снять флажок
Initialize
инициализация базы данных подписчика (то есть создание
исходного
варианта таблиц) производиться не будет. Нам потребуется создать
таблицы
и загрузить
данными
вручную.
ажать на кнопку
Finish
и произвести с
оздание подписки.
Средства администрирования и мониторинга репликации
Средства администрирования репликации
Средства управления репликацией сконцентрированы в
SQL
Server
Management
Studio
в контейнере
Replication
Чтобы открыть свойства расп
ространителя
з контекстного меню для контейнера
Replication
выбрать
команд
Distributor
Properties
Чтобы открыть свойства
издателя
из контекстного меню для контейнера
Replication
выбрать
Publisher
Properties
Чтобы удалить все настройки репликации дл
я этого компьютера
из контекстного меню для контейнера
Replication
выбрать
команду
Disable
Publishing
and
Distribution
Чтобы просмотреть и
или изменить свойства публикации
в контейнере
Local
Publications
выбрать
соответствующую публикацию и из контекс
тного меню для публикации выбрать
Properties
Чтобы реинициализировать всех подписчиков после сбоя в работе репликации
из контекстного меню
для объекта публикации выбрать команду
Reinitialize
all
Subscriptions
Настройка низкоуровневых параметров работы
агентов репликации
Для
настройки параметров работы агентов
мож
выбрать один из готовых профилей, который наилучшим
образом подходит к данной ситуации, или создать и применить свой профиль.
Для этого:
ыбрать команду
Distributor
Properties
в контекстном м
еню для контейнера
Replication
ажать на кнопку
Profile
Defaults
В открывшемся окне
Agent
Profiles
выбрать любой из готовых профилей или создать и применить свой
профиль. Например, для
Distribution
Agent
изначально предусмотрено пять профилей работы (см.
рис.


Рис.
11.
2.
Работа с профилями агентов репликации
Применение
Replication
Monitor
Replication
Monitor
это г
лавное средство монит
оринга и диагностики репликации
Открыть
Replication
Monitor
можно при помощи команды
Launch
Replication
Monitor
контекстно
меню любого объекта в контейнере
Replication
SQL
Server
Management
Studio
, см.
рис.
Рис
11.
3.
Окно
Replication Monitor
Окно
Replication Monitor
состоит
двух
частей
В левой части окна
Replication
Monitor
находится спис
ок групп издателей, сами издатели и публикации.
тот список можно использовать д
ля целей мониторинга репликации: е
сли в процессе репликации возникли
какие
либо ошибки, то соответствующие иконки в этом списке будут помечены специальными символами.
Вкладки
правой
панели зависят от того, какой именно элемент выбран в списке слева. Если выбрана
публикация, то в вашем распоряжении
три вкладки:
Publications
содержит
информацию о публикации, ее статус, количество настроенных для нее
подписок и общую оценку пр
оизводительности при работе с данной публикацией;
Subscription
Watch
List
это список подписок для данной публикации.
Если щелкнуть по объекту
подписки на этой вкладке правой кнопкой мыши и в контекстном меню выбрать
View
Details
откроется окно с информац
ией о
всех сеансах передачи данных от издателя распространителю и от
распространителя подписчику.
Common
Jobs
информация о заданиях, настроенных для данной публикации. Из контекстного
меню для объектов заданий можно
запустить задание на выполнение вру
чную или остановить его
открыть свойства задания.
Если в списке в левой части экрана Replication Monitor
выбрать
объект публикации, то в нашем
распоряжении появляются дополнительные возможности
На вкладке
Tracer Tokens
можно запустить специальный
трассир
овочный маркер
и посмотреть, как с его
обработкой справится система репликации. Для этой
цели
предназначена кнопка
Insert Tracer
Единственное его назначение
диагностика системы реплика
ции. После
создания маркера
, мы можем


посмотреть, сколько времени зан
яла его передача от издателя
распространителю
, а затем от
распространителя
подписчику. В последнем столбце указывается общее время, которое потребовалось на
обе операции. Если в каком
либо столбце осталось значение
Pending
, то это значит, что передача данн
ых
еще не произошла.
верхней части в
кладк
Warnings
and A
можно
настроить
Warnings
которые
показываются в окне
Replication
Monitor
в виде специальных обозначений.
При помощи кнопки
Configure
Alerts
можно
назначить операторов и
настроить
предупрежде
ия
SQL
Server
Agent
, от
носящиеся к системе репликации.
В нижней части вкладки
Warnings
and
Alerts
можно просмотреть информацию о работе агентов, которые
принимают участие в данном типе репликации.
Другие средства мониторинга репликации
екущее сос
тояние и последнее выполненное действие для различных агентов можно просмотреть из
SQL
Server
Management
Studio
. Для этой цели предназначены команды
View
Status
из
контекстного
меню для
объектов публикации и подписки.
нформацию о самых важных проблемах ре
пликации можно получить при просмотре журналов событий
для
SQL
Server
SQL
Server
Agent
. Для
самого полного протоколирования
информации необходимо
выбрать для интересующих вас агентов
готовый
профиль
ля целей мониторинга и
диагностики можно использовать счетчики производительности в
System
Monitor
. В вашем распоряжении
следующие объекты:
SQL
Server
Replication
Snapshot
счетчики
для
мониторинга
работы
Snapshot
Agent
SQL Server: Replication Dist.
информация
работе
istribution Agent;
SQL Server: Replication Logreader
счетч
Log Reader Agent;
SQL Server: Replication Merge
статистика
работы
Merge Agent.
SQL
Server
Replication
Agents
для этого объекта предусмотрен единственный счетчик, который
показывает, сколь
ко агентов работает в настоящий момент.
Вместо
SQL
Server
в окне
Системного монитора
нужно выбирать
MSSQL$имя_экземпляра
для вашего сервера.

Приложенные файлы

  • pdf 14773081
    Размер файла: 3 MB Загрузок: 0

Добавить комментарий