?

關于Oracle數據庫的一般維護分析

2011-07-21 06:37胡琪
科技與生活 2011年13期
關鍵詞:應用程序排隊沖突

胡琪

摘?要文章主要分析了大型數據庫Oracle的主動維護和按需維護的一般方法,重點探討了維護過程中的安全性、門閂鎖與排隊鎖的競爭以及如果周期性監測并解決鎖沖突的問題,最后總結了通用例程維護過程中,需要注意的問題。

關鍵詞Oracle;維護

中圖分類號TP文獻標識碼A文章編號1673-9671-(2011)071-0102-01

數據庫的維護工作在整個數據庫的使用過程中都要進行。由于Oracle的RDBMS 非常嚴謹,所以它在相當長的使用周期中都不會崩潰。但是,這一嚴謹性要求諸多組成部分之間相互協作。這樣,就需要時常維護此數據庫系統,使其不僅能夠正常運轉而且要保證可接受的響應時間和吞吐率,而且要對額外的負載保證其可擴展性。如果考慮到數據庫的功能需要有多個組成部分來實現,以及不斷增長的數據處理需求,就可以理解數據庫維護工作的必要性。這些維護工作包括:補丁/版本升級、初始化參數的改變、分段、索引重構、計算段統計信息、錯誤檢測及修正,以及在管理權限下的其他各種維護任務,這些都是必須的。

1主動維護和按需維護

維護可以是主動維護和按需維護。按需維護一般是針對當時出現的問題,盡快采取正確措施,通常是立刻進行。相反,主動維護包括預見到一些一般或非一般問題并采取措施防止其發生。在任何情況下,為保證及時發現出現的問題并作出相應處理,必須進行經常性的監測。通常情況下,按需維護可能需要立即停工以防止將來不得不進行更長時間的停工維護。而主動維護也可能需要停工,因為沒有急待處理的問題,可以在非數據庫訪問高峰期再來進行需要停工才能進行的維護工作。而且,對于主動維護有了一定的熟悉之后,可以盡量避免按需維護,防止在數據庫訪問的高峰期進行長時間的停工維護。

1.1在所有可能級上實現健壯的安全性

在數據庫環境中,一項最重要的維護任務是增強安全性。對于任何支持關鍵任務的環境,

健壯的安全性都是必不可少的。缺少安全性會直接影響可用性:①由于用戶或管理員的誤操作而破壞數據庫的安全性;②由于暴露了數據庫及相關組成部分(硬件、軟件和網絡),而易受到惡意的攻擊。

為了使用戶錯誤所造成的損失最小并可能防止受到惡意攻擊的傷害,必須面向數據庫及其擴展構件如網絡和來實現安全性。一個重要的維護是要關注安全錯誤信號并采取措施更正。這一技巧廣泛應用于與數據庫相關的安全性中。同時,Oracle8和第三方還提供了各種各樣的終端用戶認證方法。除了終端用戶認證,客戶服務器機器也要被認證。特別是,如果客戶通過互聯網絡輸入數據庫請求,為了防止數據庫被侵犯必須進行這種認證。有多種機制支持客戶/服務器認證。

1.2理解、防止并解決門閂鎖和排隊鎖的競爭

Oracle服務器利用幾種機制,如門閂鎖、排隊鎖、分布鎖和全局鎖來控制SGA(緩沖區cache、行cache、庫函數cache等)內對內部數據結構的共享訪問。然而,這些內部的加鎖機制在許多時候也引起競爭,直接影響性能并限制吞吐量和可用性。因此,需要對這些內部鎖的機制以及如何檢測競爭有一個全面的了解,采取適當的操作技巧。

首先來了解兩種最常用的內部鎖機制:門閂鎖和排隊鎖。門閂鎖是復雜的細粒度串行化構件,用來控制對SGA內部結構的訪問;排隊鎖與門閂鎖類似,保護特定的結構,但是它們在實現上更高級,除了依賴互斥策略,排隊鎖允許資源在多個級別共享。根據鎖的類型的不同,解決鎖競爭的方法也有多種,如:重作分配和重作拷貝數;對于行Cache對象鎖,減少這種鎖的競爭的方法之一是增大SHAREDPOOL初始化參數的大小等??傊?,重要的是要預先主動地通過調解所有的SQL資源,之后再采用上面的方法來解決這些問題。

1.3周期性地監測并解決鎖沖突

任何多用戶的數據庫都需要鎖,因此很容易引起鎖沖突。對于Oracle,沖突一般很少,但確實也有時發生。當鎖沖突發生時可能嚴重影響其他各種運行的會話,就會使常規的操作混亂—除非鎖問題成為DBA監測數據庫時所必須警覺的事情,這樣可以采取措施來解決潛在的問題。Oracle提供了許多工具來監測鎖問題,如Oracle和第三方工具、特定的SQL訪問、使用catblock.sql和utllockt.sql腳本文件等。但是,有時這些常規的方法并不能確定鎖沖突問題。例如,某些運行時間長的關鍵作業可能會受到影響而沒有被殺死,或者許多進程受到影響,使得整個程序掛起。解決這種情況需要使用某些OS和數據庫調試工具(如oradbx或orad ebug及truss)來獲得進程狀態或系統狀態,跟蹤發布的SQL調用等。

2通用維護例程需要注意的問題

這里列出一些別的可能出現問題的情形,DBA需要監測這些情形作為其通常管理例程的一部分,并在需要時解決。

1)除了常規的鎖沖突以外,要顯式地警惕死鎖。

2)警惕效率低下的應用S Q L代碼,并在需要時調試代碼監測各種各樣應用程序對系統/數據庫資源的使用,保證這些資源在任何級都被要刪除。特別是帶有選項,如并行訪問選項(Parallel Query Option,PQO)和SORTAREASIZE動態設置,用戶/應用程序可能會使系統飽和,會影響性能和可用性。

3)同時,要熟悉應用程序使用的特定數據庫選項,保證這些選項被最優地配置。例如,如果應用程序頻繁地執行Hash操作,要保證HASH_AREA_SIZE和HASH_MULTIBLOCK_IO_COUNT設置為相等,否則,可能會使系統資源很快用光。

4)顯式地編寫監測腳本,檢查某些潛在的危機(如段數達到了MAXEXTENTS、足夠的自由空間供段擴展等待),以便采取正確的措施。

3結語

總之,Oracle數據庫雖然功能齊全、操作靈活,但在維護過程中也需要有很強的技巧性。需要使用各種各樣的進程去防止、監測、查找、解決引起數據庫故障的各種因素,如果忽略了周期性的維護工作,有可能發生數據庫崩潰。因此,必須預先做好這些工作以保障數據庫正常運行。

參考文獻

[1]王海翔.Oracle數據庫軟件研究[J].現代商貿工業,2010.

[2]巢子杰.Oracle數據庫優化探究[J].軟件導刊,2010.

猜你喜歡
應用程序排隊沖突
耶路撒冷爆發大規模沖突
回避沖突不如直面沖突
沖突管理
刪除Win10中自帶的應用程序
谷歌禁止加密貨幣應用程序
排隊做操
全面沖突管理的構建與應用
三星電子將開設應用程序下載商店
微軟軟件商店開始接受應用程序
排隊回北方
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合