承接国内外服务器租用托管、定制开发、网站代运营、网站seo优化托管接单、网站代更新,新老站点皆可!!咨询QQ:3787320601

SQL Server数据库定时自动备份

管理员 2023-07-10 10:31:44 互联网圈 8 ℃ 0 评论 10108字 收藏

SQL Server 数据库定时自动备份,供大家参考,具体内容以下

在SQL Server中出于数据安全的斟酌,所以需要定期的备份数据库。而备份数据库一般又是在清晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员每天守到晚上1点去备份数据库。要实现数据库的定时自动备份,最经常使用的方式就是使用SQL Server代理中的作业。启动SQL Server Agent服务,然后在其中新建作业,作业中添加1个备份步骤,类型是T-SQL脚本,然后在命令中输入以下SQL语句,该语句实现了对数据库TestDB1的完全备份,备份文件在C盘Backup文件夹中,文件名就是TestDB1+当时备份的日期字符串.bak。

declare@namevarchar(250)
set@name=’C:\Backup\TestDB1_’+
convert(varchar(50),getdate(),112)+’.bak’
BACKUPDATABASE[TestDB1]TO
DISK=@name
WITH NOFORMAT, NOINIT,
NAME = N’TestDB1-完全 数据库 备份’,
SKIP, NOREWIND, NOUNLOAD

创建好步骤以后,接下来就是创建计划,创建计划的操作十分简单,界面上说明的很详细了,我就不多说了。另外还可以配置警报和通知,不过一般很少用这个。

使用SQL作业中履行SQL脚本进行备份的方法虽然已很简单了,但是最少或者要去写BACKUP脚本,这点有些人觉得不爽,那有无更简单,更懒的方法来实现数据库的自动定时备份呢?有,那就是“保护计划”。

“保护计划”是在SSMS的对象资源管理中“管理”节点下面。使用保护计划可以通过可视化的操作,只点点鼠标就能够创建数据库保护的SSIS包,然后依然是通过SQL Server作业的方式来运行。保护计划与前面说到的备份方法本质的区别就是:保护计划是SSIS包,上面的是T-SQL脚本。

假定我们现在有一个生产系统的数据库需要进行备份,由于数据库中的数据很多,数据文件很大,如果每次都进行完全备份那末硬盘占用了很大空间,而且备份时间很长,保护起来也很麻烦。对此我们可以采取完全备份+差异备份的方式,每周日进行一次完全备份,每天晚上进行一次差异备份。使用差异备份可以减小备份文件的大小,同时还可以提高备份的速度,不过缺点就是一定要使用上一次完全备份的文件和差异备份的文件才能还原差异备份时刻的数据库,单独只有差异备份文件是没成心义。

下面我来说一下如何通过保护计划来实现完全备份+差异备份:

(1)在SSMS的对象资源管理器中右击“保护计划”,选择“保护计划向导”,系统将弹出向导窗口,如图:

这里向导已告知我们保护计划到底能够干甚么了,其中最后一项“履行数据库备份”正是我们所需要的。

(2)点击“下一步”按钮,进入选择计划属性窗口,输入计划的名称,由于我们的计划包括2部份:完全备份和差异备份,这2部份的履行计划是不一样的,一个是一周履行一次,另外一个是一天履行一次,所以要选择“每项任务单独计划”,如图:

(3)单击“下一步”按钮,选择保护任务,这里就是可以在保护计划中履行的任务,如果你想履行的任务在这里没有,那就或者不用保护计划来做,自己写SSIS包或SQL语句吧。我们要履行的任务都在这里,选中这2个任务,如图:

(4)单击“下一步”进入选择保护任务顺序的界面,这里我们可以看到选中的任务出现在列表中,但是我们其实不能调剂其顺序,那是由于在步骤2中我们选择的是每项任务单独计划,所以这2个任务是独立的,没有前后顺序可言。如果当时选择的是另外一个选项,那末这里就能够调剂顺序了。

(5)选中“备份数据库(完全)”然后单击“下一步”按钮,系统将转到定义完全备份任务的界面,如图:

这个界面实在太长了,我把任务栏隐藏了都显示不完,出现了转动条,这里我们选择要进行备份的数据库,选择为每一个数据库创建备份文件,文件保存在C盘Backup目录下,扩大名是bak,出于安全起见,我们可以选中“验证备份完全性”,固然也能够不选。在SQL2008中提供了紧缩备份的新特性,使得备份文件更小,备份速度更快,这里我们就是由紧缩备份。最后是选择履行计划,我这里选的是每周日晚上0点的时候履行。

(6)单击“下一步”按钮,进入差异备份任务的设置界面,和上一步的界面是一样的,操作也是一样的,计划这里我们可以选择除周日之外的每天进行差异备份,如图:

(7)单击“下一步”按钮,进入选择报告选项,这里我们可以将这个保护计划的履行报告写入文本文件中,也能够讲报告通过电子邮件发送给管理员。如果要发送邮件的话,那末需要配置SQL Server的数据库邮件,另外还要设置SQL Server代理中的操作员,关于邮件通知操作员的配置网上也讲的比较多,我这里就不详述了。

(8)单击“下一步”按钮,进入“完成该向导”的界面,系统列出了向导要完成的工作,如图:

(9)单击“完成”按钮,向导将创建对应的SSIS包和SQL作业:

(10)完成后,我们再刷新下对象资源管理器,我们可以看到对应的保护计划和该计划对应的作业:

现在保护计划是创建好了,急着想看看履行后的效果如何,不需要等到晚上12点去了,在“作业”下面,右击DbBackupPlan.Subplan_1,选择“作业开始步骤”系统便立即履行该作业,系统运行完成后,我们即可在C:\Backup文件夹下面有我们做的完全备份的备份文件。

以上的操作可以是纯洁的无键盘操作,不用写任何脚本,只需要点点鼠标便可。

这里需要注意的是,我们如果不是周日制定的该保护计划,那末制定该保护计划前一定要做个完全备份,而且该备份最少要保存到下周,不然到时候出了问题,发现只有这几个工作日的差异备份,而上一次的完全备份又被删了,那就愁闷了。

除使用保护计划向导之外,我们还可以直接新建保护计划,也能够修改意见创建的保护计划。我们就以修改保护计划为例。对前面创建好的完全备份+ 差异备份保护计划,现在我们需要每周对数据库备份进行一次清算,在完全备份完成后,要将1个月前的备份删除掉。那末我们只需要修改一下保护计划便可,具体操作以下:

(1)右击我们的保护计划,在弹出式菜单当选择“修改”选项,系统将新建一个选项卡来显示当前的保护计划。如图:

左下角是可用的保护计划组件,右下面板是保护计划的流程设置面板,其上面就是该计划的子计划列表。

(2)选中Subplan_1子计划,也就是每周完全备份的子计划,将“清除历史记录”任务从工具箱中拖拽到计划面板中,然后在面板中单击“备份数据库(完全)”组件,系统将显示一个绿色的箭头,将绿色箭头拖拽到“清除历史记录”组件上,如图:

也就是说在成功完全备份了数据库后,接下来才履行清除历史记录任务。

(3)右击“清除历史记录”任务,在弹出式菜单当选择“编辑”选项,系统将弹出清除历史记录任务设置窗口,如图:

这里既可以清除历史记录日志,也能够删除硬盘上的历史数据。这里我们要删除4周前的历史备份数据,单击“肯定”回到计划面板,我们可以看到本来“清除历史记录”任务上的小红叉不见了。单击“保存”按钮,该计划便保存起来。(说明:我在SQL2008中文版虚拟机里面做的时候一旦修改保护计划,保存的时候就报错灾害性故障,不过我本机的英文版是正常的,不知道是我虚拟机的问题或者中文版的Bug,反正在英文版里面是对的。)

这样修改后,以后我们都不用手动去删除那些很久之前的数据库备份了,系统在履行完备份后就会删除那些满足条件的备份数据。

本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!

文章来源:丸子建站

文章标题:SQL Server数据库定时自动备份

https://www.wanzijz.com/view/62635.html

X

截屏,微信识别二维码

微信号:weimawl

(点击微信号复制,添加好友)

打开微信