上周五組長更我說了一句要殺死資料庫的死鎖程序,因為自己對資料庫不是很熟悉,突然組長說了我也就決定一定要倒騰一下,不然自己怎麼提高呢?現在不研究,說不定下次還是要研究呢,倒騰出來了就可以在下次用到了,後來組長又補了一句:"還有定是備份資料庫的問題要解決",說幹就幹。
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代理服務,其實我自己的了解就是一個定時器,不停的執行一些操作者配置設定給他的任務,有點像鬧鐘的感覺,看我的示範步驟
第一步
第二步
第三步
第四步
第五步
上面的步驟就是完成了定時備份指定資料庫的功能!