上周五组长更我说了一句要杀死数据库的死锁进程,因为自己对数据库不是很熟悉,突然组长说了我也就决定一定要倒腾一下,不然自己怎么提高呢?现在不研究,说不定下次还是要研究呢,倒腾出来了就可以在下次用到了,后来组长又补了一句:"还有定是备份数据库的问题要解决",说干就干。
ps:sqlserver 2008 r2,windows 8 64位
定时备份数据
因为要定时备份,我们就要用到sqlserver的代理,默认数据库的代理是不开启的。需要我们手动开启的。
执行备份数据库脚本,现在将脚本公布,其实将这一段代码中需要保存的文件路径和数据库名称替换一下就可以实现备份了。但是还没有达到定时备份的目的
1
2
3
4
5
6
7
8
9
10
11
<code>--自动备份并保存最近5天的sql数据库作业脚本 宋彪 20130310</code>
<code>declare</code> <code>@filename</code><code>varchar</code><code>(255)</code>
<code>declare</code> <code>@</code><code>date</code> <code>datetime</code>
<code>select</code> <code>@</code><code>date</code><code>=getdate()</code>
<code>select</code> <code>@filename =</code><code>‘g:\存放位置\数据库名称-‘</code><code>+</code><code>cast</code><code>(datepart(yyyy,@</code><code>date</code><code>)</code><code>as</code>
<code>varchar</code><code>)+</code><code>‘-‘</code><code>+</code><code>cast</code><code>(datepart(mm,@</code><code>date</code><code>)</code><code>as</code>
<code>varchar</code><code>)+</code><code>‘-‘</code><code>+</code><code>cast</code><code>(datepart(dd,@</code><code>date</code><code>)</code><code>as</code>
<code>varchar</code><code>)+</code><code>‘.bak‘</code>
<code>backup</code><code>database</code>
<code>[数据库名称]</code><code>to</code>
<code>disk = @filename</code><code>with</code>
<code>init</code>
<code>go</code>
<code>declare</code> <code>@olddate datetime</code>
<code>select</code> <code>@olddate=getdate()-5</code>
<code>execute</code>
<code>master.dbo.xp_delete_file 0,n</code><code>‘g:\存放位置‘</code><code>,n</code><code>‘bak‘</code><code>,@olddate,1</code>
2.定时备份指定数据库
刚刚开启了sqlserver代理服务,其实我自己的理解就是一个定时器,不停的执行一些操作者分配给他的任务,有点像闹钟的感觉,看我的演示步骤
第一步
第二步
第三步
第四步
第五步
上面的步骤就是完成了定时备份指定数据库的功能!