- •Методические указания к лабораторным работам
- •Лабораторная работа №2
- •Утилита Enterprise Manager
- •Останов средствами Transact-sql
- •Управление учетной записью службы с помощью утилиты Enterprise Manager
- •Режимы запуска sql Server 2000
- •Конфигурирование служб sql Server 2000 Конфигурирование службы mssqlServer
- •Вкладка General
- •Вкладка Memory
- •Вкладка Processor
- •Вкладка Security
- •Вкладка Connections
- •Вкладка Server Settings
- •Лабораторная работа №3
- •Создание пользователя
- •Специальные пользователи
- •Хранение информации о пользователях
- •Фиксированные роли базы данных
- •Пользовательские роли базы данных
- •Права доступа
- •Права доступа к данным
- •Права на выполнение хранимых процедур и функций
- •Права на выполнение команд Transact-sql
- •Управление правами доступа
- •Запрещение доступа
- •Лабораторная работа №4
- •Полная копия
- •Разностная копия
- •Копия журнала транзакций
- •Резервное копирование файлов и групп файлов
- •Планирование стратегии резервного копирования
- •Резервное копирование системных баз данных
- •Восстановление системных баз данных
- •Присоединение баз данных
- •Ограничения при выполнении архивирования
- •Архивирование средствами Enterprise Manager
- •Архивирование с помощью мастера
- •Восстановление архива средствами Enterprise Manager
Присоединение баз данных
После восстановления базы данных Master может оказаться, что некоторые базы данных не присутствуют в системе. Однако сами базы данных, а точнее их файлы, находятся на жестком диске и являются неповрежденными. Вы можете подключить эти базы данных к SQL Server 2000 и продолжить их эксплуатацию.
Присоединение (attach) базы данных — это процесс создания в таблице sysdatabases базы данных Master новой строки с описанием базы данных. Каждая БД описывается единственной строкой, в которой указывается имя и размещение только главного, или первичного файла (primary file) базы данных. Описание всех остальных файлов, включая файлы журнала транзакций, хранится в первичном файле базы данных. Если положение этих файлов изменилось, то в процессе присоединения обновляется соответствующая информация в первичном файле.
Кроме того, что присоединение баз данных производится после восстановления поврежденной базы данных Master как неизбежная операция, присоединение может использоваться для переноса баз данных между серверами. Помимо присоединения, пользователь может также выполнять отсоединение (detach) базы данных. В этом случае из таблицы sysdatabases базы данных Master просто удаляется соответствующая строка, и SQL Server 2000 теряет информацию о существовании соответствующей БД. Файлы отсоединенной базы данных могут быть скопированы на компакт-диски и разосланы в филиалы компании, где "местные" администраторы выполнят присоединение и смогут нормально работать.
Для присоединения базы данных предназначена хранимая процедура sp_attach_db со следующим синтаксисом:
sp_attach_db [@dbname=]'dbname', [Sfilenamel =]'filenameji [,...16]
Рассмотрим использование аргументов этой хранимой процедуры.
[gdbname=]'dbname'
Указывает имя, которое будет присвоено присоединяемой базе данных. Обычно для присоединяемой базы данных используется то же имя, которое она имела до отсоединения, но администратор может задать и любое другое.
[Sfilenamel =]'filename_n [,...16]
Позволяет указать имена файлов БД. Если база данных не перемешалась, и все ее файлы находятся в тех же каталогах, что и до отсоединения, то достаточно указать имя и местоположение только главного файла (с расширением mdf). Если же база данных была перенесена в другой каталог или на другой диск, или же была скопирована с другого компьютера, то необходимо указать имена и местоположение всех файлов базы данных. Имена файлов должны отделяться запятыми. Как видно из синтаксиса, можно указать до 16 файлов базы данных.
Для отсоединения баз данных служит хранимая процедура sp_detach_db, имеющая представленный ниже синтаксис:
sp_detach_db [Sdbname =] 'dbname' [, [Sskipchecks =] 'skipchecks']
С помощью аргумента ' dbname' указывается имя базы данных, которую необходимо отсоединить. Аргумент 'skipchecks' определяет, будет ли выполняться обновление статистики или нет. По умолчанию этому аргументу присвоено значение null. Если пользователь указывает значение true, то выполнение команды update statistics пропускается. Когда же указывается значение false, то команда update statistics выполняется.