如何通过网络使用SQL Server 2005还原数据库备份?我记得以前这样做过,但你必须做的事情有些奇怪。
答案 0 :(得分:77)
您几乎没有选择将网络文件用作备份源
-- 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:将在Server Managment工作室中显示,或者只是
RESTORE DATABASE DataBaseNameHere FROM DISK = 'Z:\BackNameHere.BAK'
GO
答案 1 :(得分:18)
数据库通常在没有网络访问权限的帐户下作为服务运行。如果是这种情况,那么您将无法直接通过网络进行恢复。备份需要复制到本地计算机,或者数据库服务需要以具有适当网络访问权限的用户身份运行。
答案 2 :(得分:8)
您无法通过SSMS GUI执行此操作,但您可以使用脚本执行此操作。从DISK ='\ unc \ path \ filename'恢复数据库如果您需要自动执行此过程,最好的方法是设置SQL Server作业并以具有文件位置访问权限的用户身份运行它。
答案 3 :(得分:6)
确保在SQL services
中运行"Services.msc"
的用户是活动目录"Domain User"
,这样可以解决问题。
答案 4 :(得分:4)
您可以使用SP xp_cmdshell映射sql server的网络驱动器,之后它将显示在文件浏览窗口中。
EXEC xp_cmdshell 'NET USE Z: SERVERLOCATION PASSWORD /USER:DOMAIN\USERNAME'
此处有更多信息:DB Restore from Network Drive
为我工作!
答案 5 :(得分:0)
我必须这样做几次,而且我只知道两种选择。将文件本地复制到SQL Server,或在SQL Server上创建映射的网络驱动器到包含备份文件的共享。
答案 6 :(得分:0)
此外,您需要确保SQL Server服务作为具有网络访问权限的用户运行 - 以及对备份文件所在共享的权限。 “本地系统”无权访问网络。
答案 7 :(得分:0)
作为旁注,如果您碰巧在虚拟机上运行SQL,那么暂时在VM上临时设置新驱动器并且有足够的空间来复制备份文件通常不那么麻烦,从新的恢复本地副本,然后删除临时驱动器。
如果停止/启动SQL服务以更改帐户是个问题,这可能很有用。
答案 8 :(得分:0)
在具有备份的计算机上创建共享驱动器,例如server1将备份放在“备份”文件夹中。授予对运行SQL Server的帐户的完全控制权。在要还原以启动SSMS的服务器上,请执行还原数据库并选择“从设备”。在“定位备份文件 - ”服务器“”对话框中,删除“选定路径”字段中的任何内容,并在“文件名”字段中提供完整路径,以便“\ server \ backups \ db.bak”。至少它在从05到08迁移时对我有用。不是首选方法,因为任何网络打嗝都可能导致恢复问题。
答案 9 :(得分:0)
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:将在Server Management Studio中可见,或者只是
RESTORE DATABASE DB FROM DISK = 'Z:\DB.BAK'
WITH REPLACE