如何讓SQL Server自動(dòng)定時(shí)備份數(shù)據(jù)庫(kù)并按日期命名
通常備份的方式有兩種:手動(dòng)備份和自動(dòng)備份,如果數(shù)據(jù)庫(kù)服務(wù)器中有這么多的數(shù)據(jù)庫(kù)需要備份,那么手動(dòng)備份必定是一個(gè)很大的工作量,這個(gè)時(shí)候我們可以采用另外一種備份方式---定時(shí)自動(dòng)備份。
SQLServer的維護(hù)計(jì)劃里面自帶了備份數(shù)據(jù)庫(kù)任務(wù),但不會(huì)自動(dòng)按日期命名,不方便,下面的方法是以存儲(chǔ)過(guò)程來(lái)解決的,以sql2000為例:
首先要確認(rèn)SQL Server Agent服務(wù)是在啟動(dòng)狀態(tài),
下一步,我們來(lái)創(chuàng)建作業(yè),在創(chuàng)建作業(yè)之前,我們需要?jiǎng)?chuàng)建備份數(shù)據(jù)庫(kù)及命名的存儲(chǔ)過(guò)程
比如是對(duì)TestDB操作,打開(kāi)查詢(xún)分析器,把下面的存儲(chǔ)過(guò)程拷到里面執(zhí)行下就行了,當(dāng)然了,命名規(guī)則可以自動(dòng)更改
- USE [TestDB]
- GO
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- CREATE PROCEDURE [BackupDatabase](@FolderPath varchar(500))
- as
- DECLARE @FullPath varchar(1000)
- set @FullPath = @FolderPath+ 'TestDB_'+convert(VARCHAR(4),year(getdate()))+right( '0'+convert(VARCHAR(2),MONTH(getdate())),2)+right('0'+convert(VARCHAR(2),DAY(getdate())),2)+ '.bak'
- backup database [TestDB] to disk=@FullPath WITH INIT
- return
這樣就創(chuàng)建了一個(gè)BackupDatabase的存儲(chǔ)過(guò)程。
下面來(lái)創(chuàng)建作業(yè)吧。
常規(guī)里添加名稱(chēng),選擇下分類(lèi)就行了,下面的步驟很重要。
添加步驟的時(shí)候,有點(diǎn)很重要,就是執(zhí)行剛才我們創(chuàng)建的存儲(chǔ)過(guò)程如圖
- use [TestDB]
- exec BackupDatabase 'E:\SqlData\TestDB\'
最后設(shè)置下自動(dòng)備份的時(shí)間,也就是調(diào)度下即可
這樣我們就創(chuàng)建一個(gè)這樣定時(shí)備份數(shù)據(jù)庫(kù),以時(shí)間命名的作業(yè)。
到了指定的時(shí)間會(huì)自動(dòng)執(zhí)行備份數(shù)據(jù)庫(kù),其他的sql2005和sql2008和sql2000大同小異。
關(guān)于SQL Server定時(shí)自動(dòng)備份數(shù)據(jù)庫(kù)的知識(shí)就介紹這些,如果您想了解更多SQL Server數(shù)據(jù)庫(kù)的知識(shí),這里的文章不容錯(cuò)過(guò)哦:http://database.51cto.com/sqlserver/。
【編輯推薦】