標籤:blog http io ar os sp for strong on
一、什麼是記錄傳送?
原理很簡單,三個動作六個字:備份->複製->恢複。
如果由人來完成這個三個動作,只能叫日誌搬運工;而由SQL Server Job自動完成,就叫記錄傳送。同樣的事情,不一樣的檔次,所以叫法也不一樣。
二、記錄傳送能解決什麼問題?
解決資料庫的多伺服器熱備份問題。多台伺服器定時備份,隨時可以作為主要資料庫伺服器的替補。
三、記錄傳送的優點是什嗎?
簡單!比SQL Server的資料庫複寫、鏡像簡單多了。
四、記錄傳送的缺點是什嗎?
記錄檔的傳輸只支援Windows檔案分享權限設定的方式,不支援FTP,就如同快遞公司只送本地,不送外地。所有備份伺服器都要在同一個區域網路內,所以準確的名字應該叫“日誌本地傳送”。
五、日誌如何傳送?
1. [主要資料庫伺服器]要傳送記錄的資料庫的復原模式必須是完全(Full)
2. [主要資料庫伺服器]對要傳送記錄的資料庫進行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. [備份資料庫伺服器]將完全備份檔案複製到備份資料庫伺服器上,並以STANDBY的方式進行恢複
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 = 10GO
恢複成功後,SQL Server管理工具中會顯示如所示的狀態:
4. [備份資料庫伺服器]建立一個普通的Windows使用者帳戶(比如logshipper),將該使用者加入到以SQLServerSQLAgentUser開頭的組(未驗證是否可以不加),並將該使用者佈建為SQL Server Agent的運行帳戶。
5. [備份資料庫伺服器]建立一個檔案夾(比如F:\LogBackup),用於存放從主要資料庫複製過來的記錄檔。
6. [主要資料庫伺服器]建立與備份資料庫伺服器同名同密碼的Windows使用者帳戶(比如這裡是logshipper)。
7. [主要資料庫伺服器]建立存放記錄備份檔案的檔案夾,並將該檔案夾以唯讀許可權共用給logshipper。假設檔案名稱是LogBackup,主要資料庫伺服器名稱是dbserver,通過設定共用讓備份資料庫伺服器可以訪問共用路徑 \\dbserver\LogBackup 。
8. [主要資料庫伺服器]選擇要進行記錄傳送的資料庫,開啟屬性視窗,進入Transaction Log Shipping視窗,勾選Enable this as a primary database in a log shipping configuration,然後點擊Backup Settings開啟記錄傳送備份設定視窗,如:
\\dbserver\LogBackup 就是給備份資料庫伺服器訪問的共用路徑。
F:\LogBackup 是主要資料庫伺服器儲存記錄備份檔案的路徑。
9. [主要資料庫伺服器]繼續回到Transaction Log Shipping視窗,在Secondary databases部分點擊Add按鈕,串連至備份資料庫伺服器,選擇對應的資料庫;在Initialize Secondary Database視窗中,選擇"No, the secondary database is initialized";在Copy Files視窗中,輸入備份資料庫伺服器中存放備份記錄檔的路徑(比如F:\LogBackup);在Restore Transaction Log視窗中,選擇Standby mode。
10. 成功設定之後,記錄傳送就開始工作了。主要資料伺服器上的Job根據設定的時間間隔定時地備份當前資料庫的日誌,將記錄檔儲存至原生檔案夾(比如F:\LogBackup);備份資料服務器上的Job不斷地通過共用資料夾(比如\\dbserver\LogBackup)從主要資料庫伺服器複製記錄檔到原生檔案夾(比如F:\LogBackup),然後將記錄檔恢複至處於Standby狀態的資料庫中。
實戰 SQL Server 2008 記錄傳送(Log Shipping)