Упражнение №3: Выполнение разрозненного резервного копирования и восстановления.
Задача №1: Создание скриптов проекта SQL Server Management Studio.
В меню File нажмите New | Project
В диалоговом окне введите информацию, содержащуюся в таблице, которая приведена ниже:
Property
Value
Name
AW_Piecemeal
Location
E:\SQL Server Labfiles\6231A\ Mod03\Labfiles
Create directory for solution
Очистить checkbox
В меню Project нажмите New Query
Откроется диалоговое окно Connect to Database Engine, нажмите Connect
В Solution Explorer, нажмите правой кнопкой на SQLQuery1.sql и затем нажмите Rename. ВведитеPiecemealBackups.sql и нажмитеENTER
Задача №2: Создайте БД и изучите структуру
В меню FileнажмитеOpen|File
Перейдите E:\SQL Server Labfiles\6231A\Mod03\Labfiles и затем нажмите Open
Проверьте пути до места расположения файлов
Нажмите Execute
В ObjectExplorer, нажмите правой кнопкой наDatabasesи затем нажмитеRefresh
В ObjectExplorer, щёлкните правой кнопкой по БДAdventureWorks2008R2, а затем нажмитеProperties
Откроется диалоговое окно Database Properties – AdventureWorksTest. На панелиSelect a page нажмитеFilegroups
{ Три файловые группы: PRIMARY, DINAMIC_DATA и STATIC_DATA }
На панели Select a page нажмите Options
Проверьте что модель восстановлении полная ( Recoverymodel–Full)
Нажмите OK
Проверьте таблицы и файловые группы в БД AdventureWorkTest
В меню FileнажмитеOpen|File
Перейдите в E:\SQL Server Labfiles\6231A\Mod03\Labfiles\ListTablesAndFilegroups и затем нажмите Open
Нажмите Execute
На панели результатов, Вы должны увидеть таблицы CustomersиStateнаходятся вPRIMARY,DYNAMIC_DATAиSTATIC_DATAфайл группах
Задача №3: Создание резервного копирования файловых групп для тестирования БД.
В SolutionExplorer, двойным нажатием нажмите наPiecemealBackups.sql
В файле PiecemealBackups.sqlвведите:
BACKUP DATABASE AdventureWorksTest READ_WRITE_FILEGROUPS TO DISK = ‘C:\AWBackups\AdventureWorksTest_Dynamic_Data.bak’
Нажмите Execute
На панели запросов введите текст приведённый ниже, выделите текст и нажмите Execute:
RESTORE FILELISTONLY FROM DISK = ‘C:\AWBackups\AdventureWorksTest_Dynamic_Data.bak’
На панели результатов (Results pane) проверьте что резервная копия содержит файловые группы DYNAMIC_DATA и PRIMARY, убедитесь, что каждое значение колонок BackupSizeInBytes и IsPresent относится к файловой группе
Создайте другую файловую группу резервного копирования БД AdventureWorksTestсодержащую файл группуSTATIC_DATA, введя следующее выражение в панель запросов:
BACKUP DATABASE AdventureWorksTest FILEGROUP = ‘Static_Data’ TO DISK = ‘C:\AWbackups\AdventureWorksTest_Static_data.bak’
Выберите текст, для резервного копирования файловой группы STATIC_DATAи нажмитеExecute
Введите следующий текст в панель запроса, выделите текст и нажмите Execute:
RESTORE FILELISTONLY FROM DISK = ‘C:\AWBackups\AdventureWorksTest_Static_Data.bak’
9. На панели результатов (Results pane) проверьте что резервная копия содержит файловые группы DYNAMIC_DATA и PRIMARY, убедитесь, что каждое значение колонок BackupSizeInBytes и IsPresent относится к файловой группе
В меню File нажмите Save PiecemealBackups.sql
Задача №4: Изменение некоторых данных и имитация сбоя БД.
В меню Project нажмите New Query
В QueryWindowвведите следующее и нажмитеExecute:
USE AdventureWorksTest;
UPDATE Customer SET FirstName = NULL
Закройте Query Window, выбрав Close из меню File
Нажмите No, когда предложат сохранить изменения
В ObjectExplorer, нажмите правой кнопкой на сервереNY-SQL-01 и затем нажмитеStop
Если появится диалоговое окно UserAccountControl, введите парольPa$$w0rdи нажмитеOK
Когда появится запрос на подтверждение, нажмите Yes
Если будет предложено остановить SQLServerAgent, нажмитеYes
Нажмите Пуск, правой кнопкой нажмите на Мой Компьютер и выберите Проводник
Перейдите в С:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
Переименуйте AW_DynamicData в AW_DynamicData_Broken
Когда появится запрос на подтверждение, нажмите Continue
Если появится диалоговое окно UserAccountControl, введите парольPa$$w0rdи нажмитеOK
Переименуйте AW_StaticData в AW_StaticData_Broken
Когда появится запрос на подтверждение, нажмите Continue
Если появится диалоговое окно UserAccountControl, введите парольPa$$w0rdи нажмитеOK
В MicrosoftSQLServerManagementStudio, нажмите правой кнопкой на NY-SQL-01 и нажмитеStart
Если появится диалоговое окно UserAccountControl, введите парольPa$$w0rdи нажмитеOK
Когда появится запрос на подтверждение, нажмите Yes
В SQLServerManagementStudio, нажмите правой кнопкой на БДAdventureWorksTestи нажмитеRefresh
Проверьте, что БД AdventureWorksTestнедоступна. Нажмите на БД правой кнопкой и нажмитеProperties. Откроется диалоговое окноError. НажмитеOK
Задача №5: Восстановление файловых групп PRIMARY и DYNAMIC_DATA
В Вашем проекте AW_Piecemeal, нажмите правой кнопкой на Queries в Solution Explorer и затем нажмите New Query
Назовите новый запрос PiecemealRestores.sql
В панели запроса PiecemealRestores, введите следующий код и затем нажмитеExecute:
BACKUP LOG AdventureWorksTest TO DISK = ‘C:\AWBackups\AdventureWorksTest_Active_Log.bak’ WITH NO_TRUNCATE, NORECOVERY
В меню File нажмите File | Save PiecemealRestores.sql
В панели запроса PiecemealRestores, введите следующий код. Выделите новый код и нажмитеExecute:
RESTORE DATABASE AdventureWorksTest FILEGROUP=’DYNAMIC_DATA’ FROM DISK = ‘C:\AWBackups\AdventureWorksTest_Dynamic_Data.bak’ WITH PARTIAL, NORECOVERY
В меню File нажмите File | Save PiecemealRestores.sql
В панели запроса PiecemealRestores, введите следующий код. Выделите новый код и нажмитеExecute:
RESTORE LOG AdventureWorksTest FROM DISK = ‘C:\AWBackups\AdventureWorksTest_Active_Log.bak’ WITH RECOVERY
В панели Object Explorer, нажмите правой кнопкойна БД AdventureWorksTest, а затем нажмите Refresh
Раскройте AdventureWorksTest | Tables | dbo.Customer
Нажмите правой кнопкой на dbo.Customer, затем нажмите SELECT Top 1000 Rows
Убедитесь, что колонка FirstNameявляется недоступной для записи
Нажмите правой кнопкой на dbo.Stateи выберитеSELECTTop1000Rows
Заметьте, что таблица не доступна.
Задача №6: Восстановление файловой группы STATIC_DATA.
В Solution Explorer, дважды нажмите на PiecemealRestores.sql
В панели запроса PiecemealRestores, введите следующий код в уже существующий. Выделите только что введенный код и нажмитеExecute:
RESTORE Database AdventureWorksTest FILEGROUP=’STATIC_DATA’ FROM DISK = ‘C:\AWBackups\AdventureWorksTest_Static_Data.bak’ WITH RECOVERY
В панели запроса PiecemealRestores, введите следующий код в уже существующий. Выделите только что введенный код и нажмитеExecute:
RESTORE LOG AdventureWorksTest FROM DISK = ‘C:\AWBackups\AdventureWorksTest_Active_Log.bak’ WITH RECOVERY
В меню File нажмите File | Save PiecemealResotes.sql
Нажмите правой кнопкой dbo.State и затем нажмите SELECT Top 1000 Rows
Обратите внимание, что данные в таблице восстановлены и доступны.