我需要将数据库从远程服务器复制到本地服务器。我尝试使用SQL Server Management Studio,但它只备份到远程服务器上的驱动器。
一些要点:
我不能以复制文件的方式访问远程服务器; 我没有权限设置一个UNC路径到我的服务器;
知道如何复制这个数据库吗?我是否需要使用第三方工具?
我需要将数据库从远程服务器复制到本地服务器。我尝试使用SQL Server Management Studio,但它只备份到远程服务器上的驱动器。
一些要点:
我不能以复制文件的方式访问远程服务器; 我没有权限设置一个UNC路径到我的服务器;
知道如何复制这个数据库吗?我是否需要使用第三方工具?
当前回答
我知道这是一个晚的答案,但我必须对大多数投票的答案做出评论,说要在SSMS中使用生成脚本选项。
问题是这个选项不一定会以正确的执行顺序生成脚本,因为它没有考虑依赖关系。
对于小型数据库,这不是一个问题,但对于大型数据库,这肯定是一个问题,因为它需要手动重新排序脚本。试一下500对象数据库;)
不幸的是,在这种情况下,唯一的解决方案是第三方工具。
我成功地使用了ApexSQL (Diff和Data Diff)的比较工具来完成类似的任务,但使用这里已经提到的任何其他工具都不会出错,尤其是Red Gate。
其他回答
您可以尝试SQLBackupAndFTP。它将创建脚本来创建数据库中的所有对象,并为表中的所有行创建INSERT语句。在任何数据库中都可以运行此脚本文件,整个数据库将被重新创建。
我很惊讶,没有人提到Ola Hallengren提供的脚本备份解决方案,它绝对允许您从远程服务器备份一个DB到网络上的UNC路径免费(实际上,我正在使用它,因为我从一个开发服务器备份一个DB,我没有远程访问权限,除了通过SSMS到我的开发PC上的共享)。自2008年以来,它已经可用,并在SQL Server 2005上工作到2014年。
您需要确保您设置的共享有足够的访问权限:在备份过程中,我倾向于允许对“Everyone”AD组进行完整的读/写,因为我太懒了,不想考虑任何更严格的限制,但这是个人选择。
它被很好地使用,有很好的文档记录,而且非常灵活。我倾向于把procs和日志记录表放在它们自己的小实用程序数据库中,然后启动它。只要所有东西都在您的AD域中,而不是远程的,因为它在一个位于同一位置的服务器上或其他东西上,这是非常有效的。
很抱歉添加到一个非常古老的线程,但我在寻找其他东西时偶然发现了这个,并认为这对任何寻找这个主题的人来说都是一个有价值的添加。
您不能从远程服务器创建备份到本地磁盘—根本没有办法做到这一点。据我所知,也没有第三方工具可以做到这一点。
您所能做的就是在远程服务器机器上创建备份,然后让其他人将其压缩并发送给您。
你可以使用复制数据库…右键单击远程数据库…选择任务并使用复制数据库…它会询问您源服务器和目标服务器。您的源是远程的,目标是SQL server的本地实例。
就是这么简单
正如Martin Smith所说,如果您无法访问计算机或文件系统,那么您将需要使用第三方工具,如Red Gate或Adept来对源系统和目标系统进行比较。Red Gate的工具将允许您复制对象、模式和数据。