如何使用SQL Server 2005通过网络恢复数据库备份?我记得以前做过这个但是方法似乎有点奇怪。
如何使用SQL Server 2005通过网络恢复数据库备份?我记得以前做过这个但是方法似乎有点奇怪。
您有几个选项可以使用网络文件作为备份源
-- allow changes to advanced options
EXEC sp_configure 'show advanced options', 1
GO
-- Update currently configured values for advanced options.
RECONFIGURE
GO
-- To enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
-- Update currently configured values for advanced options.
RECONFIGURE
GO
EXEC xp_cmdshell 'NET USE Z: \\Srv\Path password1 /USER:Domain\UserName'
随后,在服务器管理工具中将可以看到Z驱动器,或者只是
RESTORE DATABASE DataBaseNameHere FROM DISK = 'Z:\BackNameHere.BAK'
GO
数据库通常作为一个没有网络访问权限的帐户下的服务运行。如果是这种情况,那么你将无法直接通过网络还原备份。备份需要复制到本地机器上,或者数据库服务需要以具有正确网络访问权限的用户身份运行。
EXEC xp_cmdshell 'NET USE...
;请参阅其他答案。 - JB.你无法通过 SSMS 图形用户界面完成这个操作,但是你可以使用脚本来实现。从磁盘还原数据库 RESTORE DATABASE from DISK='\unc\path\filename' 如果你需要自动化这个过程,最好的方法是设置一个 SQL Server 作业,并将其作为能够访问文件位置的用户运行。
EXEC xp_cmdshell 'NET USE Z: SERVERLOCATION PASSWORD /USER:DOMAIN\USERNAME'
更多信息请见:从网络驱动器恢复数据库
对我起作用了!
请确保在 "Services.msc"
中运行你的 SQL 服务
的用户是活动目录下的 "域用户"
,这将解决问题。
顺便提一下,如果您恰好在虚拟机上运行SQL,则通常最好只是在VM上临时设置一个新驱动器,以具有足够的空间将备份文件复制到,从该新本地副本进行还原,然后删除临时驱动器。
如果停止/启动SQL服务以更改其帐户是一个问题,则此方法非常有用。
我曾经不止一次地需要这样做,而我所知道的只有两个选项。将文件复制到 SQL Server 的本地位置,或在 SQL Server 上创建一个映射到包含备份文件的共享文件夹的网络驱动器。
EXEC sp_configure 'show advanced options', 1
GO
-- 更新高级选项的当前配置值。
RECONFIGURE
GO
-- To enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
-- 更新高级选项的当前配置值。
RECONFIGURE
GO
--这应该在命令提示符(cmd)上运行。
NET USE Z: \\172.100.1.100\Shared Password /USER:administrator /Persistent:no
然后在 SQL Server 上
EXEC xp_cmdshell 'NET USE Z: \\172.100.1.100\Shared Password /USER:administrator /Persistent:no'
--之后,在服务器管理工具中将会看到驱动器Z:,或者只是
RESTORE DATABASE DB FROM DISK = 'Z:\DB.BAK'
WITH REPLACE
NET USE
可以解决该问题。这个答案非常有用。 - JB.EXEC sp_configure 'xp_cmdshell', 0
来禁用 xp_cmdshell 吗?(出于安全原因或其他原因)。 - Jim Aho