日誌傳送,SQL Server高可用性的重要舉措
那麼該如何來配置日誌傳送來達到這個目的呢?筆者就結合自己公司的案例,談談在日誌傳送管理中該注意的問題與技巧。
一、日誌傳送的三個角色與四個步驟。
如上圖,日誌傳送簡單地說,就是通過上面的三個伺服器角色與四個步驟來完成的。
第一步:備份日誌。
主伺服器會根據資料庫管理員設定的備份計劃,對事務日誌按照計劃進行備份。這是日誌傳送中的一個重要的內容。因為若主伺服器的日誌備份失敗的話,則後續的工作都將無法進行。故我們往往需要對這個日誌的備份進行監視,看看其是否按照資料庫管理員所設想的方式在處理。為了達到這個目的,我們可以利用“監視伺服器”來幫助我們監視這個作業。
第二步:日誌檔案傳送。
當主伺服器把日誌備份好之後,主伺服器就會根據資料庫管理員的設定,把相關的日誌檔案自動傳送給輔助伺服器。在日誌檔案傳送的過程中,主要需要考慮兩個問題。
一是多久傳送一次。一般情況下,對於資料庫高可用性要求比較高的話,則可以在主伺服器每次備份完事務日誌後,就傳送一次備份日誌檔案。不過,這要犧牲一定的網路頻寬。這主要是根據企業的實際情況來處理。像筆者的企業,由於是SAAS模式的資料庫租賃公司,所以,對於資料庫可用性的要求非常的高。主伺服器每次備份完成後,都會及時向輔助伺服器傳送備份日誌。以達到輔助伺服器與主伺服器之間資料的同步。
二是做好日誌檔案傳送的監督工作。準確、準時的把主伺服器上的備份日誌檔案傳送到輔助伺服器上,這是輔助伺服器正常執行的前提。為了讓日誌傳送功能能夠正常的運轉,往往需要對日誌檔案的傳送工作進行監督。需要通過監視伺服器,來監視主伺服器有沒有把備份日誌準時的傳送出去;而輔助伺服器有沒有及時的接收備份日誌。若出現異常的話,監視伺服器需要利用訊息或者郵件的方式通知資料庫管理員。
第三步:輔助伺服器還原事務日誌。
當輔助伺服器收到主伺服器傳送過來的備份日誌後,就需要根據這個備份日誌還原資料庫。如此的話,當主伺服器出現故障後,輔助伺服器能夠馬上代替主伺服器進行工作。所以,即使主伺服器出現問題,使用者也很難察覺到。
由於以上這三個作業都是通過計劃來排程的,所以,這個還原作業也可以通過作業系統的任務計劃來進行管理。對於輔助伺服器的還原頻率來說,需要資料庫管理員進行合理的設定。在管理過程中,主要的問題就是資料同步與資料庫設計管理方面的一個均衡問題。
這是因為日誌傳送是按照時間表進行的,故在主伺服器與輔助伺服器之間有個時間差。主伺服器上的資料更改反映到輔助伺服器上會有時間延遲。這個延遲有好處也有壞處。好處就是這些延遲可以用作還原使用者錯誤的一種方法,因為可以延遲日誌檔案在輔助伺服器上的應用,從而資料庫管理員可以選擇不採用錯誤的配置。但是,壞處也是很明顯的。因為要通過日誌伺服器幫助資料庫的高可用性的一個前提,就是要提高輔助伺服器與主伺服器之間的資料同步效能。而資料延遲會降低這個同步性。
所以,資料庫管理員需要綜合各種情形,來設定這個還原的頻率。筆者是把這個資料同步看得更重。故資料庫伺服器與輔助伺服器備份與還原的頻率設定為三分鐘。
第四步:警報。
警報雖然在日誌傳送中不是必須的,但其往往是日誌傳送正常執行的一個保障。他就好像是公路上的探頭,當以上三個作業出現什麼問題的時候,讓資料庫管理員可以馬上知道,從而及時的採取措施,挽回損失。
具體的來說,需要對如下的作業進行監視。當出現不正常的情況時,及時通過資訊或者郵件的形式向資料庫管理員彙報。
1、 主伺服器日誌備份出現問題。如當主伺服器延遲備份時,監視伺服器就需要向資料庫管理員報告相關的情況。
2、 備份日誌傳送出現異常情況。如輔助伺服器沒有及時收到備份的日誌檔案,監視伺服器就會告知資料庫管理員。此時,資料庫管理員就需要去檢查,看看是網路的問題,還是主伺服器的問題。
3、 還原情況的監視。輔助伺服器有沒有按時對資料庫進行還原;在還原的過程中有沒有出現意外情況,都要及時的告知資料庫管理員。如最常見的警報就是,當伺服器沒有按規定進行還原的時候,要觸發警報作業。
二、日誌傳送的三個注意點。
在配置日誌傳送功能的時候,需要注意三大問題。否則的話,資料庫管理員很可能無功而返。
一是多個資料庫伺服器如何設定輔助伺服器。如筆者現在管理了九個資料庫伺服器,是否需要配備九個輔助伺服器呢?若能夠做到一對一的配置,那固然是好。但是,這浪費太嚴重。你若這麼部署的話,可能會被你公司的總經理掃地出門。一般來說,企業中只要配備一個輔助伺服器即可。因為很少會出現幾個資料庫主伺服器一起當機的情況。筆者現在的九個資料庫主伺服器,只配置了兩個輔助伺服器,就可以滿足資料庫日誌傳送的需求了。
二是日誌傳送功能跟資料庫的群集不一樣。若採用群集功能,則當主資料庫伺服器出現故障的時候,系統會自動切換伺服器,讓輔助伺服器代替主伺服器來進行工作。但是,若利用日誌傳送功能的話,則無法達到這個目的。一般情況下,需要資料庫管理員進行手工的切換。如當主伺服器出現故障後,筆者預備的方案是,馬上把主伺服器從網路中撤下來,並且更改輔助伺服器的設定,讓其跟主伺服器的設定一樣。如此便不用更改客戶端的配置,使用者就可以連線到輔助伺服器了。不過由於不能夠自動進行切換,故資料庫管理員要對這個轉換方案進行測試。不能夠等到真的出現問題了,再臨時抱佛腳。
三是頻率問題。由於日誌傳送的相關作業都是根據時間表來進行的。所以,資料庫管理員需要根據公司的情況,對這個時間進行合理規劃。因為頻繁的備份、傳送、還原會降低資料庫的效能。若企業對於可用性的要求不高,如可以允許一個小時的當機時間,則可以降低這個頻率。相反,像筆者這種從事應用軟體租賃的企業,客戶眾多。若資料庫出現故障的話,則會影響一大批使用者。為此,對於資料庫的可用性要求比較嚴格。所以,在這個頻率上,就設定得比較高。這個頻率沒有固定的參考標準。資料庫管理員要根據自己的企業的情況,結合自己的專業知識,做出合理的規劃。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-591033/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server 日誌傳送配置SQLServer
- SQL server資料庫高可用日誌傳送的方法SQLServer資料庫
- 啟用日誌傳送 (SQL Server Management Studio)SQLServer
- SQL Server實現Standby --日誌傳送(Log Shipping)SQLServer
- SQL Server 2005高可用行之日誌傳送(Log Shipping)SQLServer
- 啟用日誌傳送 (Transact-SQL)SQL
- SQL Server 事務日誌傳輸SQLServer
- 日誌傳送部署
- SQL Server中的高可用性概覽SQLServer
- SQL Server誤區 一個例項多個映象和日誌傳送延遲SQLServer
- 複製和日誌傳送
- 日誌傳送事務日誌備份設定
- SQL Server 收縮日誌SQLServer
- SQL Server 錯誤日誌SQLServer
- C#原生郵件傳送+傳送日誌記錄C#
- 雲中SQL Server高可用性最佳實踐SQLServer
- 減小SQL SERVER的日誌檔案SQLServer
- 清除SQL Server日誌的方法介紹SQLServer
- 資料庫映象和日誌傳送資料庫
- 維護SQL Server虛擬機器的高可用性NJSQLServer虛擬機
- [AlwaysOn] 建立SQL Server AlwaysOn高可用性組T-SQL語法SQLServer
- SQL Server日誌檔案總結及日誌滿的處理SQLServer
- sql server日誌不能shrink或truncateSQLServer
- SQL Server事務日誌介紹SQLServer
- 壓縮SQL SERVER日誌程式碼SQLServer
- 清除SQL Server資料庫日誌SQLServer資料庫
- SQL Server重做日誌管理機制SQLServer
- SQL Server ErrorLog 錯誤日誌SQLServerError
- SQL Server 2005和Oracle高可用性對比SQLServerOracle
- SQL Server 收縮事務日誌的方法SQLServer
- 刪除SQL Server日誌的具體方法SQLServer
- SQL Server事務日誌的處理方法SQLServer
- SQL Server大型事務日誌的備份SQLServer
- SQL SERVER日誌清除的兩種方法(轉)SQLServer
- [zt] SQL Server日誌檔案總結及日誌滿的處理SQLServer
- 資料庫映象與日誌傳送的特點資料庫
- [AlwaysOn] 建立SQL Server高可用性組T-SQL語法:LISTENER子句SQLServer
- [AlwaysOn] 建立SQL Server高可用性組T-SQL語法:DATABASE子句SQLServerDatabase