SQL Server Express 自动备份

作者:vkvi 来源:ITPOW(原创) 日期:2018-1-29

SQL Server Express 版本不具备 Agent 服务,所以无法实现定时备份功能。那有什么办法解决呢?

一、写 SQL 语句

declare @backupTime nvarchar(50)
select @backupTime=convert(nvarchar(50), getdate(), 120)
select @backupTime=replace(@backupTime, '-', '')
select @backupTime=replace(@backupTime, ' ', '')
select @backupTime=replace(@backupTime, ':', '')

declare @fileName nvarchar(200)
select @fileName='C:\SQLBackup\DbName_' + @backupTime + '.bak'

backup database DbName to disk=@fileName

注意:SQL Server 并不会自动创建 SQLBackup 这个目录,需要我们预先人工创建,否则会出错。

二、创建批处理文件

将上述 SQL 语句保存为文件,比如叫 DbName.sql。

下面再创建一个批处理文件,保存为文件,比如叫:DbName.bat。

sqlcmd -S . -i C:\SQLBackup\DbName.sql

-S 后面的 . 表示本服务器(注意,如果不是默认实例,则需要加上实例名,比如:.\SQLExpress);-i 后面的参数表示输入文件,注意这个地方一定要用全路径,因为放到计划任务中去执行时,其执行路径并不是 .bat 的路径,所以相对路径就会出错。

三、定时执行批处理文件

在控件面板中,搜索“计划任务”,新建一个任务:

  • 先是指定基本信息。

  • 然后在触发器中指定执行频率。

  • 然后在操作中执行之前的 .bat 文件。

计划任务

四、注意权限

要让 SQL Server 运行户对备份目录有写入权限,这个 SQL Server 运行帐户可以通过 SQL Server 服务属性,或者在 Sql Server Configuration Manager中“登录身份为”查看。

相关阅读

相关文章