从我的开发SQL Server,我想在我的生产SQL Server上启动一个备份,通过数据库链接将备份写入开发SQL Server磁盘。
出于安全原因,我无法获得生产SQL Server上的驱动器权限(这将允许我从Prod备份在Dev上启动还原(。这是我唯一能想到的解决办法。
总体目标是每晚获得一份生产版的完整备份副本,并将一份副本恢复到开发版。这将为我们提供一份最近的副本,以便在Dev.中使用
我尝试了以下代码,但它无法识别数据库。
--RUN FROM DEV Database
BACKUP DATABASE [PROD_DATABASE_LINK].[blog]
TO DISK = N'\Dev_Database_DriveD$Backupblogblog_FullBackup_Test'
WITH NOFORMAT, NOINIT,
NAME = N'blog-Full Database Backup',
SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
DECLARE @SQL NVARCHAR(100)
SET @SQL = 'BACKUP DATABASE [PROD_DATABASE_LINK].[dbo].[blog]TO DISK = N''\Database_A_DriveD$Backupblogblog_FullBackup_Test'''
EXECUTE [DEV_DATABASE_LINK].dbo.sp_executesql @SQL
任何帮助都将不胜感激,
Eric
不能备份单个表,UNC路径应该是\serversharefolderfile
。因此BACKUP命令应该看起来像:
BACKUP DATABASE [blog]
TO DISK = N'\DevServerD$BackupVRVblogVRVblog_FullBackup_Test.bak'
要访问管理员D$
共享,SQL Server服务帐户需要是目标服务器上的管理员。
BACKUP不能引用链接服务器上的数据库,但您可以将该批数据发送到目标服务器以像一样执行
declare @sql nvarchar(max) = N'
BACKUP DATABASE [blog]
TO DISK = N''\DevServerD$BackupVRVblogVRVblog_FullBackup_Test.bak''
'
exec (@sql) at ProdServer
很抱歉延迟,但你是对的,只是因为权限问题,你无法从这里到达那里。
自从问题发布后,我们进行了合同/人事变更,纠正了问题。