将 .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数据库中