【发布时间】:2010-09-06 04:48:32
【问题描述】:
如何通过网络使用 SQL Server 2005 恢复数据库备份?我记得以前这样做过,但你必须这样做的方式有些奇怪。
【问题讨论】:
标签: sql-server database sql-server-2005 backup restore
如何通过网络使用 SQL Server 2005 恢复数据库备份?我记得以前这样做过,但你必须这样做的方式有些奇怪。
【问题讨论】:
标签: sql-server database sql-server-2005 backup restore
您几乎没有选择将网络文件用作备份源
-- 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
【讨论】:
NET USE 可以解决问题。这个答案真的很有用。
EXEC sp_configure 'xp_cmdshell', 0 之类的东西来禁用xp_cmdshell? (出于安全原因或其他原因)。
数据库通常在没有网络访问权限的帐户下作为服务运行。如果是这种情况,那么您将无法直接通过网络进行恢复。要么需要将备份复制到本地计算机,要么需要以具有适当网络访问权限的用户身份运行数据库服务。
【讨论】:
EXEC xp_cmdshell 'NET USE...;查看其他答案..
您无法通过 SSMS GUI 执行此操作,但您可以使用脚本执行此操作。 RESTORE DATABASE from DISK='\unc\path\filename' 如果您需要自动执行此过程,最好的方法是设置 SQL Server 作业并以有权访问文件位置的用户身份运行它。
【讨论】:
确保在"Services.msc" 中运行SQL services 的用户是活动目录"Domain User" 这将解决问题。
【讨论】:
您可以使用SP xp_cmdshell 为sql server 映射网络驱动器,然后它将显示在文件浏览窗口中。
EXEC xp_cmdshell 'NET USE Z: SERVERLOCATION PASSWORD /USER:DOMAIN\USERNAME'
更多信息在这里:DB Restore from Network Drive
为我工作!
【讨论】:
我不得不这样做几次,我只知道两个选项。将文件本地复制到 SQL Server,或在 SQL Server 上创建映射网络驱动器到包含备份文件的共享。
【讨论】:
此外,您需要确保 SQL Server 服务以具有网络访问权限的用户身份运行 - 以及对备份文件所在共享的权限。 “本地系统”将无权访问网络。
【讨论】:
附带说明,如果您碰巧在虚拟机上运行 SQL,只需在虚拟机上临时设置一个具有足够空间来复制您的备份文件的新驱动器,然后从该新驱动器进行恢复,通常就不会那么麻烦了本地副本,然后删除临时驱动器。
如果停止/启动 SQL 服务以更改其帐户是一个问题,这可能很有用。
【讨论】:
在有备份的机器上创建一个共享驱动器,比如 server1 在文件夹“Backups”中有备份。将完全控制权授予运行 SQL Server 的帐户。在要还原以启动 SSMS 的服务器上,还原数据库并选择“从设备”。在“查找备份文件-”服务器“”对话框中,删除“选定路径”字段中的任何内容,并在“文件名”字段中提供完整路径,以便“\server\backups\db.bak”。至少在从 05 迁移到 08 时它对我有用。不是首选方法,因为任何网络故障都可能导致还原问题。
【讨论】:
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
【讨论】: