Упражнение. Восстановление данных путем восстановления базы данных SQL Azure
Пробные восстановления являются ключевым компонентом любой стратегии аварийного восстановления.
Вам следует ознакомиться с инструкциями по восстановлению резервной копии базы данных до точки во времени на случай, если в этом возникнет необходимость. Вы также хотите изучить, сколько времени занимает операция восстановления, ключевая часть вычисления возражения времени восстановления (RTO). Вы можете запланировать это время в руководстве для вашей организации.
Восстановленную базу данных можно рассматривать как замену исходной базы данных или же использовать как источник данных для обновления исходной базы данных. Хотя вы можете перезаписать и заменить базу данных в экземпляре SQL Server или Управляемый экземпляр SQL Azure, вы не можете перезаписать База данных SQL Azure с помощью восстановления.
Давайте создадим восстановление из автоматических резервных копий База данных SQL Azure.
Подтверждение активности резервных копий
Совет
Создание базы данных может занять до 15 минут после завершения первой успешной резервной копии.
Давайте рассмотрим резервные копии, которые azure SQL принимает для нас автоматически.
В Azure Cloud Shell выполните следующую команду PowerShell, чтобы задать для переменной значение экземпляра SQL Server:
$sqlserver=Get-AzSqlServer
Просмотрите доступные точки восстановления на основе резервных копий с помощью командлета
Get-AzSqlDatabaseRestorePoint
PowerShell:Get-AzSqlDatabaseRestorePoint ` -ResourceGroupName <rgn>[sandbox resource group name]</rgn> ` -DatabaseName sql-erp-db ` -ServerName $sqlserver.ServerName
Вы должны получить выходные данные, аналогичные следующему коду. Если команда не возвращает никакого значения, резервное копирование еще не запущено. Повторите эту команду через несколько минут.
ResourceGroupName : <rgn>[sandbox resource group name]</rgn> ServerName : erpserver-53903 DatabaseName : sql-erp-db Location : East US RestorePointType : CONTINUOUS RestorePointCreationDate : EarliestRestoreDate : 9/24/19 4:21:21 PM RestorePointLabel :
Значение
RestorePointType
равноCONTINUOUS
, что означает, что резервные копии создаются автоматически. ЗначениеEarliestRestoreDate
указывает метку времени первой резервной копии. Убедившись в выполнении резервного копирования, можно продолжить работу с упражнением.
Удаление таблицы из базы данных
Начнем с имитации ошибочного изменения базы данных.
В меню портала Azure или на домашней странице выберите Все ресурсы > erpserver-NNNN > Базы данных SQL, а затем выберите sql-erp-db.
Мы будем использовать редактор запросов T-SQL, встроенный в портал Azure. Выберите редактор запросов (предварительная версия) и войдите с помощью пользователя dbadmin и пароля, указанного для этой учетной записи. Следующие команды T-SQL также будут работать в SQL Server Management Studio или расширение mssql для Visual Studio Code или других средств запросов T-SQL.
Давайте уберем таблицу
Person
, созданную ранее. В новом окне запросов выполните приведенную ниже команду. Запишите время на часы.DROP TABLE Person
Чтобы проверить таблицы в базе данных, выберите Новый запрос. Затем в окне "Запрос 2 " выполните следующую команду, чтобы перечислить все таблицы в базе данных:
SELECT schema_name(t.schema_id) as schema_name, t.name as table_name FROM sys.tables AS t ORDER BY schema_name, table_name;
Вы увидите , что результаты не возвращаются, так как мы удалили таблицу
Person
.
Создание восстановления на определенный момент времени
Таблица Person
была ошибочно удалена. Давайте восстановим базу данных с предыдущим состоянием.
В меню портала Azure или на домашней странице выберите Все ресурсы, а затем базу данных sql-erp-db.
В верхней области страницы Обзор выберите Восстановить.
Перейдите на вкладку "Основы" на странице "Восстановление базы данных " с этими значениями, а затем нажмите кнопку "Проверить и создать". Здесь вы укажите новое имя базы данных для восстановленной версии базы данных.
Параметр Значение Выбрать источник Точка во времени Имя базы данных sql-erp-db-restored
Точка восстановления Выберите время перед удалением Person
таблицы, возможно, 10 минут назад.Сервер erpserver-xxxxx Want to use SQL elastic pool? (Нужно ли использовать эластичный пул баз данных SQL?) No Вычисления и хранение Default value Избыточность хранилища резервных копий Локально избыточное хранилище резервных копий Нажмите кнопку создания. Восстановление базы данных занимает несколько минут.
Просмотр восстановленной базы данных
Восстановленная база данных содержит таблицу Person
.
В меню портал Azure или на домашнейстранице выберите все ресурсы и выберите
sql-erp-db-restored
базу данных.Выберите редактор запросов (предварительная версия) и войдите с помощью пользователя dbadmin и пароля, указанного для этой учетной записи.
Чтобы проверить таблицы в базе данных, в окне запроса 1 выполните следующую команду:
SELECT schema_name(t.schema_id) as schema_name, t.name as table_name FROM sys.tables AS t ORDER BY schema_name, table_name;
База данных была восстановлена до состояния, в том числе
Person
таблицы.Убедитесь, что данные содержатся в таблице, выполнив следующую команду:
SELECT * FROM Person;
Вы должны увидеть введенные ранее данные.
Теперь вы узнали, как восстановить базу данных, если что-то непреднамеренное происходит с данными. Вы ознакомились с процессом восстановления. Теперь вы можете убедиться, что ваша организация правильно определила процедуры резервного копирования и восстановления.