Lokalizacja pliku mdf bazy danych

19

Mam bazę danych Project. Moim problemem jest to, gdzie mogę znaleźć .mdfi _log.ldfod mojej bazy danych tak, że mogę przenieść moją bazę danych do innego użytkownika. Używam Microsoft SQL Server 2008 Management Studio

Właściwości bazy danych

Mój Ssms.exejest przechowywany na tej ścieżce

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

źródło

Odpowiedzi:

22

Istnieje kilka sposobów określania lokalizacji plików mdf programu SQL Server i powiązanych plików dziennika.

  1. Otwórz Enterprise Manager, kliknij prawym przyciskiem myszy interesującą Cię bazę danych i wybierz właściwości. Wybierz sekcję Pliki i przewiń do kolumn Pathi FileName.

  2. Otwórz okno zapytania, uruchom odpowiednie zapytanie poniżej i wyświetl Physical_Namekolumnę.

SQL 2005 lub nowszy:

SELECT * FROM sys.database_files

SQL 2000:

SELECT * FROM dbo.sysfiles
  1. Otwórz okno zapytania i uruchom sp_helpfilei wyświetl FileNamekolumnę.

Oczywiście, ponieważ pliki te są używane przez program SQL Server, nie należy próbować kopiować plików w inne miejsce.

Najlepszą metodą jest wykonanie kopii zapasowej z poziomu Enterprise Manager, klikając prawym przyciskiem myszy interesującą Cię bazę danych i wybierając Zadania -> Kopia zapasowa.

Alternatywnie możesz odłączyć bazę danych, skopiować pliki, a następnie załączyć.

Trzecią alternatywą, gdy kopia bazy danych jest uruchomiona w innym miejscu, jest skonfigurowanie wysyłki lub replikacji dziennika.

Armitage
źródło
1
Nie generuje to informacji o TempDB, modelu ani msdb.
Slogmeister Extraordinaire
14

SQL 2005 i następne: Poniższe zapytanie daje listę wszystkich baz danych i powiązanych plików:

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
masam
źródło
1
Chciałbym usunąć klauzulę WHERE, aby upewnić się, że wszystkie pliki powiązane z bazą danych są dostępne.
Slogmeister Extraordinaire
14

Miałeś właściwe okno dialogowe, ale zła karta Otwórz kartę Pliki , ścieżka jest wyświetlana dla wszystkich plików bazy danych wprowadź opis zdjęcia tutaj

Milena Petrovic
źródło
2

Najlepszym i najłatwiejszym sposobem na znalezienie (.mdf & .ldf)pliku, rozmiaru i tempa wzrostu itp. Szczegóły konkretnej bazy danych poprzez podanie zapytania TSQL.

exec sp_helpdb @dbname='Databasename';
Go
Md Haidar Ali Khan
źródło
-2

Ścieżka do plików .mdf i .ldf będzie

Root drive (gdzie zainstalowany jest system operacyjny) ->

Pliki programów (dla aplikacji 64-bitowych) lub pliki programów (x86) dla 32, ale aplikacji->

Microsoft SQL Server->

MSSQL11.SQL2012->

MSSQL->

DANE


MSSQL11.SQL2012 To jest dla użytkowników korzystających z SQL 2012 ...

Możesz więc łatwo rozpoznać, jaka jest nazwa folderu, gdy używasz SQL 2008 w folderze „Microsoft SQL Serve” we wspomnianej ścieżce

VSVAditya
źródło
2
Jest to całkowicie poprawne - w przypadku małych instalacji. Dla każdej prawdziwej instalacji ktoś zaplanuje układ dysku i może albo zdefiniować alternatywne lokalizacje na db db, albo nawet domyślnie. Możesz to zmienić nawet podczas instalacji. Powiedziałbym, że w każdym nietrywialnym środowisku ludzie NIE wyrzucają danych i plików dziennika na dysk C (czyli tam, gdzie istnieją pliki programów).
TomTom