Пособие к курсу Администрирование Microsoft...

71
1 И.В. Ананченко, И.В. Козлов [email protected] http://mctrewards.ru Пособие к курсу Администрирование Microsoft SQL Server 2012R2 Часть 1 Санкт-Петербург 2014

Transcript of Пособие к курсу Администрирование Microsoft...

Page 1: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

1

И.В. Ананченко, И.В. Козлов

[email protected]

http://mctrewards.ru

Пособие к курсу

Администрирование Microsoft SQL Server 2012R2 Часть 1

Санкт-Петербург

2014

Page 2: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

2

Оглавление

1. Планирование и установка SQL Server 2012.................................................................................................... 7

1.1 Планирование установки SQL Server 2012 ................................................................................................. 7 1.2 Установка SQL-Server 2012 ........................................................................................................................... 11 1.3 Конфигурирование SQL Server для сетевого доступа ................................................................................. 19

2. Средства администрирования SQL Server 2012 ............................................................................................ 24 2.1 Окна инструментальных средств в среде SQL Server Management Studio ................................................ 26 2.3 Диспетчер конфигурации SQL Server ........................................................................................................... 31 2.4 Технологии SQL Server 2012 ......................................................................................................................... 32

3. Утилиты и средства обслуживания SQL Server 2012 ................................................................................... 34 3.1 Специальный режим подключения Dedicated Administrator Connection (DAC) .................................... 34 3.2 SQL Server Profiler .......................................................................................................................................... 38 3.3 Запуск и использование помощника по настройке ядра СУБД (Database Engine Tuning Advisor) ......... 39 3.4 Программа (утилита) sqlcmd.......................................................................................................................... 44

4. Базы данных — системные и прикладных пользователей ......................................................................... 48 4.1 Служебные базы данных, базы данных пользователей и учебные базы данных SQL Server 2012 ......... 48 4.2 Физическая структура базы данных.............................................................................................................. 52 4.3 Создание пользовательских баз данных ....................................................................................................... 54 4.4 Перенос базы данных ..................................................................................................................................... 60

5. Обслуживание баз данных администратором SQL Server 2012 .................................................................. 62 5.1 Режим восстановления базы данных ............................................................................................................ 62 5.2 Режимы работы базы данных ........................................................................................................................ 64 5.3 Увеличение размера базы данных ................................................................................................................. 66 5.4 Уменьшение размера базы данных ............................................................................................................... 67 5.5 Операция переноса файлов базы данных ..................................................................................................... 69 5.6 Переименование базы данных ....................................................................................................................... 69 5.7 Изменение владельца базы данных .............................................................................................................. 70 5.8 Удаление базы данных ................................................................................................................................... 70

Литература ............................................................................................................................................................... 70

Page 3: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

3

В пособии рассматриваются вопросы, связанные с установкой и

администрированием Microsoft SQL Server 2012. Microsoft SQL Server 2012

— система управления реляционными базами данных. Программный продукт

предлагает разработчикам и пользователям широкий набор возможностей по

созданию решений с высоким уровнем производительности, надежности и

безопасности, является комплексной платформой управления данными и

бизнес-анализа.

Материал пособия может быть полезен людям, изучающим курсы по

основам работы с СУБД Microsoft SQL Server, системному

администрированию. В качестве дополнительного материала, материал

пособия может быть полезен студентам, изучающим курс ―Прикладные

программные продукты и системы‖. Это связано с тем, что СУБД Microsoft

SQL Server (в том числе Microsoft® SQL Server® 2012 Express — мощная и

надежная бесплатная система управления данными, обеспечивающая

функциональное и надежное хранилище данных для веб-сайтов и настольных

приложений) используются многими прикладным программными

продуктами для хранения информации в базах данных. В пособии

рассматриваются наиболее общие вопросы, связанные с установкой и

администрированием Microsoft SQL Server 2012

Материалы пособия могут быть использованы в процессе

самоподготовки к сдаче сертификационного экзамена Microsoft 070-462

Administering Microsoft SQL Server 2012 Databases.

Пособие (часть 1) может использоваться при проведении курса по

администрирования SQL Server. Ниже приведен примерный план курса,

рассчитанного на 40 акад. часов

План курса

Тема 1. Планирование и установка SQL Server 2012

Планирование установки SQL Server 2012

Оценка архитектуры приложения на основе SQL Server 2012

Выбор оборудования

Выбор редакции SQL Server 2012

Установка SQL Server

Начало установки. Выбор набора компонентов

Работа с именованными экземплярами, экземпляр по умолчанию

Выбор учетной записи для служб SQL Server

Выбор режима аутентификации SQL Server 2012

Выбор кодировки и порядка сортировки

Другие параметры установки

Автоматизация процесса установки

Проверка выполненной установки SQL Server 2012, выполнение

послеустановочных задач.

Тема 2. Средства администрирования SQL Server 2012

Рабочие окна интерфейса SQL Server Management Studio

Page 4: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

4

Способы создания скриптов в Management Studio

SQL Server Configuration Manager - назначение и настройка

Тема 3. Утилиты и средства обслуживания SQL Server 2012

Специальный режим подключения Dedicated Administrator Connection (DAC)

SQL Server Profiler

Database Engine Tuning Advisor

Программа (утилита) sqlcmd

Тема 4. Базы данных - системные и прикладных пользователей

Служебные и учебные базы данных SQL Server 2012

Физическая структура базы данных

Файлы баз данных и журналов транзакций

Определение размера файлов данных

Определение размера файлов журналов транзакций

Экстенты и страницы

Применение файловых групп

Логическая структура базы данных

Создание пользовательских баз данных

Создание базы данных из SQL Server Management Studio

Создание скрипта, создающего базу данных

Перенос базы данных

Тема 5. Обслуживание баз данных администратором SQL Server 2012

Режим восстановления базы данных (Recovery Model)

Режимы работы базы данных

Сопровождение баз данных

Увеличение размера базы данных

Уменьшение размера базы данных

Перенос файлов базы данных

Переименование базы данных

Изменение владельца базы данных

Удаление базы данных

Тема 6. Обеспечение администратором безопасности SQL Server 2012

Основы системы безопасности SQL Server 2012

Учетные записи SQL Server 2012

Выбор типа учетной записи

Создание учетной записи, настройка ее параметров

Режимы аутентификации SQL Server 2012

Учетные записи SQL Server 2012, создаваемые по умолчанию

Серверные роли. Разрешения на уровне сервера

Схемы базы данных, пользователи базы данных

Операции создания, изменения и удаления пользователей базы данных

Page 5: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

5

Встроенные пользователи базы данных

Встроенные роли базы данных

Создание пользовательской роли

Предоставление прав на объекты в базе данных

Шифрование информации в таблицах баз данных

Тема 7. Резервное копирование и восстановление баз данных SQL Server

2012

Планирование резервного копирования

Типы резервного копирования

Выполнение резервного копирования по расписанию

Основы восстановления баз данных

Восстановление базы данных из резервной копии

Подготовка и проведение восстановления

Восстановление системных баз данных

Тема 8. Автоматизация администрирования SQL Server 2008,

возможности SQL Server 2012 для работы с электронной почтой

Автоматизация административных операций средствами SQL Server Agent

Работа с заданиями SQL Server Agent

Параметры заданий

Параметры этапов заданий, запуск заданий, настройка расписания заданий

Обзор возможностей SQL Server 2012 для работы с электронной почтой

Тема 9. Выполнение административных операций с использованием

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

системный администратор. SQL Server Integration Services.

Пример программы на Visual Basic по созданию базы данных.

Программа-клиент для чтения информации из таблицы созданной базы

данных (вариант программы на Delphi).

Применение SQL Server Integration Services

Средства для работы с SSIS

Тема 10. Мониторинг производительности SQL Server, оптимизация работы

SQL Server

Счетчики для анализа загрузки процессора

Счетчики для анализа загрузки оперативной памяти

Оптимизация работы SQL Server

Работа с блокировками, проблема оптимизация запросов

Тема 11 Репликация, средства обеспечения отказоустойчивости SQL

Server 2012

Репликация, терминология системы репликации

Типы репликации. Настройка репликации.

Page 6: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

6

Работа SQL Server 2012 в кластере

Терминология и варианты конфигурации кластера

Установка SQL Server 2012 в кластер

Тема 12 Перспективы развития SQL Server 2012

Важные отличия Windows Server 2012 от предыдущих версий

От версии Windows Server 2012 к Windows Server 2012 R2 – что нового

Windows Server 2012 R2 и облачная инфраструктура

Итоги курса

Page 7: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

7

1. Планирование и установка SQL Server 2012

1.1 Планирование установки SQL Server 2012

Microsoft SQL Server 2012 — система управления реляционными

базами данных (СУРБД), разработанная корпорацией Microsoft. Основной

используемый язык запросов — Transact-SQL (T-SQL), создан совместно

Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO

по структурированному языку запросов (SQL) с расширениями.

Используется для работы с базами данных размером от персональных до

крупных баз данных масштаба предприятия, успешно конкурирует с другими

СУБД в этом сегменте рынка [1]. Решение о том, какой выпуск SQL Server

следует использовать, достаточно сильно зависит от того, какие приложения

планируется использовать. Выбор выпуска зависит от количества и размера

обслуживаемых баз данных, а так же от того, какие клиентские приложения

планируется использовать для работы. На окончательный выбор,

естественно, влияет и стоимость выбираемого решения, которое оценивается,

как с учетом имеющихся у покупателей средств, так и возможность

последующего масштабирования, например, путем добавления

дополнительных компонентов.

Таблица 1. Выпуски Microsoft SQL Server 2012

Характе-

ристика

выпуска

Выпуск SQL

Server

Определение

Основной Enterprise Edition

(64-разрядная и

32-разрядная

версия)

Предложение высшего класса,

обеспечивающее полный набор возможностей

центра обработки данных (ЦОД) с

высочайшей производительностью,

неограниченными возможностями

виртуализации и развитыми средствами

бизнес-аналитики, позволяющими добиться

высокого уровня обслуживания важнейших

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

пользователям доступ к анализу данных.

Основной Business

Intelligence (64-

разрядная

версия и 32-

разрядная

версия)

Комплексная платформа, дающая

организациям возможность строить и

развертывать надежные, масштабируемые и

управляемые решения бизнес-аналитики. В

выпуск включены функции просмотра и

представления данных в браузере, мощные

возможности комбинирования данных и

Page 8: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

8

расширенное управление интеграцией.

Основной Standard Edition

(64-разрядная и

32-разрядная

версия)

Обеспечивает основные функции управления

данными, предоставляет базу данных бизнес-

аналитики для приложений, работающих в

отделах и небольших организациях.

Поддерживаются распространенные средства

разработки в локальных системах и

вычислительных облаках, что делает

возможным эффективное управление базами

данных с минимальными затратами ИТ-

ресурсов.

Специаль-

ный

Web Edition (64-

разрядная и 32-

разрядная

версия)

Решение с низкой совокупной стоимостью

владения, предназначенное для размещения

веб-сайтов и дополнительных веб-услуг, в

котором по доступной цене обеспечивает

масштабируемость и функции управления для

небольших и крупномасштабных веб-

проектов.

Допол-

нительный

Developer

Edition (64-

разрядная и 32-

разрядная

версия)

Позволяет разработчикам создавать

приложения любого типа на базе SQL Server.

Включает все функциональные возможности

выпуска Enterprise Edition, однако

лицензируется по более дешевому варианту,

как система для разработки и тестирования, а

не для применения в качестве рабочего

сервера. Выпуск SQL Server Developer Edition

хорошее решение для тех, кто создает и

тестирует приложения.

Допол-

нительный

SQL Server 2012

Express

Бесплатная СУБД для баз данных начального

уровня. Выпуск хорошо подходит для

обучения, для создания управляемых

данными приложений, работающих на

рабочих станциях и небольших серверах. SQL

Server 2012 Express бесплатный

инструментарий для независимых

поставщиков программного обеспечения,

непрофессиональных разработчиков

создающих клиентские приложения. Если

потребуется дополнительный функционал для

баз данных, то выпуск SQL Server Express

можно легко обновить до версий SQL Server

более высокого класса. Новой возможностью

версии SQL Server 2012 является SQL Server

Express LocalDB - облегченная версия

Page 9: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

9

Express, имеет все программные функции,

запускается в пользовательском режиме,

быстро устанавливается, не требует

настройки и имеет низкие системные

требования.

Таблица 2. Компоненты SQL Server 2012

Компоненты

сервера

Описание

SQL Server

Database

Engine

В состав компонента Компонент SQL Server Database Engine

входит компонент Компонент Database Engine, основная

служба для хранения, обработки и обеспечения безопасности

данных, репликации, полнотекстового поиска, средств

управления реляционными и XML-данными и сервера служб

Data Quality Services (DQS).

Analysis

Services

содержат средства создания и управления приложениями

оперативной аналитической обработки (OLAP) и

приложениями интеллектуального анализа данных

Службы

Reporting

Services

включают в себя серверные и клиентские компоненты для

создания, управления и развертывания табличных,

матричных и графических отчетов, а также отчетов в

свободной форме. Службы Reporting Services являются

расширяемой платформой, которую можно использовать для

разработки приложений отчетов.

Службы

Integration

Services

представляют собой набор графических средств и

программируемых объектов для перемещения, копирования

и преобразования данных. Они также включают компонент

DQS для служб Службы Integration Services.

Master Data

Services

(MDS)

решение SQL Server по управлению основными данными.

MDS можно настроить для управления любой структурой

(товары, заказчики, счета). Поддерживаются иерархии,

детальная настройка безопасности, транзакции, управление

версиями данных и бизнес-правила, а также использование

надстройка для Excel для управления данными

Таблица 3. Средства управления SQL Server 2012

Средства управления Описание

SQL Server

Management Studio

интегрированная среда для доступа, настройки,

управления, администрирования и разработки всех

компонентов SQL Server. Среда Management Studio

позволяет разработчикам и администраторам,

обладающим различными уровнями навыков,

использовать SQL Server. Обозреватель Internet

Page 10: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

10

Explorer 6 с пакетом обновления 1 или более поздней

версии необходим для любой установки среды Среда

Management Studio.

Диспетчер

конфигурации SQL

Server

обеспечивает базовые возможности управления

конфигурациями для служб, серверных протоколов,

клиентских протоколов и псевдонимов клиентов SQL

Server.

Приложение SQL

Server Profiler

Приложение Приложение SQL Server Profiler

предоставляет графический пользовательский

интерфейс для наблюдения за экземпляром

компонента Компонент Database Engine или служб

Analysis Services.

Помощник по

настройке ядра

СУБД (Компонент

Database Engine)

помогает создавать оптимальные наборы индексов,

индексированных представлений и секций.

Клиент Data Quality

простой и понятный графический пользовательский

интерфейс для подключения к серверу DQS и

выполнения операций очистки данных. Он также

позволяет централизованно отслеживать различные

действия, выполняемые во время операции очистки

данных. Для установки клиента Data Quality

необходим обозреватель Internet Explorer 6 с пакетом

обновления 1 (SP1) или более поздней версии.

SQL Server Data

Tools

содержат интегрированную среду разработки,

предназначенную для создания решений для

следующих компонентов бизнес-аналитики. Analysis

Services, Службы Reporting Services и Службы

Integration Services. (Ранее — среда Business

Intelligence Development Studio.) SSDT также

содержит компонент «проекты баз данных», который

предоставляет интегрированную среду для

разработчиков, предназначенную для выполнения

всех работ по разработке баз данных для любой

платформы SQL Server (как в основном помещении,

так и вне его) в пределах Visual Studio. Разработчикам

баз данных предлагается расширенный обозреватель

серверов, который является компонентом Visual

Studio, предназначенным для облегчения процессов

создания и изменения объектов баз данных и данных

в них, а также для выполнения запросов. Для

установки SQL Server Data Tools необходим браузер

Internet Explorer 6 с пакетом обновления 1 (SP1) или

более поздней версии.

Page 11: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

11

Компоненты связи

Устанавливает компоненты для связи между

клиентами и серверами и сетевые библиотеки для DB-

библиотеки, ODBC и OLE DB.

1.2 Установка SQL-Server 2012

1. Запускаем установку SQL. Центр установки SQL Server. Выбираем в

левом меню пункт «Установка». Переходим в пункт «Новая установка

или добавление компонентов к существующей установке». Кликаем.

Запускается «Установка SQL Server 2012». Ключ продукта – вводим

ключ продукта, если он не вшит. Далее.

Рисунок 1 — Роль установки

2. Соглашаемся с лицензией. Далее.

3. Файлы поддержки установки программы. Видим в имени компонента

«Файлы поддержки программы» и кликаем «Установить».

Page 12: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

12

4. Правила поддержки установки. Если всѐ сделали правильно,

единственное, на что можем получиться предупреждение, так это на

брандмауэр Windows, в котором не открыли соответствующие порты.

Далее.

Рисунок 2 — Результат проверки правил

5. На шаге Выбор компонентов (Feature Selection) выбираем Службы

компонентов Database Engine (сам SQL Server), Службы Reporting

Service в собственном режиме (для создания отчетов), Средства

управления основные (Management Tools- Basic) и Средства

управления полный набор, которые необходимы для работы с базой.

Каталоги общих компонентов оставляем по дефолту.

6. Правила установки. Смотрим сводку проверки (для этого достаточно

нажать «Показать подробности). Далее.

7. На шаге Настройка экземпляра (Instance Configuration), если устраивает

тип экземпляра и путь, можно оставить все по умолчанию. Вводим

идентификатор (можно оставить дефолт – по умолчанию), указываем

место для хранения корневого каталога экземпляра. В идеале место

хранения экземпляра должно быть на другом диске.

8. Требования к свободному месту на диске. Смотрим сводку на данные

по месту на диске для нашего компонента. Если всѐ в порядке, жмѐм

«Далее».

Page 13: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

13

Рисунок 3 — Выбор устанавливаемых компонентов

Рисунок 4 — Настройка экземпляра

Page 14: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

14

9. Конфигурация сервера. Вкладка «Учетные записи служб».

Можно поэкспериментировать с различными учетными записями для

служб SQL, но удобнее и целесообразнее создать специальную

учетную запись SQL-администратора c правами администратора

контроллера домена, нажать кнопку «Использовать одну и ту же

учетную запись для всех служб SQL Server» и выбрать еѐ. Помимо

этого требуется выставить тип запуска для Агента SQL Server с

«Вручную» на «Автоматически».

Рисунок 5 — Конфигурация сервера

Вкладка «Параметры сортировки». Пункт «Компонент Database

Engine», по умолчанию там стоит сортировка Cyrillic_General_CI_AS.

Нажимаем кнопку Настройка. Ставим галку на пункт «Параметры

сортировки SQL, используемые для обратной совместимости».

Выбираем сортировку SQL_Latin1_General_CP1_CI_AS, жмѐм OK.

Выполняем определение для служб Analysys Services. Жмѐм

«Настройка», выбираем сортировку Latin1_General_100, нажимаем ok,

получаем сортировку Latin1_General_100_CI_AS. Далее

10.Настройка компонента Database Engine. Вкладка «Планирование

учетных записей». Для простоты задаѐм только «Режим проверки

подлинности Windows» и оставляем ранее выбранного пользователя

(можем также добавить текущего).

Page 15: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

15

Рисунок 5 — Настройка параметров сортировки служб SQL Server

Рисунок 5 — Настройка компонента Database Engine

Page 16: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

16

Вкладка «Каталоги данных». Все каталоги будут записаны там, куда

указали на момент настройки экземпляра. Если есть насущная

необходимость, местоположение можно изменить.

Рисунок 6 — Настройка компонента Database Engine

Вкладка Filestream. Ставим галку на «Разрешить FILESTREAM при

доступе через Transact-SQL» и, когда станет активной, галку на

«Разрешить FILESTREAM при потоковом доступе файлового ввода-

вывода. Имя общего ресурса Windows можно оставить по умолчанию.

Далее.

11.Настройка служб Reporting Services. Так как это дефолтный экземпляр

и не планируем связывать его с Sharepoint, то оставляем пункт по

умолчанию, а именно «Установить конфигурацию по умолчанию для

работы в собственном режиме». Далее.

12.Отчет об ошибках. Выбираем, нужно ли нам отправлять отчет в

корпорацию Microsoft или нет. Далее.

13.Правила конфигурации установки. Смотрим сводку, пункт «Показать

подробности». Если всѐ в порядке, жмѐм «Далее».

14.Всѐ готово для установки. Проверяем все компоненты для установки.

Нажимаем «Установить».

15.Завершено. Установка прошла успешно. Нажимаем «Закрыть».

Page 17: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

17

Рисунок 7 — Настройка компонента Database Engine (FILESTREAM)

Рисунок 8 — Основной режим служб Reporting Services

Page 18: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

18

Рисунок 9 — Проверка компонентов установки

Рисунок 10 — Завершение процесса установки SQL Server 2012

Page 19: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

19

Рисунок 10 — Завершение процесса установки. Документация и

ссылки

1.3 Конфигурирование SQL Server для сетевого доступа

1. Следует проверить и убедиться, что сервис MSSQLSERVER работает

не под Local Service / System, а под учетной записью администратора домена

в том случае, если планируется использовать SQL Server для работы с

доменными службами.

2. Брандмауэр на машинах SCCM и SQL пока выключен.

3. Включена поддержка сетевых библиотек (сетевые настройки – должна

быть выбрана доменная сеть), позволяющих подключиться к SQL Server

извне пределов данной конкретной машины.

Запускаем Диспечер конфигурации SQL Server. Слева становимся на Сетевая

конфигурация SQL Server \ Протокол для <имя экземпляра>. Для удаленного

доступа с других компов включаем поддержку протоколов Именованные

каналы и TCP/IP. Службы после этого должны быть перезапущены.

4. Настройка фиксированного порта.

В диспетчере конфигурации SQL Server раскрываем узел Сетевая

конфигурация SQL Server и щелкаем на экземпляре сервера, который надо

настроить. В правой области дважды щелкаем TCP/IP. В диалоговом окне

Page 20: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

20

Свойства TCP/IP щелкаем закладку IP-адреса. Вводим доступный номер

порта в поле TCP-порт раздела IP All. Очищаем строку динамический порт.

Например, вводим стандартный 49172. Нажимаем кнопку ОК, чтобы закрыть

диалоговое окно, и кнопку ОК в предупреждении о необходимости

перезагрузки службы. Службы после этого действия будут перезапущены.

5. Добавляем учетную запись компьютера SCCM в группу

Администраторы на SQL сервере. Панель управления\ Администрирование\

Управление компьютером. В окне управление компьютером

6. Добавление в брандмауэр исключения для программы при помощи

элемента «Брандмауэр Windows» на панели управления Дополнительные

параметры Правила для входящих подключений правой кнопкой мыши

создать правило На вкладке Исключения элемента Брандмауэр Windows на

панели управления нажмите кнопку Добавить программу.

Перейдите к экземпляру SQL Server, которому необходимо открыть доступ

через брандмауэр, например к C:\Program Files\Microsoft SQL

Server\MSSQL11.<instance_name>\MSSQL\Binn, выберите sqlservr.exe, а

затем нажмите Открыть. Нажмите кнопку ОК.

Рисунок 11 — Sql Server Configuration Manager

Page 21: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

21

Рисунок 12 — Управление компьютером

Рисунок 13 — Определение группы

Page 22: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

22

Рисунок 14 — Мастер создания правила для нового подключения

Рисунок 15 — Создание входящего правила для программы

Page 23: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

23

Рисунок 16 — Правило разрешает подключение

Рисунок 17 — Правило применено ко всем профилям

Page 24: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

24

2. Средства администрирования SQL Server 2012

SQL Server Management Studio — утилита из Microsoft SQL Server

(начиная с версии 2005 и в более поздних версиях) для конфигурирования,

управления и администрирования всех компонентов Microsoft SQL Server.

Утилита включает скриптовый редактор и графическую программу, которая

работает с объектами и настройками сервера [1]. SQL Server Management

Studio — интегрированная среда для доступа, управления, настройки,

администрирования и разработки всех компонентов SQL Server. В SQL

Server Management Studio графические средства управления сочетаются с

набором полнофункциональных редакторов скриптов для доступа

разработчиков и администраторов к SQL Server. Среда SQL Server

Management Studio объединяет в едином интерфейсе возможности программ

Enterprise Manager, Query Analyzer и Analysis Manager, входивших в состав

более ранних выпусков SQL Server. Кроме того, среда SQL Server

Management Studio работает со всеми компонентами SQL Server, например,

со службами Reporting Services и Integration Services. Разработчики получают

знакомую среду, а администраторы баз данных — единую

полнофункциональную программу, объединяющую простые в использовании

графические средства и богатые возможности для создания сценариев.

Среда SQL Server Management Studio 2012 реализует следующие

основные возможности:

поддерживает большинство административных задач для SQL Server;

предоставляет единую интегрированную среду для управления SQL Server

Database Engine;

диалоговые окна для управления объектами в компоненте SQL Server

Database Engine, службах Analysis Services и службах Службы Reporting

Services, позволяют выполнять действия немедленно, используя редактор

кода или включать эти действия в скрипт для последующего выполнения;

немодальные диалоговые окна с настройкой размеров позволяют при

открытом диалоговом окне получать доступ к нескольким средствам;

общее диалоговое окно планирования позволяет выполнять действия с

управляемыми диалоговыми окнами в заданное время;

поддерживается экспорт и импорт регистрации сервера среды Среда SQL

Server Management Studio из одной среды Среда Management Studio в

другую;

доступно сохранение и печать XML-файлов плана выполнения и

взаимоблокировок, созданных приложением SQL Server Profiler, просмотр

их в любое время и отправка для анализа администратору;

доступны новые окна сообщений об ошибках и информационных

сообщений, предоставляющие гораздо больше сведений и позволяющие

отправлять в Microsoft комментарии о сообщениях, копировать сообщения

Page 25: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

25

в буфер обмена и отправлять их по электронной почте в службу

поддержки;

в среде SQL Server Management Studio 2012 реализован встроенный веб-

браузер для быстрого обращения к библиотеке MSDN и/или получения

справки в сети Интернет;

встроенная справка от сообществ в Интернете;

доступен учебник по среде Среда SQL Server Management Studio,

облегчающий освоение новых возможностей, помогающий правильно и

продуктивно использовать эти возможности;

новый монитор активности с фильтрацией и автоматическим

обновлением;

встроенные интерфейсы компонента Database Mail.

добавлены новые возможности создания скриптов.

Компонент среды Среда SQL Server Management Studio «Редактор

кода» содержит встроенные редакторы скриптов для пользовательской

разработки скриптов Transact-SQL, многомерных выражений, расширений

интеллектуального анализа данных и XML для аналитики. Поддерживаются

возможности:

динамическая справка для немедленного доступа к данным во время

работы;

набор шаблонов с возможностью создания пользовательских шаблонов;

поддержка написания и изменения запросов и скриптов без подключения

к серверу;

поддержка запросов и скриптов SQLCMD;

новый интерфейс для просмотра результатов XML;

встроенная система управления версиями для проектов решений и

скриптов, поддерживающая хранение и обслуживание копий скриптов по

мере их разработки;

поддержка технологии Microsoft IntelliSense для инструкций многомерных

выражений.

Возможности обозревателя объектов. Компонент «Обозреватель

объектов» среды Среда SQL Server Management Studio — встроенное

средство просмотра и управления объектами на всех типах серверов.

Поддерживаются возможности:

фильтрация по полному имени, его части, по схеме или дате;

асинхронное заполнение объектов с возможностью фильтровать объекты

по их метаданным;

доступ к агентам SQL Server на серверах репликации в целях

администрирования.

Page 26: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

26

2.1 Окна инструментальных средств в среде SQL Server Management

Studio

Для запуска SQL Server Management Studio следует нажать кнопку ПУСК

перейти к пункту SQL Server 2012 SQL Server Management Studio.

Рассмотрим рабочие окна интерфейса SQL Server Management Studio часто

используемые на практике (рисунок 18).

Рисунок 18 — Пункт меню ―Вид‖

Окно Обозреватель объектов («F8»)

Окно Обозреватель объектов – предназначено для выполнения

административных операций с серверами, БД и объектами баз данных: обзор

серверов, создание и размещение объектов, управление источниками данных,

просмотр журналов. Поддерживается фильтрация и сортировка объектов.

Доступ к этому средству осуществляется из меню Вид или с помощью

горячей клавиши («F8»).

Page 27: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

27

Окно Подробности обозревателя объектов («F7»)

Окно Подробности обозревателя объектов – предназначено для

просмотра различной сводной информации по объектам, с которыми ведется

работа и т.д. Доступ к этому средству осуществляется из меню Вид или с

помощью горячей клавиши («F7»).

Окно Обозреватель решений («Ctrl»+«Alt»+«G»)

Окно Обозреватель решений — позволяет получать информацию о

хранении и организации скриптов и соответствующие сведенья о соединении

в проектах, называемых скриптами SQL Server. Несколько скриптов SQL

Server можно хранить в виде решений и по мере развития скриптов для

управления ими использовать систему управления версиями. Доступ к этому

средству осуществляется из меню Вид или с помощью комбинаций горячих

клавиш «Ctrl»+«Alt»+«G».

Окно Браузер (Обозреватель) шаблонов

Обозреватель шаблонов — позволяет создавать запросы на основе

существующих шаблонов. Можно создавать пользовательские запросы или

изменять существующие шаблоны в соответствии с текущими задачами.

Доступ к этому средству осуществляется из меню Вид. На рисунке 18

приведен пример шаблона ―Create database template‖.

Рисунок 19 — Шаблон ―Create database template‖

Page 28: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

28

2.2 Способы создания скриптов в Management Studio

Как правило, скрипты создают, воспользовавшись одним из трех

вариантов.

Вариант 1. Автоматическая генерация скриптов из Обозревателя

объектов (рисунок 20). Например, для таблицы можно сгенерировать

скрипты для создания таблицы, удаления таблицы, выборки данных из

таблицы, скрипты для добавления новых данных в таблицу, а также для

изменения и удаления существующих записей.

Рисунок 20 — автоматическая генерация скрипта для таблицы

Вариант 2. Использование графического построителя запросов в SQL

Server Management Studio.

Обычно этот вариант используется для создания сложных запросов с

множеством соединений, условий и сортировок. Последовательность

действий:

Page 29: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

29

Рисунок 21 — Выбираем пункт Создать запрос в редакторе

Рисунок 22 — Окно конструктора запросов

Page 30: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

30

Рисунок 22 — Автоматическая генерация скриптов

1. Создаем пустой скрипт — нажимаем кнопка Новый запрос на панели

инструментов Стандартная

2. Из контекстного меню окна запроса выбрать пункт Создать запрос в

редакторе (рисунок 21).

3. В окне конструктора запросов выбираем нужные объекты и работаем с

ними (рисунок 22).

Следует отметить совершенно очевидный для опытных пользователей

момент, который может вызывать недоумение у неопытных пользователей.

В обозревателе объектов можно выбрать или выделить, например, базу

данных (БД) test и таблицу в этой базе данных Table (так как показано на

рисунке 21), однако, выделение не означает, что работаем с БД test. Если

запустили SQL Server Management Studio и подключились к SQL серверу, то

по умолчанию была выполнена команда Use Master; т.е. работа идет с

Page 31: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

31

системной БД Master. Для выбора БД test следует выполнить команду Use

test;. Если этого не сделать, то окно конструктора запросов (рисунок 22) не

будет содержать таблиц для выбора.

Вариант 3. Создание скриптов для административных операций.

Для создания административного скрипта (например, резервное

копирование базы данных, создание учетной записи и т.д.) можно

воспользоваться кнопкой Скрипт, позволяющей автоматически создать

скрипт, в который будут подставлены введенные в полях формы на экране

значения (рисунок 23).

2.3 Диспетчер конфигурации SQL Server

Для запуска Диспетчера конфигурации SQL Server следует нажать

кнопку ПУСК перейти к пункту SQL Server 2012 Средства Настройки

Диспетчер конфигурации SQL Server. Database Engine и агент SQL

Server работают в операционной системе Microsoft Windows как службы.

Можно запускать, останавливать, приостанавливать, перезапускать и

настраивать конфигурацию служб с помощью диспетчера конфигурации SQL

Server, среды SQL Server Management Studio или из командной строки.

Диспетчер конфигурации SQL Server заменяет диспетчер служб SQL Server.

Используют диспетчер конфигурации SQL Server, чтобы настроить службы

SQL Server и сетевые соединения. Для создания и управления объектами

базы данных, настройки безопасности и создания запросов Transact-SQL

используют среду SQL Server Management Studio. С помощью диспетчера

конфигурации SQL Server нельзя настроить SQL Server, имеющий версию,

предшествующую Microsoft SQL Server 2005. Диспетчер конфигурации SQL

Server управляет службами, относящимися к SQL Server. Большинство этих

задач могут быть выполнены при помощи диалогового окна «Службы

Microsoft Windows», но следует отметить, что диспетчер конфигурации SQL

Server выполняет дополнительные операции с управляемыми им службами.

Например, такие как применение правильных разрешений при изменении

учетной записи службы. Использование обычного диалогового окна служб

Windows для настройки любых служб SQL Server может привести к

неправильной работе службы.

Используют диспетчер конфигурации SQL Server для выполнения

следующих задач со службами:

запуск, прекращение и временная остановка служб;

настройка служб на автоматический или ручной запуск, отключение

служб или изменение других настроек служб;

Page 32: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

32

изменение паролей для учетных записей, используемых службами SQL

Server;

запуск SQL Server при помощи флагов трассировки (параметры

командной строки);

просмотр свойств служб.

Используют диспетчер конфигурации SQL Server для выполнения

следующих задач, относящихся к службам SQL Server на этом компьютере:

включение или отключение сетевого протокола SQL Server;

настройка сетевого протокола SQL Server.

На рисунке 23 показан фрагмент интерфейса графической панели Sql

Server Configuration Manager.

Рисунок 23 — Sql Server Configuration Manager

Первый контейнер ответственен за службы SQL Server 2012, второй —

за серверные сетевые библиотеки SQL Server, третий — за параметры работы

SQL Native Client.

2.4 Технологии SQL Server 2012

SQL Server включает несколько технологий управления данными и

анализа данных. В таблице 4 приведены ссылки на компоненты, задачи и

справочную документацию по каждой технологии.

Таблица 4. Основные технологии управления данными и анализа

данных SQL Server 2012

Изобра-

жение

Характеристика технологии

Компонент Database Engine представляет собой основную службу

для хранения, обработки и обеспечения безопасности данных;

обеспечивает управляемый доступ к ресурсам и быструю

Page 33: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

33

обработку транзакций, что позволяет использовать его даже в

самых требовательных корпоративных приложениях обработки

данных. Кроме того, компонент Database Engine предоставляет

разносторонние средства поддержания высокого уровня

доступности.

Службы Data Quality Services (DQS) являются решением для

очистки данных на основе знаний. Службы DQS позволяют

создать базу знаний, а затем выполнить в ней исправление данных

и удаление дубликатов с помощью как автоматизированных, так и

интерактивных средств. Можно использовать службы справочных

данных на основе облачных вычислений, а также создавать

решения по управлению данными, где службы DQS будут

интегрированы со службами SQL Server Integration Services и

Master Data Services.

Службы Analysis Services — это платформа аналитических данных

и набор средств для бизнес-аналитики на личном уровне, уровне

рабочей группы и организации. Серверный и клиентский

конструкторы поддерживают стандартные решения OLAP, новые

решения для создания табличных моделей, а также

самостоятельную аналитику и совместную работу с помощью

PowerPivot, Excel и среды SharePoint Server. Службы Analysis

Services также включают интеллектуальный анализ данных,

который позволяет выявлять закономерности и связи на основе

больших объемов данных.

Службы Integration Services представляют собой платформу для

создания высокопроизводительных решений по интеграции

данных, в том числе пакетов для хранения данных,

обеспечивающих извлечение, преобразование и загрузку данных.

Master Data Services — это решение SQL Server для управления

основными данными. Решение, построенное на основе Master Data

Services, позволяет обеспечить правильность информации,

используемой для построения отчетов и выполнения анализа. С

помощью Master Data Services можно создать центральный

репозиторий основных данных и поддерживать запись этих

данных по мере их изменения, защищенную и доступную для

аудита.

Репликация представляет собой набор технологий копирования и

распространения данных и объектов баз данных между базами

данных, а также синхронизации баз данных для поддержания

согласованности. Благодаря репликации данные можно размещать

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

удаленных и мобильных пользователей по локальным или

глобальным сетям, посредством коммутируемых и беспроводных

Page 34: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

34

соединений, а также через Интернет.

Службы Reporting Services предлагают средства создания

корпоративных отчетов с поддержкой веб-интерфейса, которые

позволяют включать в отчеты данные из различных источников,

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

централизованно управлять безопасностью и подписками.

3. Утилиты и средства обслуживания SQL Server 2012

3.1 Специальный режим подключения Dedicated Administrator

Connection (DAC)

При запуске SQL Server 2012 резервирует ресурсы на одно подключение

пользователя. Если некорректно составленный запрос забрал все ресурсы,

администратор сможет подключиться к серверу, используя данный резерв

для выполнения необходимых административных операций, т.е. SQL Server

предоставляет специальное диагностическое соединение для

администраторов, когда стандартное соединение с сервером невозможно.

Данная возможность подключения к SQL Server 2012 называется DAC

(Dedicated Administrator Connection). Это диагностическое соединение

позволяет администратору получить доступ к SQL Server для выполнения

диагностических запросов и устранения проблем, даже когда SQL Server не

отвечает на стандартные запросы на соединение. Выделенное

административное соединение (DAC) поддерживает шифрование и другие

средства безопасности SQL Server. Выделенное административное

соединение позволяет только изменять контекст пользователя на другого

пользователя с правами администратора. SQL Server поддерживает

эффективную работу для соединения выделенного административного

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

соединения может оказаться невозможной и не принести желаемого

результата.

По умолчанию, соединение разрешено только из клиента, запущенного на

сервере. Сетевые подключения не разрешаются, пока они не настроены с

помощью хранимой процедуры sp_configure с параметром remote admin

connections.

Только члены роли SQL Server sysadmin могут подключаться с

использованием выделенного административного соединения. Выделенное

административное подключение доступно и поддерживается через

программу командной строки sqlcmd со специальным административным

ключом (-A).

Можно также подключиться, подставив префикс admin: к имени

экземпляра в формате sqlcmd -Sadmin: имя_экземпляра. Выделенное

административное соединение можно также запустить через редактор

Page 35: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

35

запросов среды Среда SQL Server Management Studio, подключившись к

admin: имя_экземпляра.

Выделенное административное соединение, по рекомендуемым правилам

работы, должно использоваться системными администраторами только для

диагностики проблем на SQL сервере. Предполагается, что такое соединение

будет использоваться достаточно редко и только при особых

обстоятельствах, когда обычное подключение установить не удается. С

учетом сказанного на выделенное административное соединение

накладываются некоторые ограничения по сравнению с обычным. Чтобы

гарантировать, что для подключения есть доступные ресурсы, на один

экземпляр SQL Server разрешено только одно выделенное административное

соединение. Если выделенное административное соединение уже активно,

любой новый запрос на соединение через DAC отклоняется с ошибкой 17810.

Для экономии ресурсов SQL Server Express прослушивает порт выделенного

административного соединения только при запуске с флагом трассировки

7806.

Сначала выделенное административное соединение подключается к базе

данных по умолчанию, связанной с именем входа. После успешного

соединения можно подключиться к базе данных master. Если база данных по

умолчанию находится в режиме вне сети или недоступна по другой причине,

соединение вернет ошибку 4060. При этом соединение будет успешным, если

вместо базы данных по умолчанию подключиться к базе данных master с

помощью следующей команды: sqlcmd –A –d master .

Рекомендуется подключаться к базе данных master через выделенное

административное соединение, так как база данных master будет в любом

случае доступна, если запущен экземпляр компонента Компонент Database

Engine.

SQL Server запрещает выполнение параллельных запросов или команд

через выделенное административное соединение. Например, ошибка 3637

возникает при выполнении через выделенное административное соединение

следующих инструкций: RESTORE и BACKUP. Через выделенное

административное соединение гарантированно доступны только

ограниченные ресурсы. Не следует использовать выделенное

административное соединение для запуска ресурсоемких запросов или

запросов, которые могут блокироваться. Это позволяет обезопасить

выделенное административное соединение от осложнения любыми

существующими проблемами на сервере. Чтобы избежать сценариев,

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

запросы, которые могут вызвать блокировку, на уровне изоляции

моментального снимка. В противном случае следует установить уровень

изоляции транзакций READ UNCOMMITTED и малое значение

LOCK_TIMEOUT, например 2000 миллисекунд. Можно использовать оба

способа одновременно для предотвращения блокировки сеанса выделенного

административного соединения. В зависимости от состояния SQL Server

Page 36: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

36

сеанс выделенного административного соединения может быть заблокирован

с помощью кратковременной блокировки.

При необходимости можно попробовать завершить сеанс выделенного

административного соединения с помощью комбинации клавиш CTRL-C, но

успешное завершение не гарантируется. В таком случае единственным

возможным вариантом остается перезапуск SQL Server.

Чтобы гарантировать соединение и устранение неполадок через

выделенное административное соединение, SQL Server резервирует

ограниченные ресурсы для обработки команд, запущенных через него,

которых обычно хватает только для простых диагностических функций и

устранения некоторых неполадок. Теоретически для подключения с

использованием выделенного соединения можно запустить любую

инструкцию Transact-SQL, которая не должна исполняться параллельно через

выделенное административное соединение. Но корпорация Microsoft

рекомендует использовать ограниченный набор команд диагностики и

устранения неполадок: запрос динамических административных

представлений (DMV) для базовой диагностики, sys.dm_tran_locks для

состояния блокировки, sys.dm_os_memory_cache_counters для проверки

исправности кэша, sys.dm_exec_requests и sys.dm_exec_sessions для активных

сеансов и запросов. Рекомендуется не использовать динамические

административные представления DMV, потребляющие много ресурсов

(например, представление sys.dm_tran_version_store полностью

просматривает хранилище версий, что обычно приводит к резкому

увеличению объема ввода-вывода), то же самое относится к использованию

сложных соединений.

Для запроса представлений каталога можно использовать основные

команды DBCC, например DBCC FREEPROCCACHE, DBCC

FREESYSTEMCACHE, DBCC DROPCLEANBUFFERS, а также DBCC

SQLPERF. Не следует выполнять такие ресурсоемкие команды, как DBCC

CHECKDB, DBCC DBREINDEX или DBCC SHRINKDATABASE.

Для снятия процесса можно использовать команду Transact-SQL KILL

номер_процесса. В зависимости от состояния SQL Server команда KILL не

всегда выполняется успешно. В этом случае единственным выходом остается

перезапуск SQL Server.

Рассмотрим несколько общих правил. С помощью запроса SELECT *

FROM sys.dm_exec_sessions WHERE session_id = номер следует убедиться,

что SPID был действительно отключен. Если строки не возвращаются,

значит, сеанс был остановлен. Если сеанс продолжается, проверяем с

помощью запроса SELECT * FROM sys.dm_os_tasks WHERE session_id =

номер наличие задач, назначенных для этого сеанса. Если задача

присутствует, то, скорее всего, сеанс закрывается в настоящий момент.

Закрытие сеанса может занять немало времени и завершиться неудачей. Если

в представлении sys.dm_os_tasks нет задач, связанных с данным сеансом, но

сеанс остается в sys.dm_exec_sessions после выполнения команды KILL, это

Page 37: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

37

означает, что отсутствует доступный рабочий процессор. Чтобы освободить

рабочий поток, выбираем одну из текущих задач (задача в представлении

sys.dm_os_tasks со значением sessions_id <> NULL) и останавливаем

связанный с ней сеанс. Остановки одного сеанса может оказаться

недостаточно: возможно, потребуется остановить несколько сеансов.

Порт выделенного административного соединения. Для выделенных

административных соединений SQL Server прослушивает TCP-порт 1434,

если он доступен, или TCP-порт, динамически назначаемый при запуске

компонента Компонент Database Engine. Журнал ошибок содержит номер

порта, на котором ожидается выделенное административное соединение. По

умолчанию, выделенное административное соединение ожидается только на

местном порте. После настройки административного соединения средство

прослушивания выделенных административных соединений включается без

необходимости перезапуска SQL Server, и клиент может удаленно

подключиться к DAC. Средству прослушивания соединений DAC можно

разрешить прием удаленных соединений, даже если SQL Server не отвечает.

Для этого можно сначала подключиться к SQL Server локально посредством

выделенного административного соединения, а затем выполнить хранимую

процедуру sp_configure для приема удаленных соединений.

В кластерных конфигурациях выделенное административное соединение

по умолчанию выключено. Обеспечить доступ к удаленным соединениям

средству прослушивания DAC пользователи могут с помощью хранимой

процедуры sp_configure с параметром remote admin connection. Если SQL

Server не отвечает, а средство прослушивания выделенных

административных соединений отключено, то для подключения к DAC,

возможно, потребуется перезапустить SQL Server. Поэтому корпорация

Microsoft рекомендует включать параметр конфигурации remote admin

connections в кластеризованных системах.

Порт для выделенных административных соединений присваивается SQL

Server динамически во время запуска. При соединении с экземпляром по

умолчанию DAC стремится не использовать запрос протокола разрешения

SQL Server (SSRP) к службе браузера SQL Server. Сначала выполняется

попытка подключиться через TCP-порт 1434. В случае ошибки следует вызов

SSRP на получение порта. Если браузер SQL Server не ожидает запросов

SSRP, запрос на подключение возвращает ошибку. Обратившись к журналу

ошибок, можно найти номер порта, на котором ожидается выделенное

административное соединение. Если SQL Server настроен для приема

удаленных административных подключений, выделенное административное

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

командой: sqlcmd –S tcp: сервер,порт.

Журнал ошибок SQL Server приводит номер порта (по умолчанию равен

1434) для выделенного административного соединения. Если SQL Server

настроен для приема только локальных выделенных административных

соединений, можно подключаться через адаптер замыкания на себя с

Page 38: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

38

использованием команды: sqlcmd –S 127.0.0.1,1434. Например, системный

администратор видит, что сервер SERVER не отвечает, и пытается

определить причину. Для этого активирует утилиту командной строки sqlcmd

и подключается к серверу SERVER с помощью ключа -A, чтобы обозначить

выделенное административное соединение: sqlcmd -S SERVER -U sa -P

Pa$$w0rd –A, подключившись, администратор может выполнять запросы для

определения проблемы и, возможно, завершения не отвечающих сеансов.

3.2 SQL Server Profiler

Приложение SQL Server Profiler предназначено для создания трассировок

и управления ими, а также для анализа и воспроизведения результатов

трассировок. События сохраняются в файле трассировки, который затем

может быть проанализирован или использован для воспроизведения

определенных последовательностей шагов для выявления возникших

проблем.

SQL Server Profiler — графический пользовательский интерфейс для

трассировки SQL, с помощью которого можно наблюдать за экземпляром

компонента Database Engine или службами Analysis Services. Приложение

позволяет собирать и сохранять данные о каждом событии в файле или в

таблице для последующего анализа. Например, с помощью приложения

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

хранимые процедуры снижают производительность из-за того, что

выполняются слишком медленно. Приложение SQL Server Profiler

используется для следующих действий:

пошаговое выполнение проблемных запросов для поиска источника

проблемы;

выявление и диагностика медленно работающих запросов;

перехват серии инструкций Transact-SQL, ведущих к проблеме

(сохраненную трассировку затем можно использовать для моделирования

и диагностики проблемы на тестовом сервере);

контроль производительности SQL Server для настройки рабочих

нагрузок.

анализ счетчиков производительности для диагностики проблем

(Приложение SQL Server Profiler поддерживает также аудит действий,

выполняемых в экземплярах SQL Server. В ходе аудита ведется запись

действий, связанных с безопасностью, для дальнейшего просмотра

администратором безопасности).

Рассмотрим пример, как создать скрипт Transact-SQL для выполнения

трассировки (приложение SQL Server Profiler). Для создания скрипта

Transact-SQL для запуска трассировки открываем таблицу или файл

трассировки. В меню Файл выбираем команду Экспорт, затем Создать

определение трассировки и щелкаем позицию, соответствующую серверу,

Page 39: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

39

который необходимо трассировать. В диалоговом окне Сохранить как

вводим имя файла скрипта и нажимаем кнопку Сохранить.

Рассмотрим еще один пример — создание трассировки. В меню Файл

выбираем пункт Создать трассировку, затем подключаемся к экземпляру

SQL Server. Появится диалоговое окно Свойства трассировки. Если выбран

параметр Начать трассировку немедленно после установления соединения,

диалоговое окно Свойства трассировки не появляется, сразу начинается

трассировка. Чтобы отключить этот параметр, выбираем в меню Сервис

пункт Параметры и снимаем флажок Начать трассировку немедленно

после установления соединения. В поле Имя трассировки вводим имя

трассировки. В списке Использовать шаблон выбираем шаблон, на котором

должна быть основана трассировка, или выбираем Пустой, если

использование шаблона не требуется. Для сохранения результатов

трассировки выбираем Сохранить в файл для сохранения результатов

трассировки в файл. Указываем значение для Установить максимальный

размер файла. Значение по умолчанию — 5 мегабайт. При необходимости

выбираем Включить операцию переключения на файл продолжения для

автоматического создания новых файлов при достижении максимального

размера файла. Можно дополнительно выбрать Сервер обрабатывает

данные трассировки, чтобы вместо приложения клиента данные

трассировки обрабатывала служба, выполняющая трассировку. При

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

события даже в тяжелых условиях, но это приводит к снижению

производительности сервера. Выбираем Сохранить в таблицу для

сохранения результатов трассировки в таблицу базы данных. При

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

значение. Если результаты трассировки не сохраняются в файлы или

таблицы, их можно просмотреть, пока открыто приложение Приложение

SQL Server Profiler. Однако результаты трассировки будут потеряны после

того, как будет остановлена трассировка и закрыто приложение Приложение

SQL Server Profiler. Чтобы избежать потерю данных трассировки, выбираем

Сохранить в меню Файл для сохранения результатов перед закрытием SQL

Server Profiler. При необходимости устанавливаем флажок Включить время

остановки трассировки, укажите дату и время остановки трассировки.

Чтобы добавить или удалить события, столбцы данных или фильтры,

переходим на вкладку Выбор событий. Для запуска трассировку нажимаем

кнопку Выполнить.

3.3 Запуск и использование помощника по настройке ядра СУБД

(Database Engine Tuning Advisor)

Помощник по настройке ядра СУБД Microsoft (Database Engine Tuning

Advisor) анализирует базы данных и составляет рекомендации по

Page 40: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

40

оптимизации производительности запросов. Помощник по настройке ядра

СУБД можно использовать для выбора и создания оптимальных наборов

индексов, индексированных представлений и секций таблицы. Позволяет

выполнять следующие задачи:

• устранение неполадок производительности конкретного проблемного

запроса;

• настройка большого набора запросов в одной или нескольких базах данных;

• выполнение исследовательского гипотетического анализа потенциальных

изменений физической структуры;

• управление местом в хранилище;

Для выполнения оптимизации производительности запросов следует

понимать структуру базы данных и запросов. Помощник по настройке ядра

СУБД помогает облегчить эту задачу. Например, с его помощью можно

выполнить анализ текущего кэша планов запросов или анализ рабочей

нагрузки запросов Transact-SQL, создаваемых пользователем. Более

опытным администраторам баз данных помощник предлагает мощный

механизм для анализа различных вариантов физической структуры.

Помощник по настройке ядра СУБД позволяет получать следующие

сведения и рекомендации:

• наилучшее сочетание индексов для баз данных, используя оптимизатор

запросов для анализа очередей рабочей нагрузки;

• выровненные либо не выровненные секции для баз данных, затрагиваемых

рабочей нагрузкой;

• индексированные представления для баз данных, затрагиваемых рабочей

нагрузкой;

• анализировать эффект от предложенных изменений, включая

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

производительность запросов рабочей нагрузки;

• способы настройки базы данных для небольшого набора проблемных

запросов;

• обеспечивает возможность настройки рекомендаций путем указания

дополнительных параметров, например ограничений на место на диске;

• формирует отчеты о результатах применения рекомендаций для заданной

рабочей нагрузки.

Помощник по настройке ядра СУБД позволяет обработать типы

рабочих нагрузок запросов:

• запросы оперативной обработки транзакций (OLTP);

• запросы оперативной аналитической обработки (OLAP);

• смешанные запросы OLTP и OLAP;

• рабочие нагрузки с большим количеством запросов (запросов больше, чем

изменений данных);

• рабочие нагрузки с большим количеством обновлений (изменений данных

больше, чем запросов).

Page 41: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

41

Графический интерфейс пользователя помощника по настройке ядра

СУБД имеет простой в использовании интерфейс, в котором можно указать

рабочую нагрузку и выбрать различные параметры настройки. Программа dta

— версия помощника по настройке ядра СУБД для командной строки. Dta

предназначена для использования функций помощника по настройке ядра

СУБД в приложениях и скриптах. Для работы с рабочей нагрузкой можно

использовать файл скрипта Transact-SQL, файл трассировки или таблицу

трассировки, которая содержит показательную рабочую нагрузку для

настраиваемых баз данных. Начиная с версии SQL Server 2012, можно

указать кэш планов в качестве рабочей нагрузки. Файл в формате XML

помощник по настройке ядра СУБД может использовать для настройки

рабочей нагрузки. Входной XML-файл поддерживает расширенные

параметры настройки, недоступные в графическом интерфейсе пользователя

или в программе dta.

Рисунок 24 — Помощник по настройке ядра СУБД

Помощник по настройке ядра СУБД высокоэффективный инструмент

обеспечения производительности SQL Server, но есть ряд ограничений,

которые следует учитывать при работе с ним:

Page 42: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

42

• не может создавать или удалять уникальные индексы или индексы,

обеспечивающие ограничения PRIMARY KEY или UNIQUE;

• не позволяет проанализировать базу данных, которая работает в

однопользовательском режиме;

• если заданный размер места на диске превышает доступный, при

составлении рекомендаций помощник по настройке ядра СУБД использует

указанное значение. Однако, если попытаться применить рекомендации,

выполнив рекомендованный скрипт, не увеличив предварительно доступное

место на диске, может произойти ошибка. Максимальный объем места на

диске можно задать при помощи параметра -B программы dta или значения в

диалоговом окне Дополнительные параметры настройки;

• по соображениям безопасности помощник по настройке ядра СУБД не

может настраивать рабочую нагрузку в таблице трассировки, находящуюся

на удаленном сервере. Чтобы снять это ограничение, вместо таблицы

трассировки следует использовать файл трассировки или скопировать

таблицу трассировки на удаленный сервер.

• если при составлении рекомендаций указать ограничения, например на

максимальный размер места на диске (при помощи параметра -B или

диалогового окна Расширенные параметры настройки), помощнику по

настройке ядра СУБД, возможно, придется удалить некоторые

существующие индексы. В этом случае полученные рекомендации могут

привести к нежелательным последствиям, так как не будет корректными;

• Если задать ограничение на максимальное время настройки (при помощи

параметра -A программы dta или поля Предел времени настройки на

вкладке Параметры настройки), помощник настройки ядра СУБД может не

уложиться в отведенное время, если оно потребуется для предоставления

точных рекомендаций или анализ отчетов для какой-либо части рабочей

нагрузки займет дольше времени;

• помощник по настройке ядра СУБД может не предоставить рекомендации в

следующих ситуациях:

1) Таблица, которую необходимо настроить, содержит меньше 10 страниц

данных.

2) Рекомендованные индексы не обеспечивают достаточный прирост

производительности по сравнению с текущей физической структурой базы

данных.

3) Пользователь, который запускает помощника по настройке ядра СУБД, не

входит в состав роли базы данных db_owner или предопределенной роли

сервера sysadmin. Запросы в рабочей нагрузке анализируются в контексте

безопасности пользователя, который запустил помощника по настройке ядра

СУБД. Пользователь должен быть членом роли базы данных db_owner.

Помощник по настройке ядра СУБД сохраняет данные о сеансе

настройки и другие сведения в базе данных msdb. При изменении базы

данных msdb существует вероятность потерять данные сеанса настройки.

Page 43: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

43

Чтобы этого избежать следует разработать и выполнять стратегию

резервного копирования для базы данных msdb.

Помощник по настройке ядра СУБД потребляет значительное

количество ресурсов процессора и памяти во время анализа. Рекомендуется

придерживаться следующих рекомендаций для предотвращения снижения

производительности сервера:

• заниматься настройкой баз данных, когда сервер не занят, так как

помощник по настройке ядра СУБД может повлиять на производительность

задач обслуживания;

• следует использовать функцию тестовый сервер или сервер приложений;

• указывать только те физические структуры базы данных, которые

необходимо проанализировать. Помощник по настройке ядра СУБД

предоставляет большое количество параметров, но используем только те из

них, которые необходимы.

Помощник по настройке ядра СУБД зависит от расширенной хранимой

процедуры xp_msver в части предоставления функциональных

возможностей. Расширенная хранимая процедура xp_msver включается по

умолчанию. Помощник по настройке ядра СУБД использует эту хранимую

процедуру, для определения количества процессоров и объема доступной

памяти на компьютере, на котором находится настраиваемая база данных.

Если процедура xp_msver недоступна, помощник по настройке ядра СУБД

предполагает использование характеристик оборудования того компьютера,

на котором он выполняется. Если характеристики оборудования

компьютера, на котором выполняется помощник по настройке ядра СУБД,

тоже недоступны, то предполагается, что на компьютере один процессор и

1024 МБ оперативной памяти. Эта зависимость влияет на рекомендации

секционирования, поскольку количество секций зависит от этих двух

значений (числа процессоров и объема доступной памяти). Зависимость

влияет на результаты, если для настройки производственного сервера

используется тестовый сервер. В этом случае помощник по настройке ядра

СУБД использует xp_msver для выборки свойств оборудования с

производственного сервера. После настройки рабочей нагрузки на тестовом

сервере помощник по настройке ядра СУБД использует свойства

оборудования для формирования рекомендации.

Основные задачи, за которые отвечает помощник по настройке ядра

СУБД, следующие:

• создание рабочей нагрузки путем задания кэша плана, путем создания

скрипта или путем формирования файла или таблицы трассировки;

• настройка базы данных с помощью графического пользовательского

интерфейса по настройке ядра СУБД;

• создание входных файлов XML-данных для настройки рабочих нагрузок;

• просмотр описания параметров пользовательского интерфейса помощника

по настройке ядра СУБД;

Page 44: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

44

• просмотр результатов операции по настройке базы данных;

• выбор и применение рекомендаций по настройке;

• выполнение исследовательского анализа гипотез относительно рабочей

нагрузки;

• просмотр существующих сеансов настройки, клонирование сеансов на

основе уже существующих или изменение существующих рекомендаций по

настройке для дальнейшей оценки или применения;

• просмотр описания параметров пользовательского интерфейса помощника

по настройке ядра СУБД.

3.4 Программа (утилита) sqlcmd

sqlcmd — предназначена для выполнения скриптов Transact-SQL из

командной строки, может использоваться для выполнения команд TSQL,

скриптов или наборов скриптов из командной строки. sqlcmd может

выполняться в двух режимах: интерактивном или пакетном. При работе в

интерактивном режиме запускается sqlcmd, после чего в ответ на

приглашения sqlcmd вводятся команды. В пакетном режиме sqlcmd сразу

выполняет переданный ей запрос или файл скрипта. Программа sqlcmd

позволяет вводить инструкции Transact-SQL, системные процедуры и файлы

скриптов из командной строки в редактор запросов в режиме SQLCMD, в

файл скрипта Windows или шаг задания операционной системы (Cmd.exe)

задания агента SQL Server. Эта программа использует технологию ODBC для

выполнения пакетов Transact-SQL. Среда Среда SQL Server Management

Studio использует компонент Microsoft .NET Framework SqlClient для

выполнения в обычном режиме и в Редакторе запросов в режиме SQLCMD.

При вызове программы sqlcmd из командной строки sqlcmd использует

драйвер ODBC. Так как могут применяться различные параметры по

умолчанию, выполнение одного и того же запроса в среде Среда SQL Server

Management Studio в режиме SQLCMD и в программе sqlcmd может

проходить по-разному. В настоящее время в программе sqlcmd не требуется

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

будущих выпусках пробел между параметром командной строки и значением

может потребоваться.

Синтаксис используемый sqlcmd:

-a packet_size

-A (dedicated administrator connection)

-b (terminate batch job if there is an error)

-c batch_terminator

-C (trust the server certificate)

-d db_name

-e (echo input)

Page 45: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

45

-E (use trusted connection)

-f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage]

-h rows_per_header

-H workstation_name

-i input_file

-I (enable quoted identifiers)

-k[1 | 2] (remove or replace control characters)

-K application_intent

-l login_timeout

-L[c] (list servers, optional clean output)

-m error_level

-M multisubnet_failover

-N (encrypt connection)

-o output_file

-p[1] (print statistics, optional colon format)

-P password

-q "cmdline query"

-Q "cmdline query" (and exit)

-r[0 | 1] (msgs to stderr)

-R (use client regional settings)

-s col_separator

-S [protocol:]server[\instance_name][,port]

-t query_timeout

-u (unicode output file)

-U login_id

-v var = "value"

-V error_severity_level

-w column_width

-W (remove trailing spaces)

-x (disable variable substitution)

-X[1] (disable commands, startup script, environment variables and optional exit)

-y variable_length_type_display_width

-Y fixed_length_type_display_width

-z new_password

-Z new_password (and exit)

Page 46: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

46

-? (usage)

Более подробная информация о некоторых параметрах командной

строки:

-A — вход на SQL Server посредством выделенного административного

соединения, соединение предназначено для устранения неполадок на

сервере. Параметр работает только с теми серверами, которые поддерживают

выделенные административные соединения. Если соединение DAC

недоступно, программа sqlcmd выдает сообщение об ошибке и завершает

свою работу.

-C — с помощью этого переключателя клиент настраивает неявное доверие к

сертификату сервера без проверки. Этот параметр аналогичен параметру

ADO.NET TRUSTSERVERCERTIFICATE = true.

-d db_name — выдает инструкцию USE db_name при запуске программы

sqlcmd. Параметр устанавливает значение переменной скрипта

SQLCMDDBNAME программы sqlcmd, которая задает начальную базу

данных. По умолчанию свойство default-database соответствует имени входа.

Если база данных не существует, выдается сообщение об ошибке и

программа sqlcmd завершает свою работу.

-l login_timeout — задает время ожидания (в секундах) при подключении

программы sqlcmd через драйвер ODBC при попытке соединения с сервером.

Параметр устанавливает переменную скрипта SQLCMDLOGINTIMEOUT

программы sqlcmd. По умолчанию время ожидания входа для программы

sqlcmd составляет 8 секунд. Время ожидания входа должно быть числом в

диапазоне от 0 до 65 534. Если указанное значение не является числом или

выходит за пределы указанного диапазона, программа sqlcmd выдает

сообщение об ошибке. Значение 0 задает неограниченное время ожидания.

-E — использует для соединения с SQL Server вместо имени пользователя и

пароля доверительное соединение. По умолчанию, если параметр -E не

указан, программа sqlcmd использует доверительное соединение. Параметр -

E не использует имя пользователя и пароль, указанные в переменных среды

SQLCMDPASSWORD и др. Если параметр -E используется в сочетании с

параметром -U или -P, то выдается сообщение об ошибке.

-H workstation_name — определяет имя рабочей станции. Параметр

устанавливает переменную скрипта SQLCMDWORKSTATION программы

sqlcmd. Имя рабочей станции заносится в столбец hostname представления

каталога sys.processes, и может быть возвращено с помощью хранимой

процедуры sp_who. Если этот параметр не указан, используется текущее имя

компьютера. Имя может использоваться для идентификации сеансов работы

программы sqlcmd.

-K application_intent — объявляет тип рабочей нагрузки приложения при

соединении с сервером. Единственным поддерживаемым в данное время

Page 47: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

47

значением является ReadOnly. Если параметр -K не указан, то программа

sqlcmd не будет поддерживать возможность подключения к вторичной

реплике в группе доступности AlwaysOn.

-M multisubnet_failover — следует всегда указывать параметр -M при

соединении с прослушивателем группы доступности SQL Server 2012 или

экземпляром отказоустойчивого кластера SQL Server 2012. -M обеспечивает

более быстрое обнаружение активного (в данный момент) сервера и

соединение с ним. Если параметр –M не указан, то режим -M отключен.

-N — с помощью этого переключателя клиент запрашивает шифрованное

соединение.

-P password — пароль, задаваемый пользователем. Пароли учитывают

регистр. Если указан параметр -U, а параметр -P отсутствует, и не задана

переменная среды SQLCMDPASSWORD, программа sqlcmd запрашивает

пароль у пользователя. Если параметр -P указывается в конце командной

строки без указания пароля, программа sqlcmd использует пароль по

умолчанию (NULL). Запрос на ввод пароля выводится на консоль

следующим образом: Password: . Вводимые пользователем данные на экране

не отображаются, то есть символы не выводятся и курсор остается на месте.

Переменная среды SQLCMDPASSWORD позволяет задать значение пароля

по умолчанию для текущего сеанса. Таким образом, нет необходимости

указывать пароль в пакетных файлах. В примере сначала из командной

строки устанавливается переменная SQLCMDPASSWORD, а затем

производится вызов программы sqlcmd. В командной строке вводим: SET

SQLCMDPASSWORD= Pa$$w0rd. Пароль будет отображаться на мониторе

компьютера. В командной строке введим: sqlcmd. Если обнаружено неверное

сочетание имени пользователя и пароля, выдается сообщение об ошибке.

Переменная среды OSQLPASSWORD для версии SQL Server 2012 была

сохранена в целях обратной совместимости. Переменная среды

SQLCMDPASSWORD имеет больший приоритет, чем переменная среды

OSQLPASSWORD. Это означает, что программы sqlcmd и osql могут

использоваться одновременно, не мешая друг другу, f скрипты прежних

версий не перестанут работать. Если параметр -P указан одновременно с

параметром -E, то выдается сообщение об ошибке. Если после параметра -P

указано более одного аргумента, то выдается сообщение об ошибке и

программа завершает свою работу.

-S [protocol:]server[\instance_name][,port] — указывает экземпляр SQL Server,

к которому выполняется подключение. Устанавливает переменную скрипта

SQLCMDSERVER программы sqlcmd. Указываем server_name для

подключения к экземпляру SQL Server по умолчанию на этом сервере.

Указываем server_name [ \instance_name ], чтобы соединиться с именованным

экземпляром SQL Server на этом сервере. Если сервер не указан, программа

sqlcmd выполняет подключение к экземпляру SQL Server по умолчанию на

локальном компьютере. Параметр обязателен при запуске программы sqlcmd

Page 48: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

48

с удаленного компьютера в сети. Параметр protocol может иметь значение

tcp (TCP/IP), lpc (общая память) или np (именованные каналы). Если

значение server_name [ \instance_name ] при запуске программы sqlcmd не

указано, SQL Server проверяет наличие переменной среды SQLCMDSERVER

и, если она задана, использует ее значение. Переменная среды OSQLSERVER

была сохранена в целях обратной совместимости. Переменная среды

SQLCMDSERVER имеет больший приоритет, чем переменная среды

OSQLSERVER: программы sqlcmd и osql могут применяться одновременно,

не мешая друг другу, и скрипты прежних версий не перестанут работать.

-U login_id — идентификатор входа пользователя. В целях обратной

совместимости доступна переменная среды OSQLUSER. Переменная среды

SQLCMDUSER имеет больший приоритет, чем OSQLUSER Если не указаны

ни параметр -U, ни параметр -P, программа sqlcmd пытается подключиться с

помощью режима проверки подлинности Microsoft Windows. При этом

используется учетная запись пользователя Windows, который запустил

программу sqlcmd. Если параметры -U и -E указаны одновременно, выдается

сообщение об ошибке. Если после параметра –U указано более одного

аргумента, то выдается сообщение об ошибке и программа завершает свою

работу.

4. Базы данных — системные и прикладных пользователей

4.1 Служебные базы данных, базы данных пользователей и учебные

базы данных SQL Server 2012

Базы данных, с которыми работает SQL Server 2012, точно так же, как и

в предыдущих версиях SQL Server, можно разделить на две группы. В

первую группу входят служебные базы данных необходимые для

обеспечения функционирования самого SQL Server, вторая группа – базы

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

подготовленные фирмой Microsoft для того, чтобы люди могли быстрее

освоить SQL Server 2012, получить практические навыки работы с ним.

Создать небольшую базу данных из нескольких таблиц и заполнить их

можно за относительно небольшое время. Однако некоторые возможности по

выбору информации из базы данных, возможности связанные с

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

работая с базой данных сложной структуры, состоящей из десятков таблиц,

относящихся к разным схемам и физически реализованной группой из

нескольких файлов. С сайта CodePlex (http://www.codeplex.com) можно

бесплатно загрузить различные примеры для обучения работе с разными

программными средствами, в том числе базы данных AdventureWorks,

Page 49: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

49

предлагаемые для разных версий SQL Server. Например, по ссылке

http://advworks2012sssrs.codeplex.com/ можно загрузить AdventureWorks 2012

SSRS Samples.

Рассмотрим основные служебные базы данных (таблица __).

Таблица __ Служебные БД SQL Server 2012

Системная база

данных

Назначение БД

master

база данных отвечает за хранение всех данных системного

уровня для экземпляра SQL Server

msdb

используется агентом SQL Server для планирования

предупреждений и задач

model используется в качестве шаблона для всех баз данных,

создаваемых в экземпляре SQL Server. Изменение размера,

параметров сортировки, модели восстановления и других

параметров базы данных model приводит к изменению

соответствующих параметров всех баз данных, создаваемых

после изменения

resource содержит системные объекты, которые входят в состав SQL

Server; системные объекты физически хранятся в базе

данных resource, но логически отображаются в схеме sys

любой базы данных

tempdb рабочее пространство для временных объектов или

взаимодействия результирующих наборов

Следует обратить внимание на то, как осуществляются изменения

данных в системных базах данных, в отличие от баз данных пользователей.

SQL Server не поддерживает прямое обновление пользователями данных в

таких системных объектах, как таблицы, системные хранимые процедуры,

представления каталогов. Вместо этого SQL Server предоставляет

административные средства, позволяющие пользователям управлять всей

системой, пользователями и объектами базы данных. Отметим некоторые из

них:

• Административные программы, например SQL Server Management Studio;

• SQL-SMO API — программный интерфейс позволяет программистам

включать любые административные возможности SQL Server в

разрабатываемые приложения;

• Хранимые процедуры и скрипты Transact-SQL — можно использовать

системные хранимые процедуры и DDL-инструкции Transact-SQL.

Названные средства защищают приложения от изменений системных

объектов. Например, для поддержки новых возможностей, добавленных в

новые версии SQL Server, следует изменить системные таблицы этих версий

SQL Server. Приложения, выполняющие инструкции SELECT, которые

Page 50: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

50

ссылаются непосредственно на системные таблицы, часто зависят от старого

формата таблиц, поэтому обновление сайтов до новой версии SQL Server

невозможно, пока для них не будут переписаны приложения, выполняющие

выборку из системных таблиц. SQL Server учитывает существующие

системные хранимые процедуры, DDL и опубликованные интерфейсы SQL

— SMO и работает, поддерживая обратную совместимость интерфейсов. В

SQL Server не поддерживаются триггеры, заданные для системных таблиц,

поскольку они могут влиять на работу системы.

База данных master — основная системная база данных, следует

помнить, что при работе с ней не поддерживаются операции:

• добавление файлов или файловых групп;

• изменение параметров сортировки; параметрами сортировки по умолчанию

являются параметры сортировки сервера;

• изменение владельца базы данных — владельцем master является dbo.

• создание полнотекстового каталога или полнотекстового индекса;

• создание триггеров для системных таблиц базы данных;

• удаление базы данных;

• удаление пользователя guest из базы данных;

• включение системы отслеживания измененных данных;

• участие в зеркальном отображении базы данных;

•удаление первичной файловой группы, первичного файла данных или файла

журнала;

• переименование базы данных или первичной файловой группы;

• перевод базы данных в режим OFFLINE;

•перевод базы данных или первичной файловой группы в режим

READ_ONLY.

В документации, опубликованной Microsoft по работе с SQL Server

2012, для работы с базой данных master приведены следующие

рекомендации:

• всегда иметь в наличии актуальную резервную копию базы данных master;

• после выполнения следующих операций, следует по возможности

максимально быстро создать резервную копию базы данных master:

◦ создание, изменение или удаление базы данных;

◦ изменение значений параметров конфигурации сервера или базы

данных;

◦ изменение или удаление учетных записей входа;

• не следует создавать в базе данных master пользовательские объекты, так

как это приводит к тому, что придется чаще создавать резервные копии базы

данных master.

• не следует устанавливать в базе данных master параметр TRUSTWORTHY в

значение ON.

Page 51: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

51

Если структура база данных master и/или хранящиеся в ней данные

были повреждены и непригодны к использованию, то восстановить

работоспособность базы данных master можно следующими способами:

• Восстановить базу данных master на основе актуальной резервной копии —

если экземпляр сервера удалось запустить, базу данных master можно

восстановить из полной резервной копии;

• Создать базу данных master с нуля — если серьезное повреждение базы

данных master не позволяет запустить экземпляр SQL Server, базу данных

master нужно перестроить.

Следует помнить, что при создании базы данных master заново все

системные базы данных также создаются заново. База данных master

содержит всю системную информацию СУБД SQL Server, в том числе общие

для всего экземпляра метаданные, такие как сведения об учетных записях

входа, конечных точках и связанных серверах, а также параметры

конфигурации системы. В SQL Server 2012 системные объекты не хранятся в

базе данных master; они хранятся в базе данных ресурсов. В базе данных

master регистрируются все остальные базы данных и хранится информация о

расположении их файлов. В базе данных master SQL Server хранит сведения

об инициализации, поэтому если база данных master недоступна, запустить

SQL Server невозможно.

Физические свойства базы данных master — исходные

конфигурационные значения файлов данных и журнала базы данных master

приведены в таблице ____. Размеры файлов могут изменяться в зависимости

от выпуска SQL Server, расположение базы данных Resource зависит от

расположения базы данных master. При перемещении базы данных master

базу данных Resource необходимо переместить в то же место. Чтобы

просмотреть текущие настройки параметров базы данных master, можно

использовать представление каталога sys.databases.

Таблица __. Характеристики базы данных master

Файл Логическое имя Физическое имя Увеличение размера

файлов

Первичные

данные

master master.mdf

Автоувеличение на 10 %

до заполнения диска.

Журнал mastlog mastlog.ldf

Автоувеличение на 10 %

до максимального

размера в 2 ТБ.

Page 52: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

52

4.2 Физическая структура базы данных

Каждая БД SQL Server 2312, позволяющая проводить операции чтения

и записи, содержит минимум два файла – это файл данных и файл журнала

транзакций. Файлы данных отвечают за хранение данных пользователей базы

данных. В файлы журналов транзакций (в частном случае используется один

файл) выполняется последовательная запись изменений, которые вносятся в

базу данных. Следует заметить, что если БД используется только для чтения,

то файл журнала транзакций не требуется. Если известно, что база данных,

которая ранее использовалась для чтения и записи будет в будущем

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

только для чтения. Это повысит быстродействие при выполнении операций с

этой БД, т.к. если база данных находится в режиме доступном для чтения и

записи, то выполняются при обращении к БД дополнительные проверки для

обеспечения корректной записи информации в БД, даже если запись

непосредственно в БД не производится. Главный (основной, первый) файл

базы данных имеет расширение mdf, дополнительные (второй и далее) файлы

данных имеют расширение ndf. БД может работать с одним или более

файлом журнала транзакций, все эти файлы имеют расширение .ldf. С целью

повышения производительности и реализации отказоустойчивости

рекомендуется размещать файлы журналов транзакций и файлы данных на

разных физических дисках.

Для файлов БД, в которые выполняется запись, можно настроить

режим авторасширения (рисунок __).

Рисунок 25 — Задание свойств авторасширения для файлов БД

Page 53: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

53

При определении размеров файлов для журналов транзакций следует

учитывать следующие режим работы БД и то, насколько часто выполняется

резервное копирование, какой режим восстановления настроен для БД –

модель восстановления: Полная, С неполным восстановлением, Простая.

Для баз данных работающих в режиме OLTP для журналов транзакций

рекомендуется выделять размер от 10% до 25% от общего размера файлов

БД, для БД работающих в режиме OLAP можно использовать журнал

транзакций минимального размера.

SQL Server 2012 резервирует для использования дисковое пространство

в экстентах. Экстент – блок, размером 64 КБ, для физического размещения

данных и индексов, состоящий из 8 последовательно расположенных

страниц, размер каждой страницы 8 КБ. Экстенты классифицируется по двум

типам: однородные, которые принадлежат одному объекту и смешанные,

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

как экстент состоит из 8 страниц — объекту можно выделить не менее одной

страницы. Страница — минимальный объем дискового пространства,

выделяемого SQL Server 2012 для хранения данных. Страница занимает 8 КБ,

каждая строка может содержать данные объемом не более 8060 байт.

Порядок размещения данных зависит от того, определен ли для таблицы

кластерный индекс. В начале каждой страницы размешается заголовок,

занимающий 96 байт, для хранения системной информация.

Файловая группа — применяется для организации файлов данных в

SQL Server 2012. По умолчанию для любой базы данных, используемой SQL

Server 2012, создается файловая группа PRIMARY, и все создаваемые

файлы данных относятся к ней. В случае необходимости можно создать

дополнительные файловые группы, которые могут создаваться по

следующим причинам:

• для реализации отдельного хранения системных и пользовательских

данных, оперативных и архивных данных;

• для обеспечения ручного распределения нагрузки в дисковой подсистеме;

• для выполнения ручного распараллеливания запросов в дисковой

подсистеме;

• для оптимизации работы в многопроцессорных системах, так как при

обращении к каждой файловой группе открывается новый поток

операционной системы.

Создать новые файловые группы можно:

• при помощи графического интерфейса SQL Server Management Studio;

• используя команды CREATE DATABASE или ALTER DATABASE.

Файловую группу можно сделать файловой группой по умолчанию,

тогда все новые таблицы и индексы в базе данных будут при создании по

умолчанию помещаться в эту файловую группу.

В документации к SQL Server 2012 приведены подробные примеры

создания файлов БД и файловых групп. Например, к базе данных

Page 54: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

54

AdventureWorks2012 можно добавить файл данных размером 5 МБ выполнив

следующие команды Transact-SQL.

USE master;

GO

ALTER DATABASE AdventureWorks2012

ADD FILE

(

NAME = Test1dat2,

FILENAME = 'C:\Program Files\Microsoft SQL

Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\t1dat2.ndf',

SIZE = 5MB,

MAXSIZE = 100MB,

FILEGROWTH = 5MB

);

GO

Пример добавления файловой группы с двумя файлами к базе данных

AdventureWorks2012: создается файловая группа Test1FG1, добавляется два

файла по 5 МБ в эту файловую группу:

USE master;

GO

ALTER DATABASE AdventureWorks2012

ADD FILEGROUP Test1FG1;

GO

ALTER DATABASE AdventureWorks2012

ADD FILE

( NAME = test1dat3,

FILENAME = 'C:\Program Files\Microsoft SQL

Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\t1dat3.ndf',

SIZE = 5MB,

MAXSIZE = 100MB,

FILEGROWTH = 5MB

), (

NAME = test1dat4,

FILENAME = 'C:\Program Files\Microsoft SQL

Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\t1dat4.ndf',

SIZE = 5MB,

MAXSIZE = 100MB,

FILEGROWTH = 5MB)

TO FILEGROUP Test1FG1;

GO

4.3 Создание пользовательских баз данных

Page 55: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

55

Базы данных, используемые для хранения и обработки информации

пользователей, можно создать несколькими способами. Для создания базы

данных можно использовать SQL Server Management Studio или написать

скрипт, который создаст базу данных.

Наиболее простой способ создания БД следующий. В SQL Server

Management выбираем пункт меню Создать запрос (или используем

комбинацию горячих клавиш Ctrl + N). Для создания БД test1 набираем

следующий текст запроса T-SQL:

use Master;

create database test1;

GO

После выполнения запроса (нажимаем Выполнить или клавишу F5)

будет создана БД test1.

Рисунок 26 — Создана БД test1

БД test1 будет успешно создана в результате выполнения команды

create database test1; , если у пользователя есть необходимый уровень

полномочий для создания БД (возможны и некоторые другие не часто

встречающиеся причины, по которым создание базы данных может

завершиться неудачей). Если посмотреть структуру вновь созданной БД test1,

то можно увидеть, что в БД находится достаточно большое число объектов,

например, были созданы пользователи БД, роли БД, схемы, системные

представления и т.д. База данных создается на основе БД model, которая

используется в качестве шаблона создаваемой БД. Если часто создаются базы

данных, в которых используются одни и те же объекты пользователей, то

можно внести их в БД model и будут присутствовать во всех вновь

создаваемых базах данных.

База данных model используется в качестве шаблона для всех баз

данных, созданных для экземпляра SQL Server, в том числе и для служебной

БД tempdb. Поскольку база данных tempdb создается каждый раз при запуске

SQL Server, то БД model должна всегда существовать в системе SQL Server.

Page 56: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

56

Все содержимое базы данных model, включая параметры базы данных,

копируется в новую базу данных. Некоторые параметры базы данных model

используются также при создании новой базы данных tempdb во время

загрузки, поэтому наличие базы данных model в системе SQL Server

обязательно. Вновь созданные пользовательские базы данных используют ту

же модель восстановления, что и база данных model.

При выполнении инструкции CREATE DATABASE первая часть базы

данных создается путем копирования в нее содержимого базы данных model.

Оставшаяся часть новой базы данных заполняется пустыми страницами. При

изменении базы данных model все созданные после этого базы данных

унаследуют эти изменения. Например, можно установить разрешения или

параметры базы данных или добавить такие объекты, как таблицы, функции

или хранимые процедуры.

Операции, которые не могут быть выполнены для базы данных model:

• Добавление файлов или файловых групп.

• Изменение параметров сортировки. Параметрами сортировки по

умолчанию являются параметры сортировки сервера.

• Изменение владельца базы данных. Владельцем базы данных model

является dbo.

• Удаление базы данных.

• Удаление пользователя guest из базы данных.

• Включение системы отслеживания измененных данных.

• Участие в зеркальном отображении базы данных.

• Удаление первичной файловой группы, первичного файла данных или

файла журнала.

• Переименование базы данных или первичной файловой группы.

• Перевод базы данных в режим OFFLINE.

• Перевод первичной файловой группы в режим READ_ONLY.

• Создание процедур, представлений или триггеров с помощью параметра

WITH ENCRYPTION. Ключ шифрования привязывается к базе данных, в

которой был создан объект. Зашифрованные объекты, созданные в базе

данных model, могут быть использованы только в базе данных model.

Второй способ создания БД – воспользоваться графическим

интерфейсом SQL Server Management Studio (рисунок 27). Выбираем

позицию Создать базу данных, после чего указываем имя базы данных

(рисунок 28, позиция 1) и, при желании, характеристики создаваемой БД,

нажимаем кнопку ОК (рисунок 28, позиция 1). Следует заметить, что

графический интерфейс облегчает операцию создания БД, но использование

запроса T-SQL может быть удобнее, если требуется сразу не только создать

БД, но и выполнить некоторые действия с ней. Последовательность действий

может быть реализована с помощью набора выполняемых инструкций на T-

SQL.

Page 57: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

57

Рисунок 27 — В обозревателе объектов выбрали пункт ―Создать базу

данных…‖

Рисунок 28 — Создание базы данных

Page 58: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

58

Третий широко используемый способ создания БД – с использованием

графического интерфейса (рисунок 28, позиция 3) SQL Server Management

Studio формируется скрипт на T-SQL, который затем редактируется вручную.

Этот более быстрое решение, чем писать инструкции T-SQL вручную.

Пример сформированного скрипта SQL Server Management Studio для

вновь создаваемой БД test123:

CREATE DATABASE [test123]

CONTAINMENT = NONE

ON PRIMARY

( NAME = N'test123', FILENAME = N'C:\Program Files\Microsoft SQL

Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\test123.mdf' , SIZE =

5120KB , FILEGROWTH = 1024KB )

LOG ON

( NAME = N'test123_log', FILENAME = N'C:\Program Files\Microsoft

SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\test123_log.ldf' , SIZE

= 1024KB , FILEGROWTH = 10%)

GO

ALTER DATABASE [test123] SET COMPATIBILITY_LEVEL = 110

GO

ALTER DATABASE [test123] SET ANSI_NULL_DEFAULT OFF

GO

ALTER DATABASE [test123] SET ANSI_NULLS OFF

GO

ALTER DATABASE [test123] SET ANSI_PADDING OFF

GO

ALTER DATABASE [test123] SET ANSI_WARNINGS OFF

GO

ALTER DATABASE [test123] SET ARITHABORT OFF

GO

ALTER DATABASE [test123] SET AUTO_CLOSE OFF

GO

ALTER DATABASE [test123] SET AUTO_CREATE_STATISTICS ON

GO

ALTER DATABASE [test123] SET AUTO_SHRINK OFF

GO

ALTER DATABASE [test123] SET AUTO_UPDATE_STATISTICS ON

GO

ALTER DATABASE [test123] SET CURSOR_CLOSE_ON_COMMIT

OFF

GO

ALTER DATABASE [test123] SET CURSOR_DEFAULT GLOBAL

GO

ALTER DATABASE [test123] SET CONCAT_NULL_YIELDS_NULL

OFF

Page 59: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

59

GO

ALTER DATABASE [test123] SET NUMERIC_ROUNDABORT OFF

GO

ALTER DATABASE [test123] SET QUOTED_IDENTIFIER OFF

GO

ALTER DATABASE [test123] SET RECURSIVE_TRIGGERS OFF

GO

ALTER DATABASE [test123] SET DISABLE_BROKER

GO

ALTER DATABASE [test123] SET

AUTO_UPDATE_STATISTICS_ASYNC OFF

GO

ALTER DATABASE [test123] SET

DATE_CORRELATION_OPTIMIZATION OFF

GO

ALTER DATABASE [test123] SET PARAMETERIZATION SIMPLE

GO

ALTER DATABASE [test123] SET READ_COMMITTED_SNAPSHOT

OFF

GO

ALTER DATABASE [test123] SET READ_WRITE

GO

ALTER DATABASE [test123] SET RECOVERY FULL

GO

ALTER DATABASE [test123] SET MULTI_USER

GO

ALTER DATABASE [test123] SET PAGE_VERIFY CHECKSUM

GO

ALTER DATABASE [test123] SET TARGET_RECOVERY_TIME = 0

SECONDS

GO

USE [test123]

GO

IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE

is_default=1 AND name = N'PRIMARY') ALTER DATABASE [test123]

MODIFY FILEGROUP [PRIMARY] DEFAULT

GO

Следует отметить, что альтернативное решение полностью ручному

набору команд с нуля – воспользоваться шаблоном, используя ―Браузер

шаблонов‖ (шаблон – Create Database):

-- =============================================

-- Create database template

-- =============================================

Page 60: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

60

USE master

GO

-- Drop the database if it already exists

IF EXISTS (

SELECT name

FROM sys.databases

WHERE name = N'<Database_Name, sysname,

Database_Name>'

)

DROP DATABASE <Database_Name, sysname, Database_Name>

GO

CREATE DATABASE <Database_Name, sysname, Database_Name>

GO

Пример заготовки скрипта для создания базы данных, состоящей из

нескольких файлов, с помощью Transact-SQL:

CREATE DATABASE Логическое_имя_БД

( NAME = Логическое_имя_файла_данных ,

FILENAME = физическое_имя_файла_данных ,

SIZE = минимальный_размер ,

MAXSIZE = максимальный_размер ,

FILEGROWTH = величина_прироста ) ,

LOG ON

( NAME = Логическое_имя_файла_журнала ,

FILENAME = физическое_имя_файла_журнала,

SIZE = минимальный_размер ,

MAXSIZE = максимальный_размер ,

FILEGROWTH = величина_прироста );

4.4 Перенос базы данных

Выполнить перенос БД с одного места в другое можно разными

способами, например, выполнив восстановление БД из резервной копии;

осуществив подключение файлов существующей базы данных; используя

мастера копирования баз данных и т.д.

Рассмотрим процесс копирования файлов БД на другой сервер. Следует

заметить, что если SQL Server работает с БД (база данных находится в

оперативном режиме), то скопировать файлы, используя средства

операционной системы Windows невозможно, так как по соображениям

обеспечения целостности БД, SQL Server работает с файлами БД в

монопольном режиме. Для того, чтобы копирование было возможно следует

Page 61: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

61

или выполнить отключение БД или перевести ее в автономный режим

работы. По сути автономный режим работы – это тоже самое отключение БД,

но SQL Server помнит, где расположены файлы БД и отображает БД в списке

БД – такая БД помечена при просмотре в обозревателе объектов кругом с

красной стрелкой. Рядом с именем БД стоит (Вне сети).

Рисунок 29 — БД test1 в автономном режиме работы

Подключение файлов существующей базы данных

1. Отключить БД от сервера можно одним из трех способов:

• в контекстном меню для БД в Обозревателе объектов выбираем пункт

Задачи и в нем команду Отсоединить;

• выполняем команду ALTER DATABASE. Например, ALTER DATABASE

test SET OFFLINE для БД test;

• перевести базу данных в автономный режим, воспользовавшись пунктом

Задачи командой Перевести в автономный режим в Management Studio. БД

будет помечена в окне Обозревателя объектов специальной меткой в виде

красного круга со стрелкой.

2. Копируем файлы БД (файлы данных и журнала транзакций) в нужное

место. Если журнал транзакций был утрачен, то журнал транзакций можно

сгенерировать заново, используя команду CREATE DATABASE ...

FOR_ATTACH_REBUILD_LOG.

3. Возвращаем исходную БД в рабочее состояние:

• если БД была отсоединена — воспользуемся командой

Присоединить из контекстного меню для контейнера Базы данных;

• если БД была переведена в автономный режим — используем

ALTER DATABASE test SET ONLINE — для базы данных test.

4. Выполняем операции присоединения БД к новому серверу:

• В контекстном меню контейнера Базы данных в Обозревателе

объектов выбрать команду Присоединить… . В окне Присоединение баз

данных… при помощи кнопки Добавить… выбрать файл базы данных,

которую необходимо подсоединить, и нажимаем OK. БД можно

присоединить под новым именем, указав новое имя БД в соответствующей

позиции.

Page 62: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

62

5. Обслуживание баз данных администратором SQL Server 2012

5.1 Режим восстановления базы данных

Параметр Модели восстановления определяет, в каком режиме

восстановления будет работать база. Операции резервного копирования и

восстановления SQL Server выполняются в контексте модели восстановления

базы данных. Модели восстановления предназначены для управления

обслуживанием журналов транзакций. Модель восстановления — свойство

базы данных, которое управляет процессом регистрации транзакций,

определяет, требуется ли для журнала транзакций резервное копирование, а

также определяет, какие типы операций восстановления доступны. Обычно в

базе данных используется модель полного восстановления или простая

модель восстановления. База данных в любой момент может быть

переключена на другую модель восстановления.

Можно установить один из трех режимов восстановления базы данных:

• Полная — максимальное число операций записывается в журнал

транзакций. Журнал транзакций автоматически не обрезается. Только в этом

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

автоматическую доставку журналов;

• С неполным протоколированием — запись в журнал практически

отключается для операций массового характера и операций по созданию,

перестроению и удалению индексов.

• Простая — минимально протоколируются те же операции, что и в

режиме восстановления С неполным протоколированием, дополнительно к

этим операциям журнал транзакций очищается автоматически (блоками,

размер которых изначально равен 256 Кбайт, но может автоматически

увеличиваться SQL Server).

Таблица __ Основные сведения о трех моделях восстановления

Модель

восстанов-

ления

Описание Риск потери

результатов работы

Возможность

восстановления до

заданного момента

времени

Простая Нет резервных копий

журналов.

Автоматически

освобождает место на

диске, занятое

журналами, устраняя

таким образом

необходимость в

управлении размером

журналов транзакций.

Дополнительные

Изменения с момента

создания последней

резервной копии не

защищены. В случае

аварийной ситуации

эти изменения придется

вносить повторно

Возможно

восстановление только

до конца резервной

копии.

Page 63: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

63

сведения о резервном

копировании базы

данных в простой

модели

восстановления см. в

разделе Полные

резервные копии баз

данных (SQL Server).

Операции, требующие

наличия резервных

копий журналов

транзакций, в простой

модели

восстановления не

поддерживаются.

Следующие функции

не могут

использоваться в

простой модели

восстановления:

Доставка

журналов;

AlwaysOn или

зеркальное

отображение базы

данных;

Восстановление

носителей без

потери данных;

Восстановление на

момент времени.

Полная Необходимы

резервные копии

журналов.

Потеря результатов

работы из-за

повреждения файлов

данных исключена.

Возможно

восстановление до

произвольного

момента времени

(например до ошибки

приложения или

пользователя).

Минимальный. Если

поврежден

заключительный

фрагмент журнала, то

требуется

восстановление

изменений,

произведенных в базе с

момента создания

последней резервной

копии журналов.

Может выполнять

восстановление до

определенного момента

времени при наличии

всех необходимых

резервных копий до

этого момента времени.

Если осуществляется

работа с двумя или

более базами данных с

полным

восстановлением,

которые должны быть

логически

согласованными, для

гарантии возможности

восстановления этих баз

данных, возможно,

придется реализовать

специальные процедуры.

Page 64: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

64

С

неполным

протоко-

лировани-

ем

Необходимы

резервные копии

журналов.

Дополнение к полной

модели полного

восстановления,

позволяющее

выполнять

высокопроизводитель

ные операции

массового

копирования.

Уменьшает место,

занимаемое

журналами, за счет

неполного

протоколирования

большинства

массовых операций.

Если журнал был

поврежден или с

момента создания

последней резервной

копии журналов

выполнялись операции

с неполным

протоколированием,

все изменения после

этого резервного

копирования

необходимо внести

повторно.

Если нет, результаты

работы потеряны не

будут.

Возможно

восстановление до конца

любой резервной копии.

Восстановление до

заданной точки не

поддерживается.

5.2 Режимы работы базы данных

База данных SQL Server 2012 всегда находится в одном из

определенных состояний, например, к этим состояниям относятся состояния

ONLINE, OFFLINE или SUSPECT. Для того, чтобы узнать текущее состояние

базы данных, следует выберать столбец state_desc в представлении каталога

sys.databases или свойство Status в функции DATABASEPROPERTYEX.

Таблица __ Поддерживаемые SQL Server 2012 состояния базы данных

Состояние Определение

ONLINE База данных доступна. Первичная файловая группа

находится в режиме в сети, хотя возможно не завершена

стадия отката восстановления.

OFFLINE База данных недоступна. База данных переводится в режим

«вне сети» с помощью явного действия пользователя и

остается в режиме «вне сети» до тех пор, пока пользователем

не будет предпринято дополнительное действие. Например,

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

переместить файл на другой диск. После завершения

перемещения файла база данных снова переводится в режим

в сети.

RESTORING

Восстанавливаются один или несколько файлов,

принадлежащих к первичной файловой группе, или один или

более файлов, принадлежащих ко вторичным группам,

Page 65: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

65

причем база данных остается в режиме в сети. База данных

недоступна.

RECOVERING База данных в процессе восстановления. Процесс

восстановления является переходным состоянием; после

успешного завершения восстановления база данных

автоматически переходит в режим вне сети. При неудачном

завершении восстановления база данных будет помечена как

подозрительная. База данных недоступна.

RECOVERY

PENDING

В приложении SQL Server во время восстановления

произошла ошибка, связанная с ресурсами. База данных не

повреждена, но, возможно, потеряны файлы или

ограничения системных ресурсов препятствуют началу

процесса восстановления. База данных недоступна. Со

стороны пользователя требуется дополнительное действие,

чтобы исправить ошибку и разрешить завершение процесса

восстановления.

SUSPECT

По меньшей мере, первичная файловая группа помечена как

подозрительная и, возможно, повреждена. База данных не

может быть восстановлена во время запуска SQL Server. База

данных недоступна. Со стороны пользователя требуется

дополнительное действие, чтобы устранить проблему.

EMERGENCY

Пользователь изменил базу данных и установил состояние

базы данных в значение EMERGENCY. База данных

находится в однопользовательском режиме и, возможно, в

процессе исправления или восстановления. База данных

помечена как READ_ONLY, ведение журнала отключено и

доступ возможен только элементам предопределенной роли

сервера sysadmin. EMERGENCY используется в основном

для диагностики. Например, база данных, помеченная как

подозрительная, может быть переведена в состояние

EMERGENCY. Это предоставляет системному

администратору доступ к базе данных только для чтения.

Только члены предопределенной роли сервера sysadmin

могут перевести базу данных в состояние EMERGENCY.

Для изменения режима работы базы данных предварительно следует

отключить пользователей, работающих с базой данных. Изменить состояние

базы данных можно, например, с помощью команды ALTER DATABASE,

которая может быть задана со следующими параметрами:

• WITH NO_WAIT — база данных переводится в нужный режим

работы, если нет пользовательских подключений, препятствующих этому

переходу. Если указан параметр WITH NO_WAIT, но команда ALTER

Page 66: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

66

DATABASE не может изменить режим работы немедленно, то будет

возвращено сообщение об ошибке;

• используя параметр WITH ROLLBACK AFTER количество секунд —

можно определить, сколько секунд дается пользователям для завершения

работы с базой данных, прежде чем будет выполнен разрыв соединений.

Например, для базы test1:

ALTER DATABASE test1 SET RESTRICTED_USER WITH ROLLBACK

AFTER 60

• если указан параметр WITH ROLLBACK IMMEDIATE — то будет

выполнено немедленное отключение пользователей и откат незавершенных

транзакций этих пользователей.

Если параметры команды ALTER DATABASE по работе с

пользователями, подключѐнными к базе данных, не указаны, то команда

будет ждать, пока все подключенные пользователи не закончат сеансы

работы с базой данный, после чего база данных будет переведена в нужный

режим работы.

5.3 Увеличение размера базы данных

Увеличить размера БД можно используя графический интерфейс SQL

Server Management Studio или команду TSQL ALTER DATABASE.

Используя графический интерфейс SQL Server Management Studio

следует:

1. Открыть свойства базы данных в SQL Server Management Studio;

2. Перейти на вкладку Файлы (рисунок 30);

3. Ввести новый размер для файла базы данных в столбце Начальный

размер (МБ) или добавить в список новый файл.

Используя команды ALTER DATABASE, следует руководствоваться

следующим синтаксисом:

• Для увеличения размера существующего файла данных

ALTER DATABASE имя БД MODIFY FILE (NAME = имя файла данных,

SIZE = размер);

• Для добавления нового файла данных

ALTER DATABASE имя БД ADD FILE (NAME = логическое имя файла,

FILENAME = физическое имя файла, SIZE = минимальный размер,

MAXSIZE = максимальный размер, FILEGROWTH = размер прироста)

Пример скрипта, изменяющего размер БД test1:

USE [master]

GO

ALTER DATABASE [test1] MODIFY FILE ( NAME = N'test1', SIZE = 5120KB

)

GO

Page 67: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

67

Рисунок 30 — Изменение размеров файлов БД

5.4 Уменьшение размера базы данных

Уменьшить размер файлов базы данных можно:

1. Используя графический интерфейс SQL Server Management Studio

определяем, что буем уменьшить — все файлы базы данных или только

выбранный файл;

2. Используя команду DBCC SHRINKDATABASE (для всех файлов базы

данных) или DBCC SHRINKFILE (для отдельного файла).

DBCC SHRINKFILE сокращает размер указанного файла данных или

журнала для текущей базы данных или освобождает файл, перемещая данные

из указанного файла в другие файлы из той же файловой группы, разрешая

удаление файла из базы данных. Можно сжать файл до размера, который

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

будет установлено новое значение минимального размера файла.

Page 68: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

68

Синтаксис DBCC SHRINKFILE:

DBCC SHRINKFILE

(

{ file_name | file_id }

{ [ , EMPTYFILE ]

| [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ]

}

)

[ WITH NO_INFOMSGS ]

Аргументы:

file_name — логическое имя файла, предназначенного для сжатия.

file_id — идентификационный номер (идентификатор) файла,

предназначенного для сжатия. Для получения идентификатора файла следует

использовать функцию FILE_IDEX или выполнить запрос к представлению

каталога sys.database_files текущей базы данных.

target_size — размер файла (в мегабайтах), выражаемый целым числом. Если

он не указан, то инструкция DBCC SHRINKFILE уменьшает файл до размера

файла по умолчанию. Размер по умолчанию представляет собой размер,

указанный в момент создания файла. Если аргумент target_size указан, то

инструкция DBCC SHRINKFILE пытается сжать файл до заданного размера.

Используемые страницы в освобождаемой части файла перемещаются в

свободное место сохраняемой части файла. Например, если размер файла

данных составляет 10 МБ, инструкция DBCC SHRINKFILE со значением

аргумента target_size, равным 8, перемещает все страницы, используемые в

последних 2 МБ файла, на место любых нераспределенных страниц в первых

8 МБ файла. Инструкция DBCC SHRINKFILE не сжимает файл до меньшего

размера, чем требуется для хранения данных в файле. Например, если для

файла данных, размер которого составляет 10 МБ, необходимо сжатие до 7

МБ, инструкция DBCC SHRINKFILE со значением аргумента target_size,

равным 6, сжимает файл до размера в 7 МБ, а не 6 МБ.

EMPTYFILE — выполняет миграцию всех данных из указанного файла в

другие файлы в той же файловой группе. Поскольку компонент Database

Engine не разрешает размещать данные в пустом файле, этот файл может

быть удален инструкцией ALTER DATABASE. Для контейнеров файловых

групп FILESTREAM файл нельзя удалить с помощью ALTER DATABASE до

тех пор, пока сборщик мусора FILESTREAM не выполнит и не удалит все

ненужные файлы контейнеров файловых групп, которые были скопированы в

другой контейнер с помощью EMPTYFILE.

NOTRUNCATE — перемещает распределенные страницы из конца файла на

место нераспределенных страниц в начале файла с параметром target_percent

или без него. Свободное место в конце файла операционной системе не

возвращается, и физический размер файла не изменяется. Следовательно,

если указан аргумент NOTRUNCATE, файл сжимается незначительно.

Аргумент NOTRUNCATE применим только к файлам данных. На файлы

Page 69: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

69

журнала он не влияет. Этот параметр не поддерживается для контейнеров

файловых групп FILESTREAM.

TRUNCATEONLY — освобождает все свободное пространство в конце

файла операционной системе, но не перемещает страницы внутри файла.

Файл данных сокращается только до последнего выделенного экстента.

Аргумент target_size не обрабатывается, если указан аргумент

TRUNCATEONLY. Аргумент TRUNCATEONLY применим только к файлам

данных. Этот параметр не поддерживается для контейнеров файловых групп

FILESTREAM.

WITH NO_INFOMSGS — подавляет вывод всех информационных

сообщений.

5.5 Операция переноса файлов базы данных

Для переноса файлов базы данных следует:

1. Перевести базу данных в автономный режим работы (можно

воспользоваться графическим интерфейсом SQL Server Management Studio

или командой, например, ALTER DATABASE test1 SET OFFLINE для БД

test1);

2. Используя средства операционной системы, перенести файлы базы данных

в нужное место;

3. Указать SQL Server 2012 информацию о новом размещении файлов базы

данных, например,:

ALTER DATABASE testdb MODIFY FILE ( NAME = test1, FILENAME =

'D:\XYZ\test1.mdf')

4. Перевести базу данных в оперативный режим работы:

ALTER DATABASE test1 SET ONLINE

Описанный способ подходит для перемещения как пользовательских,

так и системных баз данных.

5.6 Переименование базы данных

Переименовать БД можно тремя способами, отключив предварительно

от нее всех пользователей:

• используя графический интерфейс SQL Server Management Studio — из

контекстного меню БД выбрать команду Переименовать;

• при помощи команды ALTER DATABASE, например, переименовать

БД test1 в БД test2:

ALTER DATABASE test1 MODIFY NAME = test2

• при помощи хранимой процедуры sp_renamedb, например:

SP_RENAMEDB 'test1', 'test2'

Page 70: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

70

5.7 Изменение владельца базы данных

Для смены владельца БД в SQL Server 2012 можно использовать

хранимую процедура sp_changedbowner.

Например: SP_CHANGEDBOWNER 'sa'

use test1

EXEC sp_changedbowner 'sa'

В примере владельцем БД test1 стал пользователь sa.

Не допускается смена владельца для системных базы данных MASTER,

MODEL и TEMPDB.

5.8 Удаление базы данных

Удалить базу данных в SQL Server 2012 можно, используя:

• команду контекстного меню БД в SQL Server Management Studio —

Удалить;

• при помощи команды DROP DATABASE, например, DROP

DATABASE test1

С удаляемой базой данных не должны работать пользователи и

служебные процессы (например, выполняться процесс репликации).

Литература

Книги по Microsoft SQL Server 2012

(ссылки на бумажные издания http://www.mctrewards.ru/sql2012.htm)

1. Microsoft SQL Server 2012. Реализация хранилищ данных. Учебный

курс Microsoft (+ CD-ROM) ID 24894274

2. Microsoft SQL Server 2012. Создание запросов. Учебный курс Microsoft

(+ CD-ROM) ID 24931129

3. Microsoft SQL Server 2012. Справочник администратора ID 21073081

1. http://ru.wikipedia.org/wiki/Microsoft_SQL_Server

2. http://msdn.microsoft.com/ru-ru/library/ms144275.aspx

3. http://www.alta.ru/mssqlserver2012.php Инструкция по установке MS SQL

Server 2012

Просмотр документации по SQL Server Использование электронной

документации по Microsoft SQL Server

http://go.microsoft.com/fwlink/?LinkID=224683.

Центр обновления Майкрософт

Page 71: Пособие к курсу Администрирование Microsoft …sa.technolog.edu.ru/files/ananchenko/sql2012.pdf7 1. Планирование и установка SQL

71

http://go.microsoft.com/fwlink/?LinkId=108409.

Образцы БД. По умолчанию при установке SQL Server образцы баз данных

и образцы кода не устанавливаются. Чтобы установить образцы баз данных и

образцы кода для выпусков SQL Server 2012, отличных от Express, перейдите

на веб-сайт CodePlex Проекты сообщества Microsoft SQL Server и образцы

http://go.microsoft.com/fwlink/?LinkId=182887 . Чтобы прочитать о поддержке

образцов баз данных SQL Server и образцов кода для SQL Server Express, см.

раздел Образцы баз данных SQL Server

<http://go.microsoft.com/fwlink/?LinkId=182888> на веб-сайте CodePlex.

Заметки о выпуске. Дополнительные сведения о критических изменениях в

этом выпуске SQL Server http://go.microsoft.com/fwlink/?LinkId=182684.

Документация и ссылки. Сведения об установке .NET Framework SDK см.

в разделе Установка пакета SDK для платформы .NET Framework

http://go.microsoft.com/fwlink/?LinkId=141693.

Сведения о настройке контактной зоны SQL Server 2012 см. в разделе

Настройка контактной зоны <http://go.microsoft.com/fwlink/?LinkId=182685>

в библиотеке MSDN по SQL Server 2012

SQL Server доступен в ознакомительной версии в течение 180-дневного

пробного периода

http://support.microsoft.com/kb/968930/

http://msdn.microsoft.com/ru-ru/library/ms174219.aspx SSMS