深圳地鐵AFC系統數據庫的應用優化
時間:2009-01-16 14:44:58來源:ronggang
導語:?根據深圳地鐵AFC系統數據岸選型、設計、應用的實際經驗,闡述了AFC系統數據庫維護的實現方法和優化策略,以達到AFC系統數據庫技術性能及穩定性不斷提高的目的
摘 要:根據深圳地鐵AFC系統數據岸選型、設計、應用的實際經驗,闡述了AFC系統數據庫維護的實現方法和優化策略,以達到AFC系統數據庫技術性能及穩定性不斷提高的目的。
關健詞:自動售檢票系統;數據庫;應用;維護;優化
深圳地鐵AFC系統是以非接觸式IC卡為車票介質,采用Oracle數據庫平臺的自動售檢票系統。該系統能夠完成地鐵運營的車票制作、售票、檢票、財務、統計、分析等全過程業務的實時管理工作。鑒于AFC系統與地鐵運營的財務收益密切相關,因此,AFC系統數據的安全性、實時性、完整性等需要得到足夠的重視。
1 概況
1.1數據庫選型
深圳地鐵AFC系統從設計之初就充分考慮到了AFC系統數據量、性能要求、可靠性要求以及性價比等各方面因素,選擇了大型數據庫管理系統Oracle9. i。同時為保證AFC數據的完整性和一致性,中心和車站采用一致的數據庫系統。從增加票務收益和提高服務質量的角度,深圳地鐵AFC管理中心從多方面采取措施,確保數據庫系統安全、可靠運行,并經歷了多次大客流考驗。到目前為止,深圳地鐵AFC系統數據庫一直保持穩定運行。
1.2數據庫設計
從業務和管理角度來進行數據庫設計,將數據按其內容、用途和業務范圍不同分類。從數據的一致性來說,車站和中心要保持一樣的數據定義類型。深圳地鐵的數據類型具體分為下列幾類。
交易信息類:交易業務處理產生的各種信息。
系統維護類:輔助系統運行和維護的各種參數信息、基礎配置信息和用于非業務類控制管理的信息。
運營管理類:設備管理、運營監控、運營維護等方面的信息。
票務管理類:票卡類型、票價設定、運營點管理等方面的信息。
結算管理類:描述結算匯總和帳戶處理方面的信息。
庫存管理類:車票庫存調人、調出,票卡分類等方面的信息。
2 數據庫的維護
為確保深圳地鐵AFC系統長期、穩定、高效的運作,數據庫的維護是一項例行的、不可缺少的工作。為此,需要通過日常監控、日常維護、備份等環節保證AFC系統數據庫處在良好運作狀態之下。
2.1日常監控
(1)驗證數據庫及連通性。定時對數據庫的連接情況進行檢查,查看與數據庫建立的會話數目是不是正常,如果建立了過多的連接,會消耗數據庫的資源。同時,對一些“掛死”的連接,則需要手工進行清理。
(2)查看警告日志。每天驗證數據庫正在運行listener并可以訪問應用程序后,就應該開始檢查數據庫日志(alert .log ),在查看alert.log的內容時,文件中的許多信息都是常規的,比如數據庫的啟動、檢查點和日志文件的開關。需監控這些消息出現的頻率,驗證數據庫是否按照設計方案運行。正常情況下,數據庫在alert.lo g中沒有大量的錯誤,如果看到類似ORA-1031這樣的錯誤消息,就需要徹底地調查.
2.2日常維護
(1)表空間的管理。通過Oracle數據庫提供的Oracle En-terprise Manager Console,檢查數據庫表空間的使用情況。包括創建表空間,向表空間中添加數據文件。隨著數據表和索引的增長監控空閑空間,當表空間利用率超過85%以上時,通過擴充數據文件的方法擴大數據庫相應的表空間。
(2)表空間空閑塊的維護。數據庫運行了一段時間后,由于不斷地在表空間上創建和刪除對象,會在表空間上產生大量的碎片,這時要檢查表空間的碎片和可用空間情況,決定是否要對碎片進行整理或為表空間增加數據文件。
(3)共享池的維護。通過Oracle數據庫提供的Oracle En-terprise Manager Console,檢查可用共享池的使用情況,當可用百分比小于6%,業務處理速度會變慢,如單程票初始化機的處理速度會下降,這時需要通過刷新共享池的方法提高可用率。
2.3數據庫備份
為確保AFC系統數據完整,深圳地鐵制定了相應的備份策略,嚴格做好數據庫備份工作。備份的數據為中心數據庫信息、中心RMAN數據庫信息、TSM數據庫信息、車站數據庫信息。備份介質有明確標識,分類保管。
中心數據庫采用Tivoli軟件自動備份,備份介質為IBM LTO磁帶,備份內容為全備份、增量備份和歸檔日志備份,全備份每周進行一次,增量備份和歸檔日志備份每天進行1次。
中心RMAN數據庫采用UNIX腳本自動備份,中心TSM數據庫采用Tivoli軟件自動備份,將一周的備份文件刻錄至光盤保存。
車站數據庫備份采用ORACLE邏輯備份(通過EXP命令),在車站服務器和車站監控機上雙機互備。
3 數據庫的優化
Oracle數據庫的性能優化一直是數據庫管理中的重要環節,也是最復雜的內容之一。從數據庫技術角度而言,數據庫建立起來后,主要的工作內容有:優化、恢復和備份。要實現高效地運行Oracle數據庫,優化性能至少占了70%的工作量,主要包括優化工具、存儲優化、內存調整、SQL優化等多個方面。主要工作包括如下幾個部分。
(1)調整數據結構的設計。主要針對Oracle數據庫的分區功能,對于經常訪問的數據庫表建立索引等。在數據庫的表空間劃分上,每個月占用一個獨立的分區,每個分區占用一個表空間,一個分區又由多個數據文件組成,對索引的建立也是按月來分配的。
(2)調整應用程序結構設計。這一部分也是在深圳地鐵AFC應用系統設計之前完成,深圳地鐵AFC應用系統采用Client/Server體系結構,由數據庫應用程序快速開發工具PowerBulider8設計開發完成。
(3)調整數據庫SQL語句。我們使用Oracle語句優化器(Oracle Optimizer)和行鎖管理器( Row-level Manager)來調整優化SQL語句。
(4)調整AFC中央主機內存分配。內存分配是在主機運行過程中優化配置的,主機根據數據庫運行狀況調整數據庫系統全局區(SGA)的數據緩沖區、日志緩沖區和共享池的大小,還可以調整程序全局區(PGA)的大小。系統全局區(SGA)是Oracle數據庫的心臟,需要注意的是,SGA區不是越大越好,SGA區過大會占用操作系統使用的內存而引起虛擬內存的頁面交換,這樣反而會降低系統性能。
(5)調整硬盤I/O。將組成同一個表空間的數據文件放在不同的硬盤上,做到硬盤之間I/O負載均衡。
(6)調整操作系統參數.Oracle數據庫服務器是整個系統的核心,它的性能高低直接影響整個系統的性能。深圳地鐵AFC系統主機運行在Unix操作系統之上,盡可能使Oracle使用資源最大化,需調整Unix數據緩沖池的大小、每個進程所能使用的內存大小等參數。
深圳地鐵AFC系統數據庫備份管理方面,除了做日常維護備份外,在數據庫運作過程中,我們還通過調整分區,對經常訪問的數據庫表建立索引,以及對業務流程完成后不再變動的數據采用歸檔的方法來優化數據庫。
4 數據庫應用探索
(1)應用數據庫結構設計應充分考慮通用性和易用性。著眼于深圳軌道交通發展一體化的長遠眼光,深圳地鐵AFC系統數據庫從設計之初,幾個基本的數據庫表就采用和深圳通公司(現為“深圳通結算中心”,將發展為深圳城市“一卡通”的清分和結算中心)數據庫相同的數據類型劃分和表的設計。就當時的情況而言,滿足了地鐵與“深圳通”數據互通和結算的基本要求,為實現深圳“一卡通”奠定了根基。現在,深圳地鐵AFC系統的數據已能夠通過和“深圳通”連接的幀中繼專線進行數據交換,為“深圳通”在多家運營商之間清分、結算提供數據保證。
(2)從數據庫系統主機的安全工作角度,提高數據庫的安全性和容災性。AFC系統的“生命線”就是數據庫的安全和數據的完整。深圳地鐵AFC系統除了做好數據庫冷、熱備份外,在保證數據庫系統主機安全運作,容災備份方面,我們采用2臺IBM P650小型機做主機互備,以及RAIDS冗余磁盤陣列體系。除此之外,還新增1臺IBM P520小型機,專門用做2臺AFC系統主機的備用機。在非常必要之時,這臺小型機可頂替AFC系統主機工作。
(3)對表和索引做定期的維護優化,大表建立分區功能。將大表的歷史數據按年份歸檔,以騰出足夠的空間供數據庫服務器連續使用。現在,我們已成功完成了2005年數據的歸檔工作,將深圳地鐵AFC系統2005年全年的數據導出到AFC主機的備機之上,使AFC系統主機上的硬盤空間得以重用,提升了主機和數據庫系統性能。
當數據庫建立索引后,增加數據時,也會增加索引數據,但是刪除數據時,數據庫不會自動刪除該記錄的索引數據。所以對于插人刪除比較頻繁的表,如果使用一段時間后,索引數據中存在著很多無效的數據,這樣會影響系統的性能。對于這種類型的表,我們要定期重建索引,提高索引的利用率。
對交易數據、索引等大表建立分區表,按月進行數據劃分。每個月數據庫自動生成并調用一個分區表,整個月的數據占用獨立的分區表,這樣從優化數據庫結構、提高數據庫訪問速度、便于管理、方便維護等角度來看都是可圈可點的。
(4)充分利用數據庫具有的高級功能,如Oracle的數據庫鏈接、同義詞、高級復制等。在Oracle數據庫應用系統中,常常需要在各個數據庫之前進行數據的傳輸和同步,有時也需要對某些表的數據進行集中管理。這樣我們就可以充分利用數據庫的一些功能。如果需要服務器間同步數據時,可以利用數據庫的高級復制功能。如果需要將某些表進行集中管理,則可以使用數據庫連接和同義詞,將表存儲到某一數據庫,其余數據庫利用同義詞遠程訪問列表。
(5)定期分析數據庫負荷,優化消耗系統資源大的SQL語句。隨著深圳地鐵客流量的不斷增多,數據庫數據量也同比增大,每天數據庫新增近46萬筆數據,數據庫的負荷增加,數據庫系統的性能問題就越來越突出。為此,我們分析了數據庫的負荷情況,發現瓶頸出現在系統I/O上,而對系統I/O“貢獻’最大的當屬SQL語句。我們對一些性能相對低下、消耗系統資源大的SQL語句作優化調整,權衡響應時間和吞吐量之間的關系,盡可能減少磁盤獲取所需要數據的時間,達到了降低系統I/O的目的。
(6)對于安裝RAC的數據庫系統,應充分利用負載均衡功能。深圳地鐵一期的18個車站計算機系統都安裝有Oracle服務器端。在這些服務器上,如果不配置RAC使用負載均衡,就有可能使某臺服務器處于繁忙狀態,而另一臺則一直在空閑中。這樣不但影響系統性能,而且也是系統安全的一個隱患。我們通過RAC配置服務器自動使用負載均衡,來解決服務器間忙與不忙的問題。另外,對于某些個別的連接也可以手工指定使用的服務器。
5 結束語
從深圳地鐵開通前AFC系統數據庫投人使用,到現在耐年多的時間里,AFC系統信息管理部門深入分析AFC系統的實際運行情況和特點,建立和健全規章制度和強化執行力度,總結出一套行之有效的數據庫應用和優化的辦法,AFC系統數據庫系統一直穩定運行,保持“零”宕機的記錄。
參考文獻
1.簡煉.深川地鐵智能收費承統國產化創新,現代城市軟道交通,2005 (5)
2.薩師煊.數據庫系統棍論.北京:高等教育出版社,2000
3.Hector Carcia-Molina, Jeffrey D.,Ullman Jennifer Widom.數據庫系統實現,北京:機械工業出版社,2002
4.王倫文,鐘子發,張炙.ORACLE數據庫設計優化與實踐.電訊技術,2001(1)
5.楊德仁,馬曉燕.大型數據庫優化設計方案.計算機系統應用,2001 (5)
標簽:
中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。