1. 實現原理:讀寫分離簡單的說是把對數據庫讀和寫的操做分開對應不一樣的數據庫服務器,這樣能有效地減輕數據庫壓力,也能減輕io壓力。主數據庫提供寫操做,從數據庫提供讀操做,其實在不少系統中,主要是讀的操做。當主數據庫進行寫操做時,數據要同步到從的數據庫,這樣纔能有效保證數據庫完整性。html
2. 實現方法:在MS Sql server中能夠使用發佈定義的方式實現數據庫複製,實現讀寫分離,複製是將一組數據從一個數據源拷貝到多個數據源的技術,是將一份數據發佈到多個存儲站點上的有效方式。使用複製技術,用戶能夠將一份數據發佈到多臺服務器上。複製技術能夠確保分佈在不一樣地點的數據自動同步更新,從而保證數據的一致性。SQL SERVER複製技術類型有三種,分別是:快照複製、事務複製、合併複製。SQL SERVER 主要採用出版物、訂閱的方式來處理複製。源數據所在的服務器是出版服務器,負責發表數據。出版服務器把要發表的數據的全部改變狀況的拷貝複製到分發服務器,分發服務器包含有一個分發數據庫,可接收數據的全部改變,並保存這些改變,再把這些改變分發給訂閱服務器。數據庫
3. 優缺點服務器
(1)數據的實時性差:數據不是實時同步到自讀服務器上的,當數據寫入主服務器後,要在下次同步後才能查詢到。負載均衡
(2)數據量大時同步效率差:單表數據量過大時插入和更新因索引,磁盤IO等問題,性能會變的不好。性能
(3)同時鏈接多個(至少兩個)數據庫:至少要鏈接到兩個數據數據庫,實際的讀寫操做是在程序代碼中完成的,容易引發混亂server
(4)讀具備高性能高可靠性和可伸縮:只讀服務器,由於沒有寫操做,會大大減輕磁盤IO等性能問題,大大提升效率;只讀服務器能夠採用負載均衡,主數據庫發佈到多個只讀服務器上實現讀操做的可伸縮性。htm
原文:http://tech.it168.com/a2012/0110/1300/000001300144_1.shtmlblog