徐井泉 上海鐵路局新長車務(wù)段
在生產(chǎn)應(yīng)用系統(tǒng)運行中經(jīng)常會遇到數(shù)據(jù)備份、數(shù)據(jù)清理及進程重啟等需要定時或不定時人工進行干預(yù)這樣的事,如十八點統(tǒng)計分析系統(tǒng)中對數(shù)據(jù)庫的歸檔日志及現(xiàn)場數(shù)據(jù)的備份、確報系統(tǒng)中各種字典及車站系統(tǒng)中確報接收進程重啟等等。雖然通過人工也能解決此類問題,但也存在兩方面的不足,一是解決這樣的問題需要掌握一定的系統(tǒng)和數(shù)據(jù)庫相關(guān)知識,而技術(shù)維護人員由于分工的不同不可能都掌握相關(guān)知識。另一方面此類問題出現(xiàn)時必須有專人負(fù)責(zé),但不能保證專門技術(shù)維護人員至始至終一直在現(xiàn)場,當(dāng)遇到此類情況時就會影響到生產(chǎn)應(yīng)用系統(tǒng)的正常運行。因此,通過定時執(zhí)行相關(guān)的程序使得需要人工執(zhí)行的動作讓計算機自動執(zhí)行,這樣不但減輕了技術(shù)維護人員的負(fù)擔(dān),而且也保證了解決此類問題的正確性和及時性。
目前,此類問題在車務(wù)段生產(chǎn)系統(tǒng)中主要集中在十八點統(tǒng)計分析系統(tǒng)和車站確報系統(tǒng)中,這兩種系統(tǒng)中的運行環(huán)境和數(shù)據(jù)庫系統(tǒng)均有所不同,其中車站確報系統(tǒng)為SCO UNIX操作系統(tǒng),而十八統(tǒng)計分析系統(tǒng)為windows2003操作系統(tǒng)。這涉及到采取何種定時執(zhí)行程序的問題,因為運行環(huán)境不同,運行定時任務(wù)的程序也不同。下面分別對這兩種生產(chǎn)應(yīng)用系統(tǒng)進行闡述。
車站確報系統(tǒng)主要涉及接收確報進程的死機問題,對現(xiàn)場的影響很大。經(jīng)常出現(xiàn)由于確報接收不正常而導(dǎo)致車站車號員和專業(yè)維護技術(shù)人員因為此類問題產(chǎn)生矛盾,一是此軟件維護人員不能修改,出現(xiàn)此類問題只能重啟相關(guān)進程,但也不知此進程什么時間發(fā)生死鎖。二是車站現(xiàn)場車號員由于接收不到確報搞得工作很被動,但車號員也無法對此問題能解決,只有通過聯(lián)系技術(shù)維護人員來得到此類問題的解決。為了解決此類問題,通過分析確報接收進程的工作過程,提出了以下解決方案。
由于車站確報系統(tǒng)的運行操作系統(tǒng)為SCO UNIX操作系統(tǒng),所以選擇的定時執(zhí)行程序為crontab。通過crontab程序調(diào)用確報接收進程,定時重啟確報接收進程能完全解決此問題。
確報接收程序的文件名為strqb,其文件的屬性必須改為執(zhí)行屬性,此文件位于/u/yzyz/bin目錄下,命令為:
命令解釋如下:
顯示啟動確報文件內(nèi)容
接收通過MQ通道的確報文件,初始確報落地的目錄為工作目錄下qb/original文件夾,并同時將接收確報的動作記入工作目錄下rcvMQ.log日志文件中
執(zhí)行工作目錄bin文件夾下atis_receive的車號識別接收數(shù)據(jù)文件,同時將接收車號識別的動作過程記入atis接收日志rcvATIS.log文件中。
正常情況下確報接收進程
1795為確報接收落地程序rcvMQ執(zhí)行時的進程ID,rcvMQ為確報通過MQ通道接收落地文件。
1797為確報接收入庫程序qb_receive執(zhí)行的進程ID,qb_receive為將落地的確報數(shù)據(jù)進行入庫。
命令解釋如下:
將確報接收落地程序rcvMQ進行kill掉,為后面重啟此程序作準(zhǔn)備
將確報接收入庫程序進行kill掉,為后面重啟此程序作準(zhǔn)備
對確報落地程序rcvMQ和確報入庫程序 qb_receive進行重啟
定時啟動程序crontab規(guī)格說明
使用方式 :
crontab是用來讓使用者在固定時間或固定間隔執(zhí)行程序之用,換句話說,也就是類似使用者的時程表。
參數(shù):
crontab-e:執(zhí)行文字編輯器來設(shè)定時程表,內(nèi)定的文字編輯器是 VI
時程表的格式如下 :
其中 f1是表示分鐘,f2表示小時,f3表示一個月份中的第幾日,f4表示月份,f5表示一個星期中的第幾天。program表示要執(zhí)行的程序。
根據(jù)本站的實際情況,現(xiàn)場反映在十六點左右,確報經(jīng)常容易收不到,所以決定將定時任務(wù)設(shè)定在每天下午四點左右。
16:50對確報接收進程進行重啟,系統(tǒng)自動通過yzyz用戶執(zhí)行/u/yzyz/restartqb.sh腳本文件。
車務(wù)段十八點統(tǒng)計分析系統(tǒng)是由華方公司組織設(shè)計和開發(fā)的,此系統(tǒng)基于WINDOWS操作系統(tǒng),前臺主要是用VB語言開發(fā),而后臺則是用ORACLE數(shù)據(jù)庫和ORACLE中的PL/SQL語言開發(fā),此系統(tǒng)在實際運行中給現(xiàn)場統(tǒng)計人員帶來了很大的便利,統(tǒng)計的數(shù)據(jù)不但準(zhǔn)確而且統(tǒng)計時間很短,得到了現(xiàn)場統(tǒng)計人員的好評。但在使用中也經(jīng)常會出現(xiàn)無法登錄到服務(wù)器,網(wǎng)頁無法打開的現(xiàn)象。這樣的問題在其它兄弟單位也出現(xiàn)過,但都是通過人工查看磁盤空間的使用情況和占有率。如果出現(xiàn)磁盤空間的占有率達(dá)到臨界點時,就人工進行操作手工刪除歸檔日志,騰出有效空間供數(shù)據(jù)庫運行之用。由于十八點統(tǒng)計分析系統(tǒng)中沒有對此類問題提出有效的解決方案,每次出現(xiàn)此類問題都要人工進行干預(yù)。這樣一來就帶來了幾個弊端,一是如果有事耽誤或忘記了就會使數(shù)據(jù)庫無法正常運行。二是如果出現(xiàn)數(shù)據(jù)庫無法正常運行,就會給我們技術(shù)維護人員和現(xiàn)場統(tǒng)計人員帶來被動,影響正常的生產(chǎn)數(shù)據(jù)統(tǒng)計工作。
通過對車站確報系統(tǒng)的確報接收進程定時任務(wù)的制定得到了啟示,設(shè)想通過定時任務(wù)的制定將此類工作交給計算機自動執(zhí)行,一來可以減輕專業(yè)維護人員的工作量,二來也可以保證十八點統(tǒng)計分析系統(tǒng)數(shù)據(jù)庫系統(tǒng)運行正常,不致于影響現(xiàn)場生產(chǎn)數(shù)據(jù)統(tǒng)計的正常運行。通過摸索找到了解決此類問題的方案,步驟如下:
命令解釋如下:
進入十八點統(tǒng)計分析系統(tǒng)數(shù)據(jù)庫歸檔日志目錄
刪除前一次備份的歸檔日志
將服務(wù)器中數(shù)據(jù)庫歸檔日志拷貝入歸檔日志備份目錄arclog_bakak中
刪除服務(wù)器數(shù)據(jù)庫歸檔日志
2.2.1 調(diào)用服務(wù)器中定時任務(wù)的過程
開始→程序→附件→系統(tǒng)工具→任務(wù)計劃
2.2.2 定時刪除數(shù)據(jù)庫歸檔日志任務(wù)
執(zhí)行的腳本文件位于d盤目錄arclog_bak下,腳本文件名為arclog.bat.
2.2.3 時間的設(shè)定和選擇
定時刪除服務(wù)器數(shù)據(jù)庫歸檔日志的時間選在每周的星期二中午11點。
主要基于兩方面考慮,一方面是中午11點左右十八點統(tǒng)計分析系統(tǒng)比較空閑,因為鐵路上應(yīng)用十八點統(tǒng)計系統(tǒng)在下午四點以后,所以選此時間可以避開十八點統(tǒng)計分析系統(tǒng)的繁忙時間,第二方面選每周的星期二,是因為每周一剛上班,需要提供許多報表供領(lǐng)導(dǎo)開會交班分析數(shù)據(jù)之用,這時十八點統(tǒng)計分析系統(tǒng)也顯得比較繁忙。每周星期二執(zhí)行備份及刪除數(shù)據(jù)庫歸檔日志,時間段為一個星期,正好符合華方公司保留一個星期歸檔日志的要求。
自從車站確報接收進程定時任務(wù)和十八點統(tǒng)計分析系統(tǒng)數(shù)據(jù)庫歸檔日志定時任務(wù)投入使用后,經(jīng)過一段時間的試用。通過和現(xiàn)場操作人員的溝通得知,以上遇到的問題后來就一直沒有出現(xiàn)過。也就是說,通過對以上問題提出的解決方案達(dá)到了初期預(yù)想的結(jié)果。