基於實時資料庫的報警冗餘方法和系統與流程
2023-05-31 22:15:56 3

本發明涉及實時資料庫的報警監控領域,具體地,涉及基於實時資料庫的報警冗餘方法和系統。
背景技術:
報警作為監控軟體一個必不可少的核心在工業、交通、智能建築等領域發揮著重要的作用,出於數據安全的考慮,除了基本數據的冗餘備份,報警的冗餘備份也必不可少。
公開號為cn202736026u的專利文獻公開了一種資料庫遠程冗餘備份系統,具有承載資料庫的本地伺服器,還包括:遠程備份伺服器,通過第一網絡鏈路連接所述本地伺服器並接收本地伺服器傳輸的備份數據;遠程冗餘備份伺服器,通過第二網絡鏈路連接所述本地伺服器並接收本地伺服器傳輸的備份數據。
在現有的實時資料庫系統中並未對報警冗餘技術有專門的研究。特別是當發生雪崩報警時如何高性能的處理雪崩報警也是一個難題。
技術實現要素:
針對現有技術中的缺陷,本發明的目的是提供一種基於實時資料庫的報警冗餘方法和系統。
根據本發明提供的一種基於實時資料庫的報警冗餘方法,包括:
報警接收步驟:接收報警觸發源數據;
報警產生步驟:根據報警觸發源數據和手動輸入數據產生報警記錄;所述報警記錄包括實時報警屬性、手動報警屬性;
實時報警屬性存儲步驟:將實時報警屬性存儲在實時資料庫中,並通過實時資料庫冗餘備份實時報警屬性;
手動報警屬性存儲步驟:將手動報警屬性存儲在關係資料庫中,並通過關係資料庫冗餘備份手動報警屬性。
優選地:實時報警屬性,包括報警產生時間、報警確認狀態、報警恢復狀態、報警優先級、報警類型、產生報警的源值;手動報警屬性,包括報警確認時間、報警確認者、報警注釋、報警注釋時間、報警注釋者、報警觸發條件。
優選地,若當前報警記錄對應的報警已經恢復,則在當前報警記錄後將報警恢復時間在實時資料庫中記錄為一條恢復記錄;若在實時資料庫中當前報警記錄存在下一條記錄,則認為當前報警記錄對應的報警已結束,否則認為當前報警記錄對應的報警沒有結束。
優選地,利用主備機分別獨立完整地存儲報警記錄在實時資料庫和關係資料庫中的數據。
優選地,還包括報警查詢步驟,其中,所述報警查詢步驟包括:
第一查詢步驟:根據報警產生時間在實時資料庫中查詢到報警記錄並解析出報警確認狀態、報警恢復狀態、報警優先級、報警類型;
第二查詢步驟:根據報警產生時間在實時資料庫中查詢報警觸發源點在報警產生時間的值作為產生報警的源值;
第三查詢步驟:如果報警已經恢復,則報警恢復時間為該報警對應的報警記錄在實時資料庫中的下一條記錄的時間,報警結束時間與報警恢復時間一致;如果報警未恢復,則報警結束時間就是該報警對應的報警記錄在實時資料庫中的下一條報警記錄的開始時間;
第四查詢步驟:根據報警產生時間在關係資料庫中查詢報警觸發條件;
第五查詢步驟:如果報警手動確認,則在關係資料庫中根據報警產生時間查詢報警確認時間和報警確認者;
第六查詢步驟:如果報警手動注釋,則在關係資料庫中根據報警生成時間查詢報警注釋時間、報警注釋以及報警注釋者。
根據本發明提供的一種基於實時資料庫的報警冗餘系統,包括:
報警接收裝置:接收報警觸發源數據;
報警產生裝置:根據報警觸發源數據和手動輸入數據產生報警記錄;所述報警記錄包括實時報警屬性、手動報警屬性;
實時報警屬性存儲裝置:將實時報警屬性存儲在實時資料庫中,並通過實時資料庫冗餘備份實時報警屬性;
手動報警屬性存儲裝置:將手動報警屬性存儲在關係資料庫中,並通過關係資料庫 冗餘備份手動報警屬性。
優選地:實時報警屬性,包括報警產生時間、報警確認狀態、報警恢復狀態、報警優先級、報警類型、產生報警的源值;手動報警屬性,包括報警確認時間、報警確認者、報警注釋、報警注釋時間、報警注釋者、報警觸發條件。
優選地,若當前報警記錄對應的報警已經恢復,則在當前報警記錄後將報警恢復時間在實時資料庫中記錄為一條恢復記錄;若在實時資料庫中當前報警記錄存在下一條記錄,則認為當前報警記錄對應的報警已結束,否則認為當前報警記錄對應的報警沒有結束。
優選地,利用主備機分別獨立完整地存儲報警記錄在實時資料庫和關係資料庫中的數據。
優選地,還包括報警查詢裝置,其中,所述報警查詢裝置包括:
第一查詢裝置:根據報警產生時間在實時資料庫中查詢到報警記錄並解析出報警確認狀態、報警恢復狀態、報警優先級、報警類型;
第二查詢裝置:根據報警產生時間在實時資料庫中查詢報警觸發源點在報警產生時間的值作為產生報警的源值;
第三查詢裝置:如果報警已經恢復,則報警恢復時間為該報警對應的報警記錄在實時資料庫中的下一條記錄的時間,報警結束時間與報警恢復時間一致;如果報警未恢復,則報警結束時間就是該報警對應的報警記錄在實時資料庫中的下一條報警記錄的開始時間;
第四查詢裝置:根據報警產生時間在關係資料庫中查詢報警觸發條件;
第五查詢裝置:如果報警手動確認,則在關係資料庫中根據報警產生時間查詢報警確認時間和報警確認者;
第六查詢裝置:如果報警手動注釋,則在關係資料庫中根據報警生成時間查詢報警注釋時間、報警注釋以及報警注釋者。
與現有技術相比,本發明具有如下的有益效果:
1、本發明基於實時資料庫和關係資料庫,可以確保報警數據的安全,並且能夠處理雪崩報警,從而提高了系統的數據安全性。
2、本發明充分利用實時資料庫自身的存儲性能來提升報警的處理速度。將報警的大部分屬性存儲在實時資料庫本身的存儲模塊中,只有由用戶來觸發的報警屬性存儲在關係資料庫中並充分利用實時資料庫本身數據的冗餘和關係資料庫本身的 冗餘來實現報警的冗餘。
3、本發明利用實時資料庫的數據冗餘系統和關係資料庫的冗餘來實現報警冗餘存儲和查詢,保證報警在主備數據節點的一致性,當數據節點發生冗餘切換時備機的報警系統能馬上提供報警服務而不影響用戶的使用。
附圖說明
通過閱讀參照以下附圖對非限制性實施例所作的詳細描述,本發明的其它特徵、目的和優點將會變得更明顯:
圖1為本發明提供的基於實時資料庫的報警冗餘系統中一個數據節點的示意圖。
圖2為本發明提供的基於實時資料庫的報警冗餘方法的報警記錄存儲的流程圖。
圖3為本發明提供的基於實時資料庫的報警冗餘方法的報警記錄查詢的流程圖。
圖4為本發明提供的基於實時資料庫的報警冗餘方法的步驟流程圖。
具體實施方式
下面結合具體實施例對本發明進行詳細說明。以下實施例將有助於本領域的技術人員進一步理解本發明,但不以任何形式限制本發明。應當指出的是,對本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變化和改進。這些都屬於本發明的保護範圍。
根據本發明提供的一種基於實時資料庫的報警冗餘方法,包括:
報警接收步驟:接收報警觸發源數據;
報警產生步驟:根據報警觸發源數據和手動輸入數據產生報警記錄;所述報警記錄包括實時報警屬性、手動報警屬性;
實時報警屬性存儲步驟:將實時報警屬性存儲在實時資料庫中,並通過實時資料庫冗餘備份實時報警屬性;實時報警屬性,包括報警產生時間、報警確認狀態、報警恢復狀態、報警優先級、報警類型、產生報警的源值;實時報警屬性的主備冗餘由數據存儲服務單元來實現;
手動報警屬性存儲步驟:將手動報警屬性存儲在關係資料庫中,並通過關係資料庫冗餘備份手動報警屬性;手動報警屬性,包括報警確認時間、報警確認者、報警注釋、報警注釋時間、報警注釋者、報警觸發條件;手動報警屬性利用關係資料庫自身的冗餘來確保資料庫的一致性。
這樣一條報警記錄的一部分屬性存儲在實時資料庫的數據存儲服務單元中,這部分屬性是每條報警記錄都必須的,它們在主備冗餘節點(例如主備冗餘機)的數據一致性可以由實時資料庫數據存儲服務單元的冗餘來完成;另一部分屬性存儲在關係資料庫中,其中,報警觸發條件只有報警源創建或者修改時存儲在關係資料庫中,報警確認時間、報警確認者、報警注釋、報警注釋時間、報警注釋者只有在用戶對已經發生的報警進行手動確認和手動注釋時存儲在關係資料庫中。這部分存儲在關係資料庫中的報警屬性由關係資料庫自身的主備冗餘來實現。這樣一條完整的報警記錄的所有屬性項都實現了冗餘存儲。
這樣存儲的優勢有
1、報警發生時確定的屬性都存儲在實時資料庫的存儲模塊中,實時資料庫的存儲性能能充分利用起來,只要實時資料庫還能繼續存儲,報警也能以同樣的性能繼續存儲,特別是發生雪崩報警時也能順利存儲,這部分數據的冗餘由數據存儲服務單元的冗餘功能自動實現。
2、用戶在客戶端確認報警或者注釋報警的相關屬性存儲在關係資料庫中,由於這些操作都是用戶手動完成,數據量不大,用關係資料庫來存儲不會影響性能,發生雪崩報警時也不會影響到這部分數據,它們的冗餘有關係資料庫的冗餘來保證。
所述基於實時資料庫的報警冗餘方法,還包括報警查詢步驟,其中,所述報警查詢步驟包括:
第一查詢步驟:根據報警產生時間在實時資料庫中查詢到報警記錄並解析出報警確認狀態、報警恢復狀態、報警優先級、報警類型;
第二查詢步驟:根據報警產生時間在實時資料庫中查詢報警觸發源點在報警產生時間的值作為產生報警的源值;
第三查詢步驟:如果報警已經恢復,則報警恢復時間為該報警對應的報警記錄在實時資料庫中的下一條記錄的時間,報警結束時間與報警恢復時間一致;如果報警未恢復,則報警結束時間就是該報警對應的報警記錄在實時資料庫中的下一條報警記錄的開始時間;
第四查詢步驟:根據報警產生時間在關係資料庫中查詢報警觸發條件;
第五查詢步驟:如果報警手動確認,則在關係資料庫中根據報警產生時間查詢報警確認時間和報警確認者;
第六查詢步驟:如果報警手動注釋,則在關係資料庫中根據報警生成時間查詢報警 注釋時間、報警注釋以及報警注釋者。
若當前報警記錄對應的報警已經恢復,則在當前報警記錄後將報警恢復時間在實時資料庫中記錄為一條恢復記錄;若在實時資料庫中當前報警記錄存在下一條記錄,則認為當前報警記錄對應的報警已結束,否則認為當前報警記錄對應的報警沒有結束。利用主備機分別獨立完整地存儲報警記錄在實時資料庫和關係資料庫中的數據。
根據本發明提供的一種基於實時資料庫的報警冗餘系統,包括:
報警接收裝置:接收報警觸發源數據;
報警產生裝置:根據報警觸發源數據和手動輸入數據產生報警記錄;所述報警記錄包括實時報警屬性、手動報警屬性;
實時報警屬性存儲裝置:將實時報警屬性存儲在實時資料庫中,並通過實時資料庫冗餘備份實時報警屬性;實時報警屬性,包括報警產生時間、報警確認狀態、報警恢復狀態、報警優先級、報警類型、產生報警的源值;
手動報警屬性存儲裝置:將手動報警屬性存儲在關係資料庫中,並通過關係資料庫冗餘備份手動報警屬性;手動報警屬性,包括報警確認時間、報警確認者、報警注釋、報警注釋時間、報警注釋者、報警觸發條件。
報警查詢裝置,其中,所述報警查詢裝置包括:
第一查詢裝置:根據報警產生時間在實時資料庫中查詢到報警記錄並解析出報警確認狀態、報警恢復狀態、報警優先級、報警類型;
第二查詢裝置:根據報警產生時間在實時資料庫中查詢報警觸發源點在報警產生時間的值作為產生報警的源值;
第三查詢裝置:如果報警已經恢復,則報警恢復時間為該報警對應的報警記錄在實時資料庫中的下一條記錄的時間,報警結束時間與報警恢復時間一致;如果報警未恢復,則報警結束時間就是該報警對應的報警記錄在實時資料庫中的下一條報警記錄的開始時間;
第四查詢裝置:根據報警產生時間在關係資料庫中查詢報警觸發條件;
第五查詢裝置:如果報警手動確認,則在關係資料庫中根據報警產生時間查詢報警確認時間和報警確認者;
第六查詢裝置:如果報警手動注釋,則在關係資料庫中根據報警生成時間查詢報警注釋時間、報警注釋以及報警注釋者。
若當前報警記錄對應的報警已經恢復,則在當前報警記錄後將報警恢復時間在實時 資料庫中記錄為一條恢復記錄;若在實時資料庫中當前報警記錄存在下一條記錄,則認為當前報警記錄對應的報警已結束,否則認為當前報警記錄對應的報警沒有結束。利用主備機分別獨立完整地存儲報警記錄在實時資料庫和關係資料庫中的數據。
具體地,在基於實時資料庫的報警冗餘系統的一個數據節點中,如圖1所示,設置有冗餘節點a(主機)、冗餘節點b(備機),其中,所述主備機均包括報警服務單元(即圖1中的報警發生器)、實時資料庫的數據存儲服務單元,主備機分別包括主備關係資料庫;報警服務單元:產生報警和查詢報警;實時資料庫的數據存儲服務單元:存儲數據;關係資料庫:存儲報警條件、報警確認信息以及報警注釋信息。
在一個應用中,為了實現本發明,優選地可以部署至少2臺x86伺服器(內存不不小於4g,硬碟不小於100g),部署分布式實時資料庫,部署帶冗餘功能的關係資料庫。本發明應用於車聯網車輛報警系統,包括如下步驟:
(1)配置車輛需要採集的採集點;
(2)配置關聯到採集點的報警點;
(3)車輛產生報警;
(4)停止主備機中主機的所有服務;
(5)對已經發生的所有報警提供查詢。
本領域技術人員知道,除了以純計算機可讀程序代碼方式實現本發明提供的系統及其各個裝置以外,完全可以通過將方法步驟進行邏輯編程來使得本發明提供的系統及其各個裝置以邏輯門、開關、專用集成電路、可編程邏輯控制器以及嵌入式微控制器等的形式來實現相同功能。所以,本發明提供的系統及其各項裝置可以被認為是一種硬體部件,而對其內包括的用於實現各種功能的裝置也可以視為硬體部件內的結構;也可以將用於實現各種功能的裝置視為既可以是實現方法的軟體模塊又可以是硬體部件內的結構。
以上對本發明的具體實施例進行了描述。需要理解的是,本發明並不局限於上述特定實施方式,本領域技術人員可以在權利要求的範圍內做出各種變化或修改,這並不影響本發明的實質內容。在不衝突的情況下,本申請的實施例和實施例中的特徵可以任意相互組合。