Опубликован: 29.07.2008 | Доступ: свободный | Студентов: 1879 / 489 | Оценка: 4.31 / 4.13 | Длительность: 09:00:00
Лекция 5:

Полная модель восстановления

< Лекция 4 || Лекция 5: 123 || Лекция 6 >
Восстановление системных баз данных

Системные базы данных master, msdb, и model являются ядром установки SQL Server. Без системных баз данных SQL Server не будет функционировать должным образом или, при повреждении базы данных master, вообще не будет работать. Следовательно, крайне важно иметь резервные копии этих баз данных, чтобы быть готовым к возможным сбоям системы. Для системных баз данных обычно используется простая модель, при которой создаются полные резервные копии базы данных по регулярному расписанию. Такая стратегия в этом случае будет эффективной, поскольку информация в этих таблицах изменяется нечасто. Тем не менее, после существенных изменений в системе, например, создания баз данных, имен входа или изменения параметров конфигурации, следует выполнить внеплановое резервное копирование системных баз данных.

Выполнение резервного копирования и восстановления в SQL Server выполняются в рабочем режиме. Следовательно, чтобы можно было восстановить системные базы данных, сервер SQL Server должен быть запущен. Восстановить работоспособность SQL Server можно двумя способами:

  • Если базы данных повреждены, но двоичные файлы (скомпилированные компьютерные программы, или исполняемые файлы) остались неповрежденными, то системные базы данных можно восстановить при помощи программы установки SQL Server. Подробные инструкции на этот случай можно найти в Электронной документации по SQL Server (разделы "Как)в теме "Как установить SQL Server 2005 из командной строки".
  • Если повреждена вся система, то следует переустановить ее с нуля при помощи программы установки. Кроме того, придется переустановить все пакеты обновлений и исправлений, которые были установлены в системе на момент возникновения сбоя.

После этого SQL Server начинает работать, но в нем отсутствует информация о пользовательских базах данных, именах входа, заданиях, предупреждениях и настройках, которые были в системе до аварийной ситуации. Чтобы исправить эту ситуацию, следует восстановить системные базы данных из резервных копий. Процесс восстановления системных баз данных всегда начинается с восстановления базы данных master. Для восстановления базы данных master используется особая процедура, подробное описание которой приводится ниже.

Важно. Эту процедуру следует выполнять только на тестовой системе. В случае ошибки можно потерять данные! В этом примере предполагается, что SQL Server установлен как экземпляр с параметрами по умолчанию.
Восстанавливаем базу данных master
  1. Создаем резервные копии баз данных master, msdb и model.
    —База данных MASTER
    BACKUP DATABASE MASTER
    TO DISK = "T:\BACKUPS\master.bak"
    WITH INIT
    —База данных MSDB
    BACKUP DATABASE MSDB
    TO DISK = "T:\BACKUPS\msdb.bak"
    WITH INIT
    —База данных MODEL
    BACKUP DATABASE MODEL
    TO DISK = "T:\BACKUPS\model.bak"
    WITH INIT
  2. Закройте SQL Server Management Studio и все остальные программы, которые установили соединение с SQL Server.
  3. В меню Start (Пуск) выберите All Programs,. Microsoft SQL Server 2005, Configuration Tools, SQL Server Configuration Manager (Все программы, Microsoft SQL Server 2005, Средства настройки, Диспетчер конфигурации SQL Server).
  4. В окне SQL Server Configuration Manager (Диспетчер конфигурации SQL Server) щелкните левой кнопкой мыши элемент SQL Server 2005 Services (Службы SQL Server 2005) в левой панели. При этом в правой панели отображаются все службы SQL Server. Остановите все службы, щелкнув правой кнопкой мыши на каждой из них и выбрав из контекстного меню команду Stop item (Остановить). Запомните, какие службы вы остановили; позже их надо будет запустить. После остановки всех служб окно программы будет выглядеть следующим образом:
  5. Откройте командную строку; для этого в меню Start (Пуск) выберите команду Run (Выполнить), введите cmd и нажмите кнопку ОК.
  6. Перейдите в папку binn в установочном каталоге SQL Server при помощи следующей команды: В этой команде указан путь, который используется программой установки SQL Server по умолчанию. Введите всю команду одной строкой (здесь перенос выполнен для того, чтобы команда уместилась в границы страницы), а затем нажмите клавишу Enter.
    C:\Documents and Settings\Administrator>cd "\Program Files\ Microsoft SQL Server\MSSQL.1\MSSQL\binn"
  7. Запустите SQL Server в однопользовательском администраторском режиме, указав в командной строке параметр -m, как показано в следующей команде. Введите эту команду и нажмите клавишу Enter.
    C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn>sqlservr –m
  8. Не закрывая это окно командной строки, запустите еще один экземпляр командной строки, повторив действия, описанные в пункте 5.
  9. В этом новом окне командной строки введите sqlcmd -E, чтобы установить соединение с SQL Server.
  10. Выполните восстановление базы данных master из командной строки sqlcmd при помощи следующей инструкции T-SQL. При вводе инструкции при переходе на новую строку нажимайте клавишу Enter. После того, как вы введете инструкцию GO и нажмете клавишу Enter, будет выполнена вся инструкция.
    RESTORE DATABASE master
    FROM DISK ='T:\BACKUPS\master.bak';
    GO

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

  11. Перейдите в первое окно командной строки. SQL Server автоматически завершит работу. Теперь можно закрыть оба окна командной строки.
  12. Переключитесь на SQL Server Configuration Manager (Диспетчер конфигурации SQL Server) и запустите только одну службу SQL Server -(MSSQLSERVER).
Восстанавливаем базы данных msdb и model
  1. Откройте окно SQL Server Management Studio. Базы данных msdb и model можно восстановить из резервных копий так же, как и любую другую базу данных. Поскольку в процессе восстановления не должно быть открытых соединений с базами данных, на предыдущем этапе не следует запускать никаких других служб.
  2. Для восстановления баз данных msdb и model откройте окно New Query (Новый запрос) и выполните следующие инструкции RESTORE DATABASE.
    —База данных MSDB
    RESTORE DATABASE MSDB
    FROM DISK = "T:\BACKUPS\msdb.bak"
    —База данных MODEL
    RESTORE DATABASE MODEL
    FROM DISK = "T:\BACKUPS\model.bak"
    WITH REPLACE
  3. Перейдите в SQL Server Configuration Manager (Диспетчер конфигурации SQL Server) и запустите все остальные службы, которые вы остановили, выполняя инструкции пункта 4 в предыдущем разделе. Среди этих служб, вероятно, будут Службы интеграции SQL Server, Служба SQL FullText Search (MSSQLSERVER) и SQL Server (SQLEXPRESS).

Как составить расписание резервного копирования при помощи мастера планов обслуживания

До сих пор мы выполняли резервное копирование через Query Window (Окно запроса) в SQL Server Management Studio. Безусловно, в производственных системах необходимо создать расписание автоматического резервного копирования без участия пользователя. Для этого можно использовать любую программу автоматического обслуживания. В SQL Server есть встроенный планировщик, представляющий собой компонент службы SQL Server Agent (агент SQL Server). С помощью заданий SQL Server Agent (агента SQL Server) можно настроить пакеты T-SQL, которые будут выполняться по заданному расписанию. Этот компонент предоставляет функции, необходимые для автоматизации стратегии восстановления. Рассмотрим еще один способ составления расписания резервного копирования при помощи мастера. Мастер SQL Maintenance Plan Wizard (мастер планов обслуживания SQL) - это инструмент, которые помогает выполнять стандартные задачи вроде резервного копирования, дефрагментации индексов и проверки целостности базы данных. Мастер планов обслуживания зависит от службы SQL Server Agent (агент SQL Server) ввиду того, что его задания запускаются в нужный момент времени именно этой службой. Следовательно, служба SQL Server Agent (агент SQL Server) должна выполняться непрерывно. Службу SQL Agent Service (агент SQL Server) можно настроить через интерфейс SQL Server Configuration Management (Диспетчер конфигурации SQL Server). Настройте эту службу на автоматический запуск и запускайте при необходимости при помощи следующих действий.

Настраиваем автоматический запуск службы агент SQL Server
  1. Запустите SQL Server Configuration Manager (Диспетчер конфигурации SQL Server), выполнив действия, описанные в предыдущем разделе.
  2. В левой панели выделите элемент SQL Server 2005 Services (Службы SQL Server 2005). В правой панели щелкните правой кнопкой мыши значок SQL Server Agent и выберите из контекстного меню пункт Properties (Свойства).
  3. На вкладке Service (Служба) найдите строку Start mode (Режим запуска) и установите значение Automatic (Авто). Нажмите кнопку Apply (Применить), а затем кнопку OK.
  4. Теперь можно запустить агент, щелкнув правой кнопкой мыши значок SQL Server Agent и выбрав из контекстного меню команду Start (Запустить).
Используем мастер планов обслуживания
  1. Откройте Object Explorer (Обозреватель объектов) в SQL Server Management Studio, выбрав в меню View (Вид) соответствующую команду или нажав клавишу F8.
  2. В дереве объектов разверните экземпляр SQL Server, откройте папку Management (Управление) и щелкните правой кнопкой мыши папку Maintenance Plans (Планы обслуживания). Выберите пункт Maintenance Plan Wizard (Мастер планов обслуживания).
  3. Откроется окно приветствия мастера. В этом окне нажмите кнопку Next (Далее).
  4. Задайте имя плана обслуживания. В нашем примере пусть это будет Ежедневное копирование AdventurеWorks. Затем нажмите кнопку Next (Далее).
  5. Выберите Back Up Database (Full) (Резервное копирование базы данных (Full) и два раза нажмите кнопку Next (Далее).
  6. Выберите в раскрывающемся списке Database (Базы данных) AdventurеWorks и нажмите кнопку OK.
  7. Выберите вариант Create A Backup File For Every Database, установите флажок Create A Sub Directory For Each Database и задайте путь к папке, в которой будут храниться резервные копии. Нажмите кнопку Next (Далее).
  8. Нажмите кнопку Change (Изменить), чтобы создать расписание. Когда закончите работу, нажмите кнопку ОК, а затем кнопку Next (Далее).
  9. В следующем окне укажите, следует ли записать в каталог отчет и отправить уведомление поэлектронной почте. Выберите нужные параметры и нажмите кнопку Next (Далее).
  10. Нажмите кнопку Finish (Готово).

Планы обслуживания базы данных можно изменять через интерфейс SQL Server Management Studio. Для этого просто перейдите в Object Explorer (Обозревателе объектов) к папке Maintenance Plan (Планы обслуживания), которая вложена в папку Management (Управление), и щелкните правой кнопкой мыши на плане, который нужно изменить. Из этого меню можно открыть также журнал.

Заключение

В данной лекции мы познакомились с различными типами резервного копирования, которые позволяет выполнить SQL Server 2005. Комбинируя эти различные типы и создавая расписания, можно настроить такую стратегию резервного копирования, которая будет отвечать требованиям производительности системы и целостности данных. Эти стратегии варьируются от простой модели, которая использует только полные резервные копии базы данных, до полной модели, использующей резервные копии журнала транзакций, что обеспечивает набор функций, позволяющих восстановить данные вплоть до момента воздействия повреждающих факторов.

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

Краткий справочник по 4-5 лекциям

Чтобы Выполните следующие действия
Выбрать модель восстановления Выполните инструкцию SQL
USE master;
GO
ALTER DATABASE AdventureWorks
SET RECOVERY SIMPLE;
Проверить модель восстановления Выполните инструкцию SQL
SELECT DATABASEPROPERTYEX 
("AdventureWorks",'Recovery')
Извлечь общую информацию резервного копирования Выполните инструкцию SQL
USE msdb
GO
SELECT backup_start_date, type,
physical_device_name, backup_set_id
FROM backupset bs
inner join backupmediafamily bm
ON bs.media_set_id = bm.media_set_id
WHERE database_name ='AdventureWorks'
ORDER BY backup_start_date desc
Узнать, какие файлы данных и журналы вошли в резервную копию с данным идентификатором Выполните инструкцию SQL
SELECT filegroup_name,logical_name,
physical_name
FROM msdb..backupfile
WHERE backup_set_id = <backup id>
Извлечь информацию непосредственно с устройства резервного копирования Выполните инструкцию SQL
RESTORE HEADERONLY 
  FROM DISK= "T:\BACKUPS\ADVFULL.BAK" 
RESTORE FILELISTONLY 
  FROM DISK= "T:\BACKUPS\ADVFULL.BAK"
Восстановить базу данных через интерфейс SQL Server Management Studio Запустить службу SQL Server Agent (Агент SQL Server) Щелкните правой кнопкой мыши на базе данных в окне Object Explorer (Обозреватель объектов) и выберите команды Task, Restore, Database (Задачи, Восстановить, База данных). Запустите SQL Server Configuration Manager (Диспетчер конфигурации SQL Server). Откройте окно свойств службы SQL Server Agent. Измените значение пункта Start Mode (Режим запуска) на Automatic (Авто), щелкните правой кнопкой мыши на значке службы SQL Server Agent и выберите команду Start (Запустить).
Составить расписание резервного копирования В SQL Server Management Studio откройте папку Management (Управление) в панели Object Explorer (Обозревателя объектов). Выберите Maintenance Plan Wizard (Мастер планов обслуживания) и следуйте рекомендациям мастера.
< Лекция 4 || Лекция 5: 123 || Лекция 6 >
Марат Уздемиров
Марат Уздемиров
Ярослав Малащенко
Ярослав Малащенко