SQL Server Express数据库自动备份

前端之家收集整理的这篇文章主要介绍了SQL Server Express数据库自动备份前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

  • sql Server Agent 主要包括以下几个组件:作业、警报、操作。
  • 本文主要演示的系统为WIN7和Windows Server 2008,2003和XP没试过,应该也差不多,2012系统差别就更加不大了。
  • 另外可以参考MSDN官方的资料:
  • 要实现SQL Server Express自动备份数据库有两种方式:

    一种是自己编写WindowsService服务程序,然后调用数据库中的备份存储过程

    还有一种是使用系统自带的任务计划程序。

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

    <h2 class="radius_h2">实现EXPRESS速成版自动备份的具体步骤:

    步骤一:

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

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

    . ( NOCOUNT ( ( ((),(), </span><span style="color: #0000ff;"&gt;SET</span> <span style="color: #008000;"&gt;@backupLocation</span><span style="color: #808080;"&gt;=</span><span style="color: #008000;"&gt;@backupLocation</span><span style="color: #808080;"&gt;+</span>N<span style="color: #ff0000;"&gt;'InformationManagementSystem</span><span style="color: #ff0000;"&gt;_full_</span><span style="color: #ff0000;"&gt;'</span><span style="color: #808080;"&gt;+</span><span style="color: #008000;"&gt;@curdate</span><span style="color: #808080;"&gt;+</span> N<span style="color: #ff0000;"&gt;'</span><span style="color: #ff0000;"&gt;.bak</span><span style="color: #ff0000;"&gt;'</span><span style="color: #000000;"&gt;; </span><span style="color: #0000ff;"&gt;BACKUP</span> <span style="color: #0000ff;"&gt;DATABASE</span> opsdata <span style="color: #0000ff;"&gt;TO</span> <span style="color: #0000ff;"&gt;DISK</span> <span style="color: #808080;"&gt;=</span> <span style="color: #008000;"&gt;@backupLocation</span> <span style="color: #0000ff;"&gt;WITH</span> FORMAT,NAME <span style="color: #808080;"&gt;=</span> <span style="color: #008000;"&gt;@name</span><span style="color: #000000;"&gt;; </span><span style="color: #008080;"&gt;--</span><span style="color: #008080;"&gt;FORMAT完全新建/覆盖一个<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a> NOFORMAT 将把备份追加到同一个<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>中,还原的时候可以选择不同备份的时间点还原</span> <span style="color: #008080;"&gt;/*</span><span style="color: #008080;"&gt;差异备份</span><span style="color: #008080;"&gt;*/</span> <span style="color: #008080;"&gt;--</span><span style="color: #008080;"&gt;BACKUP DATABASE [TestBackup] TO DISK = N'E:\Database\Backup\TestBackupDB-diff2.bak' WITH DIFFERENTIAL,</span> <span style="color: #008080;"&gt;--</span><span style="color: #008080;"&gt;NAME = N'InformationManagementSystem-Differential Database Backup'</span>

    <span style="color: #0000ff;">END
    <span style="color: #0000ff;">GO

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

    proc_FluBackupDatabase @backupLocation='E:\Database\Backup\'

    步骤二:

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

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

    文件存放目录 folderE:\\ exist folder md foldersqlcmd S . E Q " opsdata.dbo.proc_FluBackupDatabase "::测试时避免命令窗口自动关闭一闪而过可以新起一行 输入 pause

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

    上述中的sqlcmd命令是执行一个存储过程,具体可以参考MSDN的资料: ,-S .指定要连接的 SQL Server 实例为本地数据库,-E表示使用使用信任连接而不用输入数据库用户和密码,-Q表示在 sqlcmd 启动时执行查询,随后立即退出 sqlcmd,这些命令选项是区分大小写的,小写则是其他的命令,这里一定要注意!!!

    步骤三:

    打开开始菜单=》附件=》系统工具=》任务计划程序  或者直接在系统任务栏搜索 任务计划程序

    步骤四:

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

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

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

    步骤五:

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

    步骤六:

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

    步骤七:

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

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

    续:

    以上是进行完整备份的操作,如需增加差异备份可以按上述的操作写一个脚本,按以上流程在操作一边。一般完整备份可以每个星期一次,然后每天再做差异备份。

     sql如下:

    本文参考连接:

    原文链接:/express/72036.html

    猜你在找的Express 相关文章