從MySQL複製功能中獲得一舉三得實惠

  在MySQL數據庫中, 支持單項、異步複製。在複製過程當中,一個服務器充當主服務器,而另一臺服務器充當從服務器。以下圖所示。此時主服務器會將更 新信息寫入到一個特定的二進制文件中。並會維護文件的一個索引用來跟蹤日誌循環。這個日誌能夠記錄併發送到從服務器的更新中去。當一臺從服務器鏈接到主服 務器時,從服務器會通知主服器從服務器的日誌文件中讀取最後一次成功更新的位置。而後從服務器會接收從那個時刻起發生的任何更新,而後鎖住並等到主服務器 通知新的更新。
這就是MySQL服務器數據庫複製原理的基本說明。做爲數據庫管理員,對於這個原理只要有幾個基本的瞭解便可。 html

  實惠一:實現服務器負載均衡
經過服務器複製功能,能夠在主服務器和從服務器之間實現負載均衡。便可以經過在主服務器和從服務器之間切分處理客戶查詢的負荷,從而獲得更好的客戶相應時間。一般狀況下,數據庫管理員會有兩種思路。
一是在主服務器上只實現數據的更新操做。包括數據記錄的更新、刪除、新建等等做業。而不關心數據的查詢做業。數據庫管理員將數據的查詢請求所有轉發到 從服務器中。這在某些應用中會比較有用。如某些應用,像基金淨值預測的網站。其數據的更新都是有管理員更新的,即更新的用戶比較少。而查詢的用戶數量會非 常的多。此時就能夠設置一臺主服務器,專門用來數據的更新。同時設置多臺從服務器,用來負責用戶信息的查詢。將數據更新與查詢分別放在不一樣的服務器上進 行,便可以提升數據的安全性,同時也縮短應用程序的響應時間、提升系統的性能。
二是在主服務器上與從服務器切分查詢的做業。在這種思路下,主服務器不僅僅要完成數據的更新、刪除、插入等做業,同時也須要負擔一部分查詢做業。而從 服務器的話,只負責數據的查詢。當主服務器比較忙時,部分查詢請求會自動發送到從服務器重,以下降主服務器的工做負荷。固然,像修改數據、插入數據、刪除 數據等語句仍然會發送到主服務器中,以便主服務器和從服務器數據的同步。
要在數據庫之間實現負載的均衡,其關鍵點就是數據同步的時間。若是主服務器與從服務器之間數據的更新時間比較長,此時從主服務器中查詢獲得的數據就會 同從從服務器中獲得的數據有差別。而若是同步的時間比較短,如實現同步複製,對網絡帶寬、服務器設備等就有比較高的要求。
可見這個同步的時間選擇直接關係到其應用的效果。那麼這個同步的時間應該選擇多少呢?這沒有一個固定的答案。主要是看用戶的須要。如用戶對數據的及時 性要求並非很高,或者數據更新的頻率不是很高,那麼這個同步的時間能夠稍微長一點。可是若是這個數據的及時性要求很高,如股票的價格等等,此時就須要能 夠實現同步更新。因此具體要看企業實際的應用纔可以決定採用什麼樣的同步時間。
在採起這個應用時,須要注意MySQL數據庫的複製是單向的。即只可以將數據從主服務器複製到從服務器,而不可以將數據從從服務器發生到主服務器。這 也就是說,數據庫管理員不可以在從服務器上更新數據,不然的話,就可能會與主服務器上的數據產生衝突。默認狀況下,系統會自動利用主服務器上的數據來更新 從服務器上的數據。即在從服務器上所作的任何更改,到時候都會失效。若是是用戶的請求,通常不用擔憂。系統會自動判斷用戶的請求是查詢請求仍是數據更新請 求。並自動根據請求的類型轉發到不一樣的服務器上。主要是數據庫管理員,不要手癢癢,手動去更新從服務器上的數據。不然的話,就會致使從服務器與主服務器之 間數據的衝突。 數據庫

http://www.spasvo.com/news/html/2010729110232.html 安全

相關文章
相關標籤/搜索