1. 程式人生 > >sql server 2008 自動備份(非維護計劃)

sql server 2008 自動備份(非維護計劃)

clas .net 最新版 sele sdn base csdn 代理 工具

在一個項目中用到的數據庫是sqlserver 2008 r2 express 。可沒想到express版本的功能有些限制,此前一直都不知道啊。百度百科可以看到它的限制:

“1.數據庫的大小限制:SQL Server 2005 Express 和SQL Server 2008 Express 數據庫的大小限制最大為 4GB,最新版本的SQL Server 2008 R2 Express 數據庫的大小限制最大為 10G。這個大小的限制只有在數據文件上,交易記錄檔則不受此限。 2.只能使用一個 CPU 來運算,這在多個 CPU 的電腦上會造成浪費。 3.可使用的存儲器量最高只有 1GB。 4.沒有 SQL Agent,若要做調度服務必須自己寫程序。” 所以,由於沒有SQL代理(SQLSERVERAGENT)服務,就沒有辦法通過新建作業的方式來做數據庫備份了。如果不想重裝數據庫的話可以試試以下方法。思路如下: 1、寫一個sql 腳本來作數據庫備份。 例如:backup.sql ,我們把它放在 F:\Database_Backup下,以後的備份文件也放在這個目錄下。

GO

DECLARE

@backupTime VARCHAR(20)

DECLARE

@fileName VARCHAR(1000)

SELECT

@backupTime=(CONVERT(VARCHAR(8), GETDATE(), 112) +REPLACE(CONVERT(VARCHAR(5), GETDATE(), 114), ‘:‘, ‘‘))

SELECT

@fileName=‘F:\Database_Backup\DB_‘+@backupTime+‘.bak‘

backup database DBName to disk=@fileName

DBName就是你的數據庫的名稱了,備份的文件名形如 DB_201302252140.bak。

2、寫一個批處理文件,執行此sql腳本。 例如:backup_database.bat ,我們也把它放在 F:\Database_Backup下。
  1. sqlcmd -S . -i F:\Database_Backup\backup.sql
3、新建一個Windows計劃任務,定期(比如每天)執行此批處理命令。 選擇管理工具裏的“計劃任務” 技術分享圖片 選擇“創建基本任務” 技術分享圖片 輸入任務名稱和描述 技術分享圖片 選擇執行時間 技術分享圖片 選擇操作為“啟動程序” 技術分享圖片 這裏的程序或腳本就選擇我們建好的 backup_database.bat 技術分享圖片

最後確定即可。

至於刪除過期的備份文件,我們也可以通過任務計劃來完成。forfiles命令,可以實現批量刪除文件,用法可以自行百度。我們寫一個批處理文件delete_bakFile.bat,內容如下:

  1. forfiles /p F:\Database_Backup /m *.bak /d -7 /c "cmd /c del /f @path"

在這裏,我們刪除7天以前的備份,同樣地新建一個任務計劃,將它執行的程序指向這個bat 即可,執行時間可以指定為一個月一次或一周一次等。

sql server 2008 自動備份(非維護計劃)