【问题标题】:Scripting backup of SQL Server 2008 R2SQL Server 2008 R2 的脚本备份
【发布时间】:2019-02-22 04:44:37
【问题描述】:

我一直在尝试点击此链接来自动化我的数据库备份:

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

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

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

SQLCMD -S .\servername -U username -P password 
       -Q "EXEC sp_BackupDatabases  @databaseName='databasename', @backupType=’F’, @backupLocation = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup'"

我已确保用户名登录具有我尝试备份的数据库的适当角色成员身份(选择了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

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

【问题讨论】:

  • 仍然应该有一些输出到命令shell...一些错误消息或异常..
  • 使用 RTM 版本?这不好。不支持 RTM。最后一个 SP 处于生命支持状态,很快就会失去支持。

标签: sql sql-server sql-server-2008-r2


【解决方案1】:

你的错误在这里:

@backupLocation = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup'

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

示例1

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

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

现在,执行的简化代码如下所示:

declare @backupLocation nvarchar(200) = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup',
        @DBNAME sysname = 'databasename',
        @BackupFile varchar(100)

SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, '[',''),']','')+ '_FULL_'+ '20190222'+ '.BAK'
select @BackupFile

所以文件名是

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backupdatabasename_FULL_20190222

你应该在C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\寻找它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多