一種測試環境中資料庫的運維方法及系統的製作方法
2023-05-08 17:18:26 3
一種測試環境中資料庫的運維方法及系統的製作方法
【專利摘要】本發明提供了一種測試環境中資料庫的運維方法及系統,該方法包括:交互單元將用戶提交的資料庫的申請信息保存到存儲單元;機器分配單元依據所述申請信息在機器資源池中選擇機器,將選出機器的主機名和埠號發送給資料庫搭建單元;資料庫搭建單元依據選出機器的主機名和埠號,將資料庫安裝包、申請信息和安裝命令發送給對應的機器,機器運行資料庫安裝包,依據申請信息安裝資料庫;數據同步單元將線上實際數據同步到機器上搭建的資料庫。根據本發明提供的技術方案,能夠高效自動進行測試環境中資料庫的部署。
【專利說明】一種測試環境中資料庫的運維方法及系統
【【技術領域】】
[0001]本發明涉及網際網路應用的測試技術,尤其涉及一種測試環境中資料庫的運維方法及系統。
【【背景技術】】
[0002]目前的網際網路產品都會使用資料庫作為數據持久化存儲設備,測試人員在進行網際網路產品的測試時,除了需要部署測試用例的代碼,還需要部署測試環境中的資料庫;在進行測試環境的維護時,也需要同時對資料庫進行運營維護。測試環境中資料庫的運維操作主要包括:選擇合適的機器、在選出的機器上搭建資料庫、在資料庫中準備測試數據、從資料庫收集測試結果以及處理資料庫出現的問題等。
[0003]目前,網際網路產品的測試中,測試環境中資料庫的運維方法存在以下缺陷:
[0004]1、每個網際網路產品的測試人員都需要在機器上手動部署資料庫,往往使得一個機器上只部署了一個測試用例,如果測試用例的訪問量很少,就大大降低了機器的利用率。
[0005]2、測試人員在搭建測試環境中的資料庫時,如果操作不熟練或資料庫集群拓撲結構複雜,都花費大量時間;當資料庫出現異常時,如果測試人員對資料庫技術不是非常了解,就需要求助資料庫管理員進行解決,因而溝通成本較高,如果使用線上數據作為測試數據,還需要執行拷貝數據的審批流程,又需要花費較多時間;因此部署測試環境中的資料庫效率很低,浪費較多人力物力。
[0006]3、在進行網際網路產品的性能測試時,需要模擬線上的實際環境,這樣測試結果可靠性才比較高,但是測試人員部署的機器數量很難與線上的實際環境一致,而且所搭建的資料庫集群的拓撲結構也很簡單,從而導致網際網路產品的性能測試結果的可信度較低。
【
【發明內容】
】
[0007]本發明提供了一種測試環境中資料庫的運維方法及系統,能夠高效自動進行測試環境中資料庫的部署。
[0008]本發明的具體技術方案如下:
[0009]根據本發明一優選實施例,一種測試環境中資料庫的運維系統,包括:交互單元、機器分配單元、資料庫搭建單元、數據同步單元、存儲單元;其中,
[0010]交互單元,用於將用戶提交的資料庫的申請信息保存到存儲單元;
[0011]機器分配單元,用於依據所述申請信息在機器資源池中選擇機器,將選出機器的主機名和埠號發送給資料庫搭建單元;
[0012]資料庫搭建單元,用於依據選出機器的主機名和埠號,將資料庫安裝包、申請信息和安裝命令發送給對應的機器,機器運行資料庫安裝包,依據申請信息安裝資料庫;
[0013]數據同步單元,用於將線上實際數據同步到機器上搭建的資料庫。
[0014]上述系統中,所述資料庫的申請信息包括如下信息:資料庫版本、產品線名稱、測試類型、資料庫的使用時間、資料庫的拓撲結構、磁碟類型、資料庫列表、預估數據量和字符集。
[0015]上述系統中,所述機器分配單元在依據所述申請信息在機器資源池中選擇機器時,具體包括:
[0016]從存儲單元獲取資料庫的申請信息和預設的機器資源池中機器的機器監控數據;
[0017]依據申請信息中測試類型在機器資源池中選出虛擬機、或虛擬機和物理機;
[0018]對選出的機器進行遍歷,將磁碟剩餘量大於申請信息中預估數據量且CPU利用率大於預設的利用率閾值的機器的主機名和埠號添加到可選機器列表,直到機器遍歷完畢;
[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]對選出的機器進行遍歷,將磁碟剩餘量大於申請信息中預估數據量且CPU利用率大於預設的利用率閾值的機器的主機名和埠號添加到可選機器列表,直到機器遍歷完畢;
[0049]當可選機器列表中埠號一致的機器的個數大於或等於申請信息中資料庫列表中的資料庫實例個數時,在可選機器列表中埠號一致的機器中選出與資料庫實例個數對應數量的機器。
[0050]上述方法中,所述將資料庫安裝包、申請信息和安裝命令發送給對應的機器具體包括:
[0051]先後將預先設置的資料庫安裝包、攜帶編譯參數的編譯命令和安裝命令發送給對應的機器;所述編譯參數依據從存儲單元中獲取的申請信息生成。
[0052]上述方法中,所述機器運行資料庫安裝包,依據申請信息安裝資料庫具體包括:
[0053]機器在本地運行資料庫安裝包,依據申請信息中對資料庫的相關要求,完成資料庫安裝,並向資料庫搭建單元返回安裝成功的消息。
[0054]上述方法中,該方法還包括:
[0055]當安裝的資料庫數量為兩個以上時,資料庫搭建單元向兩個以上資料庫中的從資料庫發送主從同步命令,所述主從同步命令中攜帶主資料庫所在機器的主機名和埠號;[0056]所述從資料庫將自身的同步點設置為主資料庫的當前日誌位置。
[0057]上述方法中,所述數據同步單元將線上實際數據同步到機器上搭建的資料庫具體包括:
[0058]數據同步單元定時的從線上資料庫下載包含線上實際數據的備份文件,將所述備份文件拷貝到資料庫中,資料庫將備份文件還原恢復成線上實際數據。
[0059]上述方法中,所述數據同步單元將線上實際數據同步到機器上搭建的資料庫具體包括:
[0060]數據同步單元在線 上資料庫集群中的備份資料庫下掛載資料庫,所述備份資料庫的日誌位置更新時,所述資料庫從備份資料庫中更新後的日誌位置獲取線上實際數據。
[0061]上述方法中,該方法還包括:
[0062]採集控制單元將監控腳本發送給機器,機器運行監控腳本採集服務狀態數據並保存到存儲單元;
[0063]服務監控單元依據存儲單元中的服務狀態數據,進行狀態異常報警、測試結果顯示和故障恢復操作。
[0064]上述方法中,
[0065]所述監控腳本中配置有需要採集的服務狀態數據、採集周期、採集服務狀態數據時調用的命令;
[0066]所述服務狀態數據包括資料庫使用情況數據、產品線使用情況數據和機器監控數據。
[0067]上述方法中,所述服務監控單元進行狀態異常報警具體包括:
[0068]對存儲單元中的服務狀態數據進行監控,當依據預設的報警策略判斷出機器監控數據出現異常時,向用戶發送報警郵件,報警郵件中攜帶出現異常的機器監控數據。
[0069]上述方法中,所述服務監控單元進行測試結果顯示具體包括:
[0070]服務監控單元利用存儲單元中一個月內的資料庫使用情況數據或一天內的產品線使用情況數據,對預設的展示模板進行渲染,生成測試結果頁面,將生成的測試結果頁面發送給交互單元進行顯示。
[0071]由以上技術方案可以看出,本發明提供的具有以下有益效果:
[0072]對所有產品線的測試環境中的資料庫進行統一自動部署和運維,只需要測試人員配置資料庫的申請信息即可,節省人力物力資源,從而提高測試環境中資料庫的部署效率,能夠加快測試進度,縮短測試周期。
【【專利附圖】
【附圖說明】】
[0073]圖1是本發明實現測試環境中資料庫的運維系統的優選實施例的結構示意圖;
[0074]圖2是本發明實現測試環境中資料庫的運維方法的優選實施例的流程示意圖;
[0075]圖3是本發明實現數據採集和服務監控的示例圖;
[0076]圖4是本發明中依據申請信息在機器資源池中選擇用於搭建資料庫的機器的具體實現方法的流程示意圖。
【【具體實施方式】】[0077]本發明的基本思想是:交互單元將用戶提交的資料庫的申請信息保存到存儲單元;機器分配單元依據所述申請信息在機器資源池中選擇機器,將選出機器的主機名和埠號發送給資料庫搭建單元;資料庫搭建單元依據選出機器的主機名和埠號,將資料庫安裝包、申請信息和安裝命令發送給對應的機器,機器運行資料庫安裝包,依據申請信息安裝資料庫;數據同步單元將線上實際數據同步到機器上搭建的資料庫。
[0078]為了使本發明的目的、技術方案和優點更加清楚,下面結合附圖和具體實施例對本發明進行詳細描述。
[0079]本發明提供一種測試環境中資料庫的運維系統,圖1是本發明實現測試環境中資料庫的運維系統的優選實施例的結構示意圖,如圖1所示,該系統包括:交互單元10、存儲單元11、機器分配單元12、資料庫搭建單元13、數據同步單元14、採集控制單元15和服務監控單元16。
[0080]基於上述系統,本發明還提供一種測試環境中資料庫的運維方法,圖2是本發明實現測試環境中資料庫的運維方法的優選實施例的流程示意圖,如圖2所示,該優選實施例包括以下步驟:
[0081]步驟201,交互單元接收第一用戶提交的資料庫的申請信息,並轉發給第二用戶進行審核。
[0082]具體的,當網際網路產品的測試環境需要利用資料庫時,第一用戶通過web方式將申請單提供給交互單元,該申請單中攜帶有資料庫的申請信息;所述第一用戶指的是產品線的測試人員。
[0083]交互單元接收第一用戶提交的資料庫的申請信息,將該申請信息的查看連結通過郵件發送給第二用戶,該第二用戶指的是資料庫管理員;交互單元同時將該申請信息保存到存儲單元。
[0084]所述申請單中資料庫的申請信息包括以下內容:資料庫版本、產品線名稱、測試類型、資料庫的使用時間、資料庫的拓撲結構、磁碟類型、資料庫列表、預估數據量和字符集等;其中,所述產品線名稱指的是需要資料庫的測試環境的產品線,所述測試類型包括功能測試和性能測試,資料庫的使用時間指的是資料庫搭建在機器上的時間,如果使用時間到時,則將機器資源回收,而不是一直將機器用於產品線的測試;資料庫列表中攜帶需要在機器上搭建的資料庫實例,如資料庫A、資料庫B和資料庫C,所述字符集指的是資料庫中允許出現的字符。
[0085]步驟202,資料庫的申請信息通過審核後,機器分配單元依據申請信息在機器資源池中選擇用於搭建資料庫的機器,將選出機器的主機名和埠號發送給資料庫搭建單元。
[0086]具體的,第二用戶在收到郵件後,直接點擊郵件中申請信息的查看連結來查看申請信息,並對申請信息進行審核;主要依據申請信息中的測試類型、資料庫的拓撲結構、預估數據量判斷申請信息是否通過審核,對於功能測試或性能測試,申請的資料庫實例的個數和預估數據量都不能超過預設的最大值,該最大值是可配的,如果資料庫實例或預估數據量超過預設的最大值,則審核不通過,反之,則審核通過;還可以依據測試數據來源提供的FTP地址或主資料庫的IP和埠是否合法判斷申請信息是否通過審核,如果不合法,則審核不通過,反之,審核通過。
[0087]如果申請信息審核不通過,第二用戶觸發第一按鈕,機器分配單元收到第一按鈕的觸發消息,則確定依據當前的申請信息不能搭建資料庫,因此不需要選擇機器,通過交互單元將申請信息審核失敗的消息返回給第一用戶,結束當前流程,第一用戶在收到申請信息審核失敗的消息後,還可以對申請信息進行修改,重新提交申請信息。如果申請信息審核通過,第二用戶觸發第二按鈕,機器分配單元收到第二按鈕的觸發消息,則確定依據當前的申請信息可以搭建資料庫,因此需要為資料庫選擇搭建的機器,則機器分配單元觸發自身的機器分配流程,機器分配單元從存儲單元獲取資料庫的申請信息,然後依據資料庫的申請信息在機器資源池中的一個以上機器中,選擇合適的機器來搭建資料庫,機器分配單元將選出機器的主機名和埠號發送給資料庫搭建單元;本優選實施例中,由於一個資料庫實例需要部署在一個機器上,因此機器分配單元選出的機器的個數等於申請信息中資料庫實例的個數,一個以上資料庫實例組成資料庫集群,資料庫集群中將存在主資料庫和從資料庫,機器分配單元發送給資料庫搭建單元的機器的主機名和埠號中,默認第一個機器的主機名和埠號為建立主資料庫的機器。
[0088]步驟203,資料庫搭建單元依據選出機器的主機名和埠號,將資料庫安裝包、申請信息和安裝命令發送給對應的機器,機器運行資料庫安裝包,依據申請信息安裝資料庫。
[0089]具體的,資料庫搭建單元在收到機器分配單元提供的機器的主機名和埠號之後,首先依據埠號將預先設置的資料庫安裝包發送給對應的機器;然後,資料庫搭建單元從存儲單元中獲取申請信息,將該申請信息轉化成編譯參數,將該編譯參數通過編譯命令發送給選出的機器,所述編譯指令可以利用configure命令;接著,資料庫搭建單元向機器發送安裝命令,用於指示機器進行資料庫的安裝操作;安裝命令可以利用make&makeinstall 命令。
[0090]機器從資料庫搭建單元收到安裝包、控制命令(編譯命令和安裝命令)後,在本地運行資料庫安裝包,依據申請信息中對安裝的資料庫的相關要求,如資料庫的拓撲結構、資料庫版本等,完成資料庫的自動安裝;安裝完成後,機器向資料庫搭建單元返回安裝成功的消息。
[0091]如果在兩個以上機器搭建資料庫,資料庫搭建單元在收到機器安裝成功的消息後,向資料庫集群中的從資料庫發送主從同步命令,用於指示從資料庫與主資料庫建立同步關係,其中,主從同步命令中攜帶主資料庫所在機器的主機名和埠號;所述主從同步命令可以利用change master命令;收到主從同步命令後,從資料庫依據主機名和埠號,與主資料庫建立同步關係,同步關係建立完成後,從資料庫就可以從主資料庫實時複製數據,至此,機器上資料庫就搭建完畢;優選的,資料庫搭建單元還可以向機器發送監控安裝包,機器運行該監控安裝包後,就自動安裝同步監控程序,用來監控資料庫的同步狀態,如果同步狀態出現異常,安裝同步程序可以自動恢復同步;其中,從資料庫與主資料庫建立同步關係的方法為:從資料庫依據主資料庫的當前日誌位置,將自身的同步點設置為主資料庫的當前日誌位置,這樣以後主資料庫有新數據時,主資料庫的日誌位置就會更新,從資料庫就會從更新後的日誌位置獲取數據;其中,主資料庫的當前日誌位置都是默認的,依據資料庫版本不同會不一樣,例如,5.0版本的資料庫的當前日誌位置是98,5.1版本的資料庫的當前日誌位置是106,可以在從資料庫中進行設置;資料庫搭建單元向數據同步單元發送通知消息,用於告知數據同步單元進行測試數據的同步操作。
[0092]步驟204,數據同步單元將線上實際數據同步到機器上搭建的資料庫。[0093]具體的,在機器上搭建資料庫完畢後,需要進行測試數據的準備工作,本優選實施例中,測試數據為線上實際數據,因此,數據同步單元需要將線上實際數據同步到搭建的資料庫集群的主資料庫中。
[0094]本優選實施例中,數據同步單元將線上實際數據同步到搭建的資料庫集群的主資料庫中的方法包括以下兩種:
[0095]第一種方法是數據同步單元定時的從線上資料庫下載包含線上實際數據的備份文件,然後將下載的備份文件拷貝到主資料庫中,主資料庫將備份文件自動還原恢復成線上實際數據,如此,主資料庫就獲得了線上實際數據;由於從資料庫與主資料庫已經建立主從同步關係,且主資料庫獲得線上實際數據後,主資料庫的日誌位置發生更新,因此從資料庫就會從主資料庫中更新後的日誌位置獲得線上實際數據,從而實現將線上資料庫中存儲的線上實際數據同步到資料庫集群中的主資料庫和從資料庫,資料庫集群中每個資料庫都可以獲得線上實際數據。
[0096]第二種方法是數據同步單元在線上資料庫集群中的備份資料庫下掛載一個線下的從資料庫,這個掛載的從資料庫就是資料庫集群中的主資料庫,如此,備份資料庫就與資料庫集群中的主資料庫存在主從同步關係;其中,在線上資料庫集群中的備份資料庫下掛載一個線下的從資料庫的方法為:數據同步單元依據線上資料庫集群中的備份資料庫的當前日誌位置,將資料庫集群中的主資料庫的同步點設置為該備份資料庫的當前日誌位置,備份資料庫中用於保存線上實際數據;如此,備份資料庫有新數據時,備份資料庫的日誌位置就會更新,主資料庫就會從備份資料庫中更新後的日誌位置獲取線上實際數據。
[0097]可選的,該方法還可以包括步驟205和步驟206:
[0098]步驟205,採集控制單元將監控腳本發送給機器,機器運行監控腳本採集服務狀態數據並保存到存儲單兀。
[0099]具體的,所有測試環境都部署完成並投入測試使用後,如圖3所示,採集控制單元將預設的監控腳本發送給部署有資料庫的機器,監控腳本中預先配置需要採集的服務狀態數據、採集周期、採集服務狀態數據時調用的命令。
[0100]機器收到監控腳本後,運行該監控腳本,監控腳本依據需要採集的服務狀態數據和採集周期,調用相應的命令進行服務狀態數據的採集,然後將採集的服務狀態數據提供給存儲單元進行存儲。例如,監控腳本調用df命令獲取機器的磁碟利用率。
[0101]其中,服務狀態數據包括資料庫使用情況數據、產品線使用情況數據和機器監控數據,其中,監控腳本需要每天採集一次資料庫使用情況數據,所述資料庫使用情況數據包括:每天的連接數、讀請求數、寫請求數、主從資料庫延遲時長、主從資料庫同步情況等;監控腳本需要每個月採集一次產品線使用情況數據,所述產品線使用情況數據包括:每個月的數據量、實例數、資料庫個數等;監控腳本需要每天定時採集一次機器監控數據,例如,採集周期可以是10S,監控腳本每隔IOs就需要採集一次機器監控數據;所述機器監控數據包括:磁碟利用率、CPU利用率、輸入輸出(1/0,Input/Output)、內存使用率、部署的資料庫實例的個數等。
[0102]步驟206,服務監控單元依據存儲單元中的服務狀態數據,進行狀態異常報警、測試結果顯示和故障恢復操作。
[0103]具體的,如圖3所示,服務監控單元對存儲單元中的服務狀態數據進行監控,當依據預設的報警策略判斷出機器監控數據出現異常時,向第一用戶發送報警郵件,報警郵件中攜帶出現異常的機器監控數據,以便第一用戶可以及時獲知出現的異常,還可以及時對異常進行處理;例如,報警策略可以是CPU利用率大於CPU利用率的閾值時進行報警、磁碟利用率大於磁碟利用率的閾值時進行報警等,當CPU利用率大於閾值時,服務監控單元就向第一用戶報警,報警郵件中攜帶CPU利用率以及CPU利用率的閾值。
[0104]服務監控單元在判斷出機器監控數據出現異常後,還可以調用預設的agent工具對異常進行自動故障恢復操作,如啟動服務、建立主從同步等。
[0105]服務監控單元將測試結果顯示給第一用戶,測試結果包括監控腳本採集的資料庫使用情況數據和產品線使用情況數據;對於資料庫使用情況數據,服務監控單元依據存儲單元中的資料庫使用情況數據,對資料庫使用情況數據進行按月份統計,利用一個月內的資料庫使用情況數據對預設的highcharts展示模板進行渲染,生成測試結果頁面;對於產品線使用情況數據,服務監控單元依據存儲單元中的產品線使用情況數據,對產品線使用情況數據進行按天統計,利用一天內的產品線使用情況數據對預設的highcharts展示模板進行渲染,生成測試結果頁面;最後,服務監控單元將生成的測試結果頁面發送給交互單元進行顯示,第一用戶就可以查看到測試結果。
[0106]圖4是本發明中依據申請信息在機器資源池中選擇用於搭建資料庫的機器的具體實現方法的流程示意圖,如圖4所示,該方法包括以下步驟:
[0107]步驟401,從存儲單元讀取監控腳本採集的機器資源池中機器的機器監控數據,如機器的磁碟剩餘量、CPU利用率和部署的資料庫實例的個數;依據機器上部署的資料庫實例的個數由小到大的順序對機器進行排序。
[0108]步驟402,從存儲單元中獲取資料庫的申請信息,判斷申請信息中測試類型是功能測試還是性能測試,如果是功能測試,執行步驟403,如果是性能測試,執行步驟404。
[0109]步驟403,對排序後的機器進行遍歷,依據預設的機器資源池中每個機器的主機名,從機器資源池中選出物理機和虛擬機,其中,虛擬機的主機名是以vm.baidu.com為後綴,物理機的主機名是以baidu.com為後綴,因此依據主機名可以判斷出機器是虛擬機還是物理機。
[0110]步驟404,對排序後的機器進行遍歷,依據預設的機器資源池中每個機器的主機名,從機器資源池中選出物理機。
[0111]步驟405,對選出的機器進行遍歷,計算遍歷到的機器的磁碟剩餘量與申請信息中預估數據量的差值。
[0112]步驟406,判斷磁碟剩餘量與預估數據量之間的差值與預設的數據量閾值的大小,如果該差值大於數據量閾值,執行步驟407,如果該差值小於或等於數據量閾值,執行步驟412。
[0113]步驟407,判斷遍歷到的機器的CPU利用率與預設的利用率閾值的大小,如果機器的CPU利用率大於利用率閾值,執行步驟408,如果機器的CPU利用率小於或等於利用率閾值,執行步驟412。
[0114]步驟408,將遍歷到的機器的主機名和埠添加到可選機器列表中,並判斷對選出的機器是否遍歷完畢,如果遍歷完畢,執行步驟409,如果沒有遍歷完畢,則繼續遍歷選出的機器,執行步驟405。[0115]步驟409,判斷可選機器列表中機器的個數與申請信息中資料庫列表中的資料庫實例個數的大小,如果機器的個數大於或等於資料庫實例個數,執行步驟410,如果機器的個數小於資料庫實例個數,執行步驟412。
[0116]步驟410,判斷可選機器列表中機器的埠號一致的機器的個數與資料庫實例個數的大小,如果機器的個數大於或等於資料庫實例個數,則執行步驟411,如果機器的個數小於資料庫實例的個數,執行步驟412。
[0117]步驟411,在可選機器列表中埠號一致的機器中選出與資料庫實例個數對應數量的機器,將選出的機器的主機名和埠號發送給資料庫搭建單元。
[0118]步驟412,向交互單元返回機器分配失敗的消息。
[0119]為實現上述方法,如圖1所示,測試環境中資料庫的運維系統中:
[0120]交互單元10,用於將用戶提交的資料庫的申請信息保存到存儲單元11 ;
[0121]機器分配單元12,用於依據所述申請信息在機器資源池中選擇機器,將選出機器的主機名和埠號發送給資料庫搭建單元13 ;
[0122]資料庫搭建單元13,用於依據選出機器的主機名和埠號,將資料庫安裝包、申請信息和安裝命令發送給對應的機器,機器運行資料庫安裝包,依據申請信息安裝資料庫;
[0123]數據同步單元14,用於將線上實際數據同步到機器上搭建的資料庫。
[0124]其中,所述資料庫的申請信息包括如下信息:資料庫版本、產品線名稱、測試類型、資料庫的使用時間、資料庫的拓撲結構、磁碟類型、資料庫列表、預估數據量和字符集。
[0125]其中,所述機器分配單元12在依據所述申請信息在機器資源池中選擇機器時,具體包括:從存儲單元獲取資料庫的申請信息和預設的機器資源池中機器的機器監控數據;依據申請信息中測試類型在機器資源池中選出虛擬機、或虛擬機和物理機;對選出的機器進行遍歷,將磁碟剩餘量大於申請信息中預估數據量且CPU利用率大於預設的利用率閾值的機器的主機名和埠號添加到可選機器列表,直到機器遍歷完畢;當可選機器列表中埠號一致的機器的個數大於或等於申請信息中資料庫列表中的資料庫實例個數時,在可選機器列表中埠號一致的機器中選出與資料庫實例個數對應數量的機器。
[0126]其中,所述資料庫搭建單元13在將資料庫安裝包、申請信息和安裝命令發送給對應的機器時,具體包括:先後將預先設置的資料庫安裝包、攜帶編譯參數的編譯命令和安裝命令發送給對應的機器;所述編譯參數依據從存儲單元中獲取的申請信息生成。
[0127]其中,所述機器運行資料庫安裝包,依據申請信息安裝資料庫具體包括:機器在本地運行資料庫安裝包,依據申請信息中對資料庫的相關要求,完成資料庫安裝,並向資料庫搭建單元返回安裝成功的消息。
[0128]其中,所述資料庫搭建單元13,還用於當安裝的資料庫數量為兩個以上時,向兩個以上資料庫中的從資料庫發送主從同步命令,所述主從同步命令中攜帶主資料庫所在機器的主機名和埠號;所述從資料庫將自身的同步點設置為主資料庫的當前日誌位置。
[0129]其中,所述數據同步單元14在將線上實際數據同步到機器上搭建的資料庫時,具體包括:定時的從線上資料庫下載包含線上實際數據的備份文件,將所述備份文件拷貝到資料庫中,資料庫將備份文件還原恢復成線上實際數據。
[0130]或,所述數據同步單元14在將線上實際數據同步到機器上搭建的資料庫時,具體包括:在線上資料庫集群中的備份資料庫下掛載資料庫,所述備份資料庫的日誌位置更新時,所述資料庫從備份資料庫中更新後的日誌位置獲取線上實際數據。
[0131]該系統還包括:
[0132]採集控制單元15,用於將監控腳本發送給機器,機器運行監控腳本採集服務狀態數據並保存到存儲單兀11 ;
[0133]服務監控單元16,用於依據存儲單元11中的服務狀態數據,進行狀態異常報警、測試結果顯示和故障恢復操作。
[0134]其中,所述監控腳本中配置有需要採集的服務狀態數據、採集周期、採集服務狀態數據時調用的命令;所述服務狀態數據包括資料庫使用情況數據、產品線使用情況數據和機器監控數據。
[0135]其中,所述服務監控單元16在進行狀態異常報警時,具體包括:對存儲單元中的服務狀態數據進行監控,當依據預設的報警策略判斷出機器監控數據出現異常時,向用戶發送報警郵件,報警郵件中攜帶出現異常的機器監控數據。
[0136]其中,所述服務監控單元16在進行測試結果顯示時,具體包括:利用存儲單元中一個月內的資料庫使用情況數據或一天內的產品線使用情況數據,對預設的展示模板進行渲染,生成測試結果頁面,將生成的測試結果頁面發送給交互單元進行顯示。
[0137]本發明的上述技術方案中,對所有產品線的測試環境中的資料庫進行統一自動部署和運維,只需要測試人員配置資料庫的申請信息即可,不再需要測試人員進行人工部署資料庫,而是依據機器的負載情況自動分配機器並自動部署資料庫,節省人力物力資源,從而提高測試環境中資料庫的部署效率,能夠加快測試進度,縮短測試周期,提高機器的利用率;資料庫集群中的測試數據實時與線上資料庫進行同步,利用線上實際數據進行測試,因而能夠提高網際網路產品線的性能測試結果的可信度;能夠將服務異常情況及時向資料庫管理員進行報警,避免測試人員在使用時才發現問題對測試進度的影響。
[0138]以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的範圍之內。
【權利要求】
1.一種測試環境中資料庫的運維系統,其特徵在於,該系統包括:交互單元、機器分配單元、資料庫搭建單元、數據同步單元、存儲單元;其中, 交互單元,用於將用戶提交 的資料庫的申請信息保存到存儲單元; 機器分配單元,用於依據所述申請信息在機器資源池中選擇機器,將選出機器的主機名和埠號發送給資料庫搭建單元; 資料庫搭建單元,用於依據選出機器的主機名和埠號,將資料庫安裝包、申請信息和安裝命令發送給對應的機器,機器運行資料庫安裝包,依據申請信息安裝資料庫; 數據同步單元,用於將線上實際數據同步到機器上搭建的資料庫。
2.根據權利要求1所述的系統,其特徵在於,所述資料庫的申請信息包括如下信息:資料庫版本、產品線名稱、測試類型、資料庫的使用時間、資料庫的拓撲結構、磁碟類型、資料庫列表、預估數據量和字符集。
3.根據權利要求1所述的系統,其特徵在於,所述機器分配單元在依據所述申請信息在機器資源池中選擇機器時,具體包括: 從存儲單元獲取資料庫的申請信息和預設的機器資源池中機器的機器監控數據; 依據申請信息中測試類型在機器資源池中選出虛擬機、或虛擬機和物理機; 對選出的機器進行遍歷,將磁碟剩餘量大於申請信息中預估數據量且CPU利用率大於預設的利用率閾值的機器的主機名和埠號添加到可選機器列表,直到機器遍歷完畢; 當可選機器列表中埠號一致的機器的個數大於或等於申請信息中資料庫列表中的資料庫實例個數時,在可選機器列表中埠號一致的機器中選出與資料庫實例個數對應數量的機器。
4.根據權利要求1所述的系統,其特徵在於,所述資料庫搭建單元在將資料庫安裝包、申請信息和安裝命令發送給對應的機器時,具體包括: 先後將預先設置的資料庫安裝包、攜帶編譯參數的編譯命令和安裝命令發送給對應的機器;所述編譯參數依據從存儲單元中獲取的申請信息生成。
5.根據權利要求1所述的系統,其特徵在於,所述機器運行資料庫安裝包,依據申請信息安裝資料庫具體包括: 機器在本地運行資料庫安裝包,依據申請信息中對資料庫的相關要求,完成資料庫安裝,並向資料庫搭建單元返回安裝成功的消息。
6.根據權利要求1所述的系統,其特徵在於, 所述資料庫搭建單元,還用於當安裝的資料庫數量為兩個以上時,向兩個以上資料庫中的從資料庫發送主從同步命令,所述主從同步命令中攜帶主資料庫所在機器的主機名和埠號;所述從資料庫將自身的同步點設置為主資料庫的當前日誌位置。
7.根據權利要求1所述的系統,其特徵在於,所述數據同步單元在將線上實際數據同步到機器上搭建的資料庫時,具體包括: 定時的從線上資料庫下載包含線上實際數據的備份文件,將所述備份文件拷貝到資料庫中,資料庫將備份文件還原恢復成線上實際數據。
8.根據權利要求1所述的系統,其特徵在於,所述數據同步單元在將線上實際數據同步到機器上搭建的資料庫時,具體包括: 在線上資料庫集群中的備份資料庫下掛載資料庫,所述備份資料庫的日誌位置更新時,所述資料庫從備份資料庫中更新後的日誌位置獲取線上實際數據。
9.根據權利要求1所述的系統,其特徵在於,該系統還包括: 採集控制單元,用於將監控腳本發送給機器,機器運行監控腳本採集服務狀態數據並保存到存儲單元; 服務監控單元,用於依據存儲單元中的服務狀態數據,進行狀態異常報警、測試結果顯示和故障恢復操作。
10.根據權利要求9所述的系統,其特徵在於, 所述監控腳本中配置有需要採集的服務狀態數據、採集周期、採集服務狀態數據時調用的命令; 所述服務狀態數據包括資料庫使用情況數據、產品線使用情況數據和機器監控數據。
11.根據權利要求10所述的系統,其特徵在於,所述服務監控單元在進行狀態異常報警時,具體包括: 對存儲單元中的服務狀態數據進行監控,當依據預設的報警策略判斷出機器監控數據出現異常時,向用戶發送報警郵件,報警郵件中攜帶出現異常的機器監控數據。
12.根據權利要求10所述的系統,其特徵在於,所述服務監控單元在進行測試結果顯示時,具體包括: 利用存儲單元中一個月內的資料庫使用情況數據或一天內的產品線使用情況數據,對預設的展示模板進行渲染,生成測試結果頁面,將生成的測試結果頁面發送給交互單元進行顯示。
13.—種測試環境中資料庫的運維方法,其特徵在於,該方法包括: 交互單元將用戶提交的資料庫的申請信息保存到存儲單元; 機器分配單元依據所述申請信息在機器資源池中選擇機器,將選出機器的主機名和埠號發送給資料庫搭建單元; 資料庫搭建單元依據選出機器的主機名和埠號,將資料庫安裝包、申請信息和安裝命令發送給對應的機器,機器運行資料庫安裝包,依據申請信息安裝資料庫; 數據同步單元將線上實際數據同步到機器上搭建的資料庫。
14.根據權利要求13所述的方法,其特徵在於,所述資料庫的申請信息包括如下信息:資料庫版本、產品線名稱、測試類型、資料庫的使用時間、資料庫的拓撲結構、磁碟類型、資料庫列表、預估數據量和字符集。
15.根據權利要求13所述的方法,其特徵在於,所述機器分配單元依據所述申請信息在機器資源池中選擇機器具體包括: 從存儲單元獲取資料庫的申請信息和預設的機器資源池中機器的機器監控數據; 依據申請信息中測試類型在機器資源池中選出虛擬機、或虛擬機和物理機; 對選出的機器進行遍歷,將磁碟剩餘量大於申請信息中預估數據量且CPU利用率大於預設的利用率閾值的機器的主機名和埠號添加到可選機器列表,直到機器遍歷完畢; 當可選機器列表中埠號一致的機器的個數大於或等於申請信息中資料庫列表中的資料庫實例個數時,在可選機器列表中埠號一致的機器中選出與資料庫實例個數對應數量的機器。
16.根據權利要求13所述的方法,其特徵在於,所述將資料庫安裝包、申請信息和安裝命令發送給對應的機器具體包括: 先後將預先設置的資料庫安裝包、攜帶編譯參數的編譯命令和安裝命令發送給對應的機器;所述編譯參數依據從存儲單元中獲取的申請信息生成。
17.根據權利要求13所述的方法,其特徵在於,所述機器運行資料庫安裝包,依據申請信息安裝資料庫具體包括: 機器在本地運行資料庫安裝包,依據申請信息中對資料庫的相關要求,完成資料庫安裝,並向資料庫搭建單元返回安裝成功的消息。
18.根據權利要求13所述的方法,其特徵在於,該方法還包括: 當安裝的資料庫數量為兩個以上時,資料庫搭建單元向兩個以上資料庫中的從資料庫發送主從同步命令,所述主從同步命令中攜帶主資料庫所在機器的主機名和埠號; 所述從資料庫將自身的同步點設置為主資料庫的當前日誌位置。
19.根據權利要求13所述的方法,其特徵在於,所述數據同步單元將線上實際數據同步到機器上搭建的資料庫具體包括: 數據同步單元定時的從線上資料庫下載包含線上實際數據的備份文件,將所述備份文件拷貝到資料庫中,資料庫將備份文件還原恢復成線上實際數據。
20.根據權利要求13所述的方法,其特徵在於,所述數據同步單元將線上實際數據同步到機器上搭建的資料庫具體包括: 數據同步單元在線上資料庫集群中的備份資料庫下掛載資料庫,所述備份資料庫的日誌位置更新時,所述資料庫從備份資料庫中更新後的日誌位置獲取線上實際數據。
21.根據權利要求13所述的方法,其特徵在於,該方法還包括: 採集控制單元將監控腳本發送給機器,機器運行監控腳本採集服務狀態數據並保存到存儲單兀; 服務監控單元依據存儲單元中的服務狀態數據,進行狀態異常報警、測試結果顯示和故障恢復操作。
22.根據權利要求21所述的方法,其特徵在於, 所述監控腳本中配置有需要採集的服務狀態數據、採集周期、採集服務狀態數據時調用的命令; 所述服務狀態數據包括資料庫使用情況數據、產品線使用情況數據和機器監控數據。
23.根據權利要求22所述的方法,其特徵在於,所述服務監控單元進行狀態異常報警具體包括: 對存儲單元中的服務狀態數據進行監控,當依據預設的報警策略判斷出機器監控數據出現異常時,向用戶發送報警郵件,報警郵件中攜帶出現異常的機器監控數據。
24.根據權利要求22所述的方法,其特徵在於,所述服務監控單元進行測試結果顯示具體包括: 服務監控單元利用存儲單元中一個月內的資料庫使用情況數據或一天內的產品線使用情況數據,對預設的展示模板進行渲染,生成測試結果頁面,將生成的測試結果頁面發送給交互單元進行顯示。
【文檔編號】G06F17/30GK103902542SQ201210570421
【公開日】2014年7月2日 申請日期:2012年12月25日 優先權日:2012年12月25日
【發明者】餘邵在, 丁超, 陶仕敏 申請人:百度在線網絡技術(北京)有限公司