我需要将数据库从远程服务器复制到本地服务器。我尝试使用SQL Server Management Studio,但它只备份到远程服务器上的驱动器。
一些要点:
我不能以复制文件的方式访问远程服务器; 我没有权限设置一个UNC路径到我的服务器;
知道如何复制这个数据库吗?我是否需要使用第三方工具?
我需要将数据库从远程服务器复制到本地服务器。我尝试使用SQL Server Management Studio,但它只备份到远程服务器上的驱动器。
一些要点:
我不能以复制文件的方式访问远程服务器; 我没有权限设置一个UNC路径到我的服务器;
知道如何复制这个数据库吗?我是否需要使用第三方工具?
当前回答
如果您使用SSMS下的Generate Scripts,请单击Advanced按钮。在“为依赖对象生成脚本”选项下,单击“True”。通过单击,每个对象的任何依赖关系也将以适当的顺序编写出来。
其他回答
你可以使用复制数据库…右键单击远程数据库…选择任务并使用复制数据库…它会询问您源服务器和目标服务器。您的源是远程的,目标是SQL server的本地实例。
就是这么简单
使用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
如果您在本地网络中,则可以共享本地计算机上的一个文件夹,并将其用作备份的目标文件夹。
例子:
本地文件夹: URL: \\MyMachine\MySharedFolder 远程SQL Server: 选择您的数据库->任务->备份->目的地->添加->应用'\\MyMachine\MySharedFolder\BACKUP_NAME.bak'
我很惊讶,没有人提到Ola Hallengren提供的脚本备份解决方案,它绝对允许您从远程服务器备份一个DB到网络上的UNC路径免费(实际上,我正在使用它,因为我从一个开发服务器备份一个DB,我没有远程访问权限,除了通过SSMS到我的开发PC上的共享)。自2008年以来,它已经可用,并在SQL Server 2005上工作到2014年。
您需要确保您设置的共享有足够的访问权限:在备份过程中,我倾向于允许对“Everyone”AD组进行完整的读/写,因为我太懒了,不想考虑任何更严格的限制,但这是个人选择。
它被很好地使用,有很好的文档记录,而且非常灵活。我倾向于把procs和日志记录表放在它们自己的小实用程序数据库中,然后启动它。只要所有东西都在您的AD域中,而不是远程的,因为它在一个位于同一位置的服务器上或其他东西上,这是非常有效的。
很抱歉添加到一个非常古老的线程,但我在寻找其他东西时偶然发现了这个,并认为这对任何寻找这个主题的人来说都是一个有价值的添加。
从远程sql server获取bak文件到本地pc有99%的解决方案。我在我的帖子http://www.ok.unsode.com/post/2015/06/27/remote-sql-backup-to-local-pc中描述了它
通常是这样的:
执行SQL脚本生成bak文件 执行SQL脚本将每个bak文件插入到字段类型为varbinary的临时表中,并选择这一行下载数据 重复上一页。你有多少bak文件就有多少步 执行SQL脚本删除所有临时资源
就是这样,你在本地电脑上有你的bak文件。