Как восстановить файлы базы данных Microsoft SQL Server 2022 (MDF, LDF и BAK)

В этой статье мы рассмотрим, как восстановить файлы базы данных Microsoft SQL Server 2022. Покажем, что делать, если база данных или ее файлы были случайно удалены, а также как использовать доступную резервную копию, чтобы вернуть базу данных в рабочее состояние.

Как восстановить файлы базы данных Microsoft SQL Server 2022 (MDF, LDF и BAK)

Для восстановления файлов мы будем использовать Hetman RAID Recovery. Программа может находить файлы MDF, LDF и BAK на физических дисках, RAID-массивах и динамических дисках, а также работать с образами дисков, созданными посекторно. Восстановленные файлы затем можно использовать для Restore или Attach средствами Microsoft SQL Server.

Hetman RAID Recovery поддерживает Windows, Linux и macOS.

Для восстановления данных с повреждённых RAID-массивов, NAS-устройств и других многодисковых систем хранения.
Перейти к просмотру
Как восстановить удалённую базу данных SQL Server 2022? MDF, LDF и BAK

Как восстановить удалённую базу данных SQL Server 2022? MDF, LDF и BAK

Особенности SQL Server

Какие файлы использует Microsoft SQL Server и почему они важны при восстановлении:

  • MDF — основной файл базы данных. Он содержит структуру базы данных, таблицы, записи, индексы и другие объекты. Этот файл является основным источником данных, когда требуется вернуть удаленную базу данных в SQL Server.
  • LDF — файл журнала транзакций. SQL Server записывает в него изменения базы данных. Журнал используется для поддержания согласованности данных и является важным компонентом при подключении базы данных из ее физических файлов.
  • BAK — файл резервной копии. В нашем тесте это полная резервная копия базы данных, созданная SQL Server. Если такой файл доступен и не поврежден, его можно использовать для Restore без необходимости подключать исходные файлы MDF и LDF.

Следовательно, сценарий восстановления зависит от того, какие файлы были сохранены или найдены:

  • Если доступен файл BAK, база данных восстанавливается из резервной копии.
  • Если резервной копии нет, но файлы MDF и LDF были восстановлены, их можно использовать для Attach, при условии, что файлы остаются читаемыми и согласованными.
Функция Описание
Реляционная модель данных SQL Server хранит информацию в таблицах, связанных друг с другом с помощью ключей и ограничений.
Язык запросов T-SQL Расширение SQL, используемое для создания запросов, управления данными, написания процедур и выполнения административных операций.
Файлы базы данных MDF и NDF MDF — основной файл данных базы данных, а NDF — дополнительный файл данных. Они содержат таблицы, индексы и другие объекты базы данных.
Файл журнала транзакций LDF Хранит записи о транзакциях и изменениях в базе данных. Журнал используется для аварийного восстановления и поддержания согласованности данных.
Резервное копирование и восстановление SQL Server поддерживает полные, дифференциальные резервные копии и резервные копии журнала транзакций, что позволяет восстановить базу данных до требуемого момента времени при соответствующей настройке.
Транзакции и ACID Обеспечивают атомарность, согласованность, изолированность и долговечность операций с данными.
Индексы Ускоряют поиск и выполнение запросов, но могут быть повреждены или потребовать перестроения после определенных сбоев.
Механизмы контроля целостности Первичные и внешние ключи, ограничения и проверки помогают поддерживать корректность данных.
Модели восстановления Модели восстановления Simple, Full и Bulk-logged определяют возможности резервного копирования журнала транзакций и варианты восстановления базы данных.
Средства диагностики Команда DBCC CHECKDB проверяет логическую и физическую целостность базы данных и помогает выявить повреждения.

Для тестирования мы подготовили Windows Server 2022 с Microsoft SQL Server 2022. База данных TestDB расположена на динамическом составном томе с файловой системой NTFS. Она содержит таблицы, тестовые записи клиентов и файлы, хранящиеся в поле VARBINARY(MAX). Файл MDF хранится в каталоге SQLData, файл журнала LDF — в SQLLogs, а полная резервная копия TestDB_Full.bak — в каталоге SQLBackup.

Как получить доступ к дискам сервера

СПОСОБ 1. Подключение дисков к рабочей станции

Если файлы SQL Server хранятся на отдельном физическом диске, его можно подключить к рабочей станции через SATA-адаптер, USB-адаптер или док-станцию.

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

Если подключить все диски одновременно невозможно, можно создать их образы, снятые посекторно. Для этого в Hetman RAID Recovery выберите физический диск, запустите Сохранить диск, укажите место сохранения и дождитесь завершения процесса копирования.

Hetman RAID Recovery: создание образа физического диска

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

Hetman RAID Recovery: подключение образа физического диска

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

Hetman RAID Recovery: подключенный образ физического диска

СПОСОБ 2. Настройка доступа по SSH

Есть еще один способ получить доступ к дискам без их физического извлечения. Если Windows Server 2022 все еще работает и доступен по сети, диски можно подключить к Hetman RAID Recovery удаленно по SSH.

Для этого заранее настройте OpenSSH Server на Windows Server.

Windows Server 2022: установка OpenSSH Server

Запустите службу OpenSSH SSH Server — sshd — и при необходимости установите ее автоматический запуск.

Windows Server 2022: запуск службы OpenSSH SSH Server
Windows Server 2022: включение автоматического запуска OpenSSH SSH Server

Также проверьте доступ через TCP-порт 22 и убедитесь, что учетная запись, используемая для подключения, имеет необходимые права для доступа к дискам сервера.

После настройки сервера откройте Hetman RAID Recovery. В верхнем меню перейдите в раздел Инструменты и выберите Подключиться по SSH.

Hetman RAID Recovery: Инструменты - Подключиться по SSH

В поле Удаленный сервер введите IP-адрес Windows Server, а в поле Порт укажите 22. Ниже, в разделе Учетные данные, выберите нужный Метод аутентификации и введите имя пользователя и пароль учетной записи. При необходимости можно включить параметры Сохранить сведения о сервере и Сохранить данные аутентификации, чтобы не вводить эти данные повторно. Затем нажмите Далее.

Hetman RAID Recovery: подключение к удаленному серверу

После успешного подключения к серверу в следующем окне будут отображены доступные физические диски и логические массивы. Выберите диски, которые относятся к требуемому JBOD, и продолжите.

Hetman RAID Recovery: подключение к удаленному серверу

После подтверждения они появятся в главном окне Hetman RAID Recovery, где с ними можно работать так же, как с локально подключенными дисками.

Обратите внимание на сетевое оборудование. Поскольку операции с дисками выполняются по сети, для стабильного и комфортного подключения желательно, чтобы рабочая станция, Windows Server и локальная сеть поддерживали скорость передачи данных 1 Гбит/с и выше. Это поможет ускорить анализ дисков и передачу восстановленных файлов.

Этот метод особенно удобен, если сервер все еще работает, а физическое извлечение и подключение большого количества дисков к другому компьютеру нежелательно или затруднительно.

Как восстановить удаленную базу данных SQL Server 2022

СПОСОБ 1. Восстановление базы данных из файла BAK

Перейдем к первому сценарию. В этом случае после восстановления доступен файл полной резервной копии TestDB_Full.bak, который можно использовать для восстановления базы данных.

Откройте Microsoft SQL Server Management Studio и подключитесь к нужному экземпляру SQL Server.

Windows Server 2022: подключение к нужному экземпляру SQL Server

В дереве Обозревателя объектов откройте контекстное меню для Базы данных и выберите Восстановить базу данных.

Windows Server 2022: Базы данных - Восстановить базу данных

В качестве источника выберите Устройство, укажите файл TestDB_Full.bak и убедитесь, что SQL Server правильно определил резервную копию.

Windows Server 2022: Устройство - TestDB_Full.bak

Чтобы не изменять исходную базу данных TestDB, восстановите ее под отдельным именем — TestDB_Restored.

Windows Server 2022: переименование базы данных в TestDB_Restored

В параметрах восстановления укажите отдельные имена и пути для физических файлов базы данных, чтобы они не конфликтовали с файлами исходной базы TestDB. Для нового экземпляра используйте TestDB_Restored.mdf и TestDB_Restored_log.ldf.

Windows Server 2022: TestDB_Restored.mdf и TestDB_Restored_log.ldf

Запустите Восстановление и дождитесь завершения операции. После успешного восстановления база данных TestDB_Restored появится в Обозревателе объектов.

Windows Server 2022: Обозреватель объектов - TestDB_Restored

Откройте ее и проверьте таблицы и записи. Также убедитесь, что данные, хранящиеся в поле VARBINARY(MAX), доступны. Таким образом мы проверяем не только создание базы данных, но и доступность ее содержимого после восстановления из файла BAK.

Windows Server 2022: проверка таблиц и записей в TestDB_Restored

СПОСОБ 2. Восстановление удаленной базы данных

В следующем случае база данных TestDB_Restored была случайно удалена и больше не отображается в Microsoft SQL Server Management Studio. Ее физические файлы TestDB_Restored.mdf и TestDB_Restored_log.ldf также стали недоступны.

Сам динамический составной том остается доступным, поэтому повторно собирать JBOD не требуется.

Windows Server 2022: TestDB_Restored не отображается в Microsoft SQL Server

Откройте Hetman RAID Recovery, выберите логический том NTFS, на котором находились файлы SQL Server, и запустите Быстрое сканирование.

Hetman RAID Recovery: быстрое сканирование

После завершения анализа перейдите в каталоги, где хранились файлы MDF и LDF, и проверьте результаты. Найдите удаленные TestDB_Restored.mdf и TestDB_Restored_log.ldf, а также отметьте их имя, размер и расположение.

Hetman RAID Recovery: TestDB_Restored.mdf
Hetman RAID Recovery: TestDB_Restored_log.ldf

Если Быстрое сканирование не находит нужные файлы или результат неполный, вернитесь к выбору режима анализа и запустите Полное сканирование. Оно выполняет более глубокий анализ NTFS и может найти больше удаленных данных.

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

Hetman RAID Recovery: сохранение восстановленного TestDB_Restored_log.ldf

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

После восстановления физических файлов вернитесь в Microsoft SQL Server Management Studio. В контекстном меню для Баз данных выберите Подключить.

Windows Server 2022: Базы данных - Подключить

Добавьте восстановленный TestDB_Restored.mdf и убедитесь, что SQL Server видит связанный файл журнала TestDB_Restored_log.ldf.

Windows Server 2022: добавление восстановленного TestDB_Restored.mdf

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

Windows Server 2022: SQL Server видит связанный файл журнала TestDB_Restored_log.ldf

Откройте таблицы и проверьте записи. Дополнительно проверьте доступность данных VARBINARY(MAX), использованных в тестовой базе данных. Если структура, записи и хранящиеся файлы доступны, восстановление можно считать успешным.

Windows Server 2022: открытие таблиц и проверка записей

Заключение

Мы рассмотрели два основных сценария работы с файлами базы данных Microsoft SQL Server 2022:

  • В первом случае для восстановления базы данных был использован доступный файл резервной копии BAK через Restore.
  • Во втором случае после удаления базы данных были найдены и восстановлены ее физические файлы MDF и LDF с помощью Hetman RAID Recovery, после чего они были подключены обратно к SQL Server через Attach.

Hetman RAID Recovery позволяет работать с физическими дисками, образами, созданными посекторно, и удаленными дисками по SSH, а также поддерживает Windows, Linux и macOS. Это дает возможность организовать восстановление даже тогда, когда файлы SQL Server хранятся в многодисковых конфигурациях или когда серверные диски неудобно извлекать и подключать к другому компьютеру.

Dmytriy Zhura

Автор: , Технический писатель

Дмитрий Жура – автор и один из IT-инженеров компании Hetman Software. Имеет почти 10 летний опыт работы в IT-сфере: администрирование и настройка серверов, установка операционных систем и различного программного обеспечения, настройка сети, информационная безопасность, внедрения и консультация по использованию специализированного ПО. Является экспертом в области восстановления данных, файловых систем, устройств хранения данных и RAID массивов.

Andrey Mareev

Редактор: , Технический писатель

В далеком 2005 году, я получил диплом по специальности «Прикладная математика» в Восточноукраинском национальном университете. А уже в 2006 году, я создал свой первый проект по восстановлению данных. С 2012 года, начал работать в компании «Hetman Software», отвечая за раскрутку сайта, продвижение программного обеспечения компании, и как специалист по работе с клиентами.

Рекомендуем для вас