Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекция №20

.docx
Скачиваний:
36
Добавлен:
03.02.2015
Размер:
311.24 Кб
Скачать

5. Лекция: Полная модель восстановления: версия для печати и PDA  Данная лекция посвящена полной модели восстановления. Рассматривается модель восстановления с неполным протоколированием, восстановление базы из резервных копий и восстановление базы данных при простой стратегии резервного копирования с использованием T-SQL

Как уже упоминалось ранее, необходимо заранее указать SQL Server, какую стратегию резервного копирования вы планируете реализовать. Если используются только полные и разностные резервные копии базы данных, то следует выбрать простую модель восстановления. Если нужно использовать также резервные копии журналов транзакций, то следует выбрать полную модель восстановления ( FULL ) или модель с неполным протоколированием BULK_LOGGED. Выбрав полную модель восстановления, мы сообщаем SQL Server, что необходимо создавать резервные копии журнала транзакций. Чтобы сделать это возможным, SQL Server сохраняет все транзакции в журнале транзакций до тех пор, пока не будет создана резервная копия журнала. При выполнении резервного копирования журнала транзакций, SQL Server выполняет усечение журнала транзакций после того, как резервная копия записана на устройство резервного копирования. В простом режиме журнал транзакций усекается после каждой контрольной точки; это означает, что зафиксированные транзакции (которые уже записаны в файлы данных) удаляются из журнала транзакций. Таким образом, в простом режиме резервные копии журнала транзакций не могут быть созданы.

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

Чтобы выбрать модель восстановления FULL, можно использовать инструкцию ALTER DATABASE. Следующий код устанавливает режим восстановления базы данных AdventurеWorks в значение FULL.

USE master;

GO

ALTER DATABASE AdventureWorks

SET RECOVERY FULL;

GO

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

В модели полного восстановления высокопроизводительные операции массового копирования (операции, которые изменяют сразу большие количества данных) полностью протоколируются, чтобы сделать возможным резервное копирование журнала транзакций. В некоторых базах данных эта модель восстановления не может использоваться регулярно из-за ограничений на размер журнала транзакций и проблемы с производительностью, которые появляются из-за полного протоколирования высокопроизводительных операций массового копирования. Логично, что, существует модель восстановления с неполным протоколированием. Она позволяет создавать резервные копии журнала транзакций для фиксации и журнала, и результатов любых высокопроизводительных операций массового копирования, но при этом не имеет указанных недостатков. В рамках модели восстановления с неполным протоколированием невозможно восстановить базу данных на определенный момент времени. Кроме того, невозможно выполнять резервное копирование журнала транзакций, когда файл данных повр ежден, а высокопроизводительная операция массового копирования может произойти после того, как резервная копия файла журнала транзакций уже была создана. Это один из основных недостатков резервного копирования журнала транзакций. Следовательно, модель восстановления с неполным протоколированием следует включать только на период выполнения высокопроизводительных операций массового копирования и, по возможности, на непродолжительное время. В остальное время следует использовать полную модель восстановления. Не используйте модель восстановления с неполным протоколированием, если у вас не возникает проблем при использовании только полностью протоколируемых операций. Дополнительную информацию можно найти в Электронной документации по SQL Server 2005, тема "Резервное копирование в модели восстановления с неполным протоколированием".

Создание резервных копий журнала транзакций

Чтобы выполнить резервное копирование журнала транзакций, следует выбрать полную модель восстановления, причем после изменения модели восстановления должна быть создана хотя бы одна полная резервная копия базы данных. Резервное копирование журнала транзакций выполняется с помощью инструкции BACKUP LOG. Как всегда, следует указать имя базы данных и устройство резервного копирования. Типы устройств резервного копирования в этом случае не отличаются от тех, которые используются для создания полных и разностных резервных копий.

Чтобы создать резервную копию журнала транзакций базы данных AdventurеWorks на физическом устройстве, выполните следующие действия.

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

  1. Установите полную ( FULL ) модель восстановления.

  2. Создайте хотя бы одну полную резервную копию базы данных.

  3. Создайте резервную копию журнала транзакций базы данных AdventurеWorks на физическом устройстве при помощи следующей инструкции SQL:

  4. USE master;

  5. GO

  6. BACKUP LOG AdventureWorks

TO DISK='t:\adv_log.bak'

Как и в других инструкциях резервного копирования, процесс дописывает резервную копию на устройство резервного копирования, если в инструкции BACKUP не указан другой вариант. Чтобы перезаписать резервные копии на устройстве, используется инструкция WITH INIT.

USE master;

GO

BACKUP LOG AdventureWorks

TO DISK='t:\adv_log.bak'

WITH INIT

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

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

Извлечение информации резервного копирования

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

Создаем информацию простого резервного копирования

  1. В меню Start (Пуск) выберите All Programs,. Microsoft SQL Server 2005, SQL Server Management Studio (Все программы, Microsoft SQL Server 2005, Среда SQL Server Management Studio).

  2. В диалоговом окне Connect To Server (Соединение с сервером) нажмите кнопку Connect (Соединить).

  3. В панели инструментов Standard (Стандартная) нажмите кнопку New Query (Новый запрос), чтобы открыть окно New Query (Новый запрос).

  4. Введите и выполните следующие инструкции BACKUP, чтобы создать полную и разностную резервные копии базы данных AdventurеWorks.

  5. ALTER DATABASE AdventureWorks

  6. SET RECOVERY SIMPLE;

  7. —Создаем полную резервную копию базы данных

  8. BACKUP DATABASE AdventureWorks

  9. TO DISK = "T:\BACKUPS\ADVFULL.BAK"

  10. WITH INIT;

  11. —Создаем разностную резервную копию

  12. BACKUP DATABASE AdventureWorks

  13. TO DISK = "T:\BACKUPS\ADVDIFF.BAK"

WITH INIT,Differential;

Получаем общую информацию резервного копирования

  1. Чтобы получить информацию о том, какие резервные копии были созданы в базе данных AdventurеWorks, выполните следующую инструкцию SELECT:

  2. USE msdb

  3. GO

  4. SELECT backup_start_date,type, physical_device_name,backup_set_id

  5. FROM backupset bs inner join backupmediafamily bm

  6. ON bs.media_set_id = bm.media_set_id

  7. WHERE database_name ='AdventureWorks'

ORDER BY backup_start_date desc

Панель результатов, показанная на рисунке, сообщает, что тип самой последней резервной копии - I, что соответствует разностной копии. Как вам известно, чтобы восстановить данные из резервной копии, сначала необходимо восстановить данные из самой последней полной резервной копии. Эту резервную копию мы видим во второй строке, ее тип Dуказывает на то, что это полная резервная копия.

  1. Каждая резервная копия получает уникальный идентификатор, который называется идентификатором набора резервных копий; этот идентификатор можно увидеть в окне результатов, которое показано на следующем рисунке.

увеличить изображение

Используя приведенную выше информацию, можно узнать, какие файлы данных и журналов были включены в резервные копии и в каких папках они первоначально хранились. Следующий запрос получает эту информацию для идентификатора набора 62. Выполняя этот запрос, обязательно измените backup_set_id с 62 на идентификатор полной резервной копии, найденной на предыдущем этапе.

SELECT filegroup_name,logical_name,physical_name

FROM msdb..backupfile

WHERE backup_set_id = 62

—change to your backup_set_id

  1. В некоторых ситуациях в базе данных msdb может не оказаться необходимой информации. Это может произойти, если база данных msdb была повреждена при аварийной ситуации или если резервное копирование выполнялось на другой системе. В этих случаях можно получить необходимую информацию только непосредственно с устройства резервного копирования. Чтобы получить информацию о резервных копиях, которые находятся на T:\BACKUPS\ADVFULL.BAK', введите и выполните следующую инструкцию.

RESTORE HEADERONLY FROM DISK='T:\BACKUPS\ADVFULL.BAK'

  1. Чтобы получить информацию о файлах данных и журналов, которые были включены в резервные копии, хранящиеся на данном устройстве, выполните инструкцию RESTORE FILELISTONLY.

  2. RESTORE FILELISTONLY

FROM DISK ='T:\BACKUPS\ADVFULL.BAK'

Восстановление базы данных через интерфейс среды SQL Server Management Studio

Во многих случаях самый простой способ восстановить базу данных – это воспользоваться интерфейсом SQL Server Management Studio. SQL Server Management Studio использует историю создания резервных копий, которая хранится в базе данных msdb, чтобы показать нам, какой способ восстановления базы данных является наилучшим..

Реализуем сценарий восстановления базы данных через интерфейс среды SQL Server Management Studio

  1. Выполните следующие инструкции в окне запроса SQL Server Management Studio, чтобы имитировать сценарий, в котором для базы данных AdventurеWorks выбрана простая стратегия восстановления с использованием полной и разностной резервных копий. При необходимости измените пути к устройствам резервного копирования.

  2. ALTER DATABASE AdventureWorks

  3. SET RECOVERY SIMPLE;

  4. —Создаем полную резервную копию базы данных

  5. BACKUP DATABASE AdventureWorks

  6. TO DISK = "T:\BACKUPS\ADVFULL.BAK"

  7. WITH INIT;

  8. —Имитируем выполнение транзакции

  9. UPDATE AdventureWorks.Person.Contact

  10. SET EmailAddress = "kim@testbackup.com"

  11. WHERE ContactID=3;

  12. —Создаем разностную резервную копию

  13. BACKUP DATABASE AdventureWorks

  14. TO DISK = "T:\BACKUPS\ADVDIFF.BAK"

WITH INIT,Differential;

  1. Чтобы восстановить базу данных, откройте Object Explorer (Обозреватель объектов), выбрав команду Object Explorer (Обозреватель объектов) в меню View (Вид) или нажав клавишу F8.

  2. В дереве объектов разверните экземпляр SQL Server, откройте папку Databases (Базы данных) и щелкните правой кнопкой мыши на базе данных AdventurеWorks. В контекстном меню выберите команды Tasks, Restore, Database (Задачи, Восстановить, База данных).

  3. В открывшемся диалоговом окне Restore Database (Восстановление базы данных) вы увидите, что самые последние наборы резервных копий уже выбраны для восстановления, как показано на рис. 5.1. Чтобы завершить восстановление, просто нажмите кнопку OK.

Примечание. Убедитесь, что с базой данных AdventurеWorks не открыто ни одного соединения, поскольку в процессе восстановления соединения с базой данных не разрешены.

увеличить изображение Рис. 5.1.  Диалоговое окно Восстановление базы данных

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

  2. Откройте окно New Query (Новый запрос) и проверьте успешность восстановления данных из обеих резервных копий, для чего введите и выполните следующий код:

  3. USE AdventureWorks;

  4. GO

  5. SELECT EmailAddress

  6. FROM Person.Contact

WHERE ContactID =3;

В панели результатов должно отобразиться kim@testbackup.com.

Примечание. Как видите, нет необходимости в удалении базы данных, которую вы хотите восстановить. Процесс восстановления автоматически удаляет эту базу данных на первом этапе.

Восстановление базы данных при простой стратегии резервного копирования с использованием T-SQL

Представьте себе, что вы создали резервную копию, описанную в предыдущем примере. Чтобы восстановить базу данных при помощи T-SQL, используется инструкция RESTORE DATABASE. Синтаксис этой инструкции аналогичен инструкции BACKUP. Необходимо указать имя базы данных и путь к устройству резервного копирования.

Восстанавливаем данные из полной резервной копии при помощи инструкций T-SQL

  1. В окне SQL Server Management Studio откройте окно New Query (Новый запрос).

  2. Чтобы восстановить базу данных AdventurеWorks, ведите и выполните следующую инструкцию RESTORE DATABASE. Как всегда, убедитесь, что при выполнении запросов с базой данных не установлено ни одного соединения.

  3. USE MASTER

  4. GO

  5. RESTORE DATABASE AdventureWorks

FROM DISK='T:\BACKUPS\ADVFULL.BAK'

  1. Выполните следующий запрос: Теперь результат должен содержать kim2@adventureworks.com, поскольку данное обновление произошло после создания полной резервной копии.

  2. SELECT EmailAddress

  3. FROM AdventureWorks.Person.Contact

WHERE ContactID = 3

В процессе этой процедуры восстанавливаются только данные полной резервной копии. После восстановления база данных автоматически переводится в рабочий режим, возвращаясь к исходным параметрам. Если нужно также применить разностную резервную копию, необходимо сообщить SQL Server о том, что не следует переводить базу данных в рабочий режим до завершения полного восстановления, поскольку это сделает невозможным восстановление данных из разностной резервной копии. Для этого используется параметр NORECOVERY. Параметр NORECOVERY должен присутствовать во всех инструкциях RESTORE, за исключением последней в цикле восстановления. В следующем примере мы воспользуемся параметром NORECOVERY при восстановлении данных из полной и разностной резервных копий, выполненных ранее.

Восстанавливаем данные из разностных резервных копий при помощи инструкций T-SQL

  1. В окне SQL Server Management Studio откройте окно New Query (Новый запрос).

  2. Чтобы восстановить базу данных AdventurеWorks с использованием параметра NORECOVERY, ведите и выполните следующую инструкцию RESTORE DATABASE.

  3. USE MASTER

  4. GO

  5. RESTORE DATABASE AdventureWorks

  6. FROM DISK='T:\BACKUPS\ADVFULL.BAK'

WITH NORECOVERY

  1. Чтобы восстановить данные из разностной копии, ведите и выполните следующую инструкцию RESTORE DATABASE.

  2. USE MASTER

  3. GO

  4. RESTORE DATABASE AdventureWorks

FROM DISK='T:\BACKUPS\ADVDIFF.BAK'

  1. Выполните следующий запрос: Результатом должно стать значение kim@testbackup.com. Поскольку это обновление было выполнено между созданием полной и разностной резервных копий, можно быть уверенным в том, что восстановление данных из разностной резервной копии прошло успешно.

  2. SELECT EmailAddress

  3. FROM AdventureWorks.Person.Contact

WHERE ContactID = 3

Восстановление базы данных при полной стратегии резервного копирования с использованием T-SQL

В полной стратегии мы имеем комбинацию полной резервной копии и резервных копий журнала транзакций. Далее речь пойдет о восстановлении данных из этих резервных копий при помощи инструкций T-SQL.

Восстанавливаем данные из полной резервной копии и резервных копий журнала транзакций

  1. Для создания резервных копий базы данных AdventureWorks выполните следующий код. Этот код также обновит некоторые данные; данное обстоятельство можно использовать для проверки успешности восстановления.

  2. ALTER DATABASE AdventureWorks

  3. SET RECOVERY FULL;

  4. —Создаем полную резервную копию базы данных

  5. BACKUP DATABASE AdventureWorks

  6. TO DISK = "T:\BACKUPS\ADVFULL.BAK"

  7. WITH INIT;

  8. —Имитируем выполнение транзакции

  9. UPDATE AdventureWorks.Person.Contact

  10. SET EmailAddress = "AfterFull@test.com"

  11. WHERE ContactID=3;

  12. —Создаем резервную копию журнала транзакций

  13. BACKUP LOG AdventureWorks

  14. TO DISK = "T:\BACKUPS\ADVLOG1.BAK"

  15. WITH INIT;

  16. —Имитируем выполнение транзакции

  17. UPDATE AdventureWorks.Person.Contact

  18. SET EmailAddress = "AfterLog@test.com"

WHERE ContactID=3;

  1. Теперь представим себе, что файл базы данных AdventurеWorks поврежден. Как было рассмотрено выше, несмотря на это, можно создать резервную копию журнала транзакций, чтобы зафиксировать последние записи, которые содержат транзакции, завершенные после создания последней резервной копии журнала транзакций. Для этого следует воспользоваться особым параметром NO_TRUNCATE.

  2. —Выполняем резервное копирование последних записей журнала транзакций

  3. BACKUP LOG AdventureWorks

  4. TO DISK = "T:\BACKUPS\ADVLOG2.BAK"

WITH INIT, NO_TRUNCATE;

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

  1. После того, как резервная копия журнала будет создана, можно использовать инструкцию RESTORE, чтобы сначала выполнить восстановление данных из полной резервной копии, а затем из двух резервных копий журнала транзакций. Как и для разностных резервных копий для всех операций восстановления за исключением последней используется параметр NORECOVERY. Журнал транзакций восстанавливается при помощи инструкции RESTORE LOG.

  2. — Переключаемся на базу данных master db

  3. USE master

  4. GO

  5. — Восстанавливаем данные из полной резервной копии

  6. RESTORE DATABASE AdventureWorks

  7. FROM DISK='T:\BACKUPS\ADVFULL.BAK'

  8. WITH REPLACE, NORECOVERY;

  9. — Восстанавливаем данные из первой резервной копии журнала транзакций

  10. RESTORE LOG AdventureWorks

  11. FROM DISK = "T:\BACKUPS\ADVLOG1.BAK"

  12. WITH NORECOVERY;

  13. — Восстанавливаем данные из второй резервной копии журнала транзакций

  14. RESTORE LOG AdventureWorks

FROM DISK = "T:\BACKUPS\ADVLOG2.BAK";

Параметр REPLACE в инструкции RESTORE DATABASE указывает SQL Server на то, что следует пропустить проверку безопасности и заменить файлы базы данных без дальнейших запросов.

  1. Выполните следующий запрос: В результате мы должны получить AfterLog@test.com, это показывает, что все транзакции были применены успешно.

  2. SELECT EmailAddress

  3. FROM AdventureWorks.Person.Contact

WHERE ContactID = 3

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

Системные базы данных 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.

  2. —База данных MASTER

  3. BACKUP DATABASE MASTER

  4. TO DISK = "T:\BACKUPS\master.bak"

  5. WITH INIT

  6. —База данных MSDB

  7. BACKUP DATABASE MSDB

  8. TO DISK = "T:\BACKUPS\msdb.bak"

  9. WITH INIT

  10. —База данных MODEL

  11. BACKUP DATABASE MODEL

  12. TO DISK = "T:\BACKUPS\model.bak"

WITH INIT

  1. Закройте SQL Server Management Studio и все остальные программы, которые установили соединение с SQL Server.

  2. В меню Start (Пуск) выберите All Programs,. Microsoft SQL Server 2005, Configuration Tools, SQL Server Configuration Manager (Все программы, Microsoft SQL Server 2005, Средства настройки, Диспетчер конфигурации SQL Server).

  3. В окне SQL Server Configuration Manager (Диспетчер конфигурации SQL Server) щелкните левой кнопкой мыши элемент SQL Server 2005 Services (Службы SQL Server 2005) в левой панели. При этом в правой панели отображаются все службы SQL Server. Остановите все службы, щелкнув правой кнопкой мыши на каждой из них и выбрав из контекстного меню команду Stop item (Остановить). Запомните, какие службы вы остановили; позже их надо будет запустить. После остановки всех служб окно программы будет выглядеть следующим образом:

увеличить изображение

  1. Откройте командную строку; для этого в меню Start (Пуск) выберите команду Run (Выполнить), введите cmd и нажмите кнопку ОК.

  2. Перейдите в папку binn в установочном каталоге SQL Server при помощи следующей команды: В этой команде указан путь, который используется программой установки SQL Server по умолчанию. Введите всю команду одной строкой (здесь перенос выполнен для того, чтобы команда уместилась в границы страницы), а затем нажмите клавишу Enter.

C:\Documents and Settings\Administrator>cd "\Program Files\ Microsoft SQL Server\MSSQL.1\MSSQL\binn"

  1. Запустите SQL Server в однопользовательском администраторском режиме, указав в командной строке параметр -m, как показано в следующей команде. Введите эту команду и нажмите клавишу Enter.

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn>sqlservr –m

  1. Не закрывая это окно командной строки, запустите еще один экземпляр командной строки, повторив действия, описанные в пункте 5.

  2. В этом новом окне командной строки введите sqlcmd -E, чтобы установить соединение с SQL Server.

  3. Выполните восстановление базы данных master из командной строки sqlcmd при помощи следующей инструкции T-SQL. При вводе инструкции при переходе на новую строку нажимайте клавишу Enter. После того, как вы введете инструкцию GO и нажмете клавишу Enter, будет выполнена вся инструкция.

  4. RESTORE DATABASE master

  5. FROM DISK ='T:\BACKUPS\master.bak';

GO

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

увеличить изображение

  1. Перейдите в первое окно командной строки. SQL Server автоматически завершит работу. Теперь можно закрыть оба окна командной строки.

  2. Переключитесь на 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.

  3. —База данных MSDB

  4. RESTORE DATABASE MSDB

  5. FROM DISK = "T:\BACKUPS\msdb.bak"

  6. —База данных MODEL

  7. RESTORE DATABASE MODEL

  8. FROM DISK = "T:\BACKUPS\model.bak"

WITH REPLACE

  1. Перейдите в 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 (Мастер планов обслуживания) и следуйте рекомендациям мастера.

Соседние файлы в предмете Безопасность систем баз данных