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

一些要点:

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

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


当前回答

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

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

其他回答

我知道这是一个旧的帖子,但对于它的价值,我发现“最简单”的解决方案是右键单击数据库,并选择“任务”->“导出数据层应用程序”。这个选项可能只是因为服务器托管在Azure上(根据我过去使用Azure的记忆,.bacpac格式在那里非常常见)。

完成此操作后,您可以右键单击本地服务器“Databases”列表,并使用“Import data -tier Application”,使用.bacpac文件将数据获取到本地机器。

不过要记住,输出可能需要很长时间。我的出口花了大约两个小时。不过,导入部分要快得多。

您不能从远程服务器创建备份到本地磁盘—根本没有办法做到这一点。据我所知,也没有第三方工具可以做到这一点。

您所能做的就是在远程服务器机器上创建备份,然后让其他人将其压缩并发送给您。

在Microsoft SQL Server Management Studio中,您可以右键单击要备份的数据库,然后单击Tasks -> Generate Scripts。

这会弹出一个向导,你可以在其中设置以下内容,以便对数据库进行像样的备份,即使是在远程服务器上:

Select the database you wish to backup and hit next, In the options it presents to you: In 2010: under the Table/View Options, change 'Script Data' and 'Script Indexes' to True and hit next, In 2012: under 'General', change 'Types of data to script' from 'Schema only' to 'Schema and data' In 2014: the option to script the data is now "hidden" in step "Set Scripting Options", you have to click the "Advanced" and set "Types of data to script" to "Schema and data" value In the next four windows, hit 'select all' and then next, Choose to script to a new query window

一旦它完成了自己的工作,就会有一个备份脚本摆在你面前。创建一个新的本地(或远程)数据库,并更改脚本中的第一个'USE'语句以使用您的新数据库。将脚本保存在一个安全的地方,然后在新的空数据库上运行它。这将创建一个(几乎)重复的本地数据库,然后可以根据需要进行备份。

如果您拥有远程数据库的完全访问权限,您可以选择在向导的第一个窗口中勾选“脚本所有对象”,然后在下一个窗口中将“脚本数据库”选项更改为True。不过要注意,您需要执行一个完整的搜索并将脚本中的数据库名称替换为一个新的数据库,在这种情况下,您不必在运行脚本之前创建这个数据库。这应该创建一个更准确的副本,但由于权限限制,有时不可用。

如果您在本地网络中,则可以共享本地计算机上的一个文件夹,并将其用作备份的目标文件夹。

例子:

本地文件夹: URL: \\MyMachine\MySharedFolder 远程SQL Server: 选择您的数据库->任务->备份->目的地->添加->应用'\\MyMachine\MySharedFolder\BACKUP_NAME.bak'

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

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