1. 程式人生 > >SqlServer自動備份策略設定

SqlServer自動備份策略設定

企業管理器中的ToolsDatabase Maintenance Planner,可以設定資料庫的定期自動備份計劃。並通過啟動Sql server Agent來自動執行備份計劃。具體步驟如下:

1、開啟企業管理器,在控制檯根目錄中依次點開Microsoft SQL Server-->SQL Server-->雙擊開啟你的伺服器

2、然後點上面選單中的工具-->選擇資料庫維護計劃器

3、下一步選擇要進行自動備份的資料-->下一步更新資料優化資訊,這裡一般不用做選擇-->下一步檢查資料完整性,也一般不選擇

4、下一步指定資料庫維護計劃,預設的是1周備份一次,點選更改選擇每天備份後點確定

5、下一步指定備份的磁碟目錄,選擇指定目錄,如您可以在D盤新建一個目錄如:d:/databak,然後在這裡選擇使用此目錄,如果您的資料庫比較多最好選擇為每個資料庫建立子目錄,然後選擇刪除早於多少天前的備份,一般設定47天,這看您的具體備份要求,備份副檔名預設的是BAK

6、下一步指定事務日誌備份計劃,看您的需要做選擇-->下一步要生成的報表,一般不做選擇-->下一步維護計劃歷史記錄,最好用預設的選項-->下一步完成

7、完成後系統很可能會提示Sql Server Agent服務未啟動,先點確定完成計劃設定,然後找到桌面最右邊狀態列中的SQL綠色圖示,雙擊點開,在服務中選擇

Sql Server Agent,然後點選執行箭頭,選上下方的當啟動OS時自動啟動服務

8、可以設定啟動啟動sql server Agent:執行Services.msc,設定sqlserverAgent為自動啟動。

 

修改計劃:

開啟企業管理器,在控制檯根目錄中依次點開Microsoft SQL Server-->SQL Server-->雙擊開啟你的伺服器-->管理-->資料庫維護計劃

 

Sql Server自身就提供了完善的備份機制,我們只要靈活運用,就能達到令人滿意的效果。

先了解一下:為何要做備份?

資料備份是容災的基礎,是指為防止系統出現操作失誤或系統故障導致資料丟失,而將全部或部分資料集合從應用主機的硬碟或陣列複製到其它的儲存介質的過程。傳統的資料備份主要是採用內建或外接的磁帶機進行冷備份。但是這種方式只能防止操作失誤等人為故障,而且其恢復時間也很長。隨著技術的不斷髮展,資料的海量增加,不少的企業開始採用網路備份。網路備份一般通過專業的資料儲存管理軟體結合相應的硬體和儲存裝置來實現。

方法一:SqlServer自動作業備份

1、開啟SQL Server Management Studio

2、啟動SQL Server代理

3、點選作業->新建作業

4常規中輸入作業的名稱

5、新建步驟,型別選T-SQL,在下面的命令中輸入下面語句

DECLARE @strPath NVARCHAR(200)

set @strPath = convert(NVARCHAR(19),getdate(),120)

set @strPath = REPLACE(@strPath, ':' , '.')

set @strPath = 'D:/bak/' + 'databasename'+@strPath + '.bak'

BACKUP DATABASE [databasename] TO DISK = @strPath WITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT

D:/bak/改為自己的備份路徑,databasename修改為想備份的資料庫的名稱)

6、新增計劃,設定頻率,時間等。確定,完成。

方法二:SqlServer自動作業備份

SQL2005的維護計劃裡面自帶了備份資料庫任務,但不會自動按日期命名,不方便,下面的方法是以儲存過程來解決的。

要用SQL2005的維護計劃功能首先要確認SQL Server Agent服務是在啟動狀態,然後開啟SQL Server Management Studio,展開物件資源管理器裡的管理,右擊維護計劃選擇新建維護計劃,為維護計劃命名,如:TestDB_Backup,選擇預設的子計劃 “Subplan_1 ”並點選上方的子計劃設定按鈕來設定子計劃執行方式和時間:

出現設定介面,設定每天3點執行一次,

 

確定後儲存一下,然後新建一個查詢頁,開始建立儲存過程,程式碼如下:

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 [email protected] WITH INIT
return

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 [email protected] WITH INIT return


設定完畢,切換回維護計劃設定頁面,在左邊的工具箱中拖入一個執行T-SQL語句任務


雙擊拖入後的執行T-SQL語句任務,輸入執行儲存過程的語句來完成每天的自動備份工作,程式碼如下:


use [TestDB]
exec BackupDatabase ‘E:/SqlData/TestDB/’

use [TestDB] exec BackupDatabase ‘E:/SqlData/TestDB/’

確定後儲存該維護計劃即可