- •Лабораторный практикум
- •«Администрирование и разработка серверных баз данных»
- •«Прикладная информатика в экономике» введение
- •1. Лабораторная работа по теме «Планирование установки sql Server»
- •Установка экземпляра sql Server по умолчанию
- •Проверка инсталляции
- •Запуск службы sql Server с помощью программы sql Server Service Manager (диспетчера служб sql Server).
- •Поключение к sql Server и выполнение запроса для проверки установленных баз данных
- •Построение запроса с помощью конструктора
- •2. Лабораторная работа по теме «Управление файлами базы данных»
- •1. Использование мастера для создания базы данных
- •2.Создание базы данных в Enterprise Manager
- •3. Создание базы данных SampleDbTsql с помощью команд Transact-sql в Query Analyzer
- •4. Изменение базы данных
- •5. Просмотр информации и изменение параметров баз данных Просмотр информации о базах данных в Query Analyzer
- •Изменение свойств базы данных в Enterprise Manager
- •Просмотр опций базы данных и их изменение с помощью языка Transact-sql
- •4. Лабораторная работа по теме «обеспечение безопасности в sql server»
- •1. Управление доступом к серверу
- •1.1.Проверка способа аутентификации
- •1.2.Создание пользователей и групп пользователей в Windows
- •Результаты выполнения задания
- •2. Управление разрешениями.
- •2.1.Создание ролей базы данных
- •2.2.Назначение разрешений на операторы
- •2.3.Назначение разрешений объектам
- •Результаты выполнения задания
- •3.Управление безопасностью на уровне приложений
- •3.1.Создание роли приложения
- •3.2.Назначение разрешений при помощи представлений и хранимых процедур
- •3.3.Проверка разрешений на представление и хранимые процедуры
- •5. Лабораторная работа по теме «Резервное копирование баз данных»
- •1.Создание устройств резервного копирования с помощью sql Server Enterprise Manager
- •2. Создание устройств резервного копирования с помощью команд языка Transact-sql
- •3.Резервное копирование баз данных
- •3.1.Резевное копирование с помощью Enterprise Manager
- •3.2. Добавление резервных копий в один и тот же файл с помощью языка Transact-sql
- •3.3. Просмотр содержания устройства резервного копирования
- •3.4. Перезапись существующего файла резервных копий с помощью языка Transact-sql
- •3.5. Резервное копирование одной базы данных в несколько файлов резервных копий
- •3.5. Резервное копирование базы данных с созданием временного устройства резервного копирования
- •4. Резервное копирование журнала транзакций
- •4.1. Резервное копирование журнала транзакций с помощью Enterprise Manager
- •4.2. Резервное копирование журнала транзакций в Query Analyzer
- •5.Создание дифференциальной резервной копии
- •Создание резервной копии базы данных nwcopy
- •Моделирование случайного изменения данных
- •Восстановление базы данных из полной резервной копии
- •Проверка восстановления базы данных
- •Моделирование изменений в базе данных и сбор сведений о них
- •Выполнение полного резервного копирования базы данных nwcopy
- •Изменение базы данных nwcopy и создание резервной копии журнала транзакций
- •Изменение базы данных и создание дифференциальной резервной копии
- •Изменение базы данных nwcopy и создание еще одной резервной копии журнала транзакций
- •Моделирование повреждения базы данных
- •Восстановление полной резервной копии базы данных, дифференциальной копии и копии журнала транзакций Проверка имеющихся резервных копий
- •Просмотр выбранной стратегии восстановления
- •Вопрос 1: Вы согласны с этим планом восстановления?
- •Вопрос 2: Почему не выбрана первая резервная копия журнала транзакций?
- •Восстановление полной и дифференциальной резервных копий
- •Проверка содержимого базы данных
- •Восстановление журнала транзакций из резервной копии
- •Просмотр содержимого базы данных
- •7. Лабораторная работа по теме «Мониторинг производительности сервера»
- •1. Использование программы Windows System Monitor
- •Проведите имитацию деятельности сервера
- •Отслеживание использования памяти и процессора.
- •Использование утилиты sql Profiler
- •Конфигурирование утилиты sql Profiler для обнаружения попыток несанкционированного подсоединения к серверу
- •Конфигурирование трассировки для регистрации долго выполняющихся запросов
- •Просмотр информации о блокировках
- •Удержание блокировки на сервере
- •Обнаружение блокирование блокировок
- •8. Лабораторная работа «Автоматизация административных задач» Цели:
- •Создание операторов
- •2. Создание задания с помощью мастера
- •3. Создание многошагового задания
- •Откройте программу Event Viewer (Просмотр событий) и просмотрите, как в нем отобразилась неудачная попытка выполнить задание. Отразите это в отчете.
- •4.Создание оповещений
- •4.1. Создание оповещения с помощью мастера Create Alert Wizard
- •4.2. Создание оповещения на основе пользовательского сообщения об ошибке
- •4.4.Создание оповещений об изменении рабочего режима
- •Тестирование оповещения о заполнении журнала транзакций
- •9. Лабораторная работа по теме «Обмен данными»
- •Импорт данных из запроса
- •2. Изменение пакета dts с помощью программы dts Designer
- •Перенос объектов sql Server в новую базу данных Импортирование объектов из одной базы данных в другую
- •Экспорт файлов в текстовый файл
- •Проверьте, что для пакета создано расписание
- •Импорт данных с помощью задания массовой вставки Bulk Insert
- •Перенос данных из таблицы Excel в таблицу базы данных Pubs
- •10. Лабораторная работа по теме «Репликация»
- •Регистрация второго сервера
- •Настройка репликации транзакций
- •Создание публикации (на сервере издателе и дистрибьюторе)
- •Создание подписки (на сервере-подписчике)
- •3. Создание публикации слиянием
- •Создайте публикацию для репликации слиянием на издателе
- •Просмотрите хронологию работы агента Snapshot
- •Создание подписки по запросу и разрешение конфликтов Создание Pull подписки
- •Обновление исходной таблицы на издателе
- •Одновременное обновление на издателе и подписчике
- •6. Проверка индексных структур
- •7. Проверка полезности индексов
- •8. Просмотр статистики индексов и оценка индексной селективности
- •12. Лабораторная работа по теме «Программирование»
- •Исправление ошибок в готовом скрипте
- •2.Создание циклических программ
- •3.Использование конструкции case
- •4.Использование динамически конструирования программ
- •6. Создать таблицу в базе данных Pubs со следующими полями: fio студента, oc1, oc2, oc3, означающие оценки за экзамены. Внести в нее 3-4 записи.
- •7. Преобразовать ранее созданную функцию, добавив в нее необходимые параметры.
- •9. Создайте программу для исправления номера телефона автора с определенным идентификационным номером (Pubs..Authors)
- •13. Лабораторная работа по теме «Триггеры»
- •1. Создание триггера на вставку новой записи
- •Тестирование созданного триггера
- •2. Создание триггера на обновление для обновления содержимого колонки
- •3. Создание триггера, который поддерживает сложные бизнес-правила
- •Управление безопасностью sql Server
- •Фиксированные серверные роли sql Server
- •Фиксированные роли базы данных
- •Блокировки в sql Server
- •Обмен данными
- •Список источников данных
- •Задачи dts Designer
Блокировки в sql Server
SQL Server может блокировать следующие ресурсы: RID (строку с определенным идентификационным номером), KEY(Строку внутри индекса), Page (страницу), Extent (экстент ,8 страниц), Table (таблицу), DB (базу данных). SQL Server блокирует ресурсы, устанавливая блокировки различных типов (см. табл.1)
Таблица 1
Типы блокировок
Тип блокировки |
Описание |
Shared (S) |
Используется для операций, которые не изменяют данные, такие как SELECT… |
Update (U) |
Используется для ресурсов, которые могут редактироваться |
Exclusive (X) |
Используются для операций, которые модифицируют данные (типа INSERT,UPDATE, DELETE). При этом запрещается доступ к одним и тем же ресурсам в одно и то же время |
Intent (I…) |
Используется для установки иерархии блокировок. Подтипы: IS,IX,SIX |
Shema (SHC) |
Используется, когда выполняется операция, зависящая от схемы таблицы. Подтипы: Shc-M,Shc-S |
Bulk Update (BU) |
Используется, когда выполняется массовая загрузка таблицы |
Shared Lock (S) разрешает конкурирующим транзакциям выполнять операции чтения. Никакие другие транзакции не могут модифицировать данные, если установлена блокировка типа S. Эта блокировка снимается сразу же, как только данные будут прочитаны.
Update Lock (U) препятствует возникновению общих форм «мертвых блокировок». Типичный образец операции «Update» состоит из транзакции, читающей запись, овладевающей при этом S блокировкой на ресурс. Затем происходит модификация строки, которая требует преобразования блокировки в эксклюзивную (X). Если две транзакции имеют блокировки S на одном и том же ресурсе, а затем пытаются изменить данные, одна их них пытается преобразовать блокировку в X, но X блокировка не совместима с S блокировкой другой транзакции, и поэтому для нее наступает режим ожидания освобождения блокировки другой транзакцией. Другая транзакция также стремится преобразовать свою блокировку в X, и потому также находится в режиме ожидания. Происходит процесс т.н. «мертвой блокировки» (dead lock). Чтобы этого не случалось, операциям, которые должны производить модификацию, сразу же выделяется блокировка U. Только одна транзакция может получить такой тип блокировки. Если транзакция модифицирует процесс, то блокировка преобразуется к типу X, а иначе – к типу S.
Intent (I) блокировка показывает, что SQL Server хочет овладеть S или X блокировкой некоторого ресурса, который имеет более низкую иерархию. Например, IS таблицы показывает, что транзакция намеревается осуществить S блокировку страниц или строк внутри таблицы. Данная блокировка препятствует другой транзакции овладеть впоследствии эксклюзивной блокировкой таблицы, содержащей данную страницу. Блокировки типа I улучшают производительность, т.к. SQL Server проверяет наличие блокировки на уровне всей таблицы, чтобы определить, может ли другая транзакция установить на нее блокировку, а не проверяет наличие блокировок каждой отдельной строки.
SIX (Shared with intent exclusive) блокировка показывает намерение транзакции читать ресурсы, ниже по иерархии изменять некоторые из них. Конкурирующие IS блокировки на верхнем уровне разрешаются. Например, SIX блокировка таблицы допускает конкурирующую блокировку типа IS, размещая IX блокировку на уровне страницы и Х блокировку на уровне строки. Возможна только одна SIX блокировка на один ресурс в одно и то же время.
Schema Lock. Sch-M блокировка используется, если выполняется команда DDL (например, добавление колонки таблицы или удаление таблицы и т.д.).
Sch-S блокировка используется при компиляции запроса. Она не блокирует блокировки транзакций, включая и X блокировки, т.е. другая транзакция может выполняться при установке данной блокировки. Однако, операции DDL при этом выполняться не могут для заданных таблиц.
Блокировки Bulk Update Lock (BU) используются, когда выполняются операции массовой загрузки таблиц. BU позволяет выполнять разные процессы загрузки данных в одну и ту же таблицу, предотвращая доступ к ней процессам другого типа.
Совместимость блокировок указана в табл. 2.
Таблица 2
Типы блокировок |
IS |
S |
U |
IX |
SIX |
X |
IS |
+ |
+ |
+ |
+ |
+ |
- |
S |
+ |
+ |
+ |
- |
- |
- |
U |
+ |
+ |
- |
- |
- |
- |
IX |
+ |
- |
- |
+ |
- |
- |
SIX |
+ |
- |
- |
- |
- |
- |
X |
- |
- |
- |
- |
- |
- |
Примечание. IX блокировка совместима с другой IX блокировкой, т.к. IX означает намерение изменять только некоторые из строк, а не все. Другая транзакция, которая хочет читать или изменять другие строки, получает на это разрешение.
Sch-S совместима со всеми другими, кроме Sch-M блокировки.
Sch-M несовместима ни одной другой блокировкой.
BU блокировка совместима только с Sch-S или другой BU блокировками.
Приложение 6