一種數據庫集群的故障檢測方法和裝置的制造方法
【技術領域】
[0001]本發明涉及計算機技術領域,特別是涉及一種數據庫集群的故障檢測方法和裝置。
【背景技術】
[0002]隨著計算機和網絡技術的迅速發展,數據庫集群廣泛應用于各種領域,尤其用于存儲海量數據。在具體應用中,數據庫集群通常可以包括一個主數據庫(Master)和多個從數據庫(Slave),以MySQL數據庫為例,參照圖1,示出了現有一種MySQL數據庫集群的架構示意圖,其具體包括:主數據庫Master和三個從數據庫Slave,分別為Slave-1、Slave_2和Slave-3。其中,Slave-1和Slave-2位于機房1,Slave-3位于機房2。主數據庫mas ter分別與從數據庫 Slave-1、Slave_2 和 Slave-3 連接。
[0003]在實際應用中,主數據庫或者從數據庫都有可能因為各種原因出現故障,例如出現用戶無法登錄數據庫、數據查詢速度較慢等情況。目前,通常采用人工方式對數據庫集群中的故障進行檢測,具體地,人工登錄數據庫集群中的主數據庫和從數據庫,通過對執行SQL語句得到的結果進行分析,檢測數據庫的狀態,從而找到故障原因。然而,在數據庫服務器數量較多時,現有的數據庫故障檢測方法不僅耗費大量的人力資源和時間資源,導致故障檢測的效率低下,而且通過執行SQL語句來檢測數據庫的狀態,往往需要較高的專業技術水平,因此,對故障檢測人員的要求也較高,為數據庫的故障檢測帶來困難。
【發明內容】
[0004]鑒于上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的一種數據庫集群的故障檢測方法和裝置。
[0005]依據本發明的一個方面,提供了一種數據庫集群的故障檢測方法,包括:
[0006]接收用戶輸入的檢測對象參數和檢測項目參數;
[0007]確定所述數據庫集群中所述檢測對象參數對應的目標服務器;以及
[0008]在遠程登錄所述目標服務器后,執行所述檢測項目參數對應的檢測操作,以得到對應的檢測結果。
[0009]可選地,所述檢測項目參數對應的檢測操作為連通性檢測;所述執行所述檢測項目參數對應的檢測操作的步驟,進一步包括:
[0010]通過所述目標服務器中的預置賬戶信息對目標數據庫執行連通性檢測,將對應連通性檢測結果中的異常數據作為對應的檢測結果。
[0011 ]可選地,所述通過所述目標服務器中的預置賬戶信息對目標數據庫執行連通性檢測,將對應連通性檢測結果中的異常數據作為對應的檢測結果的步驟,進一步包括:
[0012]使用所述目標服務器中的預置賬戶信息連接所述目標數據庫,以得到所述目標數據庫的連接狀態信息;
[0013]在所述連接狀態信息符合預置條件時,將所述連接狀態信息作為對應的檢測結果Ο
[0014]可選地,所述檢測項目參數對應的檢測操作為代理檢測;所述執行所述檢測項目參數對應的檢測操作的步驟,進一步包括:
[0015]查詢所述目標服務器中記錄的數據庫訪問日志,并將查詢得到的異常訪問記錄作為對應的檢測結果;其中,所述數據庫訪問日志中記錄有通過所述目標服務器間接訪問目標數據庫的訪問記錄。
[0016]可選地,所述異常訪問記錄包括以下任一種:
[0017]所述數據庫訪問日志中預置時間段內的訪問報錯信息;
[0018]所述數據庫訪問日志中滿足預置慢查詢條件的訪問記錄。
[0019]可選地,所述檢測項目參數對應的檢測操作為數據庫狀態檢測;所述執行所述檢測項目參數對應的檢測操作的步驟,進一步包括:
[0020]在所述目標服務器中執行數據庫狀態查詢操作,以獲取數據庫的狀態信息,將所述狀態信息中的異常狀態信息作為對應的檢測結果。
[0021 ]可選地,所述狀態信息包括:所述數據庫的可用內存信息,則所述將所述狀態信息中的異常狀態信息作為對應的檢測結果的步驟,進一步包括:
[0022]在所述數據庫的可用內存信息小于預設門限時,將相應的狀態信息作為對應的檢測結果。
[0023]可選地,所述遠程登錄所述目標服務器的步驟,進一步包括:
[0024]根據所述目標服務器的數目,建立對應數目的進程;
[0025]通過所述對應數目的進程,并行執行遠程登錄目標服務器的操作。
[0026]可選地,所述確定所述數據庫集群中所述檢測對象參數對應的目標服務器的步驟,進一步包括:
[0027]根據所述檢測對象參數查詢預置的管理配置文件,得到與所述檢測對象參數對應的目標服務器的信息;
[0028]根據所述目標服務器的信息生成服務器列表,所述服務器列表中包括至少一個目標服務器的信息。
[0029]可選地,所述目標服務器的信息包括:目標服務器的地址信息、賬戶名稱信息以及賬戶密碼信息;
[0030]相應地,所述遠程登錄所述目標服務器的步驟,進一步包括:
[0031]根據所述目標服務器的地址信息、賬戶名稱信息以及賬戶密碼信息,遠程登錄所述服務器列表中對應的目標服務器。
[0032]可選地,所述方法還包括:
[0033]通過預置頁面方式展現所述檢測結果。
[0034]依據本發明的另一方面,提供了一種數據庫集群的故障檢測裝置,包括:
[0035]參數接收模塊,用于接收用戶輸入的檢測對象參數和檢測項目參數;
[0036]目標服務器確定模塊,用于確定所述數據庫集群中所述檢測對象參數對應的目標服務器;以及
[0037]檢測執行模塊,用于在遠程登錄所述目標服務器后,執行所述檢測項目參數對應的檢測操作,以得到對應的檢測結果。
[0038]可選地,所述檢測項目參數對應的檢測操作為連通性檢測;所述檢測執行模塊,進一步包括:
[0039]連通性檢測子模塊,用于通過所述目標服務器中的預置賬戶信息對目標數據庫執行連通性檢測,將對應連通性檢測結果中的異常數據作為對應的檢測結果。
[0040]可選地,所述連通性檢測子模塊,進一步包括:
[0041 ]連接狀態獲取單元,用于使用所述目標服務器中的預置賬戶信息連接所述目標數據庫,以得到所述目標數據庫的連接狀態信息;
[0042]連通性結果獲取單元,用于在所述連接狀態信息符合預置條件時,將所述連接狀態信息作為對應的檢測結果。
[0043]可選地,所述檢測項目參數對應的檢測操作為代理檢測;所述檢測執行模塊,進一步包括:
[0044]代理檢測子模塊,用于查詢所述目標服務器中記錄的數據庫訪問日志,并將查詢得到的異常訪問記錄作為對應的檢測結果;其中,所述數據庫訪問日志中記錄有通過所述目標服務器間接訪問目標數據庫的訪問記錄。
[0045]可選地,所述異常訪問記錄包括以下任一種:
[0046]所述數據庫訪問日志中預置時間段內的訪問報錯信息;
[0047]所述數據庫訪問日志中滿足預置慢查詢條件的訪問記錄。
[0048]可選地,所述檢測項目參數對應的檢測操作為數據庫狀態檢測;所述檢測執行模塊,進一步包括:
[0049]數據庫狀態檢測子模塊,用于在所述目標服務器中執行數據庫狀態查詢操作,以獲取數據庫的狀態信息,將所述狀態信息中的異常狀態信息作為對應的檢測結果。
[0050]可選地,所述狀態信息包括:所述數據庫的可用內存信息,則所述數據庫狀態檢測子模塊,進一步包括:
[0051]狀態結果獲取單元,用于在所述數據庫的可用內存信息小于預設門限時,將相應的狀態信息作為對應的檢測結果。
[0052]可選地,所述檢測執行模塊,進一步包括:
[0053]進程創建子模塊,用于根據所述目標服務器的數目,建立對應數目的進程;
[0054]并行登錄子模塊,用于通過所述對應數目的進程,并行執行遠程登錄目標服務器的操作。
[0055]可選地,所述目標服務器確定模塊,進一步包括:
[0056]信息查詢子模塊,用于根據所述檢測對象參數查詢預置的管理配置文件,得到與所述檢測對象參數對應的目標服務器的信息;
[0057]列表生成子模塊,用于根據所述目標服務器的信息生成服務器列表;所述服務器列表中包括至少一個目標服務器的信息。
[0058]可選地,所述目標服務器的信息包括:目標服務器的地址信息、賬戶名稱信息以及賬戶密碼信息;
[0059]相應地,所述檢測執行模塊,進一步包括:
[0060]遠程登錄子模塊,用于根據所述目標服務器的地址信息、賬戶名稱信息以及賬戶密碼信息,遠程登錄所述服務器列表中對應的目標服務器。[0061 ] 可選地,所述裝置還包括:
[0062]結果展現模塊,用于通過預置頁面方式展現所述檢測結果。
[0063]根據本發明實施例的一種數據庫集群的故障檢測方法和裝置,通過遠程登錄數據庫集群中檢測對象參數對應的目標服務器,并針對所述目標服務器執行檢測項目參數對應的檢測操作,以得到對應的檢測結果;相對于現有方案,由于本發明實施例的故障檢測流程可以不需要人工參與,因此可以節省大量的人力資源,從而能夠提高檢測效率;此外,現有技術中通過人工方式執行SQL語句來檢測數據庫的狀態,以找到故障原因,往往需要較高的專業技術水平,通過本發明實施例可以實現自動檢測數據庫集群中存在的故障,從而可以簡化故障檢測的操作、以及可以降低故障檢測的難度。
[0064]上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發明的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本發明的【具體實施方式】。
【附圖說明】
[0065]通過閱讀下文可選實施方式的詳細描述,各種其他的優點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出可選實施方式的目的,而并不認為是對本發明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0066]圖1示出了現有一種MySQL數據庫集群的架構示意圖;
[0067]圖2示出了根據本發明一個實施例的一種數據庫集群的故障檢測方法的步驟流程示意圖;
[0068]圖3示出了根據本發明一個實施例的一種數據庫集群的故障檢測方法的步驟流程示意圖;
[0069]圖4示出了根據本發明一個實施例的一種數據庫集群的故障檢測方法的步驟流程示意圖;
[0070]圖5示出了根據本發明一個實施例的一種數據庫集群的故障檢測方法的步驟流程示意圖;
[0071]圖6示出了根據本發明一個實施例的一種數據庫集群的故障檢測方法的步驟流程示意圖;
[0072]圖7示出了根據本發明一個實施例的一種數據庫集群的故障檢測系統的結構框圖;以及
[0073]圖8示出了根據本發明一個實施例的一種數據庫集群的故障檢測裝置的結構框圖。
【具體實施方式】
[0074]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的