Восстановление и предотвращение утери файлов Microsoft SQL Server

Читайте, как восстановить удалённую базу MSSQL используя встроенные в приложение инструменты или сторонние программы. Рассмотрим причины, по которым база может быть утеряна, а также способы восстановления для каждого из них. SQL Server – это система управления реляционными базами данных (СУБД) от Microsoft, которая изначально разрабатывалась компанией как конкурент набиравшим популярность Oracle Database и MySQL.

Основным инструментом интерфейса SQL Server является Microsoft SQL Server Management Studio (SSMS).

Как и большинство СУБД Microsoft SQL Server поддерживает стандарт ANSI SQL. Но, СУБД от Microsoft также использует собственную реализацию стандарта – T-SQL.

Файлы системы Microsoft SQL Server

Файлы базы SQL Server по умолчанию сохраняются на диске С компьютера:

C:\Program Files\Microsoft SQL Server

Причём под каждую базу создаётся отдельная папка с её названием. Например, в нашем случае создано две базы данных Microsoft SQL Server: MSSQL13.SQLEXPRESS, MSSQL13.MSSQLHETMAN.

Данные любой из баз данных MSSQL хранятся в рабочих системных файлах, которых есть три типа:

  • *.mdf – это первичный файл данных базы. В таком файле содержатся сведения, которые необходимы для запуска базы, ссылки на другие файлы базы, данные и объекты пользователя. В .mdf файле физически хранятся данные базы.
  • *.ndf – вторичные файлы данных базы, которые также используются системой для хранения данных базы.
  • *.ldf – файлы журнала транзакций (лог файлы).

Каждый из указанных файлов имеет название базы данных и хранится в папке \DATA:

C:\Program Files\Microsoft SQL Server\Название_Базы_Данных\MSSQL\DATA

При создании и настройке базы данных MSSQL папку хранения файлов базы данных можно изменить. С целью безопасности данных, а также в связи с тем, что файлы базы могут иметь большой объём, их рекомендовано сохранять на другом диске компьютера (не на С).

Причины утери данных MSSQL

Чтобы правильно подобрать способы восстановления базы данных и методы её резервирования, необходимо понимать, что может послужить причиной утери таких данных. Причин может быть множество, но основными можно назвать следующие:

Ошибки программного обеспечения. Это как правило логические ошибки или сбой системы. В результате возникновения таких ошибок система произвольно осуществляет аварийное завершение работы системы, после чего не может выполнить восстановление.

Сбой или выход из строя аппаратного обеспечения. Наиболее частой причиной утери данных базы данных по причине аппаратного обеспечения, является выход из строя дискового накопителя (жесткого диска). Но утерей данных или базы Microsoft SQL Server может также обернутся выход из строя компьютера по любой из причин, во время работы базы данных.

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

Способы восстановления базы данных

Есть несколько способов резервирования и восстановления данных базы SQL Server. Использование каждого из них зависит от преследуемой цели: плановое создание бэкапа базы данных или восстановление из него при переносе базы данных на другую машину, или необходимость восстановления данных базы MSSQL в результате её утери или удаления.

Создать копию базы данных для дальнейшего восстановления можно как с помощью встроенных в Microsoft SQL Server Management Studio инструментов, так и вручную. Создание и восстановление базы данных из созданной вручную копии, это более быстрый процесс чем создание и разворачивание резервной копии, но не такой надёжный.

Кроме того, если скопировать файлы базы данных вручную не остановив её или во время транзакции, то такие файлы сохранятся в несогласованном состоянии, что приведёт к ошибкам при попытке восстановить систему с их помощью. Поэтому прежде чем создавать копию файлов MSSQL вручную (файлов данных и журналов транзакций) для бэкапа, базу данных необходимо отключить (перевести в offline режим).

Для этого:

  • Запустите Диспетчер конфигурации SQL Server (Sql Server Configuration Manager)

  • Выберите Службы SQL Server

  • В правом окне диспетчера кликните правой кнопкой мыши на базе данных которую необходимо остановить и выберите «Остановить».

  • Запустить базу данных можно аналогичным образом, выбрав пункт меню «Запустить».

Также базу данных можно остановить и запустить с помощью команд:

  • В Transact-SQL:
    SHUTDOWN;
  • Из окна командной строки:
    Net stop MSSQLHETMAN
    Net start MSSQLHETMAN
    Где, MSSQLHETMAN – название базы данных

Восстановление удалённой базы с Hetman Partition Recovery

В случае утери или удаления базы данных SQL Server из компьютера, её можно восстановить при условии, что его диск сохранил свою работоспособность. Это можно сделать с помощью программы для восстановления данных жесткого диска Hetman Partition Recovery.

Чтобы восстановить утерянные файлы данных базы MS SQL Server:

  • Запустите Hetman Partition Recovery и просканируйте с её помощью диск на котором были сохранены файлы данных SQL Server

  • Перейдите с помощью проводника программы в папку с файлами данных базы

  • Восстановите необходимые *.mdf, *.ndf, *.ldf файлы данных

  • Присоедините восстановленные файлы данных к базе SQL Server используя функцию «Присоединить…»

    Для этого, войдите в базу данных и кликните правой кнопкой мыши на папке «Базы данных». Выберите меню «Присоединить…» / кнопка «Добавить», после укажите *.mdf файл данных восстановленной базы и нажмите OK.

Однако стоит отметить, что в случае если база данных была удалена или утеряна в результате сбоя в работе компьютера (который мог послужить причиной форматирования диска или переустановки ОС), и на момент утери / удаления её работа остановлена не была, то дальнейший запуск такой базы может быть сопряжен с возникновением ошибок. Если восстановить необходимо вручную созданную раннее копию файлов базы данных, то проблем с её восстановлением и запуском не будет.

Как создать копию базы SQL Server для дальнейшего восстановления, импорта или переноса

Чтобы избежать утери данных базы MSSQL в случае возникновения непредвиденных обстоятельств, в случае необходимости импорта базы или её переноса из одной машины на другую, в Microsoft SQL Server Management Studio (SSMS) предусмотрен целый ряд инструментов на разные случаи, часть из которых мы уже упоминали в данной статье.

Создать резервную копию… / Восстановить

Чтобы создать резервную копию базы данных, кликните на папке с её названием правой кнопкой мыши и выберите Задачи / Создать резервную копию…

В результате, в папке \Backup

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLHETMAN\MSSQL\Backup

будет создан *.bak файл с резервной копией базы данных.

Чтобы восстановить резервную копию базы данных, кликните на папке с её названием правой кнопкой мыши и выберите Задачи / Восстановить, и укажите путь к файлу резервной копии.

Импорт данных… / Экспортировать данные…

C помощью функции Импорта / Экспорта данных Microsoft SQL Server можно скопировать данные из источника в файл назначения или сервер. Данная функция поддерживает такие источники данных:

  • SQL Server
  • Microsoft Access
  • Microsoft Excel
  • Неструктурированные файлы

Другими словами, из SQL Server базы данные можно экспортировать на другой SQL Server или в файл Access, Excel, неструктурированный файл. Из этих же источников можно импортировать данные в SQL Server.

Чтобы экспортировать данные базы, кликните на папке с её названием правой кнопкой мыши и выберите Задачи / «Экспортировать данные…».

После чего укажите с помощью открывшегося Мастера импорта и экспорта SQL Server, Источник и Куда копировать данные.

Импортировать данные в базу можно аналогичным образом, с помощью меню Задачи / «Импорт данных…».

Отсоединить… / Присоединить…

Самым подходящим способом создания копии базы данных для переноса её на другую машину, есть функция Отсоединить… / Присоединить…

Данный способ удобен тем, что в результате его использования не создаются дополнительные файлы базы данных или других форматов. В результате отсоединения, база данных перестаёт отображаться в списке баз данных, а её файлы данных остаются на прежнем месте в папке \DATA.

Такие файлы данных можно перенести в другое удобное пользователю место без риска утери данных из соответствующей базы и подсоединить их к SQL Server другого компьютера (с версией не ниже отсоединённой).

Чтобы отсоединить базу данных, кликните на папке с её названием правой кнопкой мыши и выберите Задачи / «Отсоединить…» / Ok.

Чтобы присоединить базу данных, кликните на папке «Базы данных» правой кнопкой мыши и выберите «Присоединить…» / Добавить, после чего укажите путь к *.mdf файлу базы данных которую необходимо присоединить.

Примечание. В случае необходимости, с помощью Hetman Partition Recovery можно восстановить файл резервной копии базы данных (*.bak), Иморта/Экспорта базы данных или файлы отсоединённой базы (*.mdf, *.ndf ,*.ldf) с дальнейшим их присоединением или восстановлением в Microsoft SQL Server.

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

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

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

Мирошниченко Михаил – одни из ведущих программистов в Hetman Software. Опираясь на пятнадцатилетний опыт разработки программного обеспечения он делится своими знаниями с читателями нашего блога. По мимо программирования Михаил является экспертом в области восстановления данных, файловых систем, устройств хранения данных, RAID массивов.

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