【摘要】運營商的運營支撐系統,是其企業運營的基礎和重要財富,存放了很多重要及敏感的數據。為了保障數據的安全有效,保障運營支持系統不間斷運行,更好地為用戶提供服務,做好數據庫維護工作至關重要。本文以informix數據庫為例詳細闡述了數據庫需要完成的日常維護工作及方法。
【關鍵詞】數據庫監控維護優化
數據庫系統是用于組織和存取大量數據的管理系統,方便多用戶使用計算機軟、硬件資源組成的系統。它與文件系統的重要區別是數據的充分共享、交叉訪問以及與應用(程序)的高度獨立性。
數據庫系統由計算機系統、數據庫、數據庫描述、數據庫管理系統、數據庫應用程序和用戶組成。
計算機系統指的是用于數據庫管理的計算機硬件資源和基本軟件資源。硬件資源包括CPU、大容量內存(用于存放操作系統,數據庫管理系統、應用程序、數據庫等)、直接存取的外部存儲設備(硬盤)。軟件資源包括操作系統和應用程序。
運營商的運營支撐系統,涵蓋了運營商的經營數據、用戶的資料數據及各項分析數據等各項重要數據,為了支撐眾多重要的數據,需要強大的數據庫系統作支撐,運營支撐系統一般均采用網絡數據庫,即可實現數據的共享,同時也方便各種終端的接入,為服務客戶提供了多渠道及多地點,為了保障運營支撐系統的7*24小時不間斷高效安全地運行,可以方便及時為用戶提供各項業務,所以對數據庫提出較高要求,既要快速存取又要保證安全,并且數據不被泄露,所以做好數據庫的各項維護工作尤其重要。
數據庫日常維護工作是系統管理員的重要職責,對已經建好而且正常使用的運營支撐系統而言,不同數據庫的維護內容大同小異,現以Informix數據庫為例進行,其內容主要包括以下幾個部分:
1數據庫備份
Informix-Online數據庫因其具有高性能、高可靠性、支持數據完整性定義/檢查等特性而得到廣泛應用。對于使用中的數據庫,數據備份的安全可靠性便成為人們關注的焦點。
運營商使用informix數據庫的運營支撐系統一般采用On-Bar實用程序進行數據庫備份。
ON-Bar是一個完全可伸縮的備份產品,用于Informix數據庫。它讓您可以并行地運行備份和恢復,根據您選擇要運行的線程數量,這可以讓您大大提高它們的速度。ON-Bar適用于任何規模的Informix系統。
ON-Bar能滿足減少系統備份和恢復時間的要求。當機器上正在運行其它處理時,ON-Bar也可以運行,因為當備份運行時,它不要求數據庫的任何部分脫機。但是,當ON-Bar正在運行時,它確實要消耗大量系統資源,因此建議在運行備份時,盡量減少其它正在運行的處理的數量,一般情況下會根據運營支撐系統的使用情況安排在晚上22:00后至凌晨進行數據庫的備份,由于現在備份網絡多采用SAN方式,光纖通道速度快,同時也不影響IP網絡的使用,常采用每天晚上進行全備份、邏輯日志寫滿后即刻備份的策略進行數據庫備份。
2數據庫備份介質的異地存放
運營商運營支撐系統都應該建有異地容災系統,為了保證在核心機房遭遇自然災害及各種意外事故時,可以使用異地的容災系統進行生產運行。但是由于各種原因實際上并不一定建立有異地容災系統,在沒有時需要將備份介質進行異地存放,存放的周期可以選擇每周進行一次。以確保數據庫在發生意外時可以將數據庫完整地進行恢復。
3數據庫一致性校驗
運營支撐系統數據庫的一致性是保證數據完全正確的基礎,是提供運營支撐的基本要求,為了保證數據庫服務器磁盤空間沒有不一致性,數據庫管理員需要定期對數據庫進行一致性檢查。
數據庫一致性檢查包括dbspaces、blobspaces、塊、表、索引、磁盤頁的檢查。
數據庫一致性檢查常用oncheck實用程序進行,oncheck在檢查過程中發現問題時,它會提供一個錯誤信息,表示問題所在,根據提示的錯誤信息進行后續處理, oncheck可以解決的問題時索引混亂或者是數據頁混亂,對于此類問題oncheck可以解決,但是建議還是用SQL命令刪除和重建索引可以快速地解決問題。
oncheck實用程序在運行時,有時會鎖定表和索引,影響運營支撐系統的正常使用,建議還是與備份一樣安排在訪問較少的時間段進行,建議每月至少做一次一致性檢查,以保證數據庫的完整性,避免以后出現大的問題。
4數據庫優化
運營支撐數據庫在建立時需要配置好各項參數,保證主機與陣列、光纖交換機的性能正常。各項配置參數需要經過計算,并通過運行初期即試運行階段的各項監控,根據計算與監控結果對數據庫參數進行調整。在數據庫運行穩定后,優化的重點在數據庫策略,如部分大表處理性能不佳,索引、SQL、應用的使用不恰當等。
在日常維護過程中,需要重點優化SQL命令及高度的統計更新(高優)及索引的分析與重建等問題。
各項應用的實現最終均由SQL命令實現對表的各項訪問,包括查詢、插入、修改、刪除等,表的訪問方式有索引和全表掃描方式,選擇度是決定是否使用索引的關鍵,特別的函數和操作不會使用索引。所以日常的操作一般要使用索引進行訪問,效率高而且可以避開鎖沖突,批處理時可以考慮全表掃描,當選擇記錄數> 10%時,可以嘗試全表掃描。
統計更新即是維護時所說的優化,數據庫統計更新信息對幫助informix查詢優化器選擇查詢路徑至關重要,查詢優化器用這個策略對SQL語句檢索數據。如果查詢優化器知道表列中數據的分布,則可以大大提高性能,優化包括對數據庫表、存儲過程、索引的優化。
統計信息的更新方式有高、中、低三種,每種方式收集不同的信息量,存放在systables、sysindexes、syscolumns、sysdistrib等informix系統表中。查詢優化器用這些表中的信息確定用哪個策略(查詢路徑)取得where子句中指定的數據。
在日常維護中建議用medium對整個數據庫運行update statistics,在所有頭索引列運行update statistics high,這是索引中第一列,這一步生成這些列數據分布的詳細信息,對復合索引中的所有列運行update statistics low。
運營支撐系統在運行過程中會有大量信息的增加與更新、刪除等操作,所以數據庫管理員應經常對數據變化量大且經常訪問的數據庫表及索引執行優化命令,由于優化命令很費時間,建議放在閑時進行,并且避開數據庫備份、一致性檢查的時間。
5監視數據庫系統運行狀況
運營支撐系統數據庫維護過程中,需要監控數據庫各項性能數據,用命令onstat實現。Onstat是使用最廣泛的命令行實用程序,用來讀取數據庫服務器實例的共享內存結構并提供當前informix實例狀態的大量有用信息,它不對共享內存結構進行鎖定,使用很少開銷,因此可以隨時使用,讀取到的信息是發出命令前的當前信息,數據在執行命令的同時改變。常用的命令如下:
onstat 可以打印當前IDS的狀態,此輸出中顯示了IDS版本、服務器的運行方式、啟動與運行的時間長度、使用的內存量。如果服務器關閉則會出現錯誤信息shared memory not initialized。
onstat p顯示系統的基本I/O與性能配置文件,這些信息包括服務器上次重新啟動以來的時間和上次使用onstat z命令復位統計信息以來的時間。
onstat m顯示最后20行IDS日志消息,這個消息文件包含服務器及要監視的系統關鍵組件的所有信息。
onstat u監視用戶正在干什么,關鍵字段是sessid,標識IDS內部跟蹤用戶的對話ID,這是刪除用戶對話和分析用戶當前查詢和其他對話數據時需要知道的。
onstat l顯示當前邏輯日志的狀態,檢查監視過程中要注意是否有邏輯日常沒有備份,若有則需要查找原因并及時進行備份,當所有所以日志都使用完后而沒有可重復寫入的邏輯日志將會導致數據庫hung住,而無法進行任何數據庫操作,此時支撐系統將完全無法使用。
onstat x顯示當前所有事務
onstat k顯示所有活動鎖,這個顯示可能很長,可能需要用more進行查看,也可以用wc進行計數后再進行查看,從輸出結果中可以看出誰擁有鎖、鎖的是哪個表、是否有人在等待此鎖,并且可以看出鎖的類型,通過對輸出結果的分析對查找死鎖有幫助。
onstat d顯示兩個重要的項目,dbspaces和磁盤塊的布局,每個塊和dbspaces的狀態,應當經常打印和保存此命令的輸出。恢復遇到故障時,就需要這個信息,其表示重建系統所需的每個dbspaces和塊。
onstat D顯示塊的I/O,在性能調試時非常有用。
onstat g此命令是IDS7.0以上版本命令的子集,有很多的命令,常用的監視各種狀態的進程、虛擬處理器的狀態、運行的SQL語句與類型等信息。
6保證系統數據安全,定期更改用戶口令
為保證系統數據的安全,數據庫管理員必須依據系統的實際情況,執行一系列的安全保障措施。其中,周期性的更改用戶口令是比較常用且十分有效的措施。
7結束語
為了保障運營支撐系統的安全有效不間斷運行,保障在數據庫遭遇意外丟失時可以及時恢復有效數據,數據庫管理員需要熟練掌握數據庫維護的各項重要工作,在日常工作中為企業的正常運行保駕護航。