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

一些要点:

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

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


当前回答

使用SQL Server 2019中的存储过程

CREATE PROCEDURE [dbo].[BackupDB]
@backupPath nchar(200), 
@dbname nchar(50)
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @backupDate as nchar(10) 
    SELECT @backupDate = CONVERT(VARCHAR(10),GETDATE(),112) 
    IF DB_ID(TRIM(@dbname)) IS NOT NULL
    BEGIN
        SET @backupPath = TRIM(@backupPath) + TRIM(@dbname) + '_' + TRIM(@backupDate) + '.BAK'
        BACKUP DATABASE @dbname TO DISK = @backupPath
    END 
END
GO

其他回答

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

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

就是这么简单

试试这个吧:

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

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

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

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

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

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

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