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

一些要点:

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

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


当前回答

试试这个吧:

1)在您的计算机中共享具有完全权限的文件夹

2)在你的SQL server: 控制面板->管理工具->服务->右键单击所有SQL服务

登录选项卡应以您的域管理员开始

3)在SQL server的维护向导中放置备份的位置和文件夹(\yourcomputername\sharedfoldernam)

我在公司的sql server 2008的8台服务器上做了远程备份

其他回答

为此,我使用Redgate备份pro 7工具。您可以创建镜像从备份文件在创建瓷砖在其他位置。在网络和主机存储上创建备份文件后,可以自动复制备份文件。

我知道这是一个晚的答案,但我必须对大多数投票的答案做出评论,说要在SSMS中使用生成脚本选项。

问题是这个选项不一定会以正确的执行顺序生成脚本,因为它没有考虑依赖关系。

对于小型数据库,这不是一个问题,但对于大型数据库,这肯定是一个问题,因为它需要手动重新排序脚本。试一下500对象数据库;)

不幸的是,在这种情况下,唯一的解决方案是第三方工具。

我成功地使用了ApexSQL (Diff和Data Diff)的比较工具来完成类似的任务,但使用这里已经提到的任何其他工具都不会出错,尤其是Red Gate。

您可以尝试SQLBackupAndFTP。它将创建脚本来创建数据库中的所有对象,并为表中的所有行创建INSERT语句。在任何数据库中都可以运行此脚本文件,整个数据库将被重新创建。

在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。不过要注意,您需要执行一个完整的搜索并将脚本中的数据库名称替换为一个新的数据库,在这种情况下,您不必在运行脚本之前创建这个数据库。这应该创建一个更准确的副本,但由于权限限制,有时不可用。

如果您使用SSMS下的Generate Scripts,请单击Advanced按钮。在“为依赖对象生成脚本”选项下,单击“True”。通过单击,每个对象的任何依赖关系也将以适当的顺序编写出来。