我需要将数据库从远程服务器复制到本地服务器。我尝试使用SQL Server Management Studio,但它只备份到远程服务器上的驱动器。

一些要点:

我不能以复制文件的方式访问远程服务器; 我没有权限设置一个UNC路径到我的服务器;

知道如何复制这个数据库吗?我是否需要使用第三方工具?


当前回答

部分第三方备份程序允许设置文件传输的网络权限。当SQL Server服务在受限帐户下运行且没有足够的网络权限时,它非常有用。尝试使用EMS SQL Backup解决此任务。

其他回答

首先,使用Everyone向机器上的本地路径授予完全控制权限(如下所示)。(或者专门授予SQL Server代理帐户权限)。

其次,执行以下步骤:

BACKUP DATABASE [dev] TO  DISK = N'\\myMachine\c\dev.bak' WITH COPY_ONLY, INIT;

正如Martin Smith所说,如果您无法访问计算机或文件系统,那么您将需要使用第三方工具,如Red Gate或Adept来对源系统和目标系统进行比较。Red Gate的工具将允许您复制对象、模式和数据。

上面的答案是不正确的。即使有数据的SQL脚本也不是备份。备份是一个BAK文件,其中包含当前结构(包括索引)中的完整数据库。

当然,可以在本地系统上检索包含远程SQL Server数据库中所有数据和索引的完整备份的BAK文件。

这可以用商业软件来完成,直接将备份BAK文件保存到您的本地机器上,例如,这将直接从本地机器上的远程SQL db创建备份。

你可以使用复制数据库…右键单击远程数据库…选择任务并使用复制数据库…它会询问您源服务器和目标服务器。您的源是远程的,目标是SQL server的本地实例。

就是这么简单

我以前也可以这么做……要做到这一点,你必须在远程服务器上打开一个共享。然后您可以直接将备份放在共享本身,而不是默认位置…

通常管理员会将备份文件保存在某个共享文件夹中与我们共享。我试过了,如果我把备份放在那里。它工作。