一、什么是日志傳送?
原理很簡單,三個動作六個字:備份->復(fù)制->恢復(fù)。
如果由人來完成這個三個動作,只能叫日志搬運(yùn)工;而由SQL Server Job自動完成,就叫日志傳送。同樣的事情,不一樣的檔次,所以叫法也不一樣。
二、日志傳送能解決什么問題?
解決數(shù)據(jù)庫的多服務(wù)器熱備份問題。多臺服務(wù)器定時備份,隨時可以作為主數(shù)據(jù)庫服務(wù)器的替補(bǔ)。
三、日志傳送的優(yōu)點(diǎn)是什么?
簡單!比SQL Server的數(shù)據(jù)庫復(fù)制、鏡像簡單多了。
四、日志傳送的缺點(diǎn)是什么?
日志文件的傳輸只支持Windows文件共享的方式,不支持FTP,就如同快遞公司只送本地,不送外地。所有備份服務(wù)器都要在同一個局域網(wǎng)內(nèi),所以準(zhǔn)確的名字應(yīng)該叫“日志本地傳送”。
五、日志如何傳送?
1. [主數(shù)據(jù)庫服務(wù)器]要傳送日志的數(shù)據(jù)庫的恢復(fù)模式必須是完全(Full)
2. [主數(shù)據(jù)庫服務(wù)器]對要傳送日志的數(shù)據(jù)庫進(jìn)行1次且僅此1次完全備份
BACKUP DATABASE [CNBlogsJob] TO DISK = N'F:\FullBackup\CNBlogsJob.bak' WITH NOFORMAT, INIT, NAME = N'CNBlogsJob-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10GO
3. [備份數(shù)據(jù)庫服務(wù)器]將完全備份文件復(fù)制到備份數(shù)據(jù)庫服務(wù)器上,并以STANDBY的方式進(jìn)行恢復(fù)
RESTORE DATABASE [CNBlogsJob]
FROM DISK = N'F:\FullBackup\CNBlogsJob.bak' WITH FILE = 1,
MOVE N'CNBlogsJob' TO N'D:\Data\CNBlogsJob.mdf',
MOVE N'CNBlogsJob_log' TO N'E:\Logs\CNBlogsJob.LDF',
STANDBY = N'F:\Standby\ROLLBACK_UNDO_CNBlogsJob.BAK', NOUNLOAD, STATS = 10
GO
恢復(fù)成功后,SQL Server管理工具中會顯示如下圖所示的狀態(tài):
4. [備份數(shù)據(jù)庫服務(wù)器]創(chuàng)建一個普通的Windows用戶帳戶(比如logshipper),將該用戶加入到以SQLServerSQLAgentUser開頭的組(未驗(yàn)證是否可以不加),并將該用戶設(shè)置為SQL Server Agent的運(yùn)行帳戶。
5. [備份數(shù)據(jù)庫服務(wù)器]創(chuàng)建一個文件夾(比如F:\LogBackup),用于存放從主數(shù)據(jù)庫復(fù)制過來的日志文件。
6. [主數(shù)據(jù)庫服務(wù)器]創(chuàng)建與備份數(shù)據(jù)庫服務(wù)器同名同密碼的Windows用戶帳戶(比如這里是logshipper)。
7. [主數(shù)據(jù)庫服務(wù)器]創(chuàng)建存放日志備份文件的文件夾,并將該文件夾以只讀權(quán)限共享給logshipper。假設(shè)文件名稱是LogBackup,主數(shù)據(jù)庫服務(wù)器名稱是dbserver,通過設(shè)置共享讓備份數(shù)據(jù)庫服務(wù)器可以訪問共享路徑 \\dbserver\LogBackup 。
8. [主數(shù)據(jù)庫服務(wù)器]選擇要進(jìn)行日志傳送的數(shù)據(jù)庫,打開屬性窗口,進(jìn)入Transaction Log Shipping窗口,勾選Enable this as a primary database in a log shipping configuration,然后點(diǎn)擊Backup Settings打開日志傳送備份設(shè)置窗口,如下圖:
\\dbserver\LogBackup 就是給備份數(shù)據(jù)庫服務(wù)器訪問的共享路徑。
F:\LogBackup 是主數(shù)據(jù)庫服務(wù)器保存日志備份文件的路徑。
9. [主數(shù)據(jù)庫服務(wù)器]繼續(xù)回到Transaction Log Shipping窗口,在Secondary databases部分點(diǎn)擊Add按鈕,連接至備份數(shù)據(jù)庫服務(wù)器,選擇對應(yīng)的數(shù)據(jù)庫;在Initialize Secondary Database窗口中,選擇"No, the secondary database is initialized";在Copy Files窗口中,輸入備份數(shù)據(jù)庫服務(wù)器中存放備份日志文件的路徑(比如F:\LogBackup);在Restore Transaction Log窗口中,選擇Standby mode。
10. 成功設(shè)置之后,日志傳送就開始工作了。主數(shù)據(jù)服務(wù)器上的Job根據(jù)設(shè)定的時間間隔定時地備份當(dāng)前數(shù)據(jù)庫的日志,將日志文件保存至本機(jī)的文件夾(比如F:\LogBackup);備份數(shù)據(jù)服務(wù)器上的Job不斷地通過共享文件夾(比如\\dbserver\LogBackup)從主數(shù)據(jù)庫服務(wù)器復(fù)制日志文件到本機(jī)的文件夾(比如F:\LogBackup),然后將日志文件恢復(fù)至處于Standby狀態(tài)的數(shù)據(jù)庫中。