将 .bak 文件还原到远程数据库

Posted

技术标签:

【中文标题】将 .bak 文件还原到远程数据库【英文标题】:Restore .bak file to remote database 【发布时间】:2012-05-30 12:28:36 【问题描述】:

我的本​​地机器中有一个test.bak 文件。我需要将此文件恢复到远程机器的数据库。我该怎么做?

当我尝试这个时,远程数据库抛出一个错误,它无法在本地文件系统上找到test.bak

查询

RESTORE DATABASE TESTPROJECT 
FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.ICON3\MSSQL\Backup\test.bak'

错误

Cannot open backup device 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.ICON3\MSSQL\Backup\test.bak'. Operating system error 2(The system cannot find the file specified.).

我怎样才能做到这一点?我正在使用 Microsoft SQL Server 2008。

【问题讨论】:

你是指本地路径还是服务器路径来恢复.bak文件? 基本上,.bak 文件需要位于运行 SQL Server 软件的该计算机的磁盘上。您无法通过在本地硬盘上保存 .bak 文件来恢复到 remote 服务器。 【参考方案1】:

在此答案的上下文中 - remote 指的是您的机器,local 是数据库服务器。


local文件系统恢复

将备份文件复制到local 文件系统,并直接从该副本恢复。

先决条件

test.bak复制到服务器上的C:\test.bak

语法

RESTORE DATABASE TESTPROJECT FROM DISK = N'C:\test.bak';

remote文件系统恢复

您也可以使用UNC syntax 从remote 备份文件中恢复。我通常不使用此选项,但如果 local 文件系统上没有足够的磁盘空间用于备份文件和恢复的数据库,它会很有用。

此选项的成功取决于一些变量 - 分配给数据库服务帐户的 remote 文件系统的权限、网络健康状况等。

先决条件

Remote 机器名是 remotemachine 备份位于remote'C:\test.bak' 数据库服务帐户有权访问remote 管理员共享C$

语法

RESTORE DATABASE TESTPROJECT FROM DISK = N'\\remotemachine\c$\test.bak';

【讨论】:

嗨,Bryan,如果出现“访问被拒绝”并且文件已与所有人共享,我该怎么做?

以上是关于将 .bak 文件还原到远程数据库的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法将现有mssql备份文件bak格式,导入到mysql数据库中

Sql Server远程还原

数据库还原缓慢

sql server 2008还原bak文件时提示磁盘空间不足

怎么把sql server 2008 备份文件bak还原?

visual studio 中 如何还原.bak数据文件