數據庫復制就是由兩台服務器,主服務器和備份服務器,主服務器修改後,備份服務器自動修改,在以前的文章中已經做了詳細的說明,這裡就不在重復,具體請參見
http://www.jb51.net/article/30661.htm
使用了數據庫復制的人,首先擔心的就是主服務器和備份服務器的性能消耗問題,本人也是對此十分擔憂,查了半天,基本上沒發現類似的測試說明,就自己測試了一下,下面為測試的結果,僅供參考
我采用的是數據庫推送的復制模式,下面測試頁是基於此模式
因為數據庫復制主要是I/O操作,所以在此測試主要測試服務器的硬盤讀寫操作,此次測試主要監控的對象為
avg. disk queue length(下文簡稱為dql) 簡單可以理解成磁盤數據吞吐量的外在體現。通俗的將就是曲線上隨便取兩個不同的點,高的一點說明正在的進行讀寫操作的量比較大,反之,比較小。
第一種情況:1秒鐘寫入一次數據,一次數據寫入三個表,循環寫入10000條
過程:關閉復制,單純的寫入,dql平均值最大值為:0.126
開啟復制,同步性的寫入 , dql平均值最大值為 :0.132
結論:鑒於這種比例,1秒鐘一次是這種小數據庫的寫入,同步問題,我們可以完全忽略了
第二種情況:忽略等待時間,一次數據寫入三個表,死循環寫入10000 次數據
過程 :關閉復制,單純的寫入,第一次測試:dql平均值最大值為:3.05-3.08 第二次測試:2.2-2.30
開啟復制,同步性的寫入 , dql平均值最大值為 :3.06-3.10 第二次測試: 2.2-2.34
結論:可以由於兩次測試間隔時間比較長,機器的情況不一致,但是結果很明顯,都是相差不大
第三鐘情況:關閉復制,主服務器寫入 10000 次數據 ,每次寫三個表,然後開啟服務器,主服務器的 dql基本沒變化,因為是復制服務器寫數據,和主服務器關聯性不大
就上述情況來看,復制基本上不會影響主服務器的性能消耗,但是,我們通過監控SQL Server Profiler 會發現,出現大量的復制監視器,這種復制監視器,會非常消耗服務器的性能,造成服務器緩慢,因為是推送模式,所以主服務器要時刻監控自己的變化情況,而造成性能消耗,如下圖
修改後,我們在去SQL Server Profiler 查看,就會發現基本上消耗就會很少了
如果你的服務器復制模式為訂閱模式,那麼你去--代理配置文件---》分發代理--裡面去修改你的訂閱時間即可