SQL Server 2008 R2的脚本备份



我一直在尝试按照此链接自动化数据库备份:

https://support.microsoft.com/en-us/help/2019698/how-to-schedule-and-and-automate-backups-of-sql-server-databases-in-sql-se-sql-se

我已将存储过程加载到我的[master]数据库中,并创建了一个批处理文件来执行存储过程。

使用SQL Server身份验证运行下面的批处理文件时,我在备份位置中没有任何输出

SQLCMD -S .servername -U username -P password 
       -Q "EXEC sp_BackupDatabases  @databaseName='databasename', @backupType=’F’, @backupLocation = 'C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLBackup'"

我确保用户名登录具有我试图备份的数据库的适当角色成员资格(选择db_backupoperator,与db_owner一起选择)。

我也不确定如何生成日志文件以查看是否有任何追溯 - 批处理文件仅完成而没有输出。

这是服务器属性:

Product: Microsoft SQL Server Express Edition with Advanced Services
Operating System: Microsoft Windows NT 6.1 (7601)
Platform: NT INTEL X86
Version: 10.50.1617.0 RTM

我非常感谢如果有人会帮助我,谢谢。

您的错误在这里:

@backupLocation = 'C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLBackup'

在文档中写了如何指定路径:

示例1

sqlcmd -S .EXPRESS –E -Q "EXEC sp_BackupDatabases @backupLocation='D:SQLBackups', @backupType='F'" 

注意路径中的最后一个斜线。

现在,简化了执行的代码看起来像这样:

declare @backupLocation nvarchar(200) = 'C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLBackup',
        @DBNAME sysname = 'databasename',
        @BackupFile varchar(100)
SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, '[',''),']','')+ '_FULL_'+ '20190222'+ '.BAK'
select @BackupFile

所以文件名是

C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLBackupdatabasename_FULL_20190222

您应该在C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQL

中寻找它

最新更新