Розташування файлу mdf бази даних


19

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

Властивості бази даних

Моє Ssms.exeзберігається на цьому шляху

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

Відповіді:


22

Є кілька способів визначення місця розташування файлів mdf-файлів SQL Server та пов'язаних з ними файлів журналу.

  1. Відкрийте Менеджер підприємств, клацніть правою кнопкою миші на базі даних, яка вас цікавить, і виберіть властивості. Виберіть розділ Файли та прокрутіть до стовпців 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.
Slogmeister Extraordinaire

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, щоб переконатися, що ви отримаєте всі файли, пов’язані з базою даних.
Slogmeister Extraordinaire

14

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


2

Найкращий і простий спосіб знайти (.mdf & .ldf)файл, розмір і швидкість зростання і т.д. деталі конкретної бази даних нижче зазначають TSQL Query.

exec sp_helpdb @dbname='Databasename';
Go

-2

Шлях для .mdf та .ldf буде

Корінний привід (там, де встановлено ОС) ->

Programfiles (для 64-бітних додатків) або programfiles (x86) для 32-х програм, але>

Microsoft SQL Server->

MSSQL11.SQL2012->

MSSQL->

ДАНІ


MSSQL11.SQL2012 Це для користувачів, які використовують SQL 2012 ...

Таким чином, ви можете легко розпізнати, яке саме ім’я папки під час використання SQL 2008 у папці "Microsoft SQL Serve" у згаданому шляху


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