数据库的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

Answers:


22

有几种方法可以确定SQL Server mdf文件和关联的日志文件的位置。

  1. 打开企业管理器,右键单击您感兴趣的数据库,然后选择属性。选择“文件”部分,然后滚动到PathFileName列。

  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



-2

.mdf和.ldf的路径为

根驱动器(已安装操作系统的位置)->

用于32位但适用于应用程序的Programfiles(用于64位应用程序)或Programfiles(x86)->

Microsoft SQL Server->

MSSQL11.SQL2012->

MSSQL->

数据


MSSQL11.SQL2012这是针对使用SQL 2012的用户的...

因此,当您在提到的路径中的“ Microsoft SQL Serve”文件夹下使用SQL 2008时,您可以轻松地识别出您的文件夹名称是什么


2
这是完全正确的-对于小型安装。对于任何实际安装,都会有人计划了磁盘布局,并且可能已经在db create上定义了替代位置,甚至是默认位置。您甚至可以在设置过程中进行更改。我要说的是,在任何不平凡的环境中,人们都不会将数据和日志文件转储到C驱动器上(程序文件位于其中)。
TomTom
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.