乙個應用系統隨著業務量的提高,以及訪問量和資料流量的快速增長,各個核心部分的處理效能和計算強度也相應增大,使得單一裝置根本無法承擔。在此情況下,如果扔掉現有裝置去做大量的硬體公升級,必將造成現有資源的浪費,而且下一次業務量的提公升,又將導致再一次硬體公升級的高額成本投入。於是,負載均衡機制應運而生。
對於應用系統的負載均衡的硬體和軟體比比皆是,因為應用伺服器上的程式基本上認為是不變化的,而且一般的各個應用伺服器上的程式是不互動的。因此應用伺服器的負載均衡非常好做,只需要能夠進行分流的軟體或者硬體把多個客戶端的連線分配到多個應用伺服器上去即可。
因為資料庫內的資料是頻繁變化的,為了資料的一致性以及鎖資源的分配協調等,所以像應用伺服器那樣只有分流是不夠的,各個節點需要頻繁的互動。這也是資料庫集群軟體難做的原因,當然也是賣的貴的原因了。
對於資料庫負載均衡,大家最為耳熟能詳的就是oracle rac了。rac是雙機並行伺服器(8i及以前版本稱作oracle parallel server,ops),用來在集群環境下實現多機共享資料庫,以保證應用的高可用性,同時可以自動實現並行處理及均分負載,還能實現資料庫在故障時的排錯和無斷點恢復。它可以自動進行負載平衡、故障修復和規劃停機時間,以支援高可用性應用程式。若並行伺服器中某節點失效,透明的應用程式容錯能夠把使用者自動轉接到另一節點上繼續執行,應用程式在使用者沒有察覺的情況下繼續執行。這使週期性和非週期性發生故障的系統增大了連續可用性。程序的失效可以完全透明地轉移到另一節點上去,通過適當地配置,可以指定所有查詢都在客戶端進行快取,這樣它們便可以在轉移後的節點上重新設定。
截至到sql server 2008,微軟還是沒有推出負載均衡元件,只能靠第三方軟體來實現,好在這個軟體是幾個從微軟出來的人寫的,也算是個小小的巧合。說他們是微軟出來的並不是說他們的技術多厲害,而是他們利用sql server的一些內部介面把集群做的非常透明, 無論是應用程式的呼叫還是開發/管理人員的使用都和面對乙個資料庫一樣。
他們的實現原理是這樣的:和sql server映象一樣,每個資料庫節點都有自己的資料,也就是無共享磁碟架構。他們稱之為「中介軟體」的程式宿主在資料庫的內部,每個節點資料庫上寫入資料導致資料變化時,sql server會啟用「中介軟體」,「中介軟體」把變化的資料同步到其他的節點上。其他節點發生變化也是一樣。因為「中介軟體」宿主在資料庫內, 所以它能夠把每個同步的session和sql server的session繫結到一起,也就是使使用者的執行和資料的同步成為乙個原子操作,從而保證資料在每時每刻都是一致的。因此查詢可以隨便到每個機器上去查,從而做到了真正的負載均衡。
asp 操作兩種資料庫的方法
using system using system.collections.generic using system.linq using system.web using system.web.ui using system.web.ui.webcontrols using system.data...
目前最流行的幾種資料庫比較
current situation 商品化的資料庫管理系統以關係型資料庫為主導,技術比較成熟 物件導向的資料庫雖然先進,資料庫易於開發 維護,但尚未有成熟的產品。國際國內的主導關係型資料庫管理系統有oracle sybase informix和ingres。這些產品都支援多平台,如unix vms ...
資料庫連線的兩種方法
方法一 使用jdbc odbc橋驅動程式連線資料庫 1.載入driver驅動程式 class.fornam sun.jdbc.odbc.jdbcodbcdriver 2.宣告jdbc url string url jdbc odbc person 3.建立連線 connection con driv...