孫悅程 張悅 劉衛華 周麗麗
摘要:當前Oracle被廣泛部署于氣象業務應用系統,隨著氣象現代化的不斷發展,氣象部門對于數據庫系統的高可用性十分重視。OracleRAC作為實時應用集群的技術,能夠對高訪問量和高數據量查詢進行有效支撐。本文在OracleRAC技術基礎上,實施設計并實現了大連氣象綜合數據庫,并通過數據庫審計系統對大連氣象綜合數據庫進行監控管理。
關鍵詞:OracleRAC:高可用性;氣象
大連氣象綜合數據庫依托于OracleRAC雙機集群技術,使大連氣象局全部相關探測數據從目前分散在各個業務系統、分散在各數據庫中的各個表中統一至一套合理設計的一體化數據庫平臺上,使得困擾我局多年的基礎氣象探測數據雜亂零散的現狀得以較好的解決,為基于氣象數據的預報預警業務、公眾服務業務等相關業務提供堅實的基礎。
1 Oracle RAC技術
Oracle RAC的實質是位于不同操作系統的Oracle實例節點同時訪問同一個Oracle數據庫,每個節點間通過私有網絡進行通信,互相監控節點的運行狀態,Oracle數據庫所有的數據文件、聯機日志文件、控制文件等均放在集群的共享存儲設備(由ASM管理)上,所有集群節點可以同時讀寫共享存儲。Oracle RAC的基本邏輯結構如下所示:
為了保證數據庫的穩定性和高可用性,項目采用了兩臺Linux主機(服務器A與服務器B)外掛共享磁盤陣列存儲(華為Ocean Store)的硬件結構,在內網安裝部署了Oracle RAC集群環境,利用氣象業務網實時收集各部門原始氣象資料文件(氣象數據PC)入庫存儲后,提供給各業務部門和終端用戶使用。
對于純文本類及純圖像類數據,使用了一臺文件服務器,創建文件收集和存儲目錄,完成數據的分門別類的整理收集。
具體的物理結構圖如下圖:
通過Oracle RAC集群,構建了一個高性能、高可靠的數據庫集群系統,其優勢在于:
1.1 可以實現數據庫的高可用性
Oracle RAC集群可以根據設定的調度策略,在兩個節點(服務器A與服務器B)間實現負載均衡,每個節點都是工作的,同時也處于互相監控狀態,當某個節點出現故障時,RAC集群自動將其故障節點從集群隔離,并將故障節點的請求自動轉移到另一節點上,從而實現服務透明切換。
1.2 提高了數據庫并發連接數
Oracle RAC集群會根據請求自動分配連接節點。當一個客戶端發送請求到Oracle RAC集群后,集群將根據負載均衡策略,會把請求發送給其中某一節點處理,從而提高數據庫的并發連接數,而這一切對于客戶端來說都是透明的。
1.3 具有很好的擴展性
在目前使用雙機兩節點的情況下,可以通過增加節點無縫擴展RAC集群從而提高集群可用性和并發連接數。
Oracle RAC集群搭建完成以后,系統順利通過了各項測試:
(1)浮動IP切換測試;
(2)節點機意外宕機、恢復測試;
(3)Oracle集群負載均衡功能測試。
2 數據庫設計
在數據表的設計方面:
2.1 合理設計數據庫表結構
對于經常使用的表(如自動站數據表),由于其使用頻率很高,要盡量減少表中的記錄數和字段數。例如,自動站數據(包括常規自動站和區域自動站)設計成一張表,雖然可以方便程序的設計與維護,但經過分析發現,由于數據量太大,會影響數據的查詢。如果根據要素分類和使用頻率情況,將自動站數據分別設計為常規自動站自動項目表、常規自動站人工項目表、常規自動站雨量信息表、區域自動站數據表及區域自動站雨量表等,則可以大大提高查詢效率。
2.2 根據經常查詢的字段合理設計索引
必要的主鍵合理的索引能夠提高整個數據庫的操作效率。在索引設計中,索引字段應挑選經常出現在Where子句中的字段,特別是大表的字段;復合索引建立的順序應當和查詢Where字句書寫的順序一致,從而避免索引建立后未被正常使用。例如自動站數據表在日期時間和站號上創建復合索引,因為這兩個要素是最經常出現在SQL查詢語句中。
3 結語
大連氣象綜合數據庫系統實現了一套整合各類氣象數據的實時氣象數據庫,提供了數據庫結構的詳細說明以及對應的接口,為局內各業務單位基于基礎氣象數據的預報預警、氣象服務等業務應用提供了底層數據支撐和便利。
作者簡介:第一作者:孫悅程,男,工程師,主要研究氣象信息處理。