我需要将数据库从远程服务器复制到本地服务器。我尝试使用SQL Server Management Studio,但它只备份到远程服务器上的驱动器。
一些要点:
我不能以复制文件的方式访问远程服务器; 我没有权限设置一个UNC路径到我的服务器;
知道如何复制这个数据库吗?我是否需要使用第三方工具?
我需要将数据库从远程服务器复制到本地服务器。我尝试使用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
其他回答
看看这个博客如何复制远程数据库:
从共享主机环境备份SQL Server 2008数据库
2019年,如果你想要一个实际的本地备份,我建议使用mssql-scripter。是的,它是脚本,但你可以调整它,包括任何你想要的,这可以包括所有的数据。我写了一个bash脚本,在linux机器上使用它进行自动每日备份。查看我的要点:
https://gist.github.com/tjmoses/45ee6b3046be280c9daa23b0f610f407
AppHarbor团队一直在努力解决这个问题,并使用SQL服务器管理对象和SqlBulkCopy开发了一个临时解决方案。
查看他们的博客文章,或者直接查看代码。
他们只在AppHarbor上进行了测试,但它可能值得一试。
从远程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文件。
部分第三方备份程序允许设置文件传输的网络权限。当SQL Server服务在受限帐户下运行且没有足够的网络权限时,它非常有用。尝试使用EMS SQL Backup解决此任务。