眾所周知SqlServerExpress2005 屬于簡裝版,安裝程序五六十兆,在客戶的服務(wù)器上部署時(shí)很暢快。但該數(shù)據(jù)庫無Agent這樣對我們進(jìn)行定時(shí)備份保護(hù)數(shù)據(jù)安全帶來了麻煩。為了定時(shí)備Express2005數(shù)據(jù)庫,可以采取以下方案:
1.編寫WindowsService,在服務(wù)內(nèi)調(diào)用備份數(shù)據(jù)庫方法。
2.使用Windows自帶的計(jì)劃任務(wù)。(推薦使用)。
下面就由我來介紹一下如何用計(jì)劃任務(wù)實(shí)現(xiàn)數(shù)據(jù)庫備份的,操作步驟如下:
1. 首先建立一個windows任務(wù)計(jì)劃,打開任務(wù)計(jì)劃向?qū),選擇指定的的exe文件,該文件名為SQLCMD.EXE,位于x:\Program Files\Microsoft SQL Server\90\Tools\Binn 目錄下。
2.然后選擇執(zhí)行周期,假設(shè)選擇每天上午9點(diǎn),接著輸入Windows用戶名和密碼。
3.在任務(wù)計(jì)劃向?qū)瓿汕肮催x “在單擊完成時(shí),打開此任務(wù)的高級屬性”這個CheckBox。
4.修改運(yùn)行命令為:sqlcmd -S .\SQLEXPRESS -E -i e:\Backup\Backup.sql
注:.\SQLEXPRESS 是你的數(shù)據(jù)庫實(shí)例, e:\Backup\Backup.sql 磁盤位置可任意更改。Backup.sql 文件內(nèi)容為:
exec [sp_BackupDatabase] '需要備份的數(shù)據(jù)庫名','F'go
6.在你Master數(shù)據(jù)庫內(nèi)執(zhí)行該段存儲過程,該存儲過程被Windows計(jì)劃調(diào)用。
-- =============================================
-- Author: RyanDing
-- Create date: 2010-10-10
-- Description: 備份數(shù)據(jù)庫
-- Parameter1: 數(shù)據(jù)庫名
-- Parameter2: 備份類型 F=全部, D=差異, L=日志
-- =============================================
CREATEPROCEDURE[dbo].[sp_BackupDatabase]
@databaseName sysname, @backupTypeCHAR(1)
AS
BEGIN
SET NOCOUNT ON;
DECLARE@sqlCommandNVARCHAR(1000)
DECLARE@dateTimeNVARCHAR(20)
SELECT@dateTime=REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/','') +
REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')
IF@backupType='F'
SET@sqlCommand='BACKUP DATABASE '+@databaseName+
' TO DISK = ''C:\Backup\'+@databaseName+'_Full_'+@dateTime+'.BAK'''
IF@backupType='D'
SET@sqlCommand='BACKUP DATABASE '+@databaseName+
' TO DISK = ''C:\Backup\'+@databaseName+'_Diff_'+@dateTime+'.BAK'' WITH DIFFERENTIAL'
IF@backupType='L'
SET@sqlCommand='BACKUP LOG '+@databaseName+
' TO DISK = ''C:\Backup\'+@databaseName+'_Log_'+@dateTime+'.TRN'''
EXECUTE sp_executesql @sqlCommand
END
go
執(zhí)行計(jì)劃任務(wù)后 查看C盤Backup目錄下生成的bak數(shù)據(jù)庫備份文件。
最后,希望本篇文章可以幫您解決問題。