專利名稱:歷史數(shù)據(jù)歸檔和查詢裝置及方法
技術領域:
本發(fā)明涉及計算機領域,尤其涉及一種歷史數(shù)據(jù)的歸檔和查詢方法。
背景技術:
歷史數(shù)據(jù)的歸檔和查詢在任何大型關系型數(shù)據(jù)庫應用系統(tǒng)中都是一個不可或缺的功能。尤其在通訊行業(yè),為了評估系統(tǒng)的近期性能必須要有性能歷史數(shù)據(jù)。利用這些性能歷史數(shù)據(jù)可進行故障的區(qū)段定位。當積累了較多的性能歷史數(shù)據(jù)后,對性能歷史數(shù)據(jù)的查詢分析可預測將來可能發(fā)生的故障,對系統(tǒng)的維護是很有用的。
現(xiàn)有的應用系統(tǒng)一般是通過數(shù)據(jù)庫管理系統(tǒng)DBMS(如Sybase和Microsoft SQL Server)的備份歸檔工具實現(xiàn)。以Microsoft SQL Server為例,機械工業(yè)出版社出版的《SQL Server 7關系數(shù)據(jù)庫系統(tǒng)管理與開發(fā)指南》提供了三種歸檔方式完全歸檔——歸檔所有數(shù)據(jù)庫對象、事務日志和數(shù)據(jù);增量歸檔——歸檔從最近一次完全歸檔開始以來所有的數(shù)據(jù);日志歸檔——歸檔從最近一次日志歸檔開始以來所有日志。
以上三種方式都是對整個數(shù)據(jù)庫進行歸檔,包括數(shù)據(jù)庫對象、數(shù)據(jù)結構、數(shù)據(jù)都進行了歸檔。如果用戶要求對部分庫表,甚至單個庫表進行歸檔,則現(xiàn)有的方式不能滿足要求。而且該三種方式不支持直接查詢歸檔文件,如果用戶要求查詢歸檔文件中滿足條件的記錄,則只能將歷史數(shù)據(jù)全部恢復到數(shù)據(jù)庫中再查詢,顯然效率低下,也費時費力。另外由于歷史數(shù)據(jù)量大,如果將歷史數(shù)據(jù)全部恢復到數(shù)據(jù)庫中再查詢極易造成表空間滿、表溢出的情況。最后,現(xiàn)有工具面向具有數(shù)據(jù)庫系統(tǒng)知識的數(shù)據(jù)庫管理員,對于普通用戶不易掌握。
發(fā)明內容
本發(fā)明所要解決的技術問題是克服現(xiàn)有技術中不能對部分庫表,甚至單個庫表進行歸檔,以及效率低下、容易造成數(shù)據(jù)庫中表空間滿表溢出、用戶掌握復雜的缺點,以期提出一種能夠有效對部分庫表直接查詢歸檔、高效高穩(wěn)定性而且簡單的歷史數(shù)據(jù)歸檔和查詢裝置及方法。
本發(fā)明所述歷史數(shù)據(jù)查詢和歸檔裝置包括歸檔備注文件、歸檔模塊和歸檔管理裝載器;所述歸檔備注文件在每完成一種類型的歸檔后,記錄所歸檔的歷史表名、歸檔字段、歸檔時間范圍和歸檔記錄數(shù)等信息;所述歸檔模塊具體完成數(shù)據(jù)的歸檔和裝載,在查詢歸檔文件時,為了提高查詢效率,將歸檔數(shù)據(jù)裝載到數(shù)據(jù)庫管理系統(tǒng)的臨時庫中;所述歸檔裝載管理器負責在裝載歸檔文件時,判斷臨時數(shù)據(jù)庫是否有足夠的自由空間,如果不滿足則刪除最近未使用的裝載表。
所述歷史數(shù)據(jù)查詢和歸檔方法包括以下步驟第一步準備工作(1)在數(shù)據(jù)庫中建立歷史表元數(shù)據(jù)信息表;(2)建立歷史表記錄限制鏈表,保存歷史表記錄大小。
(3)在數(shù)據(jù)庫中建立歸檔裝載信息表;(4)建立歸檔裝載信息鏈表。
第二步歸檔歷史數(shù)據(jù)(1)根據(jù)具體情況選擇歸檔類型、歸檔方式;(2)根據(jù)歸檔類型查找歷史表元數(shù)據(jù)信息表得到需要歸檔的歷史表和歷史表的歸檔字段。在數(shù)據(jù)庫中以表的形式保存需要歸檔的歷史表、歷史表的歸檔字段及上次進行歸檔操作的時間。如果歸檔方式為增量歸檔,依據(jù)該信息表,得出此次歸檔的時間范圍為上次歸檔操作的時間到當前時間。如果歸檔為全量歸檔,需歸檔所有數(shù)據(jù),時間范圍也需包括所有數(shù)據(jù);(3)查找歸檔字段在此時間范圍的記錄,將記錄以文本文件的方式保存在本地硬盤上;(4)將本次歸檔的歷史表名,歸檔字段名,時間范圍,記錄數(shù)以文本文件的方式保存在歸檔備注文件中,同時修改歷史表元數(shù)據(jù)信息表中相應歷史表的歸檔時間。
第三步檢索歸檔文件(1)根據(jù)具體情況靈活選擇查詢的歸檔類型和時間范圍,形成查詢條件;(2)根據(jù)查詢條件檢索歸檔目錄下的歸檔備注文件,找出滿足條件的歸檔文件;(3)根據(jù)歸檔文件名得到裝載的數(shù)據(jù)庫表;(3.1)查找歸檔是否已裝載到臨時數(shù)據(jù)庫,如找到,則修改歸檔裝載信息表的訪問時間,轉(4);(3.2)判斷臨時數(shù)據(jù)庫是否有足夠的自由空間;(3.3)如不滿足步驟(3.2)所述條件,根據(jù)歸檔裝載信息鏈表中的各裝載數(shù)據(jù)表的訪問時間刪除最近未訪問的數(shù)據(jù)表,直到滿足對臨時數(shù)據(jù)庫自由空間的要求;(3.4)在臨時數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)庫表,將數(shù)據(jù)恢復到該表;(3.5)將創(chuàng)建的庫表信息加入歸檔裝載信息鏈表,并修改訪問時間(4)返回表中滿足條件的記錄。
本發(fā)明所述方法與現(xiàn)有的歸檔技術相比,可自由選擇任意歸檔類型、任意時間范圍的歷史數(shù)據(jù)。而且由于使用歸檔備注文件的方式記錄每次歸檔的信息,使裝載歷史數(shù)據(jù)時可有條件的選擇部分數(shù)據(jù)進行裝載。由于使用歸檔裝載管理器,可提供高效快速地從歸檔文件查詢滿足條件的歷史數(shù)據(jù),充分利用了臨時數(shù)據(jù)庫的資源,避免了數(shù)據(jù)空間的浪費。另外,用戶查詢某個歸檔數(shù)據(jù)文件前,可查看歸檔備注文件,以確定是否查詢。本發(fā)明所述方法支持不同的數(shù)據(jù)庫,不同的操作平臺。對操作人員的要求不高,無需知道數(shù)據(jù)庫的結構和對象就可進行歸檔操作。查詢歸檔文件時只需選擇歸檔類型輸入查詢的時間范圍即可。本發(fā)明適用于大型數(shù)據(jù)庫應用系統(tǒng)中對歷史數(shù)據(jù)需要歸檔及查詢的情況。
圖1是本發(fā)明所述方法中歸檔歷史數(shù)據(jù)流程圖。
圖2是本發(fā)明所述方法中查詢歸檔歷史數(shù)據(jù)的流程圖。
圖3是本發(fā)明所述方法中歸檔裝載管理器的流程圖。
具體實施例方式
下面結合附圖和具體實施實例對本發(fā)明作進一步的詳細描述1)準備工作1.根據(jù)數(shù)據(jù)來源劃分歷史表所屬的歸檔類型告警類型、性能類型和日志類型;2.歸檔方式分為全量歸檔和增量歸檔;3.在數(shù)據(jù)庫中建立歷史表元數(shù)據(jù)信息表,字段包括歸檔類型、歷史表的表名、歸檔字段、歸檔時間。歸檔操作完成后需修改相應歷史表的歸檔時間。
4.建立歷史表記錄限制鏈表,保存歷史表記錄大小。
5.在數(shù)據(jù)庫中建立歸檔裝載信息表,字段包括歸檔目錄、歸檔名稱、起始時間、終止時間、裝載表名、裝載表記錄數(shù)、裝載表訪問時間。主要是在歸檔裝載管理器中對其進行訪問。歸檔裝載信息表保存了歸檔裝載的信息,每裝載一個歸檔需同步修改歸檔裝載信息表,在卸載歸檔時也需同步修改歸檔裝載信息表。
6.建立歸檔裝載信息鏈表,保存已經裝載的轉儲信息,與歸檔裝載信息表進行同步修改。
2)歸檔歷史數(shù)據(jù)圖1給出了具體歸檔流程。
步驟1輸入歸檔類型和歸檔方式;步驟2檢索歷史表元數(shù)據(jù)信息表,找出該歸檔類型的歷史表;步驟3對每一個歷史表進行歸檔,如下表所示
步驟3.1如果是增量歸檔,從歷史表元數(shù)據(jù)信息表的歸檔時間字段得到上次歸檔時間,則本次歸檔時間范圍為上次歸檔時間到當前時間。如果是全量歸檔,需歸檔全部記錄,時間范圍從1970年1月1日0點0分開始到當前時間。
步驟3.2根據(jù)時間范圍從歷史表中找出滿足條件的記錄。
步驟3.3將字段名寫入數(shù)據(jù)文件第一行。
步驟3.4讀取每一條記錄,依字段順序,寫入各個字段的值。
步驟4將本次操作的歸檔表名,歸檔字段,時間范圍,記錄數(shù)等以文本文件的方式保存在歸檔備注文件中。并修改歷史表元數(shù)據(jù)信息表中相應歷史表的歸檔時間。
下表給出了歸檔備注文件的格式。
3)查詢歸檔歷史數(shù)據(jù)圖2給出了查詢歸檔數(shù)據(jù)的流程。
步驟1輸入歸檔類型、起始時間和終止時間;步驟2從歷史表元數(shù)據(jù)信息表中檢索出該歸檔類型的歷史表。搜索歸檔目錄下所有的歸檔備注文件,找出歷史表在此時間范圍的歸檔文件名;步驟3檢索歸檔裝載信息表,根據(jù)歸檔文件名得到裝載的數(shù)據(jù)庫表,同時修改歸檔訪問時間為當前時間。對于沒有裝載的歸檔文件,需通過歸檔裝載管理器進行裝載。歸檔裝載管理器的流程圖如圖3所示;步驟3.1檢索歸檔裝載信息表,根據(jù)歸檔文件名得到裝載的數(shù)據(jù)庫表,同時修改歸檔訪問時間為當前時間。轉步驟4;步驟3.2對于沒找到裝載表的歸檔文件,需進行裝載。
步驟3.2.1讀取該歸檔的備注文件,得到歸檔數(shù)據(jù)文件的記錄數(shù);步驟3.2.2根據(jù)歷史表記錄限制鏈表計算歸檔數(shù)據(jù)所需的空間;步驟3.2.3檢查臨時庫是否有足夠的未使用空間,如果不滿足,需檢索歸檔裝載信息鏈表,根據(jù)歸檔訪問時間卸載臨時庫中最近未訪問的歸檔,卸載的同時修改歸檔裝載信息鏈表和歸檔裝載信息表。當臨時庫滿足對自由空間的要求時停止卸載操作;步驟3.2.4在臨時庫中創(chuàng)建臨時表并裝載歸檔數(shù)據(jù)文件,同時修改歸檔裝載信息表和歸檔裝載信息鏈表。
步驟4返回裝載表中滿足時間范圍的記錄。
權利要求
1.一種歷史數(shù)據(jù)查詢和歸檔裝置,其特征在于,包括歸檔備注文件、歸檔模塊和歸檔管理裝載器;所述歸檔備注文件在每完成一種類型的歸檔后,記錄所歸檔的歷史表名、歸檔字段、歸檔時間范圍和歸檔記錄數(shù)等信息;所述歸檔模塊具體完成數(shù)據(jù)的歸檔和裝載,將歸檔數(shù)據(jù)裝載到數(shù)據(jù)庫管理系統(tǒng)的臨時庫中;所述歸檔裝載管理器負責在裝載歸檔文件時,判斷臨時數(shù)據(jù)庫是否有足夠的自由空間,如果不滿足則刪除最近未使用的裝載表。
2.一種歷史數(shù)據(jù)查詢和歸檔方法,其特征在于,包括以下步驟第一步準備工作;第二步歸檔歷史數(shù)據(jù);(1)根據(jù)具體情況選擇歸檔類型、歸檔方式;(2)根據(jù)歸檔類型查找歷史表元數(shù)據(jù)信息表,得到需要歸檔的歷史表和歷史表的歸檔字段,在數(shù)據(jù)庫中以表的形式保存需要歸檔的歷史表、歷史表的歸檔字段及上次進行歸檔操作的時間;(3)查找歸檔字段在此時間范圍的記錄,將記錄以文本文件的方式保存在本地硬盤上;(4)將本次歸檔的歷史表名、歸檔字段名、時間范圍、記錄數(shù)以文本文件的方式保存在歸檔備注文件中,同時修改歷史表元數(shù)據(jù)信息表中相應歷史表的歸檔時間;第三步檢索歸檔文件(1)根據(jù)具體情況靈活選擇查詢的歸檔類型和時間范圍,形成查詢條件;(2)根據(jù)查詢條件檢索歸檔目錄下的歸檔備注文件,找出滿足條件的歸檔文件;(3)根據(jù)歸檔文件名得到裝載的數(shù)據(jù)庫表;(4)返回表中滿足條件的記錄。
3.根據(jù)權利要求2所述的歷史數(shù)據(jù)查詢和歸檔方法,其特征在于,所述第一步進一步包括以下步驟(1)在數(shù)據(jù)庫中建立歷史表元數(shù)據(jù)信息表;(2)建立歷史表記錄限制鏈表,保存歷史表記錄大小;(3)在數(shù)據(jù)庫中建立歸檔裝載信息表;(4)建立歸檔裝載信息鏈表。
4.根據(jù)權利要求2所述的歷史數(shù)據(jù)查詢和歸檔方法,其特征在于,所述第二步(2)中,如果歸檔方式為增量歸檔,依據(jù)該信息表,得出此次歸檔的時間范圍為上次歸檔操作的時間到當前時間;如果歸檔為全量歸檔,需歸檔所有數(shù)據(jù),時間范圍也需包括所有數(shù)據(jù)。
5.根據(jù)權利要求2所述的歷史數(shù)據(jù)查詢和歸檔方法,其特征在于,所述第三步(3)進一步包括以下步驟(3.1)查找歸檔是否已裝載到臨時數(shù)據(jù)庫,如找到,則修改歸檔裝載信息表的訪問時間,轉(4);(3.2)判斷臨時數(shù)據(jù)庫是否有足夠的自由空間;(3.3)如不滿足步驟(3.2)所述條件,根據(jù)歸檔裝載信息鏈表中的各裝載數(shù)據(jù)表的訪問時間刪除最近未訪問的數(shù)據(jù)表,直到滿足對臨時數(shù)據(jù)庫自由空間的要求;(3.4)在臨時數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)庫表,將數(shù)據(jù)恢復到該表;(3.5)將創(chuàng)建的庫表信息加入歸檔裝載信息鏈表,并修改訪問時間。
全文摘要
本發(fā)明公開了一種計算機領域中歷史數(shù)據(jù)查詢和歸檔裝置及方法,所述方法中歸檔部分包括(1)根據(jù)具體情況選擇歸檔類型、歸檔方式;(2)根據(jù)歸檔類型查找歷史表元數(shù)據(jù)信息表得到需要歸檔的歷史表和歷史表的歸檔字段;(3)查找歸檔字段在此時間范圍的記錄,將記錄以文本文件的方式保存在本地硬盤上;(4)將本次歸檔的歷史表名,歸檔字段名,時間范圍,記錄數(shù)以文本文件的方式保存在歸檔備注文件中,同時修改歷史表元數(shù)據(jù)信息表中相應歷史表的歸檔時間。本發(fā)明克服現(xiàn)有技術中不能對部分庫表,甚至單個庫表進行歸檔,及效率低下、容易造成數(shù)據(jù)庫中表空間滿表溢出、用戶掌握復雜的缺點,能夠有效對部分庫表直接查詢歸檔、高效高穩(wěn)定性而且簡單。
文檔編號G06F17/30GK1783063SQ20041009625
公開日2006年6月7日 申請日期2004年11月29日 優(yōu)先權日2004年11月29日
發(fā)明者郭文君 申請人:中興通訊股份有限公司