/*十有三博客*/
  • 首页
  • 关于本站
  • 网站地图
  • RSS订阅

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

2015-03-06 十有三 0 浏览:1万+ 数据库 SQL Server

本文主要记录了SQL Server Express如何实现自动备份数据库的功能。由于SQL Server Express作为微软发布的免费版本,所以功能上和正式版相比有所缺少。自动备份数据库需要SQL Server Agent服务,但是express版则没有该服务,所以我们只能自己用其他的方法来执行自动备份。

PS:

  1. SQL Server Agent 主要包括以下几个组件:作业、警报、操作。
  2. 本文主要演示的系统为WIN7和Windows Server 2008,2003和XP没试过,应该也差不多,2012系统差别就更加不大了。
  3. 另外可以参考MSDN官方的资料:如何安排和自动 SQL Server 速成版的 SQL Server 数据库的备份

要实现SQL Server Express自动备份数据库有两种方式,一种是自己编写WindowsService服务程序,然后调用数据库中的备份存储过程,还有一种是使用系统自带的任务计划程序。

本文主要详细讲述使用WIN7/08系统的任务计划程序来实现自动备份数据库功能,这也是本人推荐的方法,除非有条件自己编写一个服务程序或者本身项目中就有服务程序,这倒是可以考虑使用服务程序来实现。

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

步骤一:

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

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

-- =============================================
-- Author:<十有三>
-- Create date: <2015-03-07>
-- Description:	<完整备份InformationManagementSystem>
-- =============================================
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"。

PS:

  1. 上述中的sqlcmd命令是执行一个存储过程,具体可以参考MSDN的资料:sqlcmd 实用工具 ,-S .指定要连接的 SQL Server 实例为本地数据库,-E表示使用使用信任连接而不用输入数据库用户和密码,-Q表示在 sqlcmd 启动时执行查询,随后立即退出 sqlcmd,这些命令选项是区分大小写的,小写则是其他的命令,这里一定要注意!!!
  2. 我们可以直接双击BAT文件进行测试,看下文件是否能执行成功,在测试的时候我们可以在上述的批处理语句后面添加"PAUSE"命令,这样执行到最后会先暂停,方便我们查看结果,具体可看这篇文章:如何暂停执行中的bat批处理文件?。
  3. 另外这里只是简单的执行批处理脚本,由于我们的备份存储过程比较简单,没有带入参数,复杂的sqlcmd命令可以参考下面这篇文章:sqlcmd执行带参数的存储过程

步骤三:

打开开始菜单=》附件=》系统工具=》任务计划程序

打开任务计划

或者也可以右键我的电脑(也可以打开控制面板),选择管理工具=》任务计划程序

从管理工具打开任务计划程序


步骤四:

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

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

还有配置中要选择符合自己操作系统的配置,比如标记4中选择的配置是WIN7和08系统。


步骤五:

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


步骤六:

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


步骤七:

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

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


作者:十有三

出处:https://shiyousan.com/post/635612483753095970

版权声明:本文采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。欢迎转载本文,转载请声明出处或保留此段声明。


  • 上一篇: VS添加命名空间的快捷键
  • 下一篇: 如何暂停执行中的bat批处理文件?

相关文章
  • 解决SQL SERVER还原数据库错误:备份介质集不完整。介质簇计数: 2。缺失的介质簇序列号: 1
  • SQL Server还原数据库出现未选择要还原的备份集
  • SQL 获取上一条数据
  • System.Data.SqlClient.SqlError: 尚未备份数据库的日志尾部
  • SQL Server备份出现System.Data.SqlClient.SqlError:无法打开备份设备
  • 记录MongoDb连接错误System.TimeoutException: A timeout occured after 30000ms selecting a server

文章分类

.NET技术 123 数据库 24 Web前端 21 网站建设运维 37 操作系统与应用 66 程序猿日常 11 开发工具 12 其他随笔 13

文章标签

ASP.NET ASP.NET MVC C# CSS HTML IIS Javascript Linux MongoDB MySql SQL SQL Server Visual Studio Windows系统 版本控制系统 插件工具 服务器 搞笑娱乐 好文分享 软件应用 生活知识 手机问题 随笔 网络知识 网站设计优化 网站维护 养生保健 异常处理 硬件设备 游戏攻略

热门文章

  • IIS8如何安装和使用URL重写工具-URL Rewrite
  • 林蛋大与楚中天,朱肚皮与朱月坡
  • 解决IE11安装升级失败和在安装前需要更新的问题
  • Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件
  • VS重构重命名的快捷键

推荐文章

  • WIN10 添加美式键盘并设置为默认输入法
  • 设置Windows10的微软拼音输入法默认为英文
  • SQL Server备份出现System.Data.SqlClient.SqlError:无法打开备份设备
  • SQL 获取上一条数据
  • 利用负载均衡的思路提高开发电脑的配置

友情链接

  • Passingwind的博客
  • 码友网

知识共享许可协议 CC BY-SA 4.0本站作品采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。
闽ICP备15003702号
闽公网安备 35020302035102号