SQL Server 2008 R2 的脚本备份
Posted
技术标签:
【中文标题】SQL Server 2008 R2 的脚本备份【英文标题】:Scripting backup of SQL 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 处于生命支持状态,很快就会失去支持。 【参考方案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\
寻找它
【讨论】:
以上是关于SQL Server 2008 R2 的脚本备份的主要内容,如果未能解决你的问题,请参考以下文章
迁移MSSql Db - 来自SQL Server 2008 R2 Enterprise备份可以在SQL Server 2008 R2 Express版本中还原
SQL SERVER 2008R2 执行大脚本文件时,提示“内存不足”的解决办法