SqlServerExpress2005 自動備份

  衆所周知SqlServerExpress2005 屬於簡裝版,安裝程序五六十兆,在客戶的服務器上部署時很暢快。但該數據庫無Agent這樣對我們進行定時備份保護數據安全帶來了麻煩。爲了定時備Express2005數據庫,可以採取以下方案:

    1.編寫WindowsService,在服務內調用備份數據庫方法。

    2.使用Windows自帶的計劃任務。(推薦使用)。 

   下面就由我來介紹一下如何用計劃任務實現數據庫備份的,操作步驟如下:

     1. 首先建立一個windows任務計劃,打開任務計劃嚮導,選擇指定的的exe文件,該文件名爲SQLCMD.EXE,位於x:\Program Files\Microsoft SQL Server\90\Tools\Binn 目錄下。

     2.然後選擇執行週期,假設選擇每天上午9點,接着輸入Windows用戶名和密碼。

     3.在任務計劃嚮導完成前勾選 “在單擊完成時,打開此任務的高級屬性”這個CheckBox。

     4.修改運行命令爲:sqlcmd -S .\SQLEXPRESS -E -i e:\Backup\Backup.sql

           注:.\SQLEXPRESS 是你的數據庫實例, e:\Backup\Backup.sql 磁盤位置可任意更改。Backup.sql 文件內容爲:

exec [sp_BackupDatabase] '需要備份的數據庫名','F' go

6.在你Master數據庫內執行該段存儲過程,該存儲過程被Windows計劃調用。

複製代碼
-- ============================================= -- Author: RyanDing -- Create date: 2010-10-10 -- Description: 備份數據庫 -- Parameter1: 數據庫名 -- Parameter2: 備份類型 F=全部, D=差異, L=日誌 -- ============================================= CREATE PROCEDURE [dbo].[sp_BackupDatabase] @databaseName sysname, @backupType CHAR(1) AS BEGIN SET NOCOUNT ON; DECLARE @sqlCommand NVARCHAR(1000) DECLARE @dateTime NVARCHAR(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
複製代碼

執行計劃任務後 查看C盤Backup目錄下生成的bak數據庫備份文件。

原文地址:http://www.cnblogs.com/ryanding/archive/2010/11/19/1881428.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章