Практическая работа 5-6. Практическая работа 56 Резервное копирование и восстановление
Скачать 2.03 Mb.
|
Практическая работа 5-6 «Резервное копирование и восстановление» Цель работы: изучить основные методы создания резервных копий баз данных и освоить методы их восстановления. Задание: 1. Подключить вашу базу данных 2. Осуществить полное резервное копирование базы данных (средствами Management Studio и с использованием SQL кода). 3. Определить размер файла резервной копии и сравнить его с размером исходной базы данных. 4. Внести изменения в базу данных. 5. Выполнить восстановление базы данных (средствами Management Studio и с использованием SQL кода). 6. Убедиться, что изменения из пункта 4 были отменены. 7. Выполнить разностное копирование базы данных (средствами Management Studio и с использованием SQL кода). 8. Выполнить пункты 4, 5, 6. 9. Выполнить резервное копирование журнала транзакций. 10. Произвести отказ системы (открыть файл базы данных текстовым редактором, удалить часть строк, сохранить изменения). 11. Убедиться в невозможности открыть базу данных. 12. Выполнить восстановление базы данных. 13. Убедиться, что база данных восстановлена. 14. Сделать отчет и вывод Пример выполнения практической работы Присоединение базы данных. Для выполнения работы необходимо скачать учебную базу данных AdventureWorks2012 и присоединить ее к Microsoft SQL Server 2012. Для этого выполняется следующая последовательность действий: Обозреватель объектов Базы данных —> Присоединить. Рис. 46. Присоединение базы данных В полученном окне, показанном на рис. 46, нажать «Добавить» и указать путь к файлу базы данных. После этого база данных AdventureWorks2012 будет присоединена, ее можно найти в каталоге «Базы данных» окна «Обозреватель объектов» (рис. 47). Обозреватель объектов ж ? X Соединить ’ - /' fg*| S |j$ HPPCXSQLEXPRESS (SQL Server 11.0.3128 В ГЗ Базы данных i+l ГД Системные базы данных | Advent ureWorks2012| ;__I Диаграммы баз данных В ? Таблицы ЕВ О Представления 1+1 ГЗ Синонимы Э ҐЗ Программирование В ГЗ Компонент Service Broker В ГЗ Хранилище В ? Безопасность В Г 1 Безопасность 1+1 Q Объекты сервера В ? Репликация В Г I Управление Рис. 47. Присоединенная база данных 2. Полное резервное копирование базы данных выполняется при помощи команды BACKUP DATABASE с указанием пути сохранения резервной копии, а также с использованием опции INIT, которая указывает, что нужно перезаписать все существующие данные на носителе, за исключением заголовка носителя, если таковой имеется. Листинг 9 Полное резервное копирование базы данных BACKUP DATEBASE [AdventureWorks2012] ТО DISK = 'D:AWAdventureWorks2012.bak' WITH INIT; Для того чтобы произвести полное резервное копирование базы данных средствами Management Studio, необходимо в Обозревателе объектов выбрать узел Объекты сервера Создать —> Устройство резервного копирования и в следующем окне ввести название и путь к папке, куда будет производиться резервное копирование (рис. 48). Рис. 48. Создание пути для хранения резервной копии После создания пути можно выполнять копирование. Для этого необходимо в Обозревателе объектов нажать правой кнопкой на База данных Задачи Создать резервную копию. В появившемся окне (рис. 49) необходимо указать тип резервного копирования (в данном случае - полное), название копии, описание, а также срок действия резервной копии. Рис. 49. Полное резервное копирование средствами Management Studio 3. Сравнение размеров исходной базы данных и её резервной копии.
Рис. 50. Исходная база данных Этот компьютер > RECOVERY (D:) > AW
Рис. 51. Резервная копия базы данных Изменений в базе данных не происходило, но размер резервной копии больше, чем размер исходной базы данных. Это связано с тем, что в резервной копии хранятся не только данные, ио и служебная информация. 4. Внесение изменений в базу данных. Внесём изменения в базу путем удаления таблицы Person. Pass word: База данных^ Таблицы —> Удалить. Рис. 52. Удаление произвольной таблицы 5. Восстановление базы данных Рассмотрим возможность восстановления базы данных двумя способами. Первый способ: восстановление при помощи T-SQL-кода. Восстановление происходит при использовании команды RESTORE с указанием места, откуда будет браться резервная копия повреждённой базы данных, а также при помощи опции REPLACE, которая указывает на замену существующей базы данных данными из резервной копии. Листинг 10 Восстановление базы данных RESTORE DATEBASE [AdventureWorks2012] FROM DISK = 'C:Program FilesMicrosoft SQL ServerMSSQLll.SQLEXPRESS MSSQLBackupAdventureWorks2012.bak' WITH REPLACE; Второй способ: восстановление базы данных с помощью среды Management Studio. Для этого в Обозревателе объектов необходимо нажать правой кнопкой на Базы данных Задачи Восстановить —> Базу данных. В появившемся окне, представленном на рис. 53, необходимо выбрать базу для восстановления и резервную копию, откуда будет происходить восстановление. Рис. 53. Восстановление базы данных средствами Management Studio При необходимости во вкладке Параметры можно указать необходимые параметры восстановления. Пример выбранных параметров показан на рис. 54. Рис. 54. Выбор необходимых параметров восстановления 6. Проверка успешности восстановления. Теперь для того чтобы проверить, что восставновление произведено и что внесенные изменения отменены, можно выполнить запрос к ранее удаленной таблице Person.Password. SQLQueryl.sql - НР...2 (HPPCXuser (52))’ X | FUSE AdventureWorks2012 SELECT * FROM Person.Password:) 100 % ’
Рис. 55. Выполнение запроса к ранее удаленной таблице Так как запрос выполнен, можно сделать вывод, что восстановление произведено успешно. 7. Разностное резервное копирование. Разностное резервное копирование выполняется с помощью добавления в Transact-SQL код опции DIFFERENTIAL, которая является признаком разностного резервного копирования. Листинг 11 Разностное резервное копирование BACKUP DATEBASE [AdventureWorks2012] ТО DISK = 'D:AWAdventureWorks2012.bak' WITH INIT,DIFFERENTIAL; Разностное копирование можно выполнить при помощи среды Managment Studio. Для этого в Обозревателе объектов нажать правой кнопкой мыши на Базы данных Задачи Создать резервную копию и в окне Тип резервной копии выбрать «Разностная» (рис. 56). Выбор страницы Справка Общие Параметры Источник База данных: Adventure WorksZOI 2 ПРОСТАЯ Разностная Модель восстановления- Тип резервной копии: j Только резервное копи Компонент резервного копирования: (•) База данных О Файлы и Файловые группы: |1 Резервный набор данных Имя: AdventureWorks2012-Pa3HOCTHafl База данных Резервное] Описание Срок действия резервного набора данных истекает: (•) Через: 0_____________________Щ дн О Подате: OS.10.2016 Назначение Создать резервную копию на- (•) Диск Содержимое Соединение Сервер: HPPCSQLEXPRESS Соединение- НРРСЧізег Просмотреть свойства ?С?Д1НЄНИЯ Ход в ы пол нения Готово Рис. 56. Разностное резервное копирование с использованием Management Studio 8. Теперь внесём изменение в базу данных путем повторного удаления таблицы Person.Password (п. 4). Далее произведём восстановление базы данных аналогичными способами, описанными в п. 5. После этого для проверки успешного восстановления можно выполнить запрос к ранее удаленной таблице. SQLQueryl.sql - НР...2 (HPPCXuser (52))* X | -USE AdventureWorks2012 SELECT ' FROM Person.Password:| 100% • ? Результаты Сообщения
Рис. 57. Запрос на выборку из таблицы Видно, что восстановление прошло успешно. 9. Резервное копирование журнала транзакций. Резервное копирование журнала транзакций выполняется при помощи команды BACKUP LOG и опции NO_TRUNCATE, которая позволяет восстановить данные вплоть до точки сбоя в базе данных. Листинг 12 Резервное копирование журнала транзакций BACKUP LOG [AdventureWorks2012] ТО DISK = 'D:AWAdventureWorks2012_log.bak' WITH NO_TRUNCATE; SQLQueryl.sql - HP...2 (HPPCXuser (52))* - BACKUP _0G [AdventureWorks2012] TO DISK = 'D:AKAdventureicorks2012_log.bak’ WITH NO_TRUNCATE; 100 % - Сообщения Обработано 3 страниц для базы данных ’’AdventureWorks2012", файл "AdventureWorks2012_Log" для файла 1. BACKUP LOG успешно обработал 3 страниц за 0.135 секунд (0.173 МБ/сек). Рис. 58. Резервное копирование журнала транзакций 10. Восстановление базы данных при отказе системы. Имитируется отказ системы. Для этого открывается файл базы данных через текстовый редактор и удаляются произвольные строки. 3 AdventureWorks2012_Data.mdf— Блокнот — ? X Файл Праско Формат Вид С праска ?lfl О f‘Va3MpMlw00MATf_sa* 4> 0 9! , Ч, ий LD Є KDj’TK)6GexflBw4Ii4sn» 4> fl ffl , м, ]1 Щ 0 нз-'ОСУОЬн/'ЮРШГ+зп» 4> О I , и, 2М L0 О ЗЛ-0°шКР»|134>1 T4s 4> о ш , JO Ш 0 bfflBflObiObGJcflsitf 4> 8 00 , В- ±0 Ц) О 0Р8Ш1.,АВ€(#6?( >ї ПАСы# 4> 0 00 , 0- yN Lfl D ЕіиьСО]НЇ--оОН»5п* 4> 0 00 , О- W Lfl В lHT)ryLE$Lfcb€gxIsn* 4> О Ш , - >Р Lfl 0 HMApORbGSF©FI В ВО , /- • LH О Д ЬУ“ХбВ©€дХЮГ ,зя» 4> 0 00 , D- С< L0 0 Са1Х[reNi/ьЙJО;Г)| зп» 4> О , У- VC Lfl UE-vfl]«A?Ml++<0Hsn* 4> В ВО , I- yfl Lfl ьЗОЕХрТСЛп-БёОзп» 4> LF5G5Z«3bsa#? 4> 0 Щ , f- fD Lfl D Г;3А>УР«Ч:в$1ЬзяГ 4> 0 ІЕ , g- й LU О ] AT4]xt6M6p»(J]n-»sn» 4> BOD, I- B8 Lfl 0 ч0у$ГЁ$МРёЬО1лкзг* 4> 0 Ш , } pfl Lfl 0 ejrGxDCp©'<§sDfsn» 4> ОШ, d? Lfl D c593U*ADE-H>8j+36sn» 4> ]]],§- 08 Lfl fl М=БЕЩ;мПє<ж(:РГзгаН: 4> fl Ш , Ё- ГК Lfl 0 F>khp-3FsA< „и/ Jrsntf 4> 0B1 , S- ё$ Lg 0 KN}EF|NBuOEhR{4Csn» 4> 0 ffl , s- m Lfl fl чэЗД ІЬНгЗеВуЬЄСфКзп» 4> в ш , У- У6 Lfl fl ЄННРс6фО]>;-ОР5(* 4> 0 CD , Ф- ID Lfl QKUUfl(U8§3a._"90Ksn» 4> 0 И , й- 67 Lfl 0;DoAlqE-C'M*e4sn* DL Lfl fl pMMl“^0ht3lbCh" зп* 4> В 00 , я- Y% Lfl 0 <="" p=""> .,шпСыъ69за» 4> 0 Ш , Q. QB Lfl fl y iebpbN-tMACOsdF 4>| И/ЬУЭОяОВУбЬ-ы хИзт№ 4> ОШ,!. y8 Lfl В СМсфЕк СЭДП:4гЫ”зт№ 4> 0Ш,". / Lfl fl B*flQ.uT»G«flyXY3sn* 4> fl flfl , 7. ]0 Lfl fl *€ndy/'HDflIAH]Psntf 4> fl I OB , L. rQ Lfl О Р-Р*ямЁкА±К[и]ф5зтМ! 4> fl flfl , M. #, Lfl 0 /№9Nh | oFJWF f [Kir sn» 4> fl I , b. e: LO 0 ЧГеуОШ§1 -ЁО&чУ-зп» 4> fl Ш , c. yD Lfl 0 у©ї±Рі ЫкТхЫмок,sm№ 4> В Ш , x. ±G Lfl л]=5ЬркМПл>к°Гг+х-злЛ: 4> 0 DD , y. BI ЯдС4)jOKi»7ynMxsn» 4> 0 flfl , Ь. V Lfl I@0u*yHEjSn© .flsrWT 4> 0 00 Ї0 Lfl 0 РЗҐ, .з>Св4»(тЬ40нзп» 4> D Ш , и. xH Lfl 0 АЯОРРъКrb0gxXHflsn» 4> BflJIsntf 4> 0 Ш , °. Ґ0 Lfl ,]sXwwsAu)2T’EOsrrt? 4> 0 Ш , ±. 3) Lfl D Рис. 59. Удаление части базы данных 11. При попытке открытия повреждённой базы данных появляется ошибка, показанная на рис. 60. Microsoft SQL Server Management Studio He удалось получить данные no этому запросу. (Microsoft.SqISen/er.ManagementSdk.Sfc) Дополнительные сведения: SQL Server обнаружил логическую ошибку ввода-вывода, связанную с согласованностью: неправильная контрольная сумма (ожидаемая: 0xb4b25f61; фактическая: 0x5af26545). Она произошла при прочитать страницы (1:0) в базе данных с идентификатором 5 по смещению 0000000000000000 файла ‘ C:Program FilesMicrosoft SQL ServeAMSSQLl 1 .SQLEXPRESSMSSQLDATAAdventureWorks2012_Data.mdf. Дополнительные сведения см. в журнале ошибок SQL Server и журнале системных событий. Это серьезная ошибка, которая угрожает целостности базы данных и должна быть немедленно исправлена. Выполните полную проверку базы данных на согласованность (DBCC CHECKDB). Эта ошибка может быть вызвана многими причинами; дополнительные сведения см. в электронной документации по SQL Server. (Microsoft SQL Server, ошибка: 824) __OK Рис. 60. Ошибка при попытке доступа к базе данных 12. Рассмотрим возможность восстановления базы данных двумя способами. Первый способ: восстановление при помощи Transact-SQL кода. Листинг 13 Резервное копирование журнала транзакций RESTORE DATEBASE [AdventureWorks2012] FROM DISK = 'D:AWAdventureWorks2012.bak' WITH REPLACE; SQLQueryLsql - HP...er (HPPCXuser (52))* X | E RESTORE DATABASE [AdventureWcrks2012] FROM DISK = 'D:AWAdventureWorks2012.bak’ WITH REPLACE; 100 % ’ _? Сообщения Обработано 23944 страниц для базы данных "AdventureWorks2012", файл "AdventureWorks2012_Data" для файла 1. Обработано 2 страниц для базы данных "AdventureWorks2012", файл ”AdventureWorks2012_Log" для файла 1. RESTORE DATABASE успешно обработал 23946 страниц за 10.258 секунд (18.236 МБ/сек). Рис. 61. Восстановление базы данных T-SQL-кодом Второй способ: восстановление базы данных с помощью среды Management Studio. Рис. 62. Восстановление базы в среде Management Studio |