中小型企業(yè)SQL數(shù)據(jù)庫備份方案前些天接了個天津××醫(yī)院數(shù)據(jù)庫升級工作,原系統(tǒng)是SQL Server 2000 (iSCSI存儲)故障轉(zhuǎn)移群集,升級到SQL Server 2005(光纖存儲)故障轉(zhuǎn)移群集,升級后拓撲如下:
SQL Server 2005故障轉(zhuǎn)移群集具體搭建我就不介紹了,網(wǎng)上有很多,如果有朋友看了網(wǎng)上的介紹還是不太明白,請聯(lián)系我,聯(lián)系方式在我的博客[url]http://davidchen.blog.51cto.com[/url]首頁。
在天津××醫(yī)院數(shù)據(jù)庫升級工作中遇到了這么一個問題,以前在SQL Server 2000中做的數(shù)據(jù)庫備份作業(yè)在SQL Server 2005中報錯,就這個問題我們來分析一下,作業(yè)如下:
第一步、移動原來的備份文件到臨時文件夾中
master.dbo.xp_cmdshell 'move /Y X:\備份數(shù)據(jù)庫地址\*.* X:\臨時文件夾地址\ '
第二步、備份目標數(shù)據(jù)庫
declare @dbname varchar(100)
declare @dbbakname varchar(100)
set @dbname='目標數(shù)據(jù)庫名'
set @dbbakname=replace(replace(replace(convert(datetime,getdate()) ,'-',''),' ',''),':','')
exec('BACKUP DATABASE '+@dbname+' TO DISK = N'' X:\備份數(shù)據(jù)庫地址\'+@dbname+@dbbakname+'.bak'' WITH NOINIT , NOUNLOAD , NAME = N'''+@dbname+' 備份'', NOSKIP , STATS = 10, NOFORMAT ')
第三步、刪除原來的備份
master.dbo.xp_cmdshell 'del X:\臨時文件夾地址\*.* /Q'
我來給大家簡單的講述一下備份作業(yè)
第一步是把備份文件夾中的所有文件移動到臨時文件夾
第二步是完整備份目標數(shù)據(jù)庫到備份文件夾
第三步是刪除臨時文件夾中的所有數(shù)據(jù)
作用:第一步將移動前一次的備份文件到臨時文件夾,第二步執(zhí)行備份,如果備份不成功,則停止,這樣臨時文件夾中還有上一次的完整備份,如果成功,則執(zhí)行第三步,刪除臨時文件夾中的所有數(shù)據(jù),也就是刪除上次備份。這樣周而復始,永遠都保留了一份最新的完整備份。
下面我將演示一下備份作業(yè),和在SQL Server 2005中使用這份備份作業(yè)遇到的錯誤。
1、在SQL Server代理中,右鍵單擊作業(yè),選擇新建作業(yè)。
2、在選擇頁中單擊常規(guī),給作業(yè)命名,然后在選擇頁中單擊步驟,單擊新建按鈕。
3、在作業(yè)步驟界面中給步驟名稱命名,并在命令框中寫入第一步腳本。
4、在作業(yè)步驟界面中給步驟名稱命名,并在命令框中寫入第二步腳本。
5、在作業(yè)步驟界面中給步驟名稱命名,并在命令框中寫入第三步腳本。
6、在開始步驟中選擇從第一步開始。
7、在選擇頁中單擊計劃,再點擊新建按鈕新建計劃。
8、給新建作業(yè)計劃名稱命名,在計劃類型中選擇重復執(zhí)行,并在執(zhí)行中選擇每天執(zhí)行,執(zhí)行天數(shù)間隔一天,設置好執(zhí)行計劃的時間,并鍵入計劃的開始日期。
9、回到資源管理器界面,右鍵點擊剛才建立的作業(yè),選擇開始作業(yè),執(zhí)行作業(yè)測試。
10、在步驟彈出窗口中選擇啟動。
11、我們發(fā)現(xiàn)執(zhí)行作業(yè)錯誤。
12、回到資源管理器界面,右鍵單擊剛才執(zhí)行的作業(yè),選擇查看歷史記錄。
13、我們從下面分析結果的消息中看到xp_cmdshell被鎖定,需要系統(tǒng)管理員用sp_configure命令來啟用(PS:我們看的這條是我們剛才執(zhí)行的,下面的都是我以前的測試,不好意思)。
14、sp_configure啟動xp_cmdshell的用法我在這里給大家介紹一下,啟動xp_cmdshell在查詢中執(zhí)行下面這句話。
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
關閉只是將上面語句中的后面的那個"1"改成"0"就可以了。
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 0;RECONFIGURE;
15、再次用開始作業(yè)測試成功。
16、查看備份文件夾中剛剛備份出來的文件。
17、查看臨時文件夾中上次備份的文件(之前我備份過)是否已經(jīng)被刪除。
總結:這種備份方案只適用于中小型企業(yè)簡單恢復模式的完整備份,不適合大型企業(yè)中使用,建議大型企業(yè)或有要求恢復到某個時間段的企業(yè)使用大容量日志備份。
|
|
來自: 命運之輪 > 《SqlServer相關》