Speicherort der MDF-Datei der Datenbank


19

Ich habe eine Datenbank Project. Mein Problem ist, wo finde ich das .mdfund _log.ldfmeiner Datenbank, damit ich meine Datenbank auf einen anderen Benutzer übertragen kann. Ich verwende Microsoft SQL Server 2008 Management Studio

Datenbank f Eigenschaften

Meine Ssms.exeist in diesem Pfad gespeichert

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

Antworten:


22

Es gibt nur wenige Möglichkeiten, den Speicherort der SQL Server-MDF-Datei (en) und der zugeordneten Protokolldatei (en) zu bestimmen.

  1. Öffnen Sie Enterprise Manager, klicken Sie mit der rechten Maustaste auf die gewünschte Datenbank und wählen Sie Eigenschaften aus. Wählen Sie den Abschnitt Dateien und blättern Sie zu den Spalten Pathund FileName.

  2. Öffnen Sie ein Abfragefenster, führen Sie die entsprechende Abfrage aus und zeigen Sie die Physical_NameSpalte an.

SQL 2005 oder höher:

SELECT * FROM sys.database_files

SQL 2000:

SELECT * FROM dbo.sysfiles
  1. Öffnen Sie ein Abfragefenster und führen Sie sp_helpfiledie FileNameSpalte aus und zeigen Sie sie an.

Da diese Dateien von SQL Server verwendet werden, sollten Sie natürlich nicht versuchen, die Dateien an einen anderen Speicherort zu kopieren.

Am besten führen Sie eine Sicherung in Enterprise Manager durch, indem Sie mit der rechten Maustaste auf die gewünschte Datenbank klicken und Aufgaben -> Sicherung auswählen.

Alternativ können Sie Ihre Datenbank trennen, die Dateien kopieren und dann anhängen.

Eine dritte Alternative, sobald Sie eine Kopie der Datenbank haben, die an anderer Stelle ausgeführt wird, besteht darin, den Protokollversand oder die Replikation einzurichten.


1
Dies erzeugt keine Informationen über TempDB, Model oder Msdb.
Slogmeister Extraordinaire

14

Ab SQL 2005: Die folgende Abfrage enthält eine Liste aller Datenbanken und zugehörigen Dateien:

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
Ich würde die WHERE-Klausel entfernen, um sicherzustellen, dass Sie alle der Datenbank zugeordneten Dateien erhalten.
Slogmeister Extraordinaire

14

Sie waren im richtigen Dialog, aber falsche Registerkarte Öffnen Sie die Registerkarte Dateien , der Pfad wird für alle Datenbankdateien angezeigt Bildbeschreibung hier eingeben


2

Der beste und einfachste Weg, um die (.mdf & .ldf)Datei-, Größen- und Wachstumsraten-Details der jeweiligen Datenbank zu finden, ist die unten erwähnte TSQL-Abfrage.

exec sp_helpdb @dbname='Databasename';
Go

-2

Der Pfad für .mdf und .ldf wird sein

Root-Laufwerk (wo Os installiert ist) ->

Programmdateien (für 64-Bit-Anwendungen) oder Programmdateien (x86) für 32 aber Anwendungen->

Microsoft SQL Server->

MSSQL11.SQL2012->

MSSQL->

DATEN


MSSQL11.SQL2012 Dies ist für Benutzer, die SQL 2012 verwenden ...

So können Sie leicht erkennen, wie der Ordnername für Sie lautet, wenn Sie SQL 2008 im Ordner "Microsoft SQL Serve" unter dem angegebenen Pfad verwenden


2
Das ist völlig richtig - für kleine Installationen. Für jede echte Installation hat jemand ein Disc-Layout geplant und kann entweder alternative Speicherorte auf db create oder sogar als Standard definiert haben. Sie können dies sogar während des Setups ändern. Ich würde sagen, in jeder nicht trivialen Umgebung werden KEINE Daten und Protokolldateien auf dem Laufwerk C abgelegt (in dem sich Programmdateien befinden).
TomTom
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.