7.创建 SQL Server Express自动备份数据库功能

 

实现EXPRESS速成版自动备份的具体步骤:

步骤一:

首先我们要先编写好备份数据库的存储过程,这样可以极大方便我们进行自动备份操作,具体可以参考微软MSDN资料:BACKUP语法

这里先展示我自己的数据库备份存储过程,备份的数据库是InformationManagementSystem,备份文件存放位置是F:\Database\Backup,示例:

CREATE PROCEDURE sp_BackupDatabases AS 

BEGIN

           --设置备份数据库的存放目录

           DECLARE @diskPath NVARCHAR(300) 

           SET @diskPath='F:\Database\Backup\InformationManagementSystem_' 

          +CONVERT(VARCHAR, GETDATE(),112)+'_' 

          +REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')+'.BAK' 

          BACKUP DATABASE InformationManagementSystem TO DISK = @diskPath WITH FORMAT; 

          END

这里我们可以运行下存储过程测试下,直接在SQL SERVER EXPRESS中新建查询然后运行语句:

EXEC InformationManagementSystem.dbo.sp_BackupDatabases 

步骤二:

这里我们要编写一个批处理文件,主要是让系统自动执行这个批处理文件,而批处理文件的语句则调用了sqlcmd命令来运行数据库备份的存储过程。

假设我们的批处理文件放在"F:\Database\Backup",我们先右键新建一个文本文件,将下面的执行语句复制到文本中并保存(这里一定要注意大小写,sqlcmd命令是区分大小写的):


sqlcmd -S . -E -Q "EXEC InformationManagementSystem.dbo.sp_BackupDatabases"

保存成功后将文件后缀改成.bat,比如“Sqlbackup.bat"。

步骤三:

打开控制面板,选择管理工具=》任务计划程序

步骤四:

右键任务计划程序,选择创建任务,如下图设置相关基础信息:

这里要注意的是在安全选项的用户账号要选择当前系统账号,比如上图标记3中的SYSTEM账号,之所以要选择system账号,是由于如果选择当前系统的管理员账号,每次任务计划运行批处理文件的时候,系统都会弹出执行对话框,虽然只是一闪而过,但是还是会对用户造成不必要的干扰

步骤五:

设置完常规选项后,接下来点击触发器,设置任务自动执行的时间,比如下图中我们设置每天的12点都执行一次自动备份(会自动运行数据库备份的批处理文件),然后点击确定。

步骤六:

这里设置我们要执行的操作,选择启动程序,然后浏览并选择步骤二中保存在"F:\Database\Backup\Sqlbackup.bat"的批处理文件,以后每天中午12点都会执行这个自动备份脚本。

步骤七:

最后这里设置其他相关选项,这里根据自己的要求进行设置。

到了这里就大功告成,我们通过使用系统的任务计划程序,从而定时执行批处理脚本,实现了SQL Server Express速成版的自动备份数据库的功能。