Як відновити файли баз даних 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 і Dynamic Disk, а також працювати з посекторними образами дисків. Відновлені файли надалі можна використовувати для 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 розміщена на Dynamic Spanned Volume з файловою системою NTFS. Вона містить таблиці, тестові записи клієнтів та файли, збережені в полі VARBINARY(MAX). Файл MDF зберігається в каталозі SQLData, журнал LDF – у SQLLogs, а повна резервна копія TestDB_Full.bak – у каталозі SQLBackup.

Як отримати доступ до дисків сервера

СПОСІБ 1. Підключення накопичувачів до робочого комп'ютера

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

Якщо база зберігалася на Dynamic Spanned Volume або іншій багатодисковій конфігурації, бажано мати доступ до всіх накопичувачів, які входили до її складу.

Якщо одночасно підключити всі диски неможливо, то можна створити їхні посекторні образи. Для цього в Hetman RAID Recovery вибираємо фізичний накопичувач, запускаємо Save disk, вказуємо місце для збереження та чекаємо завершення копіювання.

Hetman RAID Recovery: створення образу фізичного накопичувача

Після цього диск можна відключити та таким самим способом створити образ наступного накопичувача. Готові образи підключаємо через Mount disk і використовуємо для аналізу разом із фізичними дисками.

Hetman RAID Recovery: монтування образу фізичного накопичувача

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

Hetman RAID Recovery: змонтований образ фізичного накопичувача

СПОСІБ 2. Налаштування доступу по SSH

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

Для цього на Windows Server попередньо налаштовуємо OpenSSH 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. У верхньому меню перейдіть до Tools та оберіть Connect via SSH.

Hetman RAID Recovery: Tools - Connect via SSH

У полі Remote server введіть IP-адресу Windows Server, а в полі Port вкажіть 22. Нижче, у блоці Credentials, виберіть потрібний Authentication method та введіть логін і пароль облікового запису. За необхідності можна активувати Save server details та Save authentication data, щоб не вводити ці параметри повторно. Після цього натисніть Next.

Hetman RAID Recovery: Connect to remote server

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

Hetman RAID Recovery: Connecting to remote server

Після підтвердження вони з'являться в головному вікні 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

У дереві Object Explorer відкриваємо контекстне меню Databases та обираємо Restore Database.

Windows Server 2022: Databases - Restore Database

Як джерело вибираємо Device, вказуємо файл TestDB_Full.bak і перевіряємо, що SQL Server правильно визначив резервну копію.

Windows Server 2022: Device - 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

Запускаємо Restore та чекаємо завершення операції. Після успішного відновлення в Object Explorer з'являється база TestDB_Restored.

Windows Server 2022: Object Explorer - 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 також стали недоступними.

Сам Dynamic Spanned Volume при цьому залишається доступним, тому повторно реконструювати JBOD не потрібно.

Windows Server 2022: TestDB_Restored не відображається у Microsoft SQL Server

Відкриваємо Hetman RAID Recovery, обираємо логічний том NTFS, на якому знаходилися файли SQL Server, та запускаємо Fast scan.

Hetman RAID Recovery: Fast scan

Після завершення аналізу переходимо до каталогів, у яких зберігалися MDF і LDF, та перевіряємо результати. Знаходимо видалені TestDB_Restored.mdf і TestDB_Restored_log.ldf, звертаємо увагу на їхні назви, розмір і розташування.

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

Якщо Fast scan не знаходить необхідних файлів або результат виявився неповним, повертаємося до вибору режиму аналізу та запускаємо Full scan. Він виконує глибший аналіз NTFS і може знайти більше видалених даних.

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

Hetman RAID Recovery: збереження відновленої TestDB_Restored_log.ldf

Не рекомендується відновлювати файли назад на вихідний Dynamic Spanned Volume, оскільки новий запис може перезаписати інші дані, які ще можна було б відновити.

Після відновлення фізичних файлів повертаємося до Microsoft SQL Server Management Studio. У контекстному меню Databases обираємо Attach.

Windows Server 2022: Databases - Attach

Додаємо відновлений TestDB_Restored.mdf та перевіряємо, що SQL Server бачить пов'язаний файл журналу TestDB_Restored_log.ldf.

Windows Server 2022: додаємо відновлений TestDB_Restored.mdf

Якщо обидва файли залишилися читабельними та узгодженими, виконуємо Attach. Після підключення база знову з'являється у списку 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 знаходяться на багатодискових конфігураціях або серверні накопичувачі незручно демонтувати та підключати до іншого комп'ютера.

Valery Martyshko

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

Автор, перекладач та технічний спеціаліст компанії Hetman Software. Має майже десятирічний досвід роботи в IT сфері, який охоплює різні галузі: від ПК з Windows та мобільних пристроїв, до фото та відео обладнання, сигналізацій та систем відеоспостереження, і т.д. Окрім іншого, є також спеціалістом по Android, Windows та Microsoft Office. Є експертом в області відновлення даних, файлових систем, пристроїв зберігання даних, RAID масивів.

Vladyslav Kupriyenko

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

Редактор статей блогу, автор та ведучий рубрики на YouTube каналі компанії Hetman Software. За освітою: спеціаліст з обслуговування комп’ютерних систем та мереж, вивчав розробку програмного забезпечення. Має досвід роботи в IT сфері, який охоплює різні галузі: адміністрування комп’ютерної мережі та обладнання, контроль та підтримка роботи Інтернет, офісних та спеціалізованих програм. Є фахівцем в області відновлення даних, файлових систем та пристроїв зберігання даних.

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