如何永久更改 MSSQL 存储数据库信息的位置?

如何永久更改 MSSQL 存储数据库信息的位置?

使用 SQL Server 2005 的 SQL Server 管理控制台,我们转到

Server Properties --> Database Settings --> 
change database default location from c:\blah\blah to E:\MSSQL\DATA

我们重新启动服务器,至少理论上它应该将所有新数据库存储在该目录中。

到目前为止一切正常,但是当我们恢复第一个 databasename.bak 文件时,它会将信息存储在 C:\Program Files\blah\blah\data 目录中。

关于如何使其永久保留甚至恢复到数据库,您有什么想法吗?

答案1

数据库 .bak 文件包含有关备份数据库保存其 mdf 和 ldf 文件的位置的信息。我猜它是这样设计的,以便使恢复变得非常简单。要将备份恢复到不同的位置(即您想要的新位置),您需要使用一些稍微高级的功能:

答案2

您设置的服务器默认值仅控制新数据库的默认位置。您需要在 RESTORE 操作中告诉 SQL 文件的新位置。如果使用 GUI,请切换到恢复数据库对话框的选项页面,并为每个文件指定一个新路径。如果使用查询窗口,请使用 RESTORE FILELISTONLY 获取文件列表,然后使用该信息 RESTORE DATABASE ... WITH MOVE ... 以将数据库恢复到您选择的位置。

答案3

恢复名为“我的”的数据库

RESTORE DATABASE mine
    FROM DISK = 'c:\mine.bak'
    WITH MOVE 'mine' TO 'c:\vol\newlocation\mine.mdf',
         MOVE 'mine_log' TO 'c:\vol\newlocation\mine_log.ldf'

答案4

进入对象资源管理器。右键单击数据库服务器并选择“属性”。进入左侧的“数据库设置”并更改数据库默认位置。

注意:这仅适用于您进行更改的特定数据库服务器。

在此处输入图片描述

相关内容