一種高可用服務器的優化方法及系統的制作方法
【專利摘要】本申請公開了一種高可用服務器的優化方法及系統,該方法包括:若mysql主服務器出現服務中斷故障,則向mysql備服務器發送自主啟動命令;確定mysql備服務器在接收到自主啟動命令后是否能夠正常啟動,如果否,則從mysql日志庫中篩選出一個正常日志文件;其中,正常日志文件為mysql主服務器在正常運行時產生的日志文件;根據正常日志文件對應的日志狀態,將mysql備服務器啟動至與上述日志狀態對應的工作狀態。可見,本申請實現了在mysql主服務器出現服務中斷故障的情況下,確保高可用服務器的高可用性的目的。
【專利說明】
一種高可用服務器的優化方法及系統
技術領域
[0001]本發明涉及高可用服務器技術領域,特別涉及一種高可用服務器的優化方法及系統。
【背景技術】
[0002]當前,隨著云計算技術的發展,云計算平臺對數據安全性方面的要求也越來越高,由此高可用服務器開始逐漸廣泛地應用于云計算平臺。高可用服務器通常可基于mysql (即關系型數據庫管理系統)和NFS(即Network File System,網絡文件系統)進行搭建,也即高可用服務器中可通過mysql服務器和NFS服務器進行搭建,通常情況下,高可用服務器中至少包括mysql主服務器、mysql備服務器和NFS服務器,其中mysql主服務器和mysql備服務器共用一臺NFS服務器。
[0003]然而,當NFS服務器的傳輸數據網絡出現延遲或mysql主服務器出現突然斷電的情況而導致mysql主服務器的服務出現中斷故障時,mysql主服務器通常會相應地產生一些致命性錯誤數據,而該致命性錯誤數據同時也在NFS服務器的數據空間上存在,從而使得同樣與NFS服務器連接的mysql備服務器無法進行正常啟動,此時高可用服務器中的高可用方案便處于失敗狀態。
[0004]綜上所述可以看出,如何在mysql主服務器出現服務中斷故障的情況下,確保高可用服務器的高可用性是目前亟待解決的問題。
【發明內容】
[0005]有鑒于此,本發明的目的在于提供一種高可用服務器的優化方法及系統,實現了在mysql主服務器出現服務中斷故障的情況下,確保高可用服務器的高可用性的目的。其具體方案如下:
[0006]一種高可用服務器的優化方法,所述高可用服務器包括mysql主服務器、mysql備服務器和NFS服務器,其中,所述mysql主服務器和所述mysql備服務器均被配置到所述NFS服務器中的同一NFS目錄下;所述方法包括:
[0007]若所述mysql主服務器出現服務中斷故障,則向所述mysql備服務器發送自主啟動命令;
[0008]確定所述mysql備服務器在接收到所述自主啟動命令后是否能夠正常啟動,如果否,則從mysql日志庫中篩選出一個正常日志文件;其中,所述正常日志文件為所述mysql主服務器在正常運行時產生的日志文件;
[0009]根據所述正常日志文件對應的日志狀態,將所述mysql備服務器啟動至與所述日志狀態對應的工作狀態。
[0010]優選的,所述確定所述mysql備服務器在接收到所述自主啟動命令后是否能夠正常啟動的過程,包括:
[0011]在所述mysql備服務器接收到所述自主啟動命令后,每隔一個預設的檢測周期,對所述mysql備服務器是否正常啟動進行一次檢測;
[0012]如果連續經過N個所述檢測周期,均檢測到所述mysql備服務器無法正常啟動,則確定所述mysql備服務器在接收到所述自主啟動命令后未能正常啟動;其中,N為預設的正整數。
[0013]優選的,所述檢測周期為10秒至15秒中的任一數值,N為3至5中的任一整數。
[0014]優選的,所述從mysql日志庫中篩選出一個正常日志文件的過程,包括:
[0015]從所述mysql日志庫中篩選出所述mysql主服務器運行中斷前的最新記錄的正常日志文件。
[0016]本發明相應公開的一種高可用服務器的優化系統,所述高可用服務器包括mysql主服務器、mysql備服務器和NFS服務器,其中,所述mysql主服務器和所述mysql備服務器均被配置到所述NFS服務器中的同一NFS目錄下;所述優化系統包括:
[0017]命令發送模塊,用于當所述mysql主服務器出現服務中斷故障,則向所述mysql備服務器發送自主啟動命令;
[0018]啟動判斷模塊,用于確定所述mysql備服務器在接收到所述自主啟動命令后是否能夠正常啟動;
[0019]日志篩選模塊,用于當所述mysql備服務器在接收到所述自主啟動命令后未能正常啟動,則從mysql日志庫中篩選出一個正常日志文件;其中,所述正常日志文件為所述mysql主服務器在正常運行時產生的日志文件;
[0020]啟動輔助模塊,用于根據所述正常日志文件對應的日志狀態,將所述mysql備服務器啟動至與所述日志狀態對應的工作狀態。
[0021]優選的,所述啟動判斷模塊包括:
[0022]檢測單元,用于在所述mysql備服務器接收到所述自主啟動命令后,每隔一個預設的檢測周期,對所述mysql備服務器是否正常啟動進行一次檢測;
[0023]確定單元,與所述檢測單元連接,用于當所述檢測單元在連續N個所述檢測周期內均檢測到所述mysql備服務器無法正常啟動,則確定所述mysql備服務器在接收到所述自主啟動命令后未能正常啟動;其中,N為預設的正整數。
[0024]優選的,所述檢測周期為10秒至15秒中的任一數值,N為3至5中的任一整數。
[0025]優選的,所述日志篩選模塊,具體用于當所述mysql備服務器在接收到所述自主啟動命令后未能正常啟動,則從所述mysql日志庫中篩選出所述mysql主服務器運行中斷前的最新記錄的正常日志文件。
[0026]本發明還公開了一種高可用服務器,包括前述的優化系統,還包括所述mysql主服務器、所述my sq I備服務器和所述NFS服務器。
[0027]本發明中,高可用服務器的優化方法包括:若mysql主服務器出現服務中斷故障,則向mysql備服務器發送自主啟動命令;確定mysql備服務器在接收到自主啟動命令后是否能夠正常啟動,如果否,則從my sql日志庫中篩選出一個正常日志文件;其中,正常日志文件為mysql主服務器在正常運行時產生的日志文件;根據正常日志文件對應的日志狀態,將mysql備服務器啟動至與上述日志狀態對應的工作狀態。可見,本發明在mysql主服務器出現服務中斷故障,并且在確定mysql備服務器無法根據自主啟動命令進行正常啟動的情況下,將mysql備服務器啟動至與mysql日志庫中的一個正常日志文件對應的工作狀態,由此確保mysql備服務器能夠最終實現正常啟動。也即,本發明實現了在mysql主服務器出現服務中斷故障的情況下,確保高可用服務器的高可用性的目的。
【附圖說明】
[0028]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
[0029]圖1為本發明實施例公開的一種高可用服務器的優化方法流程圖;
[0030]圖2為本發明實施例公開的一種高可用服務器的優化系統結構示意圖。
【具體實施方式】
[0031]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0032]本發明實施例公開了一種高可用服務器的優化方法,其中,高可用服務器包括mysql主服務器、mysql備服務器和NFS服務器,mysql主服務器和mysql備服務器均被配置到NFS服務器中的同一NFS目錄下;參見圖1所示,上述優化方法包括:
[0033]步驟Sll:若mysql主服務器出現服務中斷故障,貝Ij向mysql備服務器發送自主啟動命令。
[0034]需要說明的是,引發mysql主服務器出現服務中斷故障的原因通常包括NFS服務器中的傳輸數據網絡出現延遲或mysql主服務器突然斷電。
[0035]步驟S12:確走mysql備服務器在接收到自王啟動命令后是否成夠正常啟動,如果否,則從mysql日志庫中篩選出一個正常日志文件;其中,正常日志文件為mysql主服務器在正常運行時產生的日志文件。
[0036]可以理解的是,若mysql備服務器能夠根據自動啟動命令進行正常的啟動時,說明此前mysql主服務器在出現服務中斷故障的時候并沒有產生錯誤數據或者產生的錯誤數據不足以使得mysql備服務器無法進行正常的啟動,這種情況下,可直接允許mysql備服務器根據自動啟動命令進行正常啟動,而無需進行后續的日志文件篩選工作。
[0037]另外,上述mysql日志庫中保存的是mysql主服務器在歷史運行過程中產生的日志文件,其中,既包括正常運行時產生的日志文件,也包括異常運行時產生的日志文件。
[0038]步驟S13:根據正常日志文件對應的日志狀態,將mysql備服務器啟動至與日志狀態對應的工作狀態。
[0039]也即,將mysql備服務器的工作狀態啟動至與mysql主服務器產生上述正常日志文件時的工作狀態相同的狀態。
[0040]本發明實施例中,高可用服務器的優化方法包括:若mysql主服務器出現服務中斷故障,則向mysql備服務器發送自主啟動命令;確定mysql備服務器在接收到自主啟動命令后是否能夠正常啟動,如果否,則從mysql日志庫中篩選出一個正常日志文件;其中,正常日志文件為mysql主服務器在正常運行時產生的日志文件;根據正常日志文件對應的日志狀態,將mysql備服務器啟動至與上述日志狀態對應的工作狀態。可見,本發明實施例在mysql主服務器出現服務中斷故障,并且在確定mysql備服務器無法根據自主啟動命令進行正常啟動的情況下,將mysql備服務器啟動至與mysql日志庫中的一個正常日志文件對應的工作狀態,由此確保mysql備服務器能夠最終實現正常啟動。也即,本發明實施例實現了在mysql主服務器出現服務中斷故障的情況下,確保高可用服務器的高可用性的目的。
[0041]本發明實施例公開了一種具體的高可用服務器的優化方法,相對于上一實施例,本實施例對技術方案作了進一步的說明和優化。具體的:
[0042]上一實施例步驟S12中,確定mysql備服務器在接收到自主啟動命令后是否能夠正常啟動的過程,包括:在mysql備服務器接收到自主啟動命令后,每隔一個預設的檢測周期,對mysql備服務器是否正常啟動進行一次檢測;如果連續經過N個檢測周期,均檢測到mysql備服務器無法正常啟動,則確定mysql備服務器在接收到自主啟動命令后未能正常啟動;其中,N為預設的正整數。
[0043]其中,優選的,上述檢測周期為可以是10秒至15秒中的任一數值,而上述N值可以為3至5中的任一整數。當然,根據實際需要,也可以將上述檢測周期和N值設為其他數值。
[0044]另外,上一實施例步驟S12中,從mysql日志庫中篩選出一個正常日志文件的過程,包括:從mysql日志庫中篩選出mysql主服務器運行中斷前的最新記錄的正常日志文件。也SP,從當前mysql日志庫記錄的所有歷史日志文件中篩選出文件記錄時間距離當前時間最近的一個正常日志文件。
[0045]相應的,利用上述文件記錄時間距離當前時間最近的一個正常日志文件,將mysql備服務器啟動至與該正常日志文件的日志狀態對應的工作狀態。
[0046]相應的,本發明實施例還公開了一種高可用服務器的優化系統,高可用服務器包括mysql主服務器、mysql備服務器和NFS服務器,其中,mysql主服務器和mysql備服務器均被配置到NFS服務器中的同一NFS目錄下;參見圖2所示,上述優化系統包括:
[0047]命令發送模塊21,用于當mysql主服務器出現服務中斷故障,則向mysql備服務器發送自主啟動命令;
[0048]啟動判斷模塊22,用于確定mysql備服務器在接收到自主啟動命令后是否能夠正常啟動;
[0049]日志篩選模塊23,用于當mysql備服務器在接收到自主啟動命令后未能正常啟動,則從mysql日志庫中篩選出一個正常日志文件;其中,正常日志文件為mysql主服務器在正常運行時產生的日志文件;
[0050]啟動輔助模塊24,用于根據正常日志文件對應的日志狀態,將mysql備服務器啟動至與日志狀態對應的工作狀態。
[0051]可見,本發明實施例在mysql主服務器出現服務中斷故障,并且在確定mysql備服務器無法根據自主啟動命令進行正常啟動的情況下,將mysql備服務器啟動至與mysql日志庫中的一個正常日志文件對應的工作狀態,由此確保mysql備服務器能夠最終實現正常啟動。也即,本發明實施例實現了在mysql主服務器出現服務中斷故障的情況下,確保高可用服務器的高可用性的目的。
[0052]本發明實施例進一步公開了一種具體的高可用服務器的優化系統,相對于上一實施例,本實施例對技術方案作了進一步的說明和優化。具體的:
[0053]上一實施例中的啟動判斷模塊具體可以包括檢測單元和確定單元;其中,
[0054]檢測單元,用于在mysql備服務器接收到自主啟動命令后,每隔一個預設的檢測周期,對mysql備服務器是否正常啟動進行一次檢測;
[0055]確定單元,與檢測單元連接,用于當檢測單元在連續N個檢測周期內均檢測到mysql備服務器無法正常啟動,則確定mysql備服務器在接收到自主啟動命令后未能正常啟動;其中,N為預設的正整數。
[0056]其中,優選的,上述檢測周期為可以是10秒至15秒中的任一數值,而上述N值可以為3至5中的任一整數。當然,根據實際需要,也可以將上述檢測周期和N值設為其他數值。
[0057]另外,上一實施例日志篩選模塊,具體用于當mysql備服務器在接收到自主啟動命令后未能正常啟動,則從mysql日志庫中篩選出mysql主服務器運行中斷前的最新記錄的正常日志文件。也即,從當前mysql日志庫記錄的所有歷史日志文件中篩選出文件記錄時間距離當前時間最近的一個正常日志文件。
[0058]相應的,上一實施例中的啟動輔助模塊利用上述文件記錄時間距離當前時間最近的一個正常日志文件,將mysql備服務器啟動至與該正常日志文件的日志狀態對應的工作狀態。
[0059]進一步的,本發明實施例還公開了一種高可用服務器,包括前述實施例中公開的優化系統,還包括mysql主服務器、mysql備服務器和NFS服務器。關于該優化系統的具體構造可參考前述實施例中的相關內容,在此不再贅述。
[0060]最后,還需要說明的是,在本文中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
[0061]以上對本發明所提供的一種高可用服務器的優化方法及系統進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。
【主權項】
1.一種高可用服務器的優化方法,其特征在于,所述高可用服務器包括mysql主服務器、mysql備服務器和NFS服務器,其中,所述mysql主服務器和所述mysql備服務器均被配置到所述NFS服務器中的同一NFS目錄下;所述方法包括: 若所述mysql主服務器出現服務中斷故障,則向所述mysql備服務器發送自主啟動命令; 確定所述mysql備服務器在接收到所述自主啟動命令后是否能夠正常啟動,如果否,則從mysql日志庫中篩選出一個正常日志文件;其中,所述正常日志文件為所述mysql主服務器在正常運行時產生的日志文件; 根據所述正常日志文件對應的日志狀態,將所述mysql備服務器啟動至與所述日志狀態對應的工作狀態。2.根據權利要求1所述的高可用服務器的優化方法,其特征在于,所述確定所述mysql備服務器在接收到所述自主啟動命令后是否能夠正常啟動的過程,包括: 在所述mysql備服務器接收到所述自主啟動命令后,每隔一個預設的檢測周期,對所述mysql備服務器是否正常啟動進行一次檢測; 如果連續經過N個所述檢測周期,均檢測到所述mysql備服務器無法正常啟動,則確定所述mysql備服務器在接收到所述自主啟動命令后未能正常啟動;其中,N為預設的正整數。3.根據權利要求2所述的高可用服務器的優化方法,其特征在于,所述檢測周期為10秒至15秒中的任一數值,N為3至5中的任一整數。4.根據權利要求1至3任一項所述的高可用服務器的優化方法,其特征在于,所述從mysql日志庫中篩選出一個正常日志文件的過程,包括: 從所述mysql日志庫中篩選出所述mysql主服務器運行中斷前的最新記錄的正常日志文件。5.—種高可用服務器的優化系統,其特征在于,所述高可用服務器包括mysql主服務器、mysql備服務器和NFS服務器,其中,所述mysql主服務器和所述mysql備服務器均被配置到所述NFS服務器中的同一NFS目錄下;所述優化系統包括: 命令發送模塊,用于當所述mysql主服務器出現服務中斷故障,則向所述mysql備服務器發送自主啟動命令; 啟動判斷模塊,用于確定所述mysql備服務器在接收到所述自主啟動命令后是否能夠正常啟動; 日志篩選模塊,用于當所述mysql備服務器在接收到所述自主啟動命令后未能正常啟動,則從mysql日志庫中篩選出一個正常日志文件;其中,所述正常日志文件為所述mysql主服務器在正常運行時產生的日志文件; 啟動輔助模塊,用于根據所述正常日志文件對應的日志狀態,將所述mysql備服務器啟動至與所述日志狀態對應的工作狀態。6.根據權利要求5所述的高可用服務器的優化系統,其特征在于,所述啟動判斷模塊包括: 檢測單元,用于在所述mysql備服務器接收到所述自主啟動命令后,每隔一個預設的檢測周期,對所述mysql備服務器是否正常啟動進行一次檢測; 確定單元,與所述檢測單元連接,用于當所述檢測單元在連續N個所述檢測周期內均檢測到所述mysql備服務器無法正常啟動,則確定所述mysql備服務器在接收到所述自主啟動命令后未能正常啟動;其中,N為預設的正整數。7.根據權利要求6所述的高可用服務器的優化系統,其特征在于,所述檢測周期為10秒至15秒中的任一數值,N為3至5中的任一整數。8.根據權利要求5至7任一項所述的高可用服務器的優化系統,其特征在于,所述日志篩選模塊,具體用于當所述mysql備服務器在接收到所述自主啟動命令后未能正常啟動,則從所述mysql日志庫中篩選出所述mysql主服務器運行中斷前的最新記錄的正常日志文件。9.一種高可用服務器,其特征在于,包括如權利要求5至8任一項所述的優化系統,還包括所述mysql主服務器、所述mysql備服務器和所述NFS服務器。
【文檔編號】G06F11/16GK106055434SQ201610375329
【公開日】2016年10月26日
【申請日】2016年5月31日
【發明人】李新虎, 于輝, 胡玉鵬
【申請人】浪潮(北京)電子信息產業有限公司