從MySQL復制功能中得到一舉三得實惠
在MySQL數(shù)據(jù)庫中,支持單項、異步復制。在復制過程中,一個服務器充當主服務器,而另外一臺服務器充當從服務器。如下圖所示。此時主服務器會將更新信息寫入到一個特定的二進制文件中。并會維護文件的一個索引用來跟蹤日志循環(huán)。這個日志可以記錄并發(fā)送到從服務器的更新中去。當一臺從服務器連接到主服務器時,從服務器會通知主服器從服務器的日志文件中讀取最后一次成功更新的位置。然后從服務器會接收從那個時刻起發(fā)生的任何更新,然后鎖住并等到主服務器通知新的更新。這就是MySQL服務器數(shù)據(jù)庫復制原理的基本說明。作為數(shù)據(jù)庫管理員,對于這個原理只要有幾個基本的了解即可。
實惠一:實現(xiàn)服務器負載均衡
通過服務器復制功能,可以在主服務器和從服務器之間實現(xiàn)負載均衡。即可以通過在主服務器和從服務器之間切分處理客戶查詢的負荷,從而得到更好的客戶相應時間。通常情況下,數(shù)據(jù)庫管理員會有兩種思路。
一是在主服務器上只實現(xiàn)數(shù)據(jù)的更新操作。包括數(shù)據(jù)記錄的更新、刪除、新建等等作業(yè)。而不關心數(shù)據(jù)的查詢作業(yè)。數(shù)據(jù)庫管理員將數(shù)據(jù)的查詢請求全部轉(zhuǎn)發(fā)到從服務器中。這在某些應用中會比較有用。如某些應用,像基金凈值預測的網(wǎng)站。其數(shù)據(jù)的更新都是有管理員更新的,即更新的用戶比較少。而查詢的用戶數(shù)量會非常的多。此時就可以設置一臺主服務器,專門用來數(shù)據(jù)的更新。同時設置多臺從服務器,用來負責用戶信息的查詢。將數(shù)據(jù)更新與查詢分別放在不同的服務器上進行,即可以提高數(shù)據(jù)的安全性,同時也縮短應用程序的響應時間、提高系統(tǒng)的性能。
二是在主服務器上與從服務器切分查詢的作業(yè)。在這種思路下,主服務器不單單要完成數(shù)據(jù)的更新、刪除、插入等作業(yè),同時也需要負擔一部分查詢作業(yè)。而從服務器的話,只負責數(shù)據(jù)的查詢。當主服務器比較忙時,部分查詢請求會自動發(fā)送到從服務器重,以降低主服務器的工作負荷。當然,像修改數(shù)據(jù)、插入數(shù)據(jù)、刪除數(shù)據(jù)等語句仍然會發(fā)送到主服務器中,以便主服務器和從服務器數(shù)據(jù)的同步。
要在數(shù)據(jù)庫之間實現(xiàn)負載的均衡,其關鍵點就是數(shù)據(jù)同步的時間。如果主服務器與從服務器之間數(shù)據(jù)的更新時間比較長,此時從主服務器中查詢得到的數(shù)據(jù)就會同從從服務器中得到的數(shù)據(jù)有差異。而如果同步的時間比較短,如實現(xiàn)同步復制,對網(wǎng)絡帶寬、服務器設備等就有比較高的要求。
可見這個同步的時間選擇直接關系到其應用的效果。那么這個同步的時間應該選擇多少呢?這沒有一個固定的答案。主要是看用戶的需要。如用戶對數(shù)據(jù)的及時性要求并不是很高,或者數(shù)據(jù)更新的頻率不是很高,那么這個同步的時間可以稍微長一點。但是如果這個數(shù)據(jù)的及時性要求很高,如股票的價格等等,此時就需要能夠?qū)崿F(xiàn)同步更新。所以具體要看企業(yè)實際的應用才能夠決定采用什么樣的同步時間。
在采取這個應用時,需要注意MySQL數(shù)據(jù)庫的復制是單向的。即只能夠?qū)?shù)據(jù)從主服務器復制到從服務器,而不能夠?qū)?shù)據(jù)從從服務器發(fā)生到主服務器。這也就是說,數(shù)據(jù)庫管理員不能夠在從服務器上更新數(shù)據(jù),否則的話,就可能會與主服務器上的數(shù)據(jù)產(chǎn)生沖突。默認情況下,系統(tǒng)會自動利用主服務器上的數(shù)據(jù)來更新從服務器上的數(shù)據(jù)。即在從服務器上所做的任何更改,到時候都會失效。如果是用戶的請求,一般不用擔心。系統(tǒng)會自動判斷用戶的請求是查詢請求還是數(shù)據(jù)更新請求。并自動根據(jù)請求的類型轉(zhuǎn)發(fā)到不同的服務器上。主要是數(shù)據(jù)庫管理員,不要手癢癢,手動去更新從服務器上的數(shù)據(jù)。否則的話,就會導致從服務器與主服務器之間數(shù)據(jù)的沖突。
在MySQL數(shù)據(jù)庫中,支持單項、異步復制。在復制過程中,一個服務器充當主服務器,而另外一臺服務器充當從服務器。如下圖所示。此時主服務器會將更新信息寫入到一個特定的二進制文件中。并會維護文件的一個索引用來跟蹤日志循環(huán)。這個日志可以記錄并發(fā)送到從服務器的更新中去。當一臺從服務器連接到主服務器時,從服務器會通知主服器從服務器的日志文件中讀取最后一次成功更新的位置。然后從服務器會接收從那個時刻起發(fā)生的任何更新,然后鎖住并等到主服務器通知新的更新。
這就是MySQL服務器數(shù)據(jù)庫復制原理的基本說明。作為數(shù)據(jù)庫管理員,對于這個原理只要有幾個基本的了解即可。
實惠一:實現(xiàn)服務器負載均衡
通過服務器復制功能,可以在主服務器和從服務器之間實現(xiàn)負載均衡。即可以通過在主服務器和從服務器之間切分處理客戶查詢的負荷,從而得到更好的客戶相應時間。通常情況下,數(shù)據(jù)庫管理員會有兩種思路。
一是在主服務器上只實現(xiàn)數(shù)據(jù)的更新操作。包括數(shù)據(jù)記錄的更新、刪除、新建等等作業(yè)。而不關心數(shù)據(jù)的查詢作業(yè)。數(shù)據(jù)庫管理員將數(shù)據(jù)的查詢請求全部轉(zhuǎn)發(fā)到從服務器中。這在某些應用中會比較有用。如某些應用,像基金凈值預測的網(wǎng)站。其數(shù)據(jù)的更新都是有管理員更新的,即更新的用戶比較少。而查詢的用戶數(shù)量會非常的多。此時就可以設置一臺主服務器,專門用來數(shù)據(jù)的更新。同時設置多臺從服務器,用來負責用戶信息的查詢。將數(shù)據(jù)更新與查詢分別放在不同的服務器上進行,即可以提高數(shù)據(jù)的安全性,同時也縮短應用程序的響應時間、提高系統(tǒng)的性能。
二是在主服務器上與從服務器切分查詢的作業(yè)。在這種思路下,主服務器不單單要完成數(shù)據(jù)的更新、刪除、插入等作業(yè),同時也需要負擔一部分查詢作業(yè)。而從服務器的話,只負責數(shù)據(jù)的查詢。當主服務器比較忙時,部分查詢請求會自動發(fā)送到從服務器重,以降低主服務器的工作負荷。當然,像修改數(shù)據(jù)、插入數(shù)據(jù)、刪除數(shù)據(jù)等語句仍然會發(fā)送到主服務器中,以便主服務器和從服務器數(shù)據(jù)的同步。
要在數(shù)據(jù)庫之間實現(xiàn)負載的均衡,其關鍵點就是數(shù)據(jù)同步的時間。如果主服務器與從服務器之間數(shù)據(jù)的更新時間比較長,此時從主服務器中查詢得到的數(shù)據(jù)就會同從從服務器中得到的數(shù)據(jù)有差異。而如果同步的時間比較短,如實現(xiàn)同步復制,對網(wǎng)絡帶寬、服務器設備等就有比較高的要求。
可見這個同步的時間選擇直接關系到其應用的效果。那么這個同步的時間應該選擇多少呢?這沒有一個固定的答案。主要是看用戶的需要。如用戶對數(shù)據(jù)的及時性要求并不是很高,或者數(shù)據(jù)更新的頻率不是很高,那么這個同步的時間可以稍微長一點。但是如果這個數(shù)據(jù)的及時性要求很高,如股票的價格等等,此時就需要能夠?qū)崿F(xiàn)同步更新。所以具體要看企業(yè)實際的應用才能夠決定采用什么樣的同步時間。
在采取這個應用時,需要注意MySQL數(shù)據(jù)庫的復制是單向的。即只能夠?qū)?shù)據(jù)從主服務器復制到從服務器,而不能夠?qū)?shù)據(jù)從從服務器發(fā)生到主服務器。這也就是說,數(shù)據(jù)庫管理員不能夠在從服務器上更新數(shù)據(jù),否則的話,就可能會與主服務器上的數(shù)據(jù)產(chǎn)生沖突。默認情況下,系統(tǒng)會自動利用主服務器上的數(shù)據(jù)來更新從服務器上的數(shù)據(jù)。即在從服務器上所做的任何更改,到時候都會失效。如果是用戶的請求,一般不用擔心。系統(tǒng)會自動判斷用戶的請求是查詢請求還是數(shù)據(jù)更新請求。并自動根據(jù)請求的類型轉(zhuǎn)發(fā)到不同的服務器上。主要是數(shù)據(jù)庫管理員,不要手癢癢,手動去更新從服務器上的數(shù)據(jù)。否則的話,就會導致從服務器與主服務器之間數(shù)據(jù)的沖突。
posted on 2011-11-14 11:11 順其自然EVO 閱讀(153) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄