国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種測試環(huán)境中數(shù)據(jù)庫的運維方法及系統(tǒng)的制作方法

      文檔序號:6493587閱讀:263來源:國知局
      一種測試環(huán)境中數(shù)據(jù)庫的運維方法及系統(tǒng)的制作方法
      【專利摘要】本發(fā)明提供了一種測試環(huán)境中數(shù)據(jù)庫的運維方法及系統(tǒng),該方法包括:交互單元將用戶提交的數(shù)據(jù)庫的申請信息保存到存儲單元;機器分配單元依據(jù)所述申請信息在機器資源池中選擇機器,將選出機器的主機名和端口號發(fā)送給數(shù)據(jù)庫搭建單元;數(shù)據(jù)庫搭建單元依據(jù)選出機器的主機名和端口號,將數(shù)據(jù)庫安裝包、申請信息和安裝命令發(fā)送給對應(yīng)的機器,機器運行數(shù)據(jù)庫安裝包,依據(jù)申請信息安裝數(shù)據(jù)庫;數(shù)據(jù)同步單元將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫。根據(jù)本發(fā)明提供的技術(shù)方案,能夠高效自動進行測試環(huán)境中數(shù)據(jù)庫的部署。
      【專利說明】一種測試環(huán)境中數(shù)據(jù)庫的運維方法及系統(tǒng)
      【【技術(shù)領(lǐng)域】】
      [0001]本發(fā)明涉及互聯(lián)網(wǎng)應(yīng)用的測試技術(shù),尤其涉及一種測試環(huán)境中數(shù)據(jù)庫的運維方法及系統(tǒng)。
      【【背景技術(shù)】】
      [0002]目前的互聯(lián)網(wǎng)產(chǎn)品都會使用數(shù)據(jù)庫作為數(shù)據(jù)持久化存儲設(shè)備,測試人員在進行互聯(lián)網(wǎng)產(chǎn)品的測試時,除了需要部署測試用例的代碼,還需要部署測試環(huán)境中的數(shù)據(jù)庫;在進行測試環(huán)境的維護時,也需要同時對數(shù)據(jù)庫進行運營維護。測試環(huán)境中數(shù)據(jù)庫的運維操作主要包括:選擇合適的機器、在選出的機器上搭建數(shù)據(jù)庫、在數(shù)據(jù)庫中準備測試數(shù)據(jù)、從數(shù)據(jù)庫收集測試結(jié)果以及處理數(shù)據(jù)庫出現(xiàn)的問題等。
      [0003]目前,互聯(lián)網(wǎng)產(chǎn)品的測試中,測試環(huán)境中數(shù)據(jù)庫的運維方法存在以下缺陷:
      [0004]1、每個互聯(lián)網(wǎng)產(chǎn)品的測試人員都需要在機器上手動部署數(shù)據(jù)庫,往往使得一個機器上只部署了一個測試用例,如果測試用例的訪問量很少,就大大降低了機器的利用率。
      [0005]2、測試人員在搭建測試環(huán)境中的數(shù)據(jù)庫時,如果操作不熟練或數(shù)據(jù)庫集群拓撲結(jié)構(gòu)復(fù)雜,都花費大量時間;當(dāng)數(shù)據(jù)庫出現(xiàn)異常時,如果測試人員對數(shù)據(jù)庫技術(shù)不是非常了解,就需要求助數(shù)據(jù)庫管理員進行解決,因而溝通成本較高,如果使用線上數(shù)據(jù)作為測試數(shù)據(jù),還需要執(zhí)行拷貝數(shù)據(jù)的審批流程,又需要花費較多時間;因此部署測試環(huán)境中的數(shù)據(jù)庫效率很低,浪費較多人力物力。
      [0006]3、在進行互聯(lián)網(wǎng)產(chǎn)品的性能測試時,需要模擬線上的實際環(huán)境,這樣測試結(jié)果可靠性才比較高,但是測試人員部署的機器數(shù)量很難與線上的實際環(huán)境一致,而且所搭建的數(shù)據(jù)庫集群的拓撲結(jié)構(gòu)也很簡單,從而導(dǎo)致互聯(lián)網(wǎng)產(chǎn)品的性能測試結(jié)果的可信度較低。

      【發(fā)明內(nèi)容】

      [0007]本發(fā)明提供了一種測試環(huán)境中數(shù)據(jù)庫的運維方法及系統(tǒng),能夠高效自動進行測試環(huán)境中數(shù)據(jù)庫的部署。
      [0008]本發(fā)明的具體技術(shù)方案如下:
      [0009]根據(jù)本發(fā)明一優(yōu)選實施例,一種測試環(huán)境中數(shù)據(jù)庫的運維系統(tǒng),包括:交互單元、機器分配單元、數(shù)據(jù)庫搭建單元、數(shù)據(jù)同步單元、存儲單元;其中,
      [0010]交互單元,用于將用戶提交的數(shù)據(jù)庫的申請信息保存到存儲單元;
      [0011]機器分配單元,用于依據(jù)所述申請信息在機器資源池中選擇機器,將選出機器的主機名和端口號發(fā)送給數(shù)據(jù)庫搭建單元;
      [0012]數(shù)據(jù)庫搭建單元,用于依據(jù)選出機器的主機名和端口號,將數(shù)據(jù)庫安裝包、申請信息和安裝命令發(fā)送給對應(yīng)的機器,機器運行數(shù)據(jù)庫安裝包,依據(jù)申請信息安裝數(shù)據(jù)庫;
      [0013]數(shù)據(jù)同步單元,用于將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫。
      [0014]上述系統(tǒng)中,所述數(shù)據(jù)庫的申請信息包括如下信息:數(shù)據(jù)庫版本、產(chǎn)品線名稱、測試類型、數(shù)據(jù)庫的使用時間、數(shù)據(jù)庫的拓撲結(jié)構(gòu)、磁盤類型、數(shù)據(jù)庫列表、預(yù)估數(shù)據(jù)量和字符集。
      [0015]上述系統(tǒng)中,所述機器分配單元在依據(jù)所述申請信息在機器資源池中選擇機器時,具體包括:
      [0016]從存儲單元獲取數(shù)據(jù)庫的申請信息和預(yù)設(shè)的機器資源池中機器的機器監(jiān)控數(shù)據(jù);
      [0017]依據(jù)申請信息中測試類型在機器資源池中選出虛擬機、或虛擬機和物理機;
      [0018]對選出的機器進行遍歷,將磁盤剩余量大于申請信息中預(yù)估數(shù)據(jù)量且CPU利用率大于預(yù)設(shè)的利用率閾值的機器的主機名和端口號添加到可選機器列表,直到機器遍歷完畢;
      [0019]當(dāng)可選機器列表中端口號一致的機器的個數(shù)大于或等于申請信息中數(shù)據(jù)庫列表中的數(shù)據(jù)庫實例個數(shù)時,在可選機器列表中端口號一致的機器中選出與數(shù)據(jù)庫實例個數(shù)對應(yīng)數(shù)量的機器。
      [0020]上述系統(tǒng)中,所述數(shù)據(jù)庫搭建單元在將數(shù)據(jù)庫安裝包、申請信息和安裝命令發(fā)送給對應(yīng)的機器時,具體包括:
      [0021]先后將預(yù)先設(shè)置的數(shù)據(jù)庫安裝包、攜帶編譯參數(shù)的編譯命令和安裝命令發(fā)送給對應(yīng)的機器;所述編譯參數(shù)依據(jù)從存儲單元中獲取的申請信息生成。
      [0022]上述系統(tǒng)中,所述機器運行數(shù)據(jù)庫安裝包,依據(jù)申請信息安裝數(shù)據(jù)庫具體包括:
      [0023]機器在本地運行數(shù)據(jù)庫安裝包,依據(jù)申請信息中對數(shù)據(jù)庫的相關(guān)要求,完成數(shù)據(jù)庫安裝,并向數(shù)據(jù)庫搭建單元返回安裝成功的消息。
      [0024]上述系統(tǒng)中,
      [0025]所述數(shù)據(jù)庫搭建單元,還用于當(dāng)安裝的數(shù)據(jù)庫數(shù)量為兩個以上時,向兩個以上數(shù)據(jù)庫中的從數(shù)據(jù)庫發(fā)送主從同步命令,所述主從同步命令中攜帶主數(shù)據(jù)庫所在機器的主機名和端口號;所述從數(shù)據(jù)庫將自身的同步點設(shè)置為主數(shù)據(jù)庫的當(dāng)前日志位置。
      [0026]上述系統(tǒng)中,所述數(shù)據(jù)同步單元在將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫時,具體包括:
      [0027]定時的從線上數(shù)據(jù)庫下載包含線上實際數(shù)據(jù)的備份文件,將所述備份文件拷貝到數(shù)據(jù)庫中,數(shù)據(jù)庫將備份文件還原恢復(fù)成線上實際數(shù)據(jù)。
      [0028]上述系統(tǒng)中,所述數(shù)據(jù)同步單元在將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫時,具體包括:
      [0029]在線上數(shù)據(jù)庫集群中的備份數(shù)據(jù)庫下掛載數(shù)據(jù)庫,所述備份數(shù)據(jù)庫的日志位置更新時,所述數(shù)據(jù)庫從備份數(shù)據(jù)庫中更新后的日志位置獲取線上實際數(shù)據(jù)。
      [0030]上述系統(tǒng)中,該系統(tǒng)還包括:
      [0031]采集控制單元,用于將監(jiān)控腳本發(fā)送給機器,機器運行監(jiān)控腳本采集服務(wù)狀態(tài)數(shù)據(jù)并保存到存儲單兀;
      [0032]服務(wù)監(jiān)控單元,用于依據(jù)存儲單元中的服務(wù)狀態(tài)數(shù)據(jù),進行狀態(tài)異常報警、測試結(jié)果顯示和故障恢復(fù)操作。
      [0033]上述系統(tǒng)中,所述監(jiān)控腳本中配置有需要采集的服務(wù)狀態(tài)數(shù)據(jù)、采集周期、采集服務(wù)狀態(tài)數(shù)據(jù)時調(diào)用的命令;
      [0034]所述服務(wù)狀態(tài)數(shù)據(jù)包括數(shù)據(jù)庫使用情況數(shù)據(jù)、產(chǎn)品線使用情況數(shù)據(jù)和機器監(jiān)控數(shù)據(jù)。
      [0035]上述系統(tǒng)中,所述服務(wù)監(jiān)控單元在進行狀態(tài)異常報警時,具體包括:
      [0036]對存儲單元中的服務(wù)狀態(tài)數(shù)據(jù)進行監(jiān)控,當(dāng)依據(jù)預(yù)設(shè)的報警策略判斷出機器監(jiān)控數(shù)據(jù)出現(xiàn)異常時,向用戶發(fā)送報警郵件,報警郵件中攜帶出現(xiàn)異常的機器監(jiān)控數(shù)據(jù)。
      [0037]上述系統(tǒng)中,所述服務(wù)監(jiān)控單元在進行測試結(jié)果顯示時,具體包括:
      [0038]利用存儲單元中一個月內(nèi)的數(shù)據(jù)庫使用情況數(shù)據(jù)或一天內(nèi)的產(chǎn)品線使用情況數(shù)據(jù),對預(yù)設(shè)的展示模板進行渲染,生成測試結(jié)果頁面,將生成的測試結(jié)果頁面發(fā)送給交互單元進行顯示。
      [0039]一種測試環(huán)境中數(shù)據(jù)庫的運維方法,包括:
      [0040]交互單元將用戶提交的數(shù)據(jù)庫的申請信息保存到存儲單元;
      [0041]機器分配單元依據(jù)所述申請信息在機器資源池中選擇機器,將選出機器的主機名和端口號發(fā)送給數(shù)據(jù)庫搭建單元;
      [0042]數(shù)據(jù)庫搭建單元依據(jù)選出機器的主機名和端口號,將數(shù)據(jù)庫安裝包、申請信息和安裝命令發(fā)送給對應(yīng)的機器,機器運行數(shù)據(jù)庫安裝包,依據(jù)申請信息安裝數(shù)據(jù)庫;
      [0043]數(shù)據(jù)同步單元將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫。
      [0044]上述方法中,所述數(shù)據(jù)庫的申請信息包括如下信息:數(shù)據(jù)庫版本、產(chǎn)品線名稱、測試類型、數(shù)據(jù)庫的使用時間、數(shù)據(jù)庫的拓撲結(jié)構(gòu)、磁盤類型、數(shù)據(jù)庫列表、預(yù)估數(shù)據(jù)量和字符集。
      [0045]上述方法中,所述機器分配單元依據(jù)所述申請信息在機器資源池中選擇機器具體包括:
      [0046]從存儲單元獲取數(shù)據(jù)庫的申請信息和預(yù)設(shè)的機器資源池中機器的機器監(jiān)控數(shù)據(jù);
      [0047]依據(jù)申請信息中測試類型在機器資源池中選出虛擬機、或虛擬機和物理機;
      [0048]對選出的機器進行遍歷,將磁盤剩余量大于申請信息中預(yù)估數(shù)據(jù)量且CPU利用率大于預(yù)設(shè)的利用率閾值的機器的主機名和端口號添加到可選機器列表,直到機器遍歷完畢;
      [0049]當(dāng)可選機器列表中端口號一致的機器的個數(shù)大于或等于申請信息中數(shù)據(jù)庫列表中的數(shù)據(jù)庫實例個數(shù)時,在可選機器列表中端口號一致的機器中選出與數(shù)據(jù)庫實例個數(shù)對應(yīng)數(shù)量的機器。
      [0050]上述方法中,所述將數(shù)據(jù)庫安裝包、申請信息和安裝命令發(fā)送給對應(yīng)的機器具體包括:
      [0051]先后將預(yù)先設(shè)置的數(shù)據(jù)庫安裝包、攜帶編譯參數(shù)的編譯命令和安裝命令發(fā)送給對應(yīng)的機器;所述編譯參數(shù)依據(jù)從存儲單元中獲取的申請信息生成。
      [0052]上述方法中,所述機器運行數(shù)據(jù)庫安裝包,依據(jù)申請信息安裝數(shù)據(jù)庫具體包括:
      [0053]機器在本地運行數(shù)據(jù)庫安裝包,依據(jù)申請信息中對數(shù)據(jù)庫的相關(guān)要求,完成數(shù)據(jù)庫安裝,并向數(shù)據(jù)庫搭建單元返回安裝成功的消息。
      [0054]上述方法中,該方法還包括:
      [0055]當(dāng)安裝的數(shù)據(jù)庫數(shù)量為兩個以上時,數(shù)據(jù)庫搭建單元向兩個以上數(shù)據(jù)庫中的從數(shù)據(jù)庫發(fā)送主從同步命令,所述主從同步命令中攜帶主數(shù)據(jù)庫所在機器的主機名和端口號;[0056]所述從數(shù)據(jù)庫將自身的同步點設(shè)置為主數(shù)據(jù)庫的當(dāng)前日志位置。
      [0057]上述方法中,所述數(shù)據(jù)同步單元將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫具體包括:
      [0058]數(shù)據(jù)同步單元定時的從線上數(shù)據(jù)庫下載包含線上實際數(shù)據(jù)的備份文件,將所述備份文件拷貝到數(shù)據(jù)庫中,數(shù)據(jù)庫將備份文件還原恢復(fù)成線上實際數(shù)據(jù)。
      [0059]上述方法中,所述數(shù)據(jù)同步單元將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫具體包括:
      [0060]數(shù)據(jù)同步單元在線 上數(shù)據(jù)庫集群中的備份數(shù)據(jù)庫下掛載數(shù)據(jù)庫,所述備份數(shù)據(jù)庫的日志位置更新時,所述數(shù)據(jù)庫從備份數(shù)據(jù)庫中更新后的日志位置獲取線上實際數(shù)據(jù)。
      [0061]上述方法中,該方法還包括:
      [0062]采集控制單元將監(jiān)控腳本發(fā)送給機器,機器運行監(jiān)控腳本采集服務(wù)狀態(tài)數(shù)據(jù)并保存到存儲單元;
      [0063]服務(wù)監(jiān)控單元依據(jù)存儲單元中的服務(wù)狀態(tài)數(shù)據(jù),進行狀態(tài)異常報警、測試結(jié)果顯示和故障恢復(fù)操作。
      [0064]上述方法中,
      [0065]所述監(jiān)控腳本中配置有需要采集的服務(wù)狀態(tài)數(shù)據(jù)、采集周期、采集服務(wù)狀態(tài)數(shù)據(jù)時調(diào)用的命令;
      [0066]所述服務(wù)狀態(tài)數(shù)據(jù)包括數(shù)據(jù)庫使用情況數(shù)據(jù)、產(chǎn)品線使用情況數(shù)據(jù)和機器監(jiān)控數(shù)據(jù)。
      [0067]上述方法中,所述服務(wù)監(jiān)控單元進行狀態(tài)異常報警具體包括:
      [0068]對存儲單元中的服務(wù)狀態(tài)數(shù)據(jù)進行監(jiān)控,當(dāng)依據(jù)預(yù)設(shè)的報警策略判斷出機器監(jiān)控數(shù)據(jù)出現(xiàn)異常時,向用戶發(fā)送報警郵件,報警郵件中攜帶出現(xiàn)異常的機器監(jiān)控數(shù)據(jù)。
      [0069]上述方法中,所述服務(wù)監(jiān)控單元進行測試結(jié)果顯示具體包括:
      [0070]服務(wù)監(jiān)控單元利用存儲單元中一個月內(nèi)的數(shù)據(jù)庫使用情況數(shù)據(jù)或一天內(nèi)的產(chǎn)品線使用情況數(shù)據(jù),對預(yù)設(shè)的展示模板進行渲染,生成測試結(jié)果頁面,將生成的測試結(jié)果頁面發(fā)送給交互單元進行顯示。
      [0071]由以上技術(shù)方案可以看出,本發(fā)明提供的具有以下有益效果:
      [0072]對所有產(chǎn)品線的測試環(huán)境中的數(shù)據(jù)庫進行統(tǒng)一自動部署和運維,只需要測試人員配置數(shù)據(jù)庫的申請信息即可,節(jié)省人力物力資源,從而提高測試環(huán)境中數(shù)據(jù)庫的部署效率,能夠加快測試進度,縮短測試周期。
      【【專利附圖】

      【附圖說明】】
      [0073]圖1是本發(fā)明實現(xiàn)測試環(huán)境中數(shù)據(jù)庫的運維系統(tǒng)的優(yōu)選實施例的結(jié)構(gòu)示意圖;
      [0074]圖2是本發(fā)明實現(xiàn)測試環(huán)境中數(shù)據(jù)庫的運維方法的優(yōu)選實施例的流程示意圖;
      [0075]圖3是本發(fā)明實現(xiàn)數(shù)據(jù)采集和服務(wù)監(jiān)控的示例圖;
      [0076]圖4是本發(fā)明中依據(jù)申請信息在機器資源池中選擇用于搭建數(shù)據(jù)庫的機器的具體實現(xiàn)方法的流程示意圖。
      【【具體實施方式】】[0077]本發(fā)明的基本思想是:交互單元將用戶提交的數(shù)據(jù)庫的申請信息保存到存儲單元;機器分配單元依據(jù)所述申請信息在機器資源池中選擇機器,將選出機器的主機名和端口號發(fā)送給數(shù)據(jù)庫搭建單元;數(shù)據(jù)庫搭建單元依據(jù)選出機器的主機名和端口號,將數(shù)據(jù)庫安裝包、申請信息和安裝命令發(fā)送給對應(yīng)的機器,機器運行數(shù)據(jù)庫安裝包,依據(jù)申請信息安裝數(shù)據(jù)庫;數(shù)據(jù)同步單元將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫。
      [0078]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細描述。
      [0079]本發(fā)明提供一種測試環(huán)境中數(shù)據(jù)庫的運維系統(tǒng),圖1是本發(fā)明實現(xiàn)測試環(huán)境中數(shù)據(jù)庫的運維系統(tǒng)的優(yōu)選實施例的結(jié)構(gòu)示意圖,如圖1所示,該系統(tǒng)包括:交互單元10、存儲單元11、機器分配單元12、數(shù)據(jù)庫搭建單元13、數(shù)據(jù)同步單元14、采集控制單元15和服務(wù)監(jiān)控單元16。
      [0080]基于上述系統(tǒng),本發(fā)明還提供一種測試環(huán)境中數(shù)據(jù)庫的運維方法,圖2是本發(fā)明實現(xiàn)測試環(huán)境中數(shù)據(jù)庫的運維方法的優(yōu)選實施例的流程示意圖,如圖2所示,該優(yōu)選實施例包括以下步驟:
      [0081]步驟201,交互單元接收第一用戶提交的數(shù)據(jù)庫的申請信息,并轉(zhuǎn)發(fā)給第二用戶進行審核。
      [0082]具體的,當(dāng)互聯(lián)網(wǎng)產(chǎn)品的測試環(huán)境需要利用數(shù)據(jù)庫時,第一用戶通過web方式將申請單提供給交互單元,該申請單中攜帶有數(shù)據(jù)庫的申請信息;所述第一用戶指的是產(chǎn)品線的測試人員。
      [0083]交互單元接收第一用戶提交的數(shù)據(jù)庫的申請信息,將該申請信息的查看鏈接通過郵件發(fā)送給第二用戶,該第二用戶指的是數(shù)據(jù)庫管理員;交互單元同時將該申請信息保存到存儲單元。
      [0084]所述申請單中數(shù)據(jù)庫的申請信息包括以下內(nèi)容:數(shù)據(jù)庫版本、產(chǎn)品線名稱、測試類型、數(shù)據(jù)庫的使用時間、數(shù)據(jù)庫的拓撲結(jié)構(gòu)、磁盤類型、數(shù)據(jù)庫列表、預(yù)估數(shù)據(jù)量和字符集等;其中,所述產(chǎn)品線名稱指的是需要數(shù)據(jù)庫的測試環(huán)境的產(chǎn)品線,所述測試類型包括功能測試和性能測試,數(shù)據(jù)庫的使用時間指的是數(shù)據(jù)庫搭建在機器上的時間,如果使用時間到時,則將機器資源回收,而不是一直將機器用于產(chǎn)品線的測試;數(shù)據(jù)庫列表中攜帶需要在機器上搭建的數(shù)據(jù)庫實例,如數(shù)據(jù)庫A、數(shù)據(jù)庫B和數(shù)據(jù)庫C,所述字符集指的是數(shù)據(jù)庫中允許出現(xiàn)的字符。
      [0085]步驟202,數(shù)據(jù)庫的申請信息通過審核后,機器分配單元依據(jù)申請信息在機器資源池中選擇用于搭建數(shù)據(jù)庫的機器,將選出機器的主機名和端口號發(fā)送給數(shù)據(jù)庫搭建單元。
      [0086]具體的,第二用戶在收到郵件后,直接點擊郵件中申請信息的查看鏈接來查看申請信息,并對申請信息進行審核;主要依據(jù)申請信息中的測試類型、數(shù)據(jù)庫的拓撲結(jié)構(gòu)、預(yù)估數(shù)據(jù)量判斷申請信息是否通過審核,對于功能測試或性能測試,申請的數(shù)據(jù)庫實例的個數(shù)和預(yù)估數(shù)據(jù)量都不能超過預(yù)設(shè)的最大值,該最大值是可配的,如果數(shù)據(jù)庫實例或預(yù)估數(shù)據(jù)量超過預(yù)設(shè)的最大值,則審核不通過,反之,則審核通過;還可以依據(jù)測試數(shù)據(jù)來源提供的FTP地址或主數(shù)據(jù)庫的IP和端口是否合法判斷申請信息是否通過審核,如果不合法,則審核不通過,反之,審核通過。
      [0087]如果申請信息審核不通過,第二用戶觸發(fā)第一按鈕,機器分配單元收到第一按鈕的觸發(fā)消息,則確定依據(jù)當(dāng)前的申請信息不能搭建數(shù)據(jù)庫,因此不需要選擇機器,通過交互單元將申請信息審核失敗的消息返回給第一用戶,結(jié)束當(dāng)前流程,第一用戶在收到申請信息審核失敗的消息后,還可以對申請信息進行修改,重新提交申請信息。如果申請信息審核通過,第二用戶觸發(fā)第二按鈕,機器分配單元收到第二按鈕的觸發(fā)消息,則確定依據(jù)當(dāng)前的申請信息可以搭建數(shù)據(jù)庫,因此需要為數(shù)據(jù)庫選擇搭建的機器,則機器分配單元觸發(fā)自身的機器分配流程,機器分配單元從存儲單元獲取數(shù)據(jù)庫的申請信息,然后依據(jù)數(shù)據(jù)庫的申請信息在機器資源池中的一個以上機器中,選擇合適的機器來搭建數(shù)據(jù)庫,機器分配單元將選出機器的主機名和端口號發(fā)送給數(shù)據(jù)庫搭建單元;本優(yōu)選實施例中,由于一個數(shù)據(jù)庫實例需要部署在一個機器上,因此機器分配單元選出的機器的個數(shù)等于申請信息中數(shù)據(jù)庫實例的個數(shù),一個以上數(shù)據(jù)庫實例組成數(shù)據(jù)庫集群,數(shù)據(jù)庫集群中將存在主數(shù)據(jù)庫和從數(shù)據(jù)庫,機器分配單元發(fā)送給數(shù)據(jù)庫搭建單元的機器的主機名和端口號中,默認第一個機器的主機名和端口號為建立主數(shù)據(jù)庫的機器。
      [0088]步驟203,數(shù)據(jù)庫搭建單元依據(jù)選出機器的主機名和端口號,將數(shù)據(jù)庫安裝包、申請信息和安裝命令發(fā)送給對應(yīng)的機器,機器運行數(shù)據(jù)庫安裝包,依據(jù)申請信息安裝數(shù)據(jù)庫。
      [0089]具體的,數(shù)據(jù)庫搭建單元在收到機器分配單元提供的機器的主機名和端口號之后,首先依據(jù)端口號將預(yù)先設(shè)置的數(shù)據(jù)庫安裝包發(fā)送給對應(yīng)的機器;然后,數(shù)據(jù)庫搭建單元從存儲單元中獲取申請信息,將該申請信息轉(zhuǎn)化成編譯參數(shù),將該編譯參數(shù)通過編譯命令發(fā)送給選出的機器,所述編譯指令可以利用configure命令;接著,數(shù)據(jù)庫搭建單元向機器發(fā)送安裝命令,用于指示機器進行數(shù)據(jù)庫的安裝操作;安裝命令可以利用make&makeinstall 命令。
      [0090]機器從數(shù)據(jù)庫搭建單元收到安裝包、控制命令(編譯命令和安裝命令)后,在本地運行數(shù)據(jù)庫安裝包,依據(jù)申請信息中對安裝的數(shù)據(jù)庫的相關(guān)要求,如數(shù)據(jù)庫的拓撲結(jié)構(gòu)、數(shù)據(jù)庫版本等,完成數(shù)據(jù)庫的自動安裝;安裝完成后,機器向數(shù)據(jù)庫搭建單元返回安裝成功的消息。
      [0091]如果在兩個以上機器搭建數(shù)據(jù)庫,數(shù)據(jù)庫搭建單元在收到機器安裝成功的消息后,向數(shù)據(jù)庫集群中的從數(shù)據(jù)庫發(fā)送主從同步命令,用于指示從數(shù)據(jù)庫與主數(shù)據(jù)庫建立同步關(guān)系,其中,主從同步命令中攜帶主數(shù)據(jù)庫所在機器的主機名和端口號;所述主從同步命令可以利用change master命令;收到主從同步命令后,從數(shù)據(jù)庫依據(jù)主機名和端口號,與主數(shù)據(jù)庫建立同步關(guān)系,同步關(guān)系建立完成后,從數(shù)據(jù)庫就可以從主數(shù)據(jù)庫實時復(fù)制數(shù)據(jù),至此,機器上數(shù)據(jù)庫就搭建完畢;優(yōu)選的,數(shù)據(jù)庫搭建單元還可以向機器發(fā)送監(jiān)控安裝包,機器運行該監(jiān)控安裝包后,就自動安裝同步監(jiān)控程序,用來監(jiān)控數(shù)據(jù)庫的同步狀態(tài),如果同步狀態(tài)出現(xiàn)異常,安裝同步程序可以自動恢復(fù)同步;其中,從數(shù)據(jù)庫與主數(shù)據(jù)庫建立同步關(guān)系的方法為:從數(shù)據(jù)庫依據(jù)主數(shù)據(jù)庫的當(dāng)前日志位置,將自身的同步點設(shè)置為主數(shù)據(jù)庫的當(dāng)前日志位置,這樣以后主數(shù)據(jù)庫有新數(shù)據(jù)時,主數(shù)據(jù)庫的日志位置就會更新,從數(shù)據(jù)庫就會從更新后的日志位置獲取數(shù)據(jù);其中,主數(shù)據(jù)庫的當(dāng)前日志位置都是默認的,依據(jù)數(shù)據(jù)庫版本不同會不一樣,例如,5.0版本的數(shù)據(jù)庫的當(dāng)前日志位置是98,5.1版本的數(shù)據(jù)庫的當(dāng)前日志位置是106,可以在從數(shù)據(jù)庫中進行設(shè)置;數(shù)據(jù)庫搭建單元向數(shù)據(jù)同步單元發(fā)送通知消息,用于告知數(shù)據(jù)同步單元進行測試數(shù)據(jù)的同步操作。
      [0092]步驟204,數(shù)據(jù)同步單元將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫。[0093]具體的,在機器上搭建數(shù)據(jù)庫完畢后,需要進行測試數(shù)據(jù)的準備工作,本優(yōu)選實施例中,測試數(shù)據(jù)為線上實際數(shù)據(jù),因此,數(shù)據(jù)同步單元需要將線上實際數(shù)據(jù)同步到搭建的數(shù)據(jù)庫集群的主數(shù)據(jù)庫中。
      [0094]本優(yōu)選實施例中,數(shù)據(jù)同步單元將線上實際數(shù)據(jù)同步到搭建的數(shù)據(jù)庫集群的主數(shù)據(jù)庫中的方法包括以下兩種:
      [0095]第一種方法是數(shù)據(jù)同步單元定時的從線上數(shù)據(jù)庫下載包含線上實際數(shù)據(jù)的備份文件,然后將下載的備份文件拷貝到主數(shù)據(jù)庫中,主數(shù)據(jù)庫將備份文件自動還原恢復(fù)成線上實際數(shù)據(jù),如此,主數(shù)據(jù)庫就獲得了線上實際數(shù)據(jù);由于從數(shù)據(jù)庫與主數(shù)據(jù)庫已經(jīng)建立主從同步關(guān)系,且主數(shù)據(jù)庫獲得線上實際數(shù)據(jù)后,主數(shù)據(jù)庫的日志位置發(fā)生更新,因此從數(shù)據(jù)庫就會從主數(shù)據(jù)庫中更新后的日志位置獲得線上實際數(shù)據(jù),從而實現(xiàn)將線上數(shù)據(jù)庫中存儲的線上實際數(shù)據(jù)同步到數(shù)據(jù)庫集群中的主數(shù)據(jù)庫和從數(shù)據(jù)庫,數(shù)據(jù)庫集群中每個數(shù)據(jù)庫都可以獲得線上實際數(shù)據(jù)。
      [0096]第二種方法是數(shù)據(jù)同步單元在線上數(shù)據(jù)庫集群中的備份數(shù)據(jù)庫下掛載一個線下的從數(shù)據(jù)庫,這個掛載的從數(shù)據(jù)庫就是數(shù)據(jù)庫集群中的主數(shù)據(jù)庫,如此,備份數(shù)據(jù)庫就與數(shù)據(jù)庫集群中的主數(shù)據(jù)庫存在主從同步關(guān)系;其中,在線上數(shù)據(jù)庫集群中的備份數(shù)據(jù)庫下掛載一個線下的從數(shù)據(jù)庫的方法為:數(shù)據(jù)同步單元依據(jù)線上數(shù)據(jù)庫集群中的備份數(shù)據(jù)庫的當(dāng)前日志位置,將數(shù)據(jù)庫集群中的主數(shù)據(jù)庫的同步點設(shè)置為該備份數(shù)據(jù)庫的當(dāng)前日志位置,備份數(shù)據(jù)庫中用于保存線上實際數(shù)據(jù);如此,備份數(shù)據(jù)庫有新數(shù)據(jù)時,備份數(shù)據(jù)庫的日志位置就會更新,主數(shù)據(jù)庫就會從備份數(shù)據(jù)庫中更新后的日志位置獲取線上實際數(shù)據(jù)。
      [0097]可選的,該方法還可以包括步驟205和步驟206:
      [0098]步驟205,采集控制單元將監(jiān)控腳本發(fā)送給機器,機器運行監(jiān)控腳本采集服務(wù)狀態(tài)數(shù)據(jù)并保存到存儲單兀。
      [0099]具體的,所有測試環(huán)境都部署完成并投入測試使用后,如圖3所示,采集控制單元將預(yù)設(shè)的監(jiān)控腳本發(fā)送給部署有數(shù)據(jù)庫的機器,監(jiān)控腳本中預(yù)先配置需要采集的服務(wù)狀態(tài)數(shù)據(jù)、采集周期、采集服務(wù)狀態(tài)數(shù)據(jù)時調(diào)用的命令。
      [0100]機器收到監(jiān)控腳本后,運行該監(jiān)控腳本,監(jiān)控腳本依據(jù)需要采集的服務(wù)狀態(tài)數(shù)據(jù)和采集周期,調(diào)用相應(yīng)的命令進行服務(wù)狀態(tài)數(shù)據(jù)的采集,然后將采集的服務(wù)狀態(tài)數(shù)據(jù)提供給存儲單元進行存儲。例如,監(jiān)控腳本調(diào)用df命令獲取機器的磁盤利用率。
      [0101]其中,服務(wù)狀態(tài)數(shù)據(jù)包括數(shù)據(jù)庫使用情況數(shù)據(jù)、產(chǎn)品線使用情況數(shù)據(jù)和機器監(jiān)控數(shù)據(jù),其中,監(jiān)控腳本需要每天采集一次數(shù)據(jù)庫使用情況數(shù)據(jù),所述數(shù)據(jù)庫使用情況數(shù)據(jù)包括:每天的連接數(shù)、讀請求數(shù)、寫請求數(shù)、主從數(shù)據(jù)庫延遲時長、主從數(shù)據(jù)庫同步情況等;監(jiān)控腳本需要每個月采集一次產(chǎn)品線使用情況數(shù)據(jù),所述產(chǎn)品線使用情況數(shù)據(jù)包括:每個月的數(shù)據(jù)量、實例數(shù)、數(shù)據(jù)庫個數(shù)等;監(jiān)控腳本需要每天定時采集一次機器監(jiān)控數(shù)據(jù),例如,采集周期可以是10S,監(jiān)控腳本每隔IOs就需要采集一次機器監(jiān)控數(shù)據(jù);所述機器監(jiān)控數(shù)據(jù)包括:磁盤利用率、CPU利用率、輸入輸出(1/0,Input/Output)、內(nèi)存使用率、部署的數(shù)據(jù)庫實例的個數(shù)等。
      [0102]步驟206,服務(wù)監(jiān)控單元依據(jù)存儲單元中的服務(wù)狀態(tài)數(shù)據(jù),進行狀態(tài)異常報警、測試結(jié)果顯示和故障恢復(fù)操作。
      [0103]具體的,如圖3所示,服務(wù)監(jiān)控單元對存儲單元中的服務(wù)狀態(tài)數(shù)據(jù)進行監(jiān)控,當(dāng)依據(jù)預(yù)設(shè)的報警策略判斷出機器監(jiān)控數(shù)據(jù)出現(xiàn)異常時,向第一用戶發(fā)送報警郵件,報警郵件中攜帶出現(xiàn)異常的機器監(jiān)控數(shù)據(jù),以便第一用戶可以及時獲知出現(xiàn)的異常,還可以及時對異常進行處理;例如,報警策略可以是CPU利用率大于CPU利用率的閾值時進行報警、磁盤利用率大于磁盤利用率的閾值時進行報警等,當(dāng)CPU利用率大于閾值時,服務(wù)監(jiān)控單元就向第一用戶報警,報警郵件中攜帶CPU利用率以及CPU利用率的閾值。
      [0104]服務(wù)監(jiān)控單元在判斷出機器監(jiān)控數(shù)據(jù)出現(xiàn)異常后,還可以調(diào)用預(yù)設(shè)的agent工具對異常進行自動故障恢復(fù)操作,如啟動服務(wù)、建立主從同步等。
      [0105]服務(wù)監(jiān)控單元將測試結(jié)果顯示給第一用戶,測試結(jié)果包括監(jiān)控腳本采集的數(shù)據(jù)庫使用情況數(shù)據(jù)和產(chǎn)品線使用情況數(shù)據(jù);對于數(shù)據(jù)庫使用情況數(shù)據(jù),服務(wù)監(jiān)控單元依據(jù)存儲單元中的數(shù)據(jù)庫使用情況數(shù)據(jù),對數(shù)據(jù)庫使用情況數(shù)據(jù)進行按月份統(tǒng)計,利用一個月內(nèi)的數(shù)據(jù)庫使用情況數(shù)據(jù)對預(yù)設(shè)的highcharts展示模板進行渲染,生成測試結(jié)果頁面;對于產(chǎn)品線使用情況數(shù)據(jù),服務(wù)監(jiān)控單元依據(jù)存儲單元中的產(chǎn)品線使用情況數(shù)據(jù),對產(chǎn)品線使用情況數(shù)據(jù)進行按天統(tǒng)計,利用一天內(nèi)的產(chǎn)品線使用情況數(shù)據(jù)對預(yù)設(shè)的highcharts展示模板進行渲染,生成測試結(jié)果頁面;最后,服務(wù)監(jiān)控單元將生成的測試結(jié)果頁面發(fā)送給交互單元進行顯示,第一用戶就可以查看到測試結(jié)果。
      [0106]圖4是本發(fā)明中依據(jù)申請信息在機器資源池中選擇用于搭建數(shù)據(jù)庫的機器的具體實現(xiàn)方法的流程示意圖,如圖4所示,該方法包括以下步驟:
      [0107]步驟401,從存儲單元讀取監(jiān)控腳本采集的機器資源池中機器的機器監(jiān)控數(shù)據(jù),如機器的磁盤剩余量、CPU利用率和部署的數(shù)據(jù)庫實例的個數(shù);依據(jù)機器上部署的數(shù)據(jù)庫實例的個數(shù)由小到大的順序?qū)C器進行排序。
      [0108]步驟402,從存儲單元中獲取數(shù)據(jù)庫的申請信息,判斷申請信息中測試類型是功能測試還是性能測試,如果是功能測試,執(zhí)行步驟403,如果是性能測試,執(zhí)行步驟404。
      [0109]步驟403,對排序后的機器進行遍歷,依據(jù)預(yù)設(shè)的機器資源池中每個機器的主機名,從機器資源池中選出物理機和虛擬機,其中,虛擬機的主機名是以vm.baidu.com為后綴,物理機的主機名是以baidu.com為后綴,因此依據(jù)主機名可以判斷出機器是虛擬機還是物理機。
      [0110]步驟404,對排序后的機器進行遍歷,依據(jù)預(yù)設(shè)的機器資源池中每個機器的主機名,從機器資源池中選出物理機。
      [0111]步驟405,對選出的機器進行遍歷,計算遍歷到的機器的磁盤剩余量與申請信息中預(yù)估數(shù)據(jù)量的差值。
      [0112]步驟406,判斷磁盤剩余量與預(yù)估數(shù)據(jù)量之間的差值與預(yù)設(shè)的數(shù)據(jù)量閾值的大小,如果該差值大于數(shù)據(jù)量閾值,執(zhí)行步驟407,如果該差值小于或等于數(shù)據(jù)量閾值,執(zhí)行步驟412。
      [0113]步驟407,判斷遍歷到的機器的CPU利用率與預(yù)設(shè)的利用率閾值的大小,如果機器的CPU利用率大于利用率閾值,執(zhí)行步驟408,如果機器的CPU利用率小于或等于利用率閾值,執(zhí)行步驟412。
      [0114]步驟408,將遍歷到的機器的主機名和端口添加到可選機器列表中,并判斷對選出的機器是否遍歷完畢,如果遍歷完畢,執(zhí)行步驟409,如果沒有遍歷完畢,則繼續(xù)遍歷選出的機器,執(zhí)行步驟405。[0115]步驟409,判斷可選機器列表中機器的個數(shù)與申請信息中數(shù)據(jù)庫列表中的數(shù)據(jù)庫實例個數(shù)的大小,如果機器的個數(shù)大于或等于數(shù)據(jù)庫實例個數(shù),執(zhí)行步驟410,如果機器的個數(shù)小于數(shù)據(jù)庫實例個數(shù),執(zhí)行步驟412。
      [0116]步驟410,判斷可選機器列表中機器的端口號一致的機器的個數(shù)與數(shù)據(jù)庫實例個數(shù)的大小,如果機器的個數(shù)大于或等于數(shù)據(jù)庫實例個數(shù),則執(zhí)行步驟411,如果機器的個數(shù)小于數(shù)據(jù)庫實例的個數(shù),執(zhí)行步驟412。
      [0117]步驟411,在可選機器列表中端口號一致的機器中選出與數(shù)據(jù)庫實例個數(shù)對應(yīng)數(shù)量的機器,將選出的機器的主機名和端口號發(fā)送給數(shù)據(jù)庫搭建單元。
      [0118]步驟412,向交互單元返回機器分配失敗的消息。
      [0119]為實現(xiàn)上述方法,如圖1所示,測試環(huán)境中數(shù)據(jù)庫的運維系統(tǒng)中:
      [0120]交互單元10,用于將用戶提交的數(shù)據(jù)庫的申請信息保存到存儲單元11 ;
      [0121]機器分配單元12,用于依據(jù)所述申請信息在機器資源池中選擇機器,將選出機器的主機名和端口號發(fā)送給數(shù)據(jù)庫搭建單元13 ;
      [0122]數(shù)據(jù)庫搭建單元13,用于依據(jù)選出機器的主機名和端口號,將數(shù)據(jù)庫安裝包、申請信息和安裝命令發(fā)送給對應(yīng)的機器,機器運行數(shù)據(jù)庫安裝包,依據(jù)申請信息安裝數(shù)據(jù)庫;
      [0123]數(shù)據(jù)同步單元14,用于將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫。
      [0124]其中,所述數(shù)據(jù)庫的申請信息包括如下信息:數(shù)據(jù)庫版本、產(chǎn)品線名稱、測試類型、數(shù)據(jù)庫的使用時間、數(shù)據(jù)庫的拓撲結(jié)構(gòu)、磁盤類型、數(shù)據(jù)庫列表、預(yù)估數(shù)據(jù)量和字符集。
      [0125]其中,所述機器分配單元12在依據(jù)所述申請信息在機器資源池中選擇機器時,具體包括:從存儲單元獲取數(shù)據(jù)庫的申請信息和預(yù)設(shè)的機器資源池中機器的機器監(jiān)控數(shù)據(jù);依據(jù)申請信息中測試類型在機器資源池中選出虛擬機、或虛擬機和物理機;對選出的機器進行遍歷,將磁盤剩余量大于申請信息中預(yù)估數(shù)據(jù)量且CPU利用率大于預(yù)設(shè)的利用率閾值的機器的主機名和端口號添加到可選機器列表,直到機器遍歷完畢;當(dāng)可選機器列表中端口號一致的機器的個數(shù)大于或等于申請信息中數(shù)據(jù)庫列表中的數(shù)據(jù)庫實例個數(shù)時,在可選機器列表中端口號一致的機器中選出與數(shù)據(jù)庫實例個數(shù)對應(yīng)數(shù)量的機器。
      [0126]其中,所述數(shù)據(jù)庫搭建單元13在將數(shù)據(jù)庫安裝包、申請信息和安裝命令發(fā)送給對應(yīng)的機器時,具體包括:先后將預(yù)先設(shè)置的數(shù)據(jù)庫安裝包、攜帶編譯參數(shù)的編譯命令和安裝命令發(fā)送給對應(yīng)的機器;所述編譯參數(shù)依據(jù)從存儲單元中獲取的申請信息生成。
      [0127]其中,所述機器運行數(shù)據(jù)庫安裝包,依據(jù)申請信息安裝數(shù)據(jù)庫具體包括:機器在本地運行數(shù)據(jù)庫安裝包,依據(jù)申請信息中對數(shù)據(jù)庫的相關(guān)要求,完成數(shù)據(jù)庫安裝,并向數(shù)據(jù)庫搭建單元返回安裝成功的消息。
      [0128]其中,所述數(shù)據(jù)庫搭建單元13,還用于當(dāng)安裝的數(shù)據(jù)庫數(shù)量為兩個以上時,向兩個以上數(shù)據(jù)庫中的從數(shù)據(jù)庫發(fā)送主從同步命令,所述主從同步命令中攜帶主數(shù)據(jù)庫所在機器的主機名和端口號;所述從數(shù)據(jù)庫將自身的同步點設(shè)置為主數(shù)據(jù)庫的當(dāng)前日志位置。
      [0129]其中,所述數(shù)據(jù)同步單元14在將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫時,具體包括:定時的從線上數(shù)據(jù)庫下載包含線上實際數(shù)據(jù)的備份文件,將所述備份文件拷貝到數(shù)據(jù)庫中,數(shù)據(jù)庫將備份文件還原恢復(fù)成線上實際數(shù)據(jù)。
      [0130]或,所述數(shù)據(jù)同步單元14在將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫時,具體包括:在線上數(shù)據(jù)庫集群中的備份數(shù)據(jù)庫下掛載數(shù)據(jù)庫,所述備份數(shù)據(jù)庫的日志位置更新時,所述數(shù)據(jù)庫從備份數(shù)據(jù)庫中更新后的日志位置獲取線上實際數(shù)據(jù)。
      [0131]該系統(tǒng)還包括:
      [0132]采集控制單元15,用于將監(jiān)控腳本發(fā)送給機器,機器運行監(jiān)控腳本采集服務(wù)狀態(tài)數(shù)據(jù)并保存到存儲單兀11 ;
      [0133]服務(wù)監(jiān)控單元16,用于依據(jù)存儲單元11中的服務(wù)狀態(tài)數(shù)據(jù),進行狀態(tài)異常報警、測試結(jié)果顯示和故障恢復(fù)操作。
      [0134]其中,所述監(jiān)控腳本中配置有需要采集的服務(wù)狀態(tài)數(shù)據(jù)、采集周期、采集服務(wù)狀態(tài)數(shù)據(jù)時調(diào)用的命令;所述服務(wù)狀態(tài)數(shù)據(jù)包括數(shù)據(jù)庫使用情況數(shù)據(jù)、產(chǎn)品線使用情況數(shù)據(jù)和機器監(jiān)控數(shù)據(jù)。
      [0135]其中,所述服務(wù)監(jiān)控單元16在進行狀態(tài)異常報警時,具體包括:對存儲單元中的服務(wù)狀態(tài)數(shù)據(jù)進行監(jiān)控,當(dāng)依據(jù)預(yù)設(shè)的報警策略判斷出機器監(jiān)控數(shù)據(jù)出現(xiàn)異常時,向用戶發(fā)送報警郵件,報警郵件中攜帶出現(xiàn)異常的機器監(jiān)控數(shù)據(jù)。
      [0136]其中,所述服務(wù)監(jiān)控單元16在進行測試結(jié)果顯示時,具體包括:利用存儲單元中一個月內(nèi)的數(shù)據(jù)庫使用情況數(shù)據(jù)或一天內(nèi)的產(chǎn)品線使用情況數(shù)據(jù),對預(yù)設(shè)的展示模板進行渲染,生成測試結(jié)果頁面,將生成的測試結(jié)果頁面發(fā)送給交互單元進行顯示。
      [0137]本發(fā)明的上述技術(shù)方案中,對所有產(chǎn)品線的測試環(huán)境中的數(shù)據(jù)庫進行統(tǒng)一自動部署和運維,只需要測試人員配置數(shù)據(jù)庫的申請信息即可,不再需要測試人員進行人工部署數(shù)據(jù)庫,而是依據(jù)機器的負載情況自動分配機器并自動部署數(shù)據(jù)庫,節(jié)省人力物力資源,從而提高測試環(huán)境中數(shù)據(jù)庫的部署效率,能夠加快測試進度,縮短測試周期,提高機器的利用率;數(shù)據(jù)庫集群中的測試數(shù)據(jù)實時與線上數(shù)據(jù)庫進行同步,利用線上實際數(shù)據(jù)進行測試,因而能夠提高互聯(lián)網(wǎng)產(chǎn)品線的性能測試結(jié)果的可信度;能夠?qū)⒎?wù)異常情況及時向數(shù)據(jù)庫管理員進行報警,避免測試人員在使用時才發(fā)現(xiàn)問題對測試進度的影響。
      [0138]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
      【權(quán)利要求】
      1.一種測試環(huán)境中數(shù)據(jù)庫的運維系統(tǒng),其特征在于,該系統(tǒng)包括:交互單元、機器分配單元、數(shù)據(jù)庫搭建單元、數(shù)據(jù)同步單元、存儲單元;其中, 交互單元,用于將用戶提交 的數(shù)據(jù)庫的申請信息保存到存儲單元; 機器分配單元,用于依據(jù)所述申請信息在機器資源池中選擇機器,將選出機器的主機名和端口號發(fā)送給數(shù)據(jù)庫搭建單元; 數(shù)據(jù)庫搭建單元,用于依據(jù)選出機器的主機名和端口號,將數(shù)據(jù)庫安裝包、申請信息和安裝命令發(fā)送給對應(yīng)的機器,機器運行數(shù)據(jù)庫安裝包,依據(jù)申請信息安裝數(shù)據(jù)庫; 數(shù)據(jù)同步單元,用于將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫。
      2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述數(shù)據(jù)庫的申請信息包括如下信息:數(shù)據(jù)庫版本、產(chǎn)品線名稱、測試類型、數(shù)據(jù)庫的使用時間、數(shù)據(jù)庫的拓撲結(jié)構(gòu)、磁盤類型、數(shù)據(jù)庫列表、預(yù)估數(shù)據(jù)量和字符集。
      3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述機器分配單元在依據(jù)所述申請信息在機器資源池中選擇機器時,具體包括: 從存儲單元獲取數(shù)據(jù)庫的申請信息和預(yù)設(shè)的機器資源池中機器的機器監(jiān)控數(shù)據(jù); 依據(jù)申請信息中測試類型在機器資源池中選出虛擬機、或虛擬機和物理機; 對選出的機器進行遍歷,將磁盤剩余量大于申請信息中預(yù)估數(shù)據(jù)量且CPU利用率大于預(yù)設(shè)的利用率閾值的機器的主機名和端口號添加到可選機器列表,直到機器遍歷完畢; 當(dāng)可選機器列表中端口號一致的機器的個數(shù)大于或等于申請信息中數(shù)據(jù)庫列表中的數(shù)據(jù)庫實例個數(shù)時,在可選機器列表中端口號一致的機器中選出與數(shù)據(jù)庫實例個數(shù)對應(yīng)數(shù)量的機器。
      4.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述數(shù)據(jù)庫搭建單元在將數(shù)據(jù)庫安裝包、申請信息和安裝命令發(fā)送給對應(yīng)的機器時,具體包括: 先后將預(yù)先設(shè)置的數(shù)據(jù)庫安裝包、攜帶編譯參數(shù)的編譯命令和安裝命令發(fā)送給對應(yīng)的機器;所述編譯參數(shù)依據(jù)從存儲單元中獲取的申請信息生成。
      5.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述機器運行數(shù)據(jù)庫安裝包,依據(jù)申請信息安裝數(shù)據(jù)庫具體包括: 機器在本地運行數(shù)據(jù)庫安裝包,依據(jù)申請信息中對數(shù)據(jù)庫的相關(guān)要求,完成數(shù)據(jù)庫安裝,并向數(shù)據(jù)庫搭建單元返回安裝成功的消息。
      6.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于, 所述數(shù)據(jù)庫搭建單元,還用于當(dāng)安裝的數(shù)據(jù)庫數(shù)量為兩個以上時,向兩個以上數(shù)據(jù)庫中的從數(shù)據(jù)庫發(fā)送主從同步命令,所述主從同步命令中攜帶主數(shù)據(jù)庫所在機器的主機名和端口號;所述從數(shù)據(jù)庫將自身的同步點設(shè)置為主數(shù)據(jù)庫的當(dāng)前日志位置。
      7.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述數(shù)據(jù)同步單元在將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫時,具體包括: 定時的從線上數(shù)據(jù)庫下載包含線上實際數(shù)據(jù)的備份文件,將所述備份文件拷貝到數(shù)據(jù)庫中,數(shù)據(jù)庫將備份文件還原恢復(fù)成線上實際數(shù)據(jù)。
      8.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述數(shù)據(jù)同步單元在將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫時,具體包括: 在線上數(shù)據(jù)庫集群中的備份數(shù)據(jù)庫下掛載數(shù)據(jù)庫,所述備份數(shù)據(jù)庫的日志位置更新時,所述數(shù)據(jù)庫從備份數(shù)據(jù)庫中更新后的日志位置獲取線上實際數(shù)據(jù)。
      9.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,該系統(tǒng)還包括: 采集控制單元,用于將監(jiān)控腳本發(fā)送給機器,機器運行監(jiān)控腳本采集服務(wù)狀態(tài)數(shù)據(jù)并保存到存儲單元; 服務(wù)監(jiān)控單元,用于依據(jù)存儲單元中的服務(wù)狀態(tài)數(shù)據(jù),進行狀態(tài)異常報警、測試結(jié)果顯示和故障恢復(fù)操作。
      10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于, 所述監(jiān)控腳本中配置有需要采集的服務(wù)狀態(tài)數(shù)據(jù)、采集周期、采集服務(wù)狀態(tài)數(shù)據(jù)時調(diào)用的命令; 所述服務(wù)狀態(tài)數(shù)據(jù)包括數(shù)據(jù)庫使用情況數(shù)據(jù)、產(chǎn)品線使用情況數(shù)據(jù)和機器監(jiān)控數(shù)據(jù)。
      11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述服務(wù)監(jiān)控單元在進行狀態(tài)異常報警時,具體包括: 對存儲單元中的服務(wù)狀態(tài)數(shù)據(jù)進行監(jiān)控,當(dāng)依據(jù)預(yù)設(shè)的報警策略判斷出機器監(jiān)控數(shù)據(jù)出現(xiàn)異常時,向用戶發(fā)送報警郵件,報警郵件中攜帶出現(xiàn)異常的機器監(jiān)控數(shù)據(jù)。
      12.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述服務(wù)監(jiān)控單元在進行測試結(jié)果顯示時,具體包括: 利用存儲單元中一個月內(nèi)的數(shù)據(jù)庫使用情況數(shù)據(jù)或一天內(nèi)的產(chǎn)品線使用情況數(shù)據(jù),對預(yù)設(shè)的展示模板進行渲染,生成測試結(jié)果頁面,將生成的測試結(jié)果頁面發(fā)送給交互單元進行顯示。
      13.—種測試環(huán)境中數(shù)據(jù)庫的運維方法,其特征在于,該方法包括: 交互單元將用戶提交的數(shù)據(jù)庫的申請信息保存到存儲單元; 機器分配單元依據(jù)所述申請信息在機器資源池中選擇機器,將選出機器的主機名和端口號發(fā)送給數(shù)據(jù)庫搭建單元; 數(shù)據(jù)庫搭建單元依據(jù)選出機器的主機名和端口號,將數(shù)據(jù)庫安裝包、申請信息和安裝命令發(fā)送給對應(yīng)的機器,機器運行數(shù)據(jù)庫安裝包,依據(jù)申請信息安裝數(shù)據(jù)庫; 數(shù)據(jù)同步單元將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫。
      14.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述數(shù)據(jù)庫的申請信息包括如下信息:數(shù)據(jù)庫版本、產(chǎn)品線名稱、測試類型、數(shù)據(jù)庫的使用時間、數(shù)據(jù)庫的拓撲結(jié)構(gòu)、磁盤類型、數(shù)據(jù)庫列表、預(yù)估數(shù)據(jù)量和字符集。
      15.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述機器分配單元依據(jù)所述申請信息在機器資源池中選擇機器具體包括: 從存儲單元獲取數(shù)據(jù)庫的申請信息和預(yù)設(shè)的機器資源池中機器的機器監(jiān)控數(shù)據(jù); 依據(jù)申請信息中測試類型在機器資源池中選出虛擬機、或虛擬機和物理機; 對選出的機器進行遍歷,將磁盤剩余量大于申請信息中預(yù)估數(shù)據(jù)量且CPU利用率大于預(yù)設(shè)的利用率閾值的機器的主機名和端口號添加到可選機器列表,直到機器遍歷完畢; 當(dāng)可選機器列表中端口號一致的機器的個數(shù)大于或等于申請信息中數(shù)據(jù)庫列表中的數(shù)據(jù)庫實例個數(shù)時,在可選機器列表中端口號一致的機器中選出與數(shù)據(jù)庫實例個數(shù)對應(yīng)數(shù)量的機器。
      16.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述將數(shù)據(jù)庫安裝包、申請信息和安裝命令發(fā)送給對應(yīng)的機器具體包括: 先后將預(yù)先設(shè)置的數(shù)據(jù)庫安裝包、攜帶編譯參數(shù)的編譯命令和安裝命令發(fā)送給對應(yīng)的機器;所述編譯參數(shù)依據(jù)從存儲單元中獲取的申請信息生成。
      17.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述機器運行數(shù)據(jù)庫安裝包,依據(jù)申請信息安裝數(shù)據(jù)庫具體包括: 機器在本地運行數(shù)據(jù)庫安裝包,依據(jù)申請信息中對數(shù)據(jù)庫的相關(guān)要求,完成數(shù)據(jù)庫安裝,并向數(shù)據(jù)庫搭建單元返回安裝成功的消息。
      18.根據(jù)權(quán)利要求13所述的方法,其特征在于,該方法還包括: 當(dāng)安裝的數(shù)據(jù)庫數(shù)量為兩個以上時,數(shù)據(jù)庫搭建單元向兩個以上數(shù)據(jù)庫中的從數(shù)據(jù)庫發(fā)送主從同步命令,所述主從同步命令中攜帶主數(shù)據(jù)庫所在機器的主機名和端口號; 所述從數(shù)據(jù)庫將自身的同步點設(shè)置為主數(shù)據(jù)庫的當(dāng)前日志位置。
      19.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述數(shù)據(jù)同步單元將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫具體包括: 數(shù)據(jù)同步單元定時的從線上數(shù)據(jù)庫下載包含線上實際數(shù)據(jù)的備份文件,將所述備份文件拷貝到數(shù)據(jù)庫中,數(shù)據(jù)庫將備份文件還原恢復(fù)成線上實際數(shù)據(jù)。
      20.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述數(shù)據(jù)同步單元將線上實際數(shù)據(jù)同步到機器上搭建的數(shù)據(jù)庫具體包括: 數(shù)據(jù)同步單元在線上數(shù)據(jù)庫集群中的備份數(shù)據(jù)庫下掛載數(shù)據(jù)庫,所述備份數(shù)據(jù)庫的日志位置更新時,所述數(shù)據(jù)庫從備份數(shù)據(jù)庫中更新后的日志位置獲取線上實際數(shù)據(jù)。
      21.根據(jù)權(quán)利要求13所述的方法,其特征在于,該方法還包括: 采集控制單元將監(jiān)控腳本發(fā)送給機器,機器運行監(jiān)控腳本采集服務(wù)狀態(tài)數(shù)據(jù)并保存到存儲單兀; 服務(wù)監(jiān)控單元依據(jù)存儲單元中的服務(wù)狀態(tài)數(shù)據(jù),進行狀態(tài)異常報警、測試結(jié)果顯示和故障恢復(fù)操作。
      22.根據(jù)權(quán)利要求21所述的方法,其特征在于, 所述監(jiān)控腳本中配置有需要采集的服務(wù)狀態(tài)數(shù)據(jù)、采集周期、采集服務(wù)狀態(tài)數(shù)據(jù)時調(diào)用的命令; 所述服務(wù)狀態(tài)數(shù)據(jù)包括數(shù)據(jù)庫使用情況數(shù)據(jù)、產(chǎn)品線使用情況數(shù)據(jù)和機器監(jiān)控數(shù)據(jù)。
      23.根據(jù)權(quán)利要求22所述的方法,其特征在于,所述服務(wù)監(jiān)控單元進行狀態(tài)異常報警具體包括: 對存儲單元中的服務(wù)狀態(tài)數(shù)據(jù)進行監(jiān)控,當(dāng)依據(jù)預(yù)設(shè)的報警策略判斷出機器監(jiān)控數(shù)據(jù)出現(xiàn)異常時,向用戶發(fā)送報警郵件,報警郵件中攜帶出現(xiàn)異常的機器監(jiān)控數(shù)據(jù)。
      24.根據(jù)權(quán)利要求22所述的方法,其特征在于,所述服務(wù)監(jiān)控單元進行測試結(jié)果顯示具體包括: 服務(wù)監(jiān)控單元利用存儲單元中一個月內(nèi)的數(shù)據(jù)庫使用情況數(shù)據(jù)或一天內(nèi)的產(chǎn)品線使用情況數(shù)據(jù),對預(yù)設(shè)的展示模板進行渲染,生成測試結(jié)果頁面,將生成的測試結(jié)果頁面發(fā)送給交互單元進行顯示。
      【文檔編號】G06F17/30GK103902542SQ201210570421
      【公開日】2014年7月2日 申請日期:2012年12月25日 優(yōu)先權(quán)日:2012年12月25日
      【發(fā)明者】余邵在, 丁超, 陶仕敏 申請人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1