使用 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'