史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 網路軟硬體架設技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2004-08-15, 05:44 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 SQL Server資料庫的無監管自動制作備份和恢復計劃及Job

大家都知道資料庫的重要性,因此制作備份和恢復計劃也很重要。
這裡把很久之前寫的Job和大家分享一下,Run了1年多了
總共包括3個Job.

其中兩個Job,一個是完全制作備份,這裡叫做DBBackup吧,另一個是事物日誌的制作備份,就叫做DBLogBackup吧。
另一個Job是恢復的Job叫做RestoreDB吧.

大體上是這樣的.
這裡的資料庫名字叫做 Test
假設2個Server(當然也可以3個server),online的資料庫用名字是A,用來制作備份的server叫做B,用來restore的server也在B上面。

在DBBackup裡面總共包括7個步驟(這個Job是每天晚上的1:00進行):
1,首先是檢查資料庫的完整性(用DBCC Checkdb),成功進行下一步,否則退出。

dbcc checkdb('Test')

2,制作備份資料庫,以資料庫名字和日期命名,成功進行下一步,否則退出。

declare @sql as varchar(200) select @sql='backup database Test to DISK='''+'D:\Test'+convert(varchar(20),getdate(),12)+'.bak''' execute sp_sqlexec @sql

3,Copy 備份檔案到另一個專門的制作備份Server, 成功進行下一步,否則退出。

declare @a as varchar(200) select @a='Test'+convert(varchar(200),getdate(),12)+'.bak' select @a='copy d:\'+@a+' \\B\d$\'+@a exec xp_cmdshell @a

4,Copy 前一天的事物日誌,成功進行下一步,否則退出。

declare @a as varchar(200) select @a='Testlog' select @a='copy /y d:\'+@a+'.bak \\B\d$\'+@a+convert(varchar(200),dateadd(d,-1,getdate()),12)+'.bak' exec xp_cmdshell @a

5,清楚事物日誌,成功進行下一步,否則退出。

backup log Test to Testlog with init

6,移除A上的10天以前的備份檔案,也就是說只保留最近10天的備份檔案(節省server空間)。成功進行下一步,否則退出。

declare @a as varchar(200) select @a='Test'+convert(varchar(200),dateadd(d,-10,getdate()),12)+'.bak' select @a='del d:\'+@a exec xp_cmdshell @a

7,移除制作備份server上的備份檔案,也就是B上面也只保留10天的備份檔案(節省server空間).成功後退出,否則退出。

declare @a as varchar(200) select @a='Test'+convert(varchar(200),dateadd(d,-10,getdate()),12)+'.bak' select @a=' del \\B\d$\'+@a exec xp_cmdshell @a select @a='Testlog'+convert(varchar(200),dateadd(d,-10,getdate()),12)+'.bak' select @a=' del \\B\d$\'+@a exec xp_cmdshell @a

再一個就是用來制作備份事物日誌的Job,DBLogBackup
總共有2個步驟(在每天的清晨1:30開始,每一個小時一次,到晚上11:59:59)

1,制作備份事物日誌,成功進行下一步,否則退出。

backup log Test to TestLog

2,Copy制作備份的事物日誌文件到Server B上面(每一個小時Copy一次)。成功後退出,否則退出。

declare @a as varchar(200) select @a='Testlog.bak' select @a='copy /y d:\'+@a+' \\172.26.6.10\d$\'+@a exec xp_cmdshell @a



最後一個就是恢復到資料庫B上的Job,RestoreDB.
這個Job可以run在B上面。只有1個步驟。
新增的資料庫名字是TestDB

use master declare @Path as varchar(200) select @Path ='d:\Test' + convert(char(6),getdate(),12) + '.bak' print @Path RESTORE DATABASE TestDB FROM DISK = @Path with replace, move 'Test_data' to 'd:\TestDB\Testdb_Data.MDF', move 'Test_log' to 'd:\TestDB\Testdb_log.ldf' go




在這2個server上執行的這3個Job需要在共同的Domain中.
並且這2個Server需要用Domain帳號登入,包括每個SQL Server的service也是.
這樣才可以配置SQL Mail.以便用Mail來通知你有沒有成功.
當然了,配置SQL Mail當時也是測試了很久的.
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用

相似的主題
主題 主題作者 討論區 回覆 最後發表
SQL注入和CSS攻擊的檢測 psac 程式 & 網頁設計技術文件 1 2005-12-27 11:03 AM
Hack Proofing Your Network-7 mic64 網路軟硬體架設技術文件 0 2004-07-16 04:41 PM
Hack Proofing Your Network mic64 網路軟硬體架設技術文件 12 2004-06-21 03:28 PM


所有時間均為台北時間。現在的時間是 01:44 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1