Mdf sql чем открыть

Обновлено: 21.11.2024

База данных SQL Server содержит первичные файлы данных, вторичные файлы данных (необязательно) и файлы журналов транзакций.

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

Расширение основного файла базы данных — *.mdf, а расширение файла вторичного файла данных — *.ndf.

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

Расширение файла журнала транзакций: *.ldf. Вы можете обратиться к этой статье, чтобы понять архитектуру файлов журнала транзакций.

В этой статье я собираюсь объяснить, как мы можем управлять файлами базы данных (файлами MDF) в SQL Server 2019.

В статье будут рассмотрены следующие вопросы:

  1. Просмотр сведений о файле базы данных с помощью DMV и SQL Server Management Studio.
  2. Присоединяйте и отсоединяйте MDF-файлы пользовательских баз данных.
  3. Присоединяйте и отсоединяйте файлы MDF системных баз данных.

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

Для просмотра сведений о файлах mdf базы данных можно использовать sys.database_files и sys.master_files. Запрос должен быть написан следующим образом:

Поскольку пример относится к сведениям MDF для всех баз данных, нам нужен другой код для просмотра определенных файлов базы данных. Для этой цели мы используем sys.database_files.

Следующий сценарий извлечет сведения о базе данных SSISDB:

Просмотр файлов базы данных с помощью SQL Server Management Studio

Вариант просмотра списка файлов MDF доступен в SQL Server Management Studio (SSMS).

В SQL Server Management Studio подключитесь к экземпляру SQL Server. Затем разверните Базы данных -> Щелкните правой кнопкой мыши любую базу данных -> Щелкните Свойства:

В окне "Свойства базы данных" нажмите Файлы. Он представит список файлов базы данных MDF и LDF:

Отсоединить и прикрепить MDF-файлы пользовательской базы данных

Существует два способа отсоединения и присоединения MDF-файлов базы данных пользователей:

  1. Использование SQL Server Management Studio.
  2. Использование сценария T-SQL.

Присоединение и отсоединение базы данных с помощью SSMS

Прикрепить базу данных

Запустите SSMS -> Подключитесь к экземпляру SQL Server -> Щелкните правой кнопкой мыши базу данных -> нажмите "Присоединить".

Откроется окно Подключить базы данных. Нажмите Добавить в этом окне:

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

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

После подключения базы данных ее можно увидеть в SQL Server Management Studio:

Отключить базу данных

Запустите студию управления SQL Server и подключитесь к экземпляру SQL Server. Разверните список баз данных.

Щелкните правой кнопкой мыши по нужной базе данных -> Задачи -> Нажмите Отсоединить.

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

Установите флажок Отключить подключения в разделе Базы данных для отсоединения и нажмите OK.

Присоединение и отсоединение базы данных с помощью T-SQL

Мы можем использовать запрос CREATE DATABASE WITH ATTACH со следующим синтаксисом:

Чтобы подключить базу данных, выполните следующий запрос T-SQL:

Кроме того, мы можем запустить хранимую процедуру sp_detach_db для отключения базы данных.

Если вы хотите принудительно отключить пользователей, вы можете использовать команду ALTER DATABASE SET SINGLE_USER в следующем скрипте:

Управление файлами MDF системной базы данных

Предположим, мы хотим переместить файлы MDF системных баз данных (master, model, msdb и Tempdb) в другое место. Давайте рассмотрим процесс.

Переместить главную базу данных

Чтобы переместить базу данных master, откройте диспетчер конфигурации SQL Server -> щелкните Службы SQL Server -> щелкните правой кнопкой мыши службу SQL Server нужного экземпляра SQL Server (MSSQLSERVER) -> щелкните Свойства:

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

За значением пути master.mdf следует -d, а за значением пути mastlog.ldf следует -l

Замените эти значения следующими:

Файл данных: -dD:\MS_SQL\Data\master.mdf

Файл журнала: -lD:\MS_SQL\Log\mastlog.ldf

После изменения значений нажмите «Обновить», как показано на рисунке ниже:

Нажмите "ОК", чтобы сохранить значения.

Затем остановите службы SQL Server и скопируйте файлы базы данных в новое место. После завершения снова запустите службу SQL.

Выполните приведенный ниже запрос, чтобы проверить расположение файла.

Переместить базу данных модели

Чтобы переместить базу данных модели на другой диск, мы должны сначала выполнить команду ALTER DATABASE MODIFY FILE. Он служит для изменения местоположения в системном каталоге SQL Server.

Запустите следующую команду:

Затем остановите службы SQL Server, выполнив следующую команду в PowerShell:

Скопируйте файлы model.mdf и modellog.ldf в новое место и запустите службы.

Выполните приведенный ниже запрос, чтобы проверить расположение файла:

Переместить базу данных MSDB

Чтобы переместить базу данных MSDB на другой диск, сначала выполните команду ALTER DATABASE MODIFY FILE, чтобы изменить расположение в системном каталоге SQL Server:

Остановите службы SQL Server, выполнив в PowerShell следующую команду:

Скопируйте файлы MSDBData.mdf и MSDBLog.ldf в новое место и запустите службы.

Выполните приведенный ниже запрос, чтобы проверить расположение файла:

Переместить базу данных TempDB

Чтобы переместить базу данных TempDB на другой диск, сначала выполните команду ALTER DATABASE MODIFY FILE, чтобы изменить расположение файла в системном каталоге SQL Server:

Перезапустите службы SQL Server, выполнив следующую команду в PowerShell:

Выполните приведенный ниже запрос, чтобы проверить расположение файла:

Вы также можете использовать инструмент журнала транзакций от компании Devart — он также включает возможность просмотра данных файлов MDF и LDF.

Обзор

В этой статье описаны файлы базы данных SQL Server и способы просмотра расположения файлов MDF. В нем также описаны процессы присоединения и отсоединения баз данных и проиллюстрирован пошаговый процесс перемещения файлов данных системных баз данных.

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

База данных SQL Server состоит из трех типов файлов:

  1. Файл первичных данных ИЛИ файл MDF
  2. Вторичный файл данных ИЛИ файл NDF
  3. Файл журнала ИЛИ файл журнала

Файл первичных данных ИЛИ файл MDF

База данных SQL Server хранит данные в файлах MDF. Как правило, .mdf является предпочтительным расширением основного файла базы данных. Это не тип файла. Вы можете использовать другое расширение (*.gbn) для создания основного файла базы данных без каких-либо ошибок. Первичный файл данных содержит столбцы, поля, строки, индексы, таблицы и данные, добавленные приложением. Он также содержит важную информацию о базе данных.

Вторичный файл данных ИЛИ файл NDF

Вторичные файлы данных необязательны. Назначение первичного файла данных и вторичного файла данных (файл .ndf) одинаково. Вторичные файлы данных полезны, когда мы хотим распределить данные по нескольким дискам сервера базы данных. Например, если вы хотите хранить таблицы на диске X, а индексы — на диске Y, вы можете оставить таблицы в первичном файле данных, а индексы — в вторичном файле данных.

Файл журнала ИЛИ файл LDF

Он сохраняет изменения, внесенные в базу данных путем вставки, обновления, удаления и т. д. Файл LDF содержит всю информацию, которая может быть использована для восстановления базы данных.

Как найти расположение файлов MDF

Мы можем получить местоположение файлов базы данных, запросив динамические представления управления sys.database_files и sys.master_files. Разница заключается в том, что sys.master_files предоставляет физическое расположение всех баз данных, а sys.database_files предоставляет информацию о конкретной базе данных.

Для демонстрации я восстановил демонстрационную базу данных WideWorldImportors. Вы можете скачать его отсюда. Теперь, чтобы получить местоположение файлов базы данных из DMV sys.master_files, выполните следующий запрос.

выберите db_name (data_id) как [Имя базы данных], type_desc как [Тип файла], Physical_name как [Расположение файла базы данных] из sys. master_files

Ниже приведен скриншот вывода:

Чтобы получить информацию о файлах базы данных из DMV sys.database_files, выполните следующий запрос:

выберите db_name ( ) как [ Имя базы данных ] , type_desc как [ Тип файла ] , Physical_name как [ Расположение файла базы данных ] из sys . файлы_базы_данных

Чтобы просмотреть расположение файлов базы данных с помощью студии управления SQL Server, откройте SSMS. Подключите ядро ​​базы данных. Разверните базы данных, щелкните правой кнопкой мыши «WideWorldImportors». Выберите свойства. См. следующее изображение:

В свойствах выберите файлы. В столбцах «Путь» и «Имя файла» показано расположение файлов базы данных. См. следующее изображение:

Мы можем прикрепить файлы базы данных SQL Server следующими способами:

  1. Использование SQL Server Management Studio
  2. Использование сценария T-SQL

Прикрепить файл MDF с помощью SSMS

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

В диалоговом окне «Присоединить базу данных» нажмите «Добавить» (экран 1). В диалоговом окне поиска базы данных (Экран 2) найдите файлы базы данных MDF, которые вы хотите использовать для создания базы данных. По умолчанию диалоговое окно «Найти файлы базы данных» использует местоположение файла базы данных по умолчанию, но вы можете перейти к другому местоположению файла базы данных или указать местоположение в текстовом поле «Расположение файла данных базы данных». Выберите нужный файл базы данных и нажмите OK. См. следующее изображение:

В диалоговом окне присоединения файла базы данных вы можете просмотреть сведения о базе данных в поле «База данных для присоединения» и сведения о файле базы данных в поле «Сведения о базе данных AdventureWorks2017». См. следующее изображение:

Нажмите OK, чтобы прикрепить базу данных. После успешного подключения базы данных вы можете просмотреть базу данных в обозревателе объектов. См. следующее изображение:

Прикрепить файл MDF с помощью запроса T-SQL

Мы также можем подключить базу данных с помощью команд T-SQL «CREATE DATABASE.. WITH ATTACH» или «exec sp_attach_db». Синтаксис команды «СОЗДАТЬ БАЗУ ДАННЫХ.. С ПРИСОЕДИНЕНИЕМ» следующий:

Например, если вы хотите подключить базу данных AdventureWorks2017, необходимо выполнить следующую команду.

Синтаксис команды «exec sp_attach_db» следующий:

Мы можем подключить базу данных adventureworks2017, выполнив следующий запрос:

Устранение ошибок при прикреплении файлов MDF

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

Доступ запрещен из-за отсутствия разрешения

Вы можете столкнуться с ошибкой «невозможно открыть физический файл базы данных. Ошибка операционной системы 5: доступ запрещен». Эта ошибка возникает из-за отсутствия разрешений для файла базы данных или файлов журнала. Это можно исправить любым из следующих способов:

  1. Запустите студию управления SQL Server от имени администратора и подключите базу данных
  2. Явным образом предоставить полный доступ к файлам MDF и LDF базы данных. Для этого щелкните правой кнопкой мыши файлы базы данных. Выберите вкладку «Безопасность», выберите соответствующего пользователя и предоставьте ему полный доступ.
  3. Если ни одно из приведенных выше решений не работает, скопируйте файлы базы данных в расположение файлов базы данных по умолчанию. Когда мы копируем эти файлы в расположение файла базы данных по умолчанию, пользователь автоматически получает необходимые разрешения

Невозможно понизить версию:

Если во время присоединения базы данных вы видите ошибку «База данных не может быть открыта, поскольку это версия XXX», убедитесь, что вы не присоединяете файлы базы данных более высокой версии к более низкой версии. Например, если вы пытаетесь подключить базу данных SQL Server 2014 к SQL Server 2008, вы увидите следующую ошибку:

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

Обзор

В этой статье я объяснил различные типы файлов базы данных (файлы MDF, NDF и LOG) и различные способы присоединения базы данных к экземпляру SQL Server через SSMS и T-SQL. Кроме того, мы выполняем основные действия по устранению неполадок, чтобы исправить ошибки, возникшие при подключении базы данных.

Нисарг Упадхьяй – администратор баз данных SQL Server и сертифицированный специалист Microsoft, имеющий более 8 лет опыта администрирования SQL Server и 2 года опыта администрирования баз данных Oracle 10g.

В этом разделе описываются варианты обновления файла базы данных (.mdf) после установки более новой версии Visual Studio. Он включает инструкции для следующих задач:

Обновите файл базы данных, чтобы использовать более новую версию SQL Server Express LocalDB

Обновите файл базы данных, чтобы использовать более новую версию SQL Server Express

Работайте с файлом базы данных в Visual Studio, но сохраняйте совместимость со старой версией SQL Server Express или LocalDB

Сделать SQL Server Express ядром базы данных по умолчанию

Вы можете использовать Visual Studio, чтобы открыть проект, содержащий файл базы данных (.mdf), созданный с помощью более старой версии SQL Server Express или LocalDB. Однако, чтобы продолжить разработку проекта в Visual Studio, у вас должна быть установлена ​​эта версия SQL Server Express или LocalDB на том же компьютере, что и Visual Studio, или вы должны обновить файл базы данных. Если вы обновите файл базы данных, вы не сможете получить к нему доступ с помощью более старых версий SQL Server Express или LocalDB.

Вам также может быть предложено обновить файл базы данных, созданный с помощью более ранней версии SQL Server Express или LocalDB, если версия файла несовместима с экземпляром SQL Server Express или LocalDB, установленным в данный момент. Чтобы решить эту проблему, Visual Studio предложит вам обновить файл.

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

Если вы обновите .mdf, созданный в 32-разрядной версии LocalDB 2014 (V12) в LocalDB 2016 (V13) или более поздней версии, вы не сможете снова открыть этот файл в 32-разрядной версии LocalDB.

Перед обновлением базы данных учитывайте следующие критерии:

Не выполняйте обновление, если вы хотите работать над своим проектом как в более старой, так и в более новой версии Visual Studio.

Не выполняйте обновление, если ваше приложение будет использоваться в средах, использующих SQL Server Express, а не LocalDB.

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

Не выполняйте обновление, если ваше приложение использует информационные службы Интернета (IIS).

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

Чтобы обновить файл базы данных для использования версии LocalDB

В обозревателе серверов нажмите кнопку "Подключиться к базе данных".

В диалоговом окне "Добавить соединение" укажите следующую информацию:

Источник данных: Microsoft SQL Server (SqlClient)

Имя сервера:

Чтобы использовать версию по умолчанию: (localdb)\MSSQLLocalDB . Это укажет либо ProjectV12, либо ProjectV13, в зависимости от того, какая версия Visual Studio установлена ​​и когда был создан первый экземпляр LocalDB. Узел MSSQLLocalDB в обозревателе объектов SQL Server показывает, на какую версию он указывает.

Чтобы использовать конкретную версию: (localdb)\ProjectsV12 или (localdb)\ProjectsV13 , где V12 — это LocalDB 2014, а V13 — LocalDB 2016.

Прикрепить файл базы данных: физический путь к основному файлу .mdf.

Логическое имя: имя, которое вы хотите использовать с файлом.

Нажмите кнопку ОК.

При появлении запроса нажмите кнопку "Да", чтобы обновить файл.

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

Вы также можете изменить соединение SQL Server Express для использования LocalDB, открыв контекстное меню для соединения и выбрав Изменить соединение. В диалоговом окне Modify Connection измените имя сервера на (LocalDB)\MSSQLLocalDB . В диалоговом окне «Дополнительные свойства» убедитесь, что для параметра «Экземпляр пользователя» задано значение «Ложь».

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

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

В диалоговом окне "Изменить подключение" нажмите кнопку "Дополнительно".

В диалоговом окне "Дополнительные свойства" нажмите кнопку "ОК", не меняя имя сервера.

Файл базы данных обновлен, чтобы соответствовать текущей версии SQL Server Express.

Для работы с базой данных в Visual Studio с сохранением совместимости с SQL Server Express

В Visual Studio откройте проект, не обновляя его.

Чтобы запустить проект, нажмите клавишу F5.

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

Чтобы сделать SQL Server Express ядром базы данных по умолчанию

В строке меню выберите Инструменты > Параметры.

В диалоговом окне "Параметры" разверните параметры "Инструменты базы данных" и выберите "Подключения к данным".

В текстовом поле Имя экземпляра SQL Server укажите имя экземпляра SQL Server Express или LocalDB, который вы хотите использовать. Если экземпляр не имеет имени, укажите .\SQLEXPRESS или (LocalDB)\MSSQLLocalDB .

Нажмите кнопку ОК.

SQL Server Express будет ядром базы данных по умолчанию для ваших приложений.

Microsoft SQL Server хранит два типа файлов данных в каталогах по умолчанию в соответствующих системах, которые называются файлами основной базы данных и файлами базы данных журналов и сокращенно называются файлами данных MDF и LDF. Оба эти файла в основном доступны в среде SQL Server.

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

Можно получить доступ/открыть файл MDF либо в той же, либо в другой компьютерной системе с помощью стороннего автономного программного обеспечения, и это устраняет необходимость установки и настройки SQL Server в системе и, таким образом, экономит время. дополнительные усилия и деньги.

В этой статье мы расскажем вам о расположении файлов MDF по умолчанию в SQL Server 2014, 2016 и 2017, а затем расскажем, как открывать и просматривать файлы MDF без SQL Server.

Расположение файла MDF по умолчанию в SQL Server

Файлы, которые являются общими и используются всеми экземплярами в одной системе, устанавливаются в папку :\Program Files\Microsoft SQL Server\nnn\.

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

Используйте приведенную выше информацию, чтобы выяснить текущее расположение файла MDF в вашей системе; вам нужно знать только основной и дополнительный номер версии текущего SQL Server, установленного на вашем ПК.

Ниже найдите расположение файла MDF по умолчанию в разных версиях Microsoft SQL Server:

Расположение файла MDF по умолчанию для SQL Server 2014:

Расположение файла MDF по умолчанию для SQL Server 2016:

Расположение файла MDF по умолчанию для SQL Server 2017:

Расположение файла MDF по умолчанию для SQL Server 2019:

Перейдите к расположению файла MDF по умолчанию, указанному выше, в соответствии с версией Microsoft SQL Server, и получите файл MDF для любой цели, для которой он вам нужен.

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

  • Часто делайте резервные копии
    Многие компании создают резервные копии файлов базы данных только тогда, когда они увеличиваются в размере или когда возникает необходимость в резервном копировании. Регулярное резервное копирование может спасти базу данных от серьезных проблем, таких как повреждение программного обеспечения, повреждение оборудования или случайное удаление. Когда база данных повреждена, файл резервной копии может помочь в восстановлении данных.
  • Проверка резервных копий SQL
    Создание резервных копий SQL — это только половина работы, так как вам необходимо регулярно проверять работоспособность резервных копий. Это означает, что вы должны проверить файлы резервных копий, их читабельность и доступность. Иногда, когда размер файлов резервных копий увеличивается, администратору необходимо сохранить резервные копии в безопасном месте.
  • Не сжимайте базу данных регулярно
    Много раз администратор пытается сжать базу данных, чтобы сэкономить место для хранения. Но с этим есть проблема, так как это увеличивает фрагментацию базы данных. Из-за чрезмерного сжатия базы данных это также повлияет на производительность.
  • Проверить согласованность базы данных
    Иногда, когда пользователи выполняют запрос на получение данных, они выдают нерелевантную информацию. Это связано с тем, что в базе данных есть какие-то неуместные или поврежденные. В экстремальных условиях может выйти из строя весь сервер.
  • Устранение взаимоблокировок
    Один SQL Server может иметь несколько баз данных, в которых многие пользователи выполняют свои запросы. Иногда большая база данных может иметь несколько запросов для обработки, что может еще больше создать ситуацию взаимоблокировки. Таким образом, администратор должен проверить наличие такой взаимоблокировки и исправить ее как можно скорее.

Простая и бесплатная альтернатива открытию и просмотру файлов MDF

Как только вы узнаете расположение файла MDF по умолчанию, следующим шагом будет открытие и просмотр его данных (объектов базы данных и подданных), хранящихся внутри, но вопрос в том, как бы вы открыли файл MDF без сервера SQL? Ответ заключается в том, чтобы загрузить и использовать отдельное программное обеспечение для просмотра MDF.

Kernel for MDF Viewer — это одно из таких программ, которое помогает пользователю открывать и просматривать файлы MDF без дополнительного программного обеспечения. Это позволяет пользователю мгновенно загружать как здоровые, так и поврежденные или поврежденные файлы MDF/NDF и предлагает подробный просмотр данных. Кроме того, этот инструмент позволяет пользователю просматривать элементы, удаленные из базы данных, сохраняет целостность данных и поддерживает структуру файла и исходные свойства файла.

Как открыть и просмотреть данные файла MDF

Следуйте инструкциям ниже, чтобы открыть и просмотреть файл MDF:

Примечание. Если файл MDF сильно поврежден или поврежден, выберите «Расширенный режим» и продолжите. Если версия базы данных SQL не определяется автоматически, выберите версию базы данных SQL вручную, как показано ниже:

Примечание. Двойной щелчок по любому объекту также приведет к его расширению.

Вы можете определить местоположение файла MDF по умолчанию, используя приведенные выше советы. Единственное, что вы должны знать, это основную и дополнительную версии SQL Server. Для открытия и просмотра файла базы данных MDF лучше всего подходит Kernel for MDF Viewer. Это позволяет пользователям восстанавливать поврежденные файлы MDF и NDF, устраняет проблемы недоступности и помогает исправить повреждение данных на сервере SQL и восстановление MDF. И самое главное, MDF Viewer не будет стоить вам ни копейки.

Один ответ на вопрос «Расположение файла MDF в SQL Server 2014, 2016 и 2017»

Tim.P Warner говорит:

Я очень ценю то, что вы описали все просто.Мне очень нужна была эта информация, и спасибо за предложение по бесплатной утилите.

Читайте также: