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

Потерянные, поврежденные случайно, измененные файлы можно восстановить, воспользовавшись их резервными копиями. Также можно восстановить отдельные файлы, несколько файлов или все файлы, резервные копии которых созданы.

Восстановление из резервной копии на другом компьютере

Можно восстановить файлы из резервной копии, созданной на другом компьютере с операционной системой не ниже Windows Vista.

  1. Откройте окно «Архивация и восстановление».
  2. Нажмите кнопку Выбрать другую резервную копию, из которой восстановить файлы и выполните указанные в мастере.

Поиск файлов, восстановленных из резервной копии

Если восстановить файлы из резервной копии, созданной на другом компьютере, файлы будут восстановлены в папке в разделе имени пользователя, в которой была создана резервная копия. Если имена пользователей разные, нужно перейти к папке, в которой восстанавливаются файлы.

Например, если на компьютере, на котором резервной копии, имя пользователя Анна, но на компьютере, на котором хранится резервная копия, имя пользователя Ганн, восстановленные файлы будут сохранены в папке Анна.

Чтобы найти восстановленные файлы, выполните следующие действия:

  1. Откройте папку «Компьютер».
  2. Дважды щелкните диск, на котором сохранены файлы, например C:\
  3. Дважды щелкните папку Пользователи;
  4. Появится папка для каждой учетной записи.
  5. Дважды щелкните папку с именем пользователя, в которой была создана резервная копия.
  6. Восстановленные файлы будут находиться в разных папках, в зависимости от их исходного расположения.

Типы восстановления Active Directory: полномочное и неполномочное

Есть два типа восстановления Active Directory DS из резервной копии, в которых нужно четко разобраться перед началом восстановления:

    Authoritative Restore (полномочное или авторитативное восстановление) – после восстановления объектов AD выполняется репликация с восстановленного DC на все остальные контроллеры в домене. Этот тип восстановления используется в сценариях, когда упал единственный DC или все DC одновременно (например, в результате атаки шифровальщика или вируса), или когда по домену реплицировалась поврежденная база В этом режиме у всех восстановленных объектов AD значение USN (Update Sequence Number) увеличивается на 100000. Таким образом восстановленные объекты будут восприняты всеми DC как более новые и будут реплицированы по домену. Полномочный способ восстановления нужно использовать очень аккуратно.

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

Часто администраторы баз данных в процессе администрирования СУБД сталкиваются с необходимостью восстановления испорченных данных.

Читайте также:  Как установить Windows 10 с флешки (USB-диска)

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

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

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

1. Восстановление данных из резервной копии в SQL Server

Одним из самых важных правил для любого системного администратора является необходимость регулярного резервного копирования данных программ. В MS SQL Server для резервного копирования есть штатная команда Задачи / Создать резервную копию. Остается только выбрать расположение, куда MS SQL Server создаст резевную копию, а дальше программа все сделает сама.

Для восстановления сохраненных данных также существует штатная команда Задачи / Восстановить / База данных. Достаточно просто указать имя файла резервной копии, а остальную часть процесса восстановления данных программа возьмет на себя.

Однако у данного отличного, на первый взгляд, способа резервного копирования и восстановления данных есть свои плюсы и минусы.

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

Во-вторых, данные возможно восстановить только целиком, то есть можно восстановить полностью одну базу данных, но не отдельную таблицу в базе данных.

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

2. Восстановление данных в отдельной таблице базы данных в SQL Server

Способ № 1. Первый способ предполагает предварительное восстановление данных из имеющейся резервной копии в базу-клон исходной базы данных.

Для этого нужно создать новую базу данных (если имя исходной базы данных Base01, базу-клон можно назвать, например, Base02) и восстановить в нее данные из резервной копии. Далее уже можно написать скрипт для восстановления данных. Отличие скрипта от обычного написания будет в том, что при указании имени таблицы необходимо будет указать также и имя базы данных. Например,

Update set = from join on = where…

Способ №2. Допустим, что исходные неиспорченные данные есть на другом резервном (тестовом) сервере. Конечно, целесообразнее их взять оттуда, не прибегая к созданию базы-клона, в которую необходимо восстановить данные из резервной копии, так как это в случае большого объема базы данных (современные базы данных имеют размеры более терабайта) займет много времени. Сделать это можно опять-таки двумя способами.

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

Способ А. Для этого способа потребуется вновь создать базу-клон. Только вместо восстановления данных из резервной копии более быстрым решением будет использование операции экспорта с резервного сервера с неповрежденными данными.

Читайте также:  Создание виртуальной машины с Hyper-V Server

Для экспорта в SQL Server существует команда Задачи / Экспортировать данные. При экспорте потребуется указать имя сервера и базы данных, из которых копируются данные, и имя сервера и базы данных, в которые копируются данные, а также указать перечень копируемых таблиц. Копирование отдельных таблиц займет меньше времени, чем восстановление базы данных из копии целиком.

А далее достаточно для восстановления данных в отдельной таблице достаточно выполнить все ту же команду:

Update set = from join on = where…

Способ Б. При применении этого способа не потребуется ни базы клона, ни восстановления из копии, ни экспорта данных отдельной таблицы. Восстановление данных будет идти напрямую из отдельной таблицы другого сервера.

Для этого способа потребуется предварительно создать линк между серверами.

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

Линк можно создать через интерфейс SQL Server (команда Создать / Связанный сервер в папке Объекты сервера) или с помощью скриптов ниже.

exec sp_addlinkedserver @server='Имя_сервера', @srvproduct='SQL Server'

exec sp_addlinkedsrvlogin 'Имя_сервера', 'false', null, 'sa', 'Пароль_для_sa'

После создания линка можно выбирать данные с другого сервера командой:

SELECT top 10 * FROM [Имя_сервера]

Для восстановления данных используем уже знакомую, но немного видоизмененную команду:

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

Update Table01 set = from [Имя_сервера] A join Table01 on = where…

При использовании этого способа учитывайте, что к таблице командой вида [Имя_сервера] можно обратиться только один раз, а потом можно использовать только псевдоним в виде, например, букв A или B как в примере выше.

На этом все. Надеюсь статья была информативной и полезной для практического применения в администрировании баз данных на основе SQL Server.

Как восстановить весь аккаунт, сайт или БД

Во вкладке Резервные копии вы можете восстановить резервную копию:

Для этого напротив домена нажмите Восстановить копию. На открывшейся вкладке подтвердите действие, нажав Ок:

Как восстановить весь аккаунт, сайт или БД

Важно: pезервные копии данных собираются ежедневно и формируются в ночное время. То есть ночью создаются резервные копии сайта на

Перед восстановлением базы данных из резервной копии убедитесь, что нужная база создана в панели управления. Система резервного копирования не сможет восстановить бэкап базы данных, если её нет на хостинге. Если базы данных нет, создайте её по инструкции: Как создать базу данных. Достаточно создать пустую БД.

Заблуждения экспертов

Следование советам, которые можно прочитать в Интернете на тему настройки резервного копирования в SQL, может стать источником проблем с вашими данными. Давайте применим полученные из этой статьи знания к советам, которые даются некоторыми экспертами:

Заблуждения экспертов

Для часто обновляемых баз предлагается делать Full backup по воскресеньям, а TLog backup 1 раз в сутки. Окно потери данных (RPO)=1 сутки – это недопустимо много. При этом эксперт убежден, что это и есть лучший способ предотвратить любую потерю данных. Недопустимо большим будет также время восстановления в субботу, ведь надо будет применить к Full backup изменения за 6 дней, а интенсивность изменений в базе большая.

Читайте также:  0xc0000005 исправляем ошибку установки запуска в Windows

Заблуждения экспертов 2

Здесь ежедневно с понедельника по пятницу делается бэкап ЖТ и Shrink ЖТ (Текст «копии БД» в колонке «Описание» – явная опечатка, т.к. в колонке «действия» четко указана операция – бэкап ЖТ). Если вы вернетесь к нашему подплану «Еженедельное обслуживание», то увидите, что задача усечения ЖТ носит красноречивое название «Shrink не делать» и является запрещенной задачей (серая). Поисковый запрос «надо ли делать шринк» поможет уточнить информацию.

Спускаемся на строку ниже и видим, что после каждого Diff backup удаляются TLog backup – это добровольный отказ от непрерывной прямой восстановления (ключевая цель всей системы резервного копирования) и переход к точкам восстановления. Точки отстоят друг от друга на сутки. Это означает, что окно потери данных – сутки (RPO=24 часа).

Спускаемся на последнюю строчку и находим самую крупную ошибку всего плана. Если произошло случайное или злонамеренное повреждение данных, то данные очень надежно хранятся, но являются бесполезными. Представим случай, когда в субботу выходит программист, чтобы разобраться с проблемой «отчеты выдают полную ерунду». В 18:05 он понимает, что наличие проблемы связано с тем, что полностью искажены (удалены) данные ключевых регистров, причем журналы говорят, что это произошло в пятницу после обеда. В этот момент времени у него существует база данных, данные в которой неверны, и один единственный полный бэкап, сделанный 5 минут назад, данные в котором также неверны. Все остальное начисто удалено, т.к. был успешно создан полный бэкап. Этот план обслуживания – чемпион по количеству сделанных ошибок.

Этот план обслуживания – чемпион по количеству сделанных ошибок

На иллюстрации выше – план начального уровня, созданный начинающим специалистом с помощью мастера Maintenance Plan Wizard и не решающий никаких задач. В нем имеется распространенная ошибка: нельзя ставить задачу создания полной резервной копии в зависимость от результатов проверки целостности. При падении базы данных лучше иметь резервную копию с двумя «битыми» ссылками в базе, чем не иметь ничего. Сравните с тем, как сделано в подплане «Ежедневный бэкап» – нарушение целостности информирует оператора, но не препятствует созданию бэкапов.