Расположение mdf файла базы данных


19

У меня есть база данных Project. Моя проблема в том , где я могу найти .mdfи _log.ldfв моей базе данных , так что я могу передать свою базу данных другому пользователю. Я использую Microsoft SQL Server 2008 Management Studio

База данных f свойств

Мой Ssms.exeхранится в этом пути

C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe

Ответы:


22

Существует несколько способов определить местоположение mdf-файла (ов) SQL Server и связанных с ним файлов журнала.

  1. Откройте Enterprise Manager, щелкните правой кнопкой мыши по интересующей вас базе данных и выберите свойства. Выберите раздел Файлы и прокручиваться до Pathи FileNameстолбцов.

  2. Откройте окно запроса и выполните соответствующий запрос ниже и просмотрите Physical_Nameстолбец.

SQL 2005 или более поздняя версия:

SELECT * FROM sys.database_files

SQL 2000:

SELECT * FROM dbo.sysfiles
  1. Откройте окно запроса, запустите sp_helpfileи просмотрите FileNameстолбец.

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

Лучший способ - выполнить резервное копирование из Enterprise Manager, щелкнув правой кнопкой мыши интересующую вас базу данных и выбрав Задачи -> Резервное копирование.

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

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


1
Это не дает информацию о TempDB, модели или MSDB.
Чрезвычайный

14

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

SELECT sd.NAME
,smf.NAME
,smf.type_desc
,(CAST(smf.size AS FLOAT) * 8096) AS SizeBytes
,(CAST(smf.size AS FLOAT) * 8096) / (1024) AS SizeKB
,(CAST(smf.size AS FLOAT) * 8096) / (1024 * 1024) AS SizeMB
,(CAST(smf.size AS FLOAT) * 8096) / (1024 * 1024 * 1024) AS SizeGB
,smf.physical_name
,sd.log_reuse_wait_desc
,sd.recovery_model_desc
,*
FROM sys.databases sd
INNER JOIN sys.master_files smf ON sd.database_id = smf.database_id
WHERE
smf.type_desc IN (
    'ROWS'
    ,'LOG'
    )
ORDER BY SizeGB DESC

1
Я бы удалил предложение WHERE, чтобы убедиться, что вы получаете все файлы, связанные с базой данных.
Чрезвычайный

14

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


2

Лучший и простой способ найти (.mdf & .ldf)файл, размер, скорость роста и т. Д. Подробности о конкретной базе данных с помощью нижеприведенного TSQL Query.

exec sp_helpdb @dbname='Databasename';
Go

-2

Путь для .mdf и .ldf будет

Корневой диск (где установлен Os) ->

Программные файлы (для 64-битных приложений) или программные файлы (x86) для 32, но приложений->

Microsoft SQL Server->

MSSQL11.SQL2012->

MSSQL->

ДАННЫЕ


MSSQL11.SQL2012 Это для пользователей, использующих SQL 2012 ...

Таким образом, вы можете легко узнать, какое у вас имя папки, если вы используете SQL 2008 в папке «Microsoft SQL Serve» по указанному пути.


2
Это совершенно правильно - для небольших установок. Для любой реальной установки кто-то запланировал расположение дисков и, возможно, определил альтернативные места при создании базы данных или даже по умолчанию. Вы даже можете изменить это во время настройки. Я бы сказал, что в любой нетривиальной среде люди НЕ сбрасывают файлы данных и журналов на диск C (который существует в файлах программ).
TomTom
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.