还原SQL Server 2005的备份数据存储在哪里?

我在networking上的两台不同的机器上有两个Sql Server数据库实例。 让我们打电话给这些服务器A和B.由于一些基础设施的问题,我不得不在服务器A上完成数据库的完整备份,并将A.bak复制到A和B可访问的共享驱动器上。我想要的是恢复B上的数据库

我的第一个问题是恢复服务器B上的备份,但备份位置不显示我的共享驱动器。

我的下一个问题是,服务器B的C:驱动器几乎没有任何空间,还有一些额外的分区有更多的空间,可以容纳我的备份文件,但我不知道在我恢复数据库后数据会发生什么。备份数据填满了C:上的所有可用空间。

如果有人解释在目标数据库服务器上启动还原数据库之后如何布置数据,那将会非常棒。

谢谢

如果我记得没错,已经有一段时间了,但是如果运行SQL的帐户没有权限(即本地用户帐户),SQL将无法将networking共享识别为还原位置。 将备份复制到具有更多空间的本地分区。

在使用GUI进行恢复时,您可以指定数据文件的位置以及日志将被恢复到的位置。 select备份文件时,请参阅“选项”选项卡,它应列出原始path,并允许您更改目标path。 将这些移动到一个新的位置与额外的磁盘空间。 或者,您可以使用恢复tsql语句:

restore database yourdbname from disk 'm:\sqlbackups\yourbackup.bak' with norecovery, move 'yourdbname_data' to 'f:\_sql\data\yourdbname_data.mdf', move 'yourdbname_log' to 'f:\_sql\logs\yourdbname_log.ldf' 

yourdbname_data和yourdbname_log是文件列表中“逻辑名称”的名称。 如果你有多个文件(你应该至less有2个),那么重复每条线的移动语句。

如果您已经在sp_configure中启用了xp_cmdshell,如本MSDN文章中所述,您可以使用它来挂载文件共享:

 xp_cmdshell 'net use x: \\server\share /user:<username> <password>' 

您将可以在Management Studio中访问文件共享。

您可以使用T / SQL执行还原并指定networking共享位置。 这确实需要运行SQL Server的SQL帐户有权访问networking位置。 只需指定备份文件的networking位置即可。

 RESTORE DATABASE MyDatabase from DISK='\\NetworkServer\Share\Folder\file.bak' 

如果您需要更改物理文件的存储位置,请使用MOVE参数。

 RESTORE DATABASE MyDatabase from DISK='\\NetworkServer\Share\Folder\file.bak' WITH MOVE 'LogicalFile' TO 'D:\folder\file.mdf', MOVE 'LogFile' TO 'E:\folder\file.ldf'