如何通过网络使用 SQL Server 2005 恢复数据库备份?我记得以前这样做过,但这样做的方式有些奇怪。

有帮助吗?

解决方案

数据库通常作为服务在没有网络访问权限的帐户下运行。如果是这种情况,那么您将无法直接通过网络进行恢复。要么需要将备份复制到本地计算机,要么需要以具有适当网络访问权限的用户身份运行数据库服务。

其他提示

您几乎没有选择使用网络文件作为备份源

  1. 在与 MS-SQL Server 相同的用户下映射网络驱动器/路径、托管文件。
  2. 使用 xp_cmdshell 扩展存储过程从 MS SQL 内部映射网络驱动器(这样,命令 shell 将具有与运行 SSMS 的用户帐户相同的权限)
-- 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

您无法通过 SSMS GUI 执行此操作,但可以使用脚本执行此操作。RESTORE DATABASE from DISK='\unc\path\filename' 如果您需要自动执行此过程,最好的方法是设置 SQL Server 作业并以有权访问该文件位置的用户身份运行它。

确保运行您的用户 SQL services"Services.msc" 是一个活动目录 "Domain User" 这将解决这个问题。

您可以使用 SP xp_cmdshell 映射 sql server 的网络驱动器,之后它将显示在文件浏览窗口中。

EXEC xp_cmdshell 'NET USE Z: SERVERLOCATION PASSWORD /USER:DOMAIN\USERNAME'

更多信息在这里: 从网络驱动器恢复数据库

为我工作!

我不得不这样做几次,而且我知道的只有两种选择。将文件本地复制到 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:将在 Server Management studio 中可见,或者仅

RESTORE DATABASE DB FROM DISK = 'Z:\DB.BAK'
WITH REPLACE
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top