專利名稱:一種數(shù)據(jù)庫資源的調(diào)控裝置及方法
技術領域:
本發(fā)明涉及數(shù)據(jù)庫系統(tǒng)管理領域,尤其涉及一種數(shù)據(jù)庫資源的調(diào)控裝置及方法。
背景技術:
數(shù)據(jù)庫作為系統(tǒng)中的基礎設施,長期為整個軟件系統(tǒng)服務,其中的數(shù)據(jù)可能要保 存3年5年或者更長。因此,在數(shù)據(jù)庫領域,不管使用的數(shù)據(jù)庫管理系統(tǒng)是哪一種,都無法 避免的是如何實現(xiàn)數(shù)據(jù)庫的高可用性。盡管不同的數(shù)據(jù)庫廠商,都提供相應的功能,如數(shù) 據(jù)庫的內(nèi)存結構(數(shù)據(jù)庫資源管理進程,數(shù)據(jù)庫診斷進程)及非計劃的宕機(系統(tǒng)失敗、數(shù) 據(jù)異常)到計劃內(nèi)的停機維護(系統(tǒng)改變、數(shù)據(jù)變化)。 但是,根據(jù)對實際的生產(chǎn)運營數(shù)據(jù)庫環(huán)境的分析,發(fā)現(xiàn)有些數(shù)據(jù)庫管理的環(huán)境比 較復雜或是不可預知的。如失控的查詢、或者因疏忽而導致對詳單的研究返回4000000行 數(shù)據(jù)時,可能會對系統(tǒng)的性能造成影響,嚴重時會導致系統(tǒng)故障,雖然數(shù)據(jù)庫告警日志信息 記錄了這一切,但顯然是為時過晚,而現(xiàn)有技術中還沒有有效的解決方案。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術問題是提供一種數(shù)據(jù)庫資源的調(diào)控裝置,以及一種數(shù)據(jù)庫 資源的調(diào)控裝置,對可能導致系統(tǒng)異常的數(shù)據(jù)庫操作進行限制,保障數(shù)據(jù)庫系統(tǒng)的正常運 行。 為解決上述技術問題,本發(fā)明是通過以下技術方案實現(xiàn)的
—種數(shù)據(jù)庫資源的調(diào)控裝置,該裝置包括 資源限制配置模塊,用于配置資源限制信息,包括各個監(jiān)控對象及其相應的限制 觸發(fā)條件和限制方式; 資源限制監(jiān)控模塊,用于根據(jù)所述資源限制信息對所述各監(jiān)控對象分別進行監(jiān) 控,對于其中滿足相應限制觸發(fā)條件的監(jiān)控對象,采用相應的限制方式對該監(jiān)控對象的行 為進行限制操作。 上述裝置還包括資源限制日志記錄模塊,用于記錄所述資源限制監(jiān)控模塊在監(jiān)
控過程中進行了限制操作的監(jiān)控對象的相關信息,生成日志,供用戶瀏覽及分析。 上述裝置中,所述資源限制配置模塊還用于配置各個監(jiān)控對象相應的監(jiān)控時間;
所述資源限制監(jiān)控模塊在相應的監(jiān)控時間內(nèi)對各個監(jiān)控對象進行監(jiān)控。 —種數(shù)據(jù)庫資源的調(diào)控方法,包括以下步驟 預先配置資源限制信息,包括各個監(jiān)控對象及其相應的限制觸發(fā)條件和限制方 式; 根據(jù)所述資源限制信息對所述各監(jiān)控對象分別進行監(jiān)控,對于其中滿足相應限制
觸發(fā)條件的監(jiān)控對象,采用相應的限制方式對該監(jiān)控對象的行為進行限制操作。 上述方法還包括在監(jiān)控過程中,對于所述行為被限制的監(jiān)控對象的相關信息進
行記錄,生成日志,供用戶瀏覽和分析。
3
上述方法中,預先配置的資源限制信息中還包括所述各個監(jiān)控對象的監(jiān)控時間, 在相應的監(jiān)控時間內(nèi)對所述各個監(jiān)控對象進行監(jiān)控。 上述方法中,所述監(jiān)控對象包括數(shù)據(jù)庫模式定義語言語句、結構化查詢語言語句 以及當前活動的語句中的至少一種。 上述方法中,所述監(jiān)控對象為數(shù)據(jù)庫模式定義語言語句時,相應的限制觸發(fā)條件 為操作權限在預定許可范圍之外; 所述監(jiān)控對象為結構化查詢語言語句時,相應的限制觸發(fā)條件為所需占用的 CPU或內(nèi)存資源超過相應預定閾值; 所述監(jiān)控對象為當前活動的語句時,相應的限制觸發(fā)條件為所需占用的CPU或 內(nèi)存資源超過相應預定閾值、所需占用的I/O資源超過相應預定閾值和/或執(zhí)行時間不在 允許時間范圍內(nèi)。 本發(fā)明具有以下有益效果 本發(fā)明采用對運行于數(shù)據(jù)庫系統(tǒng)中的各種對象進行監(jiān)控的方法,對其中可能導致 數(shù)據(jù)庫系統(tǒng)異常的監(jiān)控對象,限制其占用的數(shù)據(jù)庫資源,從而保證了數(shù)據(jù)庫系統(tǒng)的穩(wěn)定可 靠的運行。
圖1是本發(fā)明的一個實施例中數(shù)據(jù)庫資源的調(diào)控方法流程圖;
圖2是本發(fā)明的一個實施例中限制DDL操作的方法流程圖;
圖3是本發(fā)明的一個實施例中限制SQL操作的方法流程圖;
圖4是本發(fā)明的一個實施例中限制當前活動語句的方法流程圖,
具體實施例方式
下面結合附圖及具體實施例對本發(fā)明作進一步詳細的描述 本實施例中數(shù)據(jù)庫資源的調(diào)控裝置包括資源限制配置模塊、資源限制監(jiān)控模塊、 資源限制日志記錄模塊;各個功能模塊的作用分別為 資源限制配置模塊用于配置資源限制信息,包括各個監(jiān)控對象及其相應的限制 觸發(fā)條件、限制方式、監(jiān)控時間; 資源限制監(jiān)控模塊用于根據(jù)資源限制信息對各個監(jiān)控對象分別進行監(jiān)控,對于 其中滿足相應限制觸發(fā)條件的監(jiān)控對象,采用相應的限制方式對該監(jiān)控對象的行為進行限 制操作; 資源限制日志記錄模塊,用于記錄資源限制監(jiān)控模塊在監(jiān)控過程中進行了限制操 作的監(jiān)控對象的相關信息,生成日志,供用戶瀏覽及分析。 請參閱圖l,該圖所示為上述裝置對數(shù)據(jù)庫資源進行調(diào)控的方法流程,包括以下步 驟 101、通過資源限制配置模塊來配置資源限制信息,包括監(jiān)控對象及相應的限制 觸發(fā)條件、限制方式、監(jiān)控時間。其中,監(jiān)控對象可以為DDL (Data Description Language, 數(shù)據(jù)庫模式定義語言)語句、SQL (Structured Query Language,結構化查詢語言)語句、當 前活動的語句;每個監(jiān)控對象的限制觸發(fā)條件可以為一個或者多個;監(jiān)控時間可以為連續(xù)時間段,也可為離散時間段。 對于DDL語句,限制觸發(fā)條件可以設定為遠程DDL語句,限制方式為拒絕執(zhí)行,即 拒絕執(zhí)行遠程DDL操作,只有管理數(shù)據(jù)庫的DBA才有權限執(zhí)行DDL操作;
對于SQL語句,限制觸發(fā)條件可以設定為所需耗費的CPU或內(nèi)存資源超過預定閾 值,限制方式為拒絕執(zhí)行或僅記錄該語句的相關信息以供查看分析; 對于當前活動的語句,限制觸發(fā)條件可以設定為I/O開銷大于預定值、占用的CPU 資源大于預定閾值,還可限定其執(zhí)行時間,限制方式為拒絕執(zhí)行或僅記錄該語句的相關信 息以供查看分析。 102、運行資源限制監(jiān)控模塊,在預定的監(jiān)控時間內(nèi)對各個監(jiān)控對象分別進行監(jiān) 控,對于其中滿足相應限制觸發(fā)條件的監(jiān)控對象,采用相應的限制方式對該監(jiān)控對象的行 為進行限制操作。具體操作方法如下 按照預定的監(jiān)控時間,在數(shù)據(jù)庫里建立后臺作業(yè)Job,該Job負責執(zhí)行一系列后臺 腳本。如 (1)限制DDL操作的后臺腳本。具體流程請參見圖2所示,先獲取DDL語句,再判 斷其操作權限是否在許可范圍內(nèi),若不在許可范圍內(nèi),則對該語句進行限制操作,拒絕其執(zhí) 行并通過資源限制日志記錄模塊記錄其相關信息以供分析。 (2)捕獲耗費性能的后臺腳本。具體流程請參見圖3所示,這里先根據(jù)不同操作 平臺上的命令獲得CPU或內(nèi)存的進程號,再根據(jù)進程號定位到當前的SQL語句,然后判斷該 SQL語句所占用的CPU或內(nèi)存資源是否超過了預定閾值,若超過,則拒絕其執(zhí)行并通過資源 限制日志記錄模塊記錄其相關信息。 (3)監(jiān)控當前活動的后臺腳本。具體流程請參見圖4所示,這里先獲取數(shù)據(jù)庫中 的活動進程,然后根據(jù)sql_addreSS獲取當前的語句,接著依據(jù)Hash值找到該語句的執(zhí)行 計劃,判斷該語句是否滿足限制觸發(fā)條件(即所占用的I/O資源或者CPU資源超過預定閾 值,或者執(zhí)行時間不在允許時間范圍內(nèi)),則拒絕其執(zhí)行并通過資源限制日志記錄模塊記錄 其相關信息。 103、資源限制日志記錄模塊根據(jù)記錄信息生成日志,供用戶瀏覽和分析。 以上實施例僅用以說明本發(fā)明的技術方案而非限制,僅僅參照較佳實施例對本發(fā)
明進行了詳細說明。本領域的普通技術人員應當理解,可以對本發(fā)明的技術方案進行修改
或者等同替換,而不脫離本發(fā)明技術方案的精神和范圍,均應涵蓋在本發(fā)明的權利要求范
圍當中。
權利要求
一種數(shù)據(jù)庫資源的調(diào)控裝置,其特征在于,該裝置包括資源限制配置模塊,用于配置資源限制信息,包括各個監(jiān)控對象及其相應的限制觸發(fā)條件和限制方式;資源限制監(jiān)控模塊,用于根據(jù)所述資源限制信息對所述各監(jiān)控對象分別進行監(jiān)控,對于其中滿足相應限制觸發(fā)條件的監(jiān)控對象,采用相應的限制方式對該監(jiān)控對象的行為進行限制操作。
2. 如權利要求1所述的數(shù)據(jù)庫資源的調(diào)控裝置,其特征在于,該裝置還包括資源限制 日志記錄模塊,用于記錄所述資源限制監(jiān)控模塊在監(jiān)控過程中進行了限制操作的監(jiān)控對象 的相關信息,生成日志,供用戶瀏覽及分析。
3. 如權利要求1或2所述的數(shù)據(jù)庫資源的調(diào)控裝置,其特征在于,所述資源限制配置模 塊還用于配置各個監(jiān)控對象相應的監(jiān)控時間;所述資源限制監(jiān)控模塊在相應的監(jiān)控時間內(nèi) 對各個監(jiān)控對象進行監(jiān)控。
4. 一種數(shù)據(jù)庫資源的調(diào)控方法,其特征在于,包括以下步驟預先配置資源限制信息,包括各個監(jiān)控對象及其相應的限制觸發(fā)條件和限制方式; 根據(jù)所述資源限制信息對所述各監(jiān)控對象分別進行監(jiān)控,對于其中滿足相應限制觸發(fā) 條件的監(jiān)控對象,采用相應的限制方式對該監(jiān)控對象的行為進行限制操作。
5. 如權利要求4所述的數(shù)據(jù)庫資源的調(diào)控方法,其特征在于,該方法還包括在監(jiān)控 過程中,對于所述行為被限制的監(jiān)控對象的相關信息進行記錄,生成日志,供用戶瀏覽和分 析。
6. 如權利要求4或5所述的數(shù)據(jù)庫資源的調(diào)控方法,其特征在于,該方法中,預先配置 的資源限制信息中還包括所述各個監(jiān)控對象的監(jiān)控時間,在相應的監(jiān)控時間內(nèi)對所述各個 監(jiān)控對象進行監(jiān)控。
7. 如權利要求4所述的數(shù)據(jù)庫資源的調(diào)控方法,其特征在于,所述監(jiān)控對象包括數(shù)據(jù) 庫模式定義語言語句、結構化查詢語言語句以及當前活動的語句中的至少一種。
8. 如權利要求7所述的數(shù)據(jù)庫資源的調(diào)控方法,其特征在于,所述監(jiān)控對象為數(shù)據(jù)庫 模式定義語言語句時,相應的限制觸發(fā)條件為操作權限在預定許可范圍之外;所述監(jiān)控對象為結構化查詢語言語句時,相應的限制觸發(fā)條件為所需占用的CPU或 內(nèi)存資源超過相應預定閾值;所述監(jiān)控對象為當前活動的語句時,相應的限制觸發(fā)條件為所需占用的CPU或內(nèi)存 資源超過相應預定閾值、所需占用的I/O資源超過相應預定閾值和/或執(zhí)行時間不在允許 時間范圍內(nèi)。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)庫資源的調(diào)控裝置及方法。該調(diào)控裝置包括資源限制配置模塊和資源限制監(jiān)控模塊;相應的調(diào)控方法為通過資源限制配置模塊預先配置資源限制信息,包括各個監(jiān)控對象及其相應的限制觸發(fā)條件和限制方式;然后,運行資源限制監(jiān)控模塊,根據(jù)所述資源限制信息對所述各監(jiān)控對象分別進行監(jiān)控,對于其中滿足相應限制觸發(fā)條件的監(jiān)控對象,采用相應的限制方式對該監(jiān)控對象的行為進行限制操作。本發(fā)明采用對運行于數(shù)據(jù)庫系統(tǒng)中的各種對象進行監(jiān)控的方法,對其中可能導致數(shù)據(jù)庫系統(tǒng)異常的監(jiān)控對象,限制其占用的數(shù)據(jù)庫資源,從而保證了數(shù)據(jù)庫系統(tǒng)的穩(wěn)定可靠的運行。
文檔編號G06F17/30GK101763389SQ20081024149
公開日2010年6月30日 申請日期2008年12月23日 優(yōu)先權日2008年12月23日
發(fā)明者邵旭輝 申請人:中興通訊股份有限公司