程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MYSQL入門知識 >> Mysql雙機熱備--預備知識

Mysql雙機熱備--預備知識

編輯:MYSQL入門知識

1.雙機熱備

對於雙機熱備這一概念,我搜索了很多資料,最後,還是按照大多數資料所講分成廣義與狹義兩種意義來說。

從廣義上講,就是對於重要的服務,使用兩台服務器,互相備份,共同執行同一服務。當一台服務器出現故障時,可以由另一台服務器承擔服務任務,從而在不需要人工干預的情況下,自動保證系統能持續提供服務。

從狹義上講,雙機熱備就是使用互為備份的兩台服務器共同執行同一服務,其中一台主機為工作機(Primary Server),另一台主機為備份主機(Standby Server)。在系統正常情況下,工作機為應用系統提供服務,備份機監視工作機的運行情況(一般是通過心跳診斷,工作機同時也在檢測備份機是否正常),當工作機出現異常,不能支持應用系統運營時,備份機主動接管工作機的工作,繼續支持關鍵應用服務,保證系統不間斷的運行。雙機熱備針對的是IT核心服務器、存儲、網絡路由交換的故障的高可用性解決方案。

2.為什麼要進行雙機熱備?

雙機熱備服務針對的是服務器的故障。服務器的故障可能由各種原因引起,如設備故障、操作系統故障、軟件系統故障等等。一般地講,在技術人員在現場的情況下,恢復服務器正常可能需要10分鐘、幾小時甚至幾天。從實際經驗上看,除非是簡單地重啟服務器(可能隱患仍然存在),否則往往需要幾個小時以上。而如果技術人員不在現場,則恢復服務的時間就更長了。

而對於一些重要系統而言,用戶是很難忍受這樣長時間的服務中斷的。因此,就需要通過雙機熱備服務,來避免長時間的服務中斷,保證系統長期、可靠的服務。

當然,決定是否使用雙機熱備,正確的方法是要分析一下系統的重要性以及對服務中斷的容忍程度,以些決定是否使用雙機熱備。換句話說,就是你的用戶能容忍多長時間恢復服務,如果服務不能恢復會造成多大的影響。

在考慮雙機熱備時,需要注意,一般意義上的雙機熱備都會有一個切換過程,這個切換過程可能是一分鐘左右。在切換過程中,服務是有可能短時間中斷的。但是,當切換完成後,服務將正常恢復。因此,雙機熱備不是無縫、不中斷的,但它能夠保證在出現系統故障時,能夠很快恢復正常的服務,業務不致受到影響。而如果沒有雙機熱備,則一旦出現服務器故障,可能會出現幾個小時的服務中斷,對業務的影響就可能會造成很嚴重的損失。

3.雙機熱備技術與備份的概念區別

熱備份指的是:High Available(HA)即高可用,而備份指的是Backup,即數據備份的一種,這是兩種不同的概念,應對的產品也是兩種功能上完全不同的產品。熱備份主要保障業務的連續性,實現的方法是故障點的轉移。而備份,主要目的是為了防止數據丟失,而做的一份拷貝,所以備份強調的是數據恢復而不是應用的故障轉移。

4.雙機熱備方案的主要兩種組建方式

雙機熱備方案在進行討論的時候一定要考慮到很多的因素,其中在各種環境下應用的時候需要格外的引起注意。當然還是有主要的兩方式可以借鑒考慮的。

第一種,雙機熱備它的工作原理是使用兩台服務器,一台作為主服務器(Active),運行應用系統來提供服務。另一台作為備機,安裝完全一樣的應用系統,但處於待機狀態(Standby)。當Active服務器出現故障時,通過軟件診測將Standby機器激活,保證應用在短時間內完成恢復正常使用。

第二種,雙機互備方式則是在雙機熱備的基礎上,兩個相對獨立的應用在兩台機器同時運行,但彼此均設為備機,當某一台服務器出現故障時,另一台服務器可以在短時間內將故障服務器的應用接管過來,從而保證了應用的持續性,這種方式實際上是雙機熱備方案的一種應用。

但目前使用最多的還是主從模式的雙機熱備方案。其大致表示可如下圖所示:

 

目前基於存儲共享的雙機熱備是雙機熱備方案的最標准方案。對於這種方式,采用兩台服務器,使用共享的存儲設備(磁盤陣列櫃或存儲區域網SAN)。兩台服務器可以采用主從、互備等不同的方式。在工作過程中,兩台服務器將以下一個虛擬的IP地址對外提供服務,依工作方式的不同,將服務請求發送給其中一台服務器承擔。同時,服務器通過心跳線(目前往往采用建立私有網絡的方式)偵測另一台服務器的工作狀況。

下圖即為雙機熱備工作大致狀況圖,如下圖所示:

 

雙機熱備方案當一台服務器出現故障時,另一台服務器根據心跳偵測的情況做出判斷,並進行切換,接管服務。對於用戶而言,這一過程是全自動的,在很短時間內完成,從而不會對業務造成大的影響。由於使用共享的存儲設備,因此兩台服務器使用的實際上是一樣的數據,由雙機或集群軟件對其進行管理。

5.Mysql雙機熱備實現原理圖

有了上面對雙機熱備知識的講解,對其實現原理就有了一個深入了解,那麼我們要做mysql數據庫的雙機熱備就清楚明了多了。

Mysql雙機熱備系統的拓撲結構如下圖所示:

 

 兩台服務器通過以太網連接網絡,通過網絡對外提供服務、相互通信。

兩台服務器之間用com口直接互聯,雙機熱備軟件利用這個連接進行雙機熱備相關的通信、監控和控制等。

兩台服務器通過HBA卡連接FC網絡,訪問共同的磁盤陣列,實現雙機熱備系統必要的磁盤。

6.Mysql雙機熱備實現的配置

為了數據的安全,客戶有兩台機器作為互相備份,當一台機器出現故障時,自動切換到另一台服務器。大部分的軟件是通過LifeKeeper來實現的,但是Mysql的雙機備份在LifeKeeper裡沒有實現,所以只能自己手動來實現Mysql的雙機備份了。

其實,Mysql的雙機備份有一個很簡單的第三方軟件可以實現,那就是SQLyog,他有一個功能叫sja(SQLyog Job Agent)可以輕松實現,但是卻有一個不足之處,就是Mysql表裡必須有一個primary key,即主鍵值,如果沒有,則此表不能用sja來實現。

第二種方法就是用Mysql自身的Replication機制來實現了。但是這個功能只有Mysql 3.23以上的版本才有。

這裡先說明下,由於我還沒有通過實際的應用例子來檢測這種雙機熱備方式是否能過通過,所以我會在我通過實例實現後在續寫我後面的關於Mysql雙機熱備實現的配置部分。現在這部分內容主要講的還是雙機熱備份的實現原理和意義。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved