Главная страница

Практическая работа 5-6. Практическая работа 56 Резервное копирование и восстановление


Скачать 2.03 Mb.
НазваниеПрактическая работа 56 Резервное копирование и восстановление
Дата28.02.2023
Размер2.03 Mb.
Формат файлаdocx
Имя файлаПрактическая работа 5-6.docx
ТипПрактическая работа
#959750


Практическая работа 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. Сравнение размеров исходной базы данных и её резервной копии.

Program Files > Microsoft SQL Server >

MSSQL11.SQL EXPRESS

Имя

Размер

P AdventureWorks2012.Data.mdf

193 536 КБ

Рис. 50. Исходная база данных

Этот компьютер > RECOVERY (D:) > AW

Имя

Размер

_ AdventureWorks2012.bak

193 730 КБ

Рис. 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 % ’

?

’езультаты

_ j Сообщения




BusnessEnittylD Password Hash

PasswordSat

rowgud

Modified Date

1

I 1

і pbFwXWE99vobT6g»vPWFy93Htl)U/orTlY/afF01hccfM=

bE3XiWw=

329EACBE-C883-4F48-B8B6-17AA4627EFFF

2003-02-08 00:00:00 000

2

2

bawRV№ZQYQ05qF05Gz6VUhviZnraBReTTAGAjdm0=

EjJaC3U=

A4C82398-7466-4FE6-B9EE-CEC34D116F68

2002-02-24 00:00:00.000

3

3

8BUXr3DaO1 lyHC/i'OYzYmqNI lhTUn3CJMpdo'UCQ3iY=

wbPZqMw-

AC3F4536-BB2E-41C5-B 70D-4 54BE460C1BD

2001-12-05 00:00:00.000

4

4

SjLXoiarH9z»6A3*H*4QpB/IPRzrasA9q/5Wr^8-

PwSunQU=

B3FA4C24-2E96-477C-A923-0CB0F6FA5C80

2001-12-29 00:00:00.000

5

5

8FYdAY6gWuBsoCFdgOUbt$qOcWHf9TyaHIP7^aA«

qYhZRiM»

C4D13BCF-0209-44C7-AC67-6F817FDD7F16

2002-01-30 00:00:00.000

6

6

u5kbN5n84NRE1h/a*ktdRrXucjgnnfFewZC4g8ajHMa

a9GLUA=

BBE788B9-8D6D-4799-87A7-7B85B6BD67DC

2002-02-17 00:00:00.000

7

7

zSqedn8T8eq3nYHC4Lx4vMuxZaxfcDy4VwWnP2ZT6QA«

13mu8BA-

AFD3A20A-787B-4069-92DB-AEE666C02847

2003-03-05 00:00:00.000

8

8

s*FUV/ADIZzXBKpcbxe40AL2L*JmjLogJNYXXHvc1X4<-

FICpzTU-

4FE51В 60-130E-4209-9E67-28DC4D91446C

2003-01-23 00:00:00.000

9

9

fCvCTy3RwzA2LNhhhYUbT7erkb9Aj5wyM2q7ReHroV0«

FTcZMvQ-

99F4F320-F05D-4FA1 BB0O-81C9425422F3

2003-02-10 00:00:00.000

10

10

/8biMrxuAtETGeUoSrMQHBraHZ-*eU2z50J1Fhn6M"

K7dMpTY-

82F25F0C-5D75-4246-958A-B6DF67559DO9

2003-05-28 00:00.00.000

11

11

iaZ6ky76dbOG*OYD69,/4bm78,JHGXSeYbq>4Vgd15o-

wTGcQS-

3AF51C6F B835-4483-94B3-8F6FD30EFDA2

2004-12-29 00:00.00.000

12

12

l9HGCr^bwF3LYBn/3M/cOC2IHfg7nsa2

S0g9lDo-

FC239924-2C45-4BAD BBE7-26C74CAE7526

2002-01-04 00 00 00 000

13

13

3ZuoojogwBKrrtr«iHeqWoiZNCzp6N1abPoynijp*0*4«

STXWeXc-

80862E73-CD764E2E-AA80-26BD8476F736

2005-01-16 00:00:00 000

14

14

mKAJWzgDo12qro7ZI>Tr3oEmCxklV/c7*dYDRC58Vv4-

BpZwS8c-

23B6CB19 3E5B 4DA6-BB63 5EE931D22D4A

2005-01 -23 00.00.00 000

Рис. 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%

  • ? Результаты Сообщения



Business EnttylD

Password Hash

Password Sah

rowgud

ModfiedDate

1

L!..........................

; pbFwX'«VE99vobT6g»vPWFy93NtUU/o

bE3XWw-

329EA3BE-C883-4F48-B8B6-17AA4627EFFF

2003-02-08 00:0000.000

2

2

bawRVNrZQYQ05qF05Gz6VUhviZwqBReTTAGAxbO=

EjJaC3U-

A4C82398-74664FE6-89EE-CEC34D116F68

200202-24 00 0000000

3

3

8BUXrZfDqO1lyHCV/OYzYmqN1»TTUn3CJMpdxAX:Q3Y=

wt>PZqVw=

AC3F4536-BB2E-41C5-B70D-454BE460C1BD

2001-12-0500:0000.000

4

4

SjLXp-arHSIz*6AG*H-4QoB/'lPRxr3s/*9c|.'5Vifraf8=

PwSunQU*

B3FA4C24-2E96-477C-A923-0CB0F6FA5C80

2001-12-2900:00:00.000

5

5

8FYdAY6gWuBsgCFdgOlttjt8qOcWK9TyaHIP7*paA.

qYhZRiM-

C4D13BCFO209-44C7-AC67-6F817FDD7F16

2002-01-3000:0000.000

6

6

u9cbN5n84NRE1h/a*ktdRr)Gc]gm?F6wZC4g82i)HM«

a9GLUA-

BBE788B9-8O6D-4799-87A7-7B85B6BD67DC

2002-02-1700:00.00.000

7

7

zSqefh8T8eq3nYHC4Lx4vMuxZaxkDy< p=""> <>

13mu8BA=

AFD3A20A-787B-4069-92DB-AEE666C02847

2003-03-0500:0000.000

8

8

s-FUWADiZzXBKpcbxe4C>wL2uIJfnL02JNYXXHvc1X4<=

ACpzTU=

4FE51B60-130E-4209-9E67-28DC4D91446C

2003-01-2300:0000000

9

9

fCvCTy3RwzA2LNhhhYUsT’€rkb9Au5wyM2q7ReHroV(h

FTcZMvQ=

99F4F320-F05D-4FA1 -BBOO-81C9425422F3

200У02-10 00:0000000

10

10

/8btMnaj/

K7dMpTY-

82F25F0C-5D754246-952A-B6DF67559DO9

2003-05-28 00:00 00.000

11

11

iaZecy76dbOGM)Y06^4bm78UWGXSeYbcp4Vgd15o-

wTGoQ8.

3AF51C6F-B835-4483-94B3-8F6FD30EFDA2

2004-12-2900:00.00.000

12

12

!9HGCr3|bwF3LYBIVsH/cOC2IHfg7ns5t3ce5nWZ9Ko-

SOgStDo-

FC239924-2C45-4BAD-8BE7-26C74CAE7526

2002-01-04 000000.000

13

13

3ZuoojogwBKrmr-nHeq Wo«ZNCzp6N 1ab Poynp»0-^4=

S7XWeXc=

80862E73CD76-4E2E-AA80-26BD8476F736

200501-1600:0000000

14

14

mKAWzgDo12qro7ZDrw3o&nCxklWc7^YDRC58Vv4=

8pZw68c=

28B6CB19-3E58-4DA6-BB63-5EB981D22D4A

200501-2300:0000000

15

15

m5ES7VNdqeqa/s8^Cr3UK95GTrNPM4YhGwtJzS9c=

< p=""> <>

AE7E33BE-25CD-419C-9965-A3080864D3F8

200502-11 00:0000.000

16

16

0aeJoTn5hbyNfemp2qzlpGTP5uNte8NRPki9Ur3Znl8«

CT<±N«Q-

AE8D247F-C6D3-4842-B34C46061CE85303

200201-1300:0000.000

17

17

7OdV1zJ/Q0‘RaAgSo1KHZAFaUhN0>QqzL9gXrnpl58E-

nqdPuls-

FF714E7E-B0724F44-A63F-27380090A8E8

200102-1900:0000.000

18

18

•Six141JOOR«oosTOz1L7JfA79Clldo05d5uv»scXE=

9T5pzE=

0106C76D-A02648EA-A6F3-56EE3E837182

2005030300:0000.000

19

19

»NeFaMBZDuBHjM/JVI5RQmWC1t>Kw5O6H7LR8D/^oLXc=

9S8bK/nU=

2A41CB38-D36B-4A71-934D-44CBDO67DAB3

200503-10000000000

Рис. 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


написать администратору сайта