專利名稱:一種備份和恢復重要數(shù)據(jù)的方法
技術領域:
本發(fā)明提供了一種備份和恢復重要數(shù)據(jù)的方法,特別涉及的是在應用關系型數(shù)據(jù)庫系統(tǒng)進行數(shù)據(jù)存儲的系統(tǒng)中,備份和恢復重要數(shù)據(jù)的組件和方法。
背景技術:
對于任何一個大、中型軟件系統(tǒng),數(shù)據(jù)的備份和恢復都是最普遍、最基本的功能需求?,F(xiàn)有的做法是使用數(shù)據(jù)庫管理系統(tǒng)(DBMS,如SQL Server、Oracle等)所提供的工具來實現(xiàn)。但都不同程度地存在靈活性差、用戶界面不夠友好、操作復雜等缺點。
以Microsoft SQL Server為例。由機械工業(yè)出版社在2000年4月第一版的《SQL Server 7關系數(shù)據(jù)庫系統(tǒng)管理于來發(fā)指南》中,它提供了三種備份方式完全備份——備份所有數(shù)據(jù)庫對象、數(shù)據(jù)和事務日志;增量備份——備份從最近一次完全備份開始以來所有的數(shù)據(jù);日志備份——備份從最近一次日志備份開始以來所有日志。
以上三種備份方式中,無論哪一種,都是針對整個數(shù)據(jù)庫進行,而且是數(shù)據(jù)庫的結構、對象和數(shù)據(jù)記錄一起備份的。顯然靈活性較差。如果用戶的需求只是要對部分、甚至對單個庫表的記錄進行備份,則現(xiàn)有的備份方式就不能滿足要求。
對于通訊及相關行業(yè),很多時候需要備份和恢復多套重要配置參數(shù)數(shù)據(jù),而每套參數(shù)之間又相對獨立,沒有時間上的延續(xù)關系,對于此種情況,現(xiàn)有的備份方式在靈活性方面就更顯不足了。
此外,現(xiàn)有的備份恢復工具面向的用戶多是數(shù)據(jù)庫管理員(DBA),需要掌握非常專業(yè)化的計算機以及數(shù)據(jù)庫系統(tǒng)知識,而且該工具都是集成于數(shù)據(jù)庫管理系統(tǒng)平臺(如SQL Server Enterprise Manager)之中,于是都存在有操作復雜、用戶界面不夠友好等等缺陷。
發(fā)明內(nèi)容
本發(fā)明的目的是為了克服現(xiàn)有數(shù)據(jù)備份恢復技術靈活性差、操作復雜、用戶界面不夠友好等缺點。更好的滿足通訊及相關行業(yè),對重要配置參數(shù)數(shù)據(jù)多次、靈活、方便地進行備份和恢復操作的要求。
本發(fā)明所述的重要數(shù)據(jù)備份恢復的操作步驟如下第一步,根據(jù)具體情況,自由地選取需要進行備份恢復的庫表,庫表序列以配置文件的形式存儲于工作站或者PC計算機硬盤中,以備調用;第二步,按照庫表序列檢索關系型數(shù)據(jù)庫中相應的庫表中的數(shù)據(jù),生成備份數(shù)據(jù),以文本文件形式存儲于工作站或者PC計算機硬盤中;第三步,在需要恢復數(shù)據(jù)時,依據(jù)用戶選定的一個在備份過程所生成的數(shù)據(jù)備份文件,將文件中的數(shù)據(jù)項以關系型數(shù)據(jù)庫中記錄的形式寫入數(shù)據(jù)庫,完成數(shù)據(jù)恢復操作。
采用本發(fā)明所述的方法,與現(xiàn)有的數(shù)據(jù)備份恢復技術相比,在操作和功能的靈活性方面有了質的飛躍。
特別對于通訊及相關行業(yè),用戶可以根據(jù)需要方便地備份多份不同的配置數(shù)據(jù)甚至是針對不同數(shù)據(jù)庫的配置數(shù)據(jù),以備查看和恢復使用。
使用本發(fā)明所述的方法,可以任意定制所需備份的庫表,而不必每次備份都對整個數(shù)據(jù)庫來進行;這樣不但減少了數(shù)據(jù)庫設計時的限制,而且提高了備份恢復的效率。使用原有技術需要十幾直至幾十分鐘才能完成的對全部配置數(shù)據(jù)的備份和恢復的過程,現(xiàn)在幾分鐘內(nèi)即可完成,大大提高了工作效率。
使用本發(fā)明所述的方法,還可以依據(jù)方法所述的設計思想自行開發(fā)用戶界面,使界面更親切、更人性化,方便普通技術人員操作使用。特別適用于通訊以及相關行業(yè),需要對重要的配置數(shù)據(jù)進行多次備份和恢復的情況。
圖1是數(shù)據(jù)備份的實現(xiàn)過程。
具體實施例方式
下面結合附圖和具體實施方式
對本發(fā)明作進一步的詳細描述1.數(shù)據(jù)備份圖1給出了數(shù)據(jù)備份的實現(xiàn)過程。
數(shù)據(jù)備份過程的輸入項是計算機硬盤上的庫表名列表文件和數(shù)據(jù)庫中的記錄數(shù)據(jù);輸出項是以文件形式給出的備份結果,文件中以多個Insert語句記錄了需備份庫表的所有記錄信息。而恢復數(shù)據(jù)的時候就只要在輸出項執(zhí)行這些Insert語句就可以把備份好的數(shù)據(jù)恢復到數(shù)據(jù)庫中了。
步驟一,按順序讀取輸入項中存儲在計算機硬盤上的庫表名列表文件中的庫表名,生成數(shù)據(jù)備份文件的Delete語句部分,放入第一存儲器1,該部分用于恢復數(shù)據(jù)時,先刪除庫中原有的數(shù)據(jù);步驟二,對于某個庫表,根據(jù)庫表名,利用數(shù)據(jù)庫管理系統(tǒng)存儲器提供的存儲過程可以得到該庫表的字段信息,以生成備份該庫表每條記錄的Insert語句的前半部分——“Insert庫表名i(…字段名m,字段名n,…)Values”,放入第二存儲器2,該步驟對于每個庫表執(zhí)行一次;步驟三,對于步驟二中的庫表,根據(jù)庫表名和庫表字段信息,檢索出該庫表每條記錄的各字段的值,以生成備份該庫表每條記錄的Insert語句的后半部分——“(…字段m的值,字段n的值,…)”,放入第三存儲器3;該步驟對于庫表i中的每條記錄執(zhí)行一次;步驟四,將步驟二與步驟三所生成的結果湊在一起,形成一條完整的Insert語句,用以備份庫表i中的一條記錄,放入第四存儲器4;該步驟對于庫表i中的每條記錄執(zhí)行一次;步驟五,將步驟一執(zhí)行一次的結果和步驟四針對每個庫表每條記錄都執(zhí)行一次所得到的結果合起來,放入第五存儲器5就形成了數(shù)據(jù)備份操作的結果。
2.數(shù)據(jù)恢復數(shù)據(jù)備份所生成的文件是用標準的SQL語言寫成的,在數(shù)據(jù)恢復的時候只需將這些SQL語句從頭至尾執(zhí)行一次即可。
SQL語句的執(zhí)行過程可以封裝到自行開發(fā)應用程序內(nèi)部,也可以在數(shù)據(jù)庫管理系統(tǒng)所提供的查詢工具中直接執(zhí)行。有數(shù)據(jù)庫知識基礎的操作人員還可以使用任意文本編輯器直接查看數(shù)據(jù)備份信息。
3.關于庫表名列表文件如附圖所示,對于數(shù)據(jù)備份過程,列表文件和數(shù)據(jù)庫記錄同為系統(tǒng)輸入部分而存儲在計算機硬盤上,多個操作步驟都需要從該輸入項讀取信息。
這個庫表名列表文件只是一個簡單的文本文件,列出了需要備份的所有庫表的名稱。
這里值得注意的是,對應于備份過程的步驟一所采用的構造Delete語句的順序,庫表名列表文件中的庫表名的排列順序是有要求的。即,如果上述步驟一中構造Delete語句的順序與庫表名列表文件中的庫表名順序相同,那么對于庫表間有外鍵約束的情況,在庫表名列表文件中,主鍵所在的庫表應該排在外鍵所在庫表的后面。反之亦然。
總之,我們所提供的對系統(tǒng)重要數(shù)據(jù)的備份和恢復的組件和方法,克服了現(xiàn)有數(shù)據(jù)備份恢復技術靈活性差、操作復雜、用戶界面不夠友好等缺點。更好的滿足了通訊及相關行業(yè),對重要配置參數(shù)數(shù)據(jù)多次、靈活、方便地進行備份和恢復操作的要求。在實際應用中已經(jīng)取得了令人滿意的收益,受到操作人員的廣泛好評。
權利要求
1.一種備份和恢復重要數(shù)據(jù)的方法,包括以下步驟1)根據(jù)具體情況,自由地選取需要進行備份恢復的庫表,庫表序列以配置文件的形式存儲于工作站或者PC計算機硬盤中,以備調用;2)按照庫表序列檢索關系型數(shù)據(jù)庫中相應的庫表中的數(shù)據(jù),生成備份數(shù)據(jù),以文本文件形式存儲于工作站或者PC計算機硬盤中;3)在需要恢復數(shù)據(jù)時,依據(jù)用戶選定的一個在備份過程所生成的數(shù)據(jù)備份文件,將文件中的數(shù)據(jù)項以關系型數(shù)據(jù)庫中記錄的形式寫入數(shù)據(jù)庫,完成數(shù)據(jù)恢復操作。
2.如權利要求1所述的一種備份和恢復重要數(shù)據(jù)的方法,其特征是所述的數(shù)據(jù)備份的方法是1)按順序讀取輸入項中存儲在計算機硬盤上的庫表名列表文件中的庫表名,生成數(shù)據(jù)備份文件的Delete語句部分,放入第一存儲器1,該部分用于恢復數(shù)據(jù)時,先刪除庫中原有的數(shù)據(jù);2)對于某個庫表,根據(jù)庫表名,利用數(shù)據(jù)庫管理系統(tǒng)存儲器提供的存儲過程可以得到該庫表的字段信息,以生成備份該庫表每條記錄的Insert語句的前半部分——“Insert庫表名i(…字段名m,字段名n,…)Values”,放入第二存儲器2,該步驟對于每個庫表執(zhí)行一次;3)對于步驟2)中的庫表,根據(jù)庫表名和庫表字段信息,檢索出該庫表每條記錄的各字段的值,以生成備份該庫表每條記錄的Insert語句的后半部分——“(…字段m的值,字段n的值,…)”,放入第三存儲器3;該步驟對于庫表i中的每條記錄執(zhí)行一次;4)將步驟2)與步驟3)所生成的結果湊在一起,形成一條完整的Insert語句,用以備份庫表i中的一條記錄,放入第四存儲器4;該步驟對于庫表i中的每條記錄執(zhí)行一次;5)將步驟1)執(zhí)行一次的結果和步驟4)針對每個庫表每條記錄都執(zhí)行一次所得到的結果合起來,放入第五存儲器5就形成了數(shù)據(jù)備份操作的結果。
3.如權利要求1或2所述的一種備份和恢復重要數(shù)據(jù)的方法,其特征是所述的數(shù)據(jù)恢復方法是數(shù)據(jù)備份所生成的文件是用標準的SQL語言寫成的,在數(shù)據(jù)恢復的時候只需將這些SQL語句從頭至尾執(zhí)行一次即可。
4.如權利要求3所述的一種備份和恢復重要數(shù)據(jù)的方法,其特征是SQL語句的執(zhí)行過程是封裝到自行開發(fā)應用程序內(nèi)部。
5.如權利要求3所述的一種備份和恢復重要數(shù)據(jù)的方法,其特征是SQL語句的執(zhí)行過程是在數(shù)據(jù)庫管理系統(tǒng)所提供的查詢工具中直接執(zhí)行。
6.如權利要求3所述的一種備份和恢復重要數(shù)據(jù)的方法,其特征是SQL語句的執(zhí)行過程是使用任意文本編輯器直接查看數(shù)據(jù)備份信息。
7.如權利要求3所述的一種備份和恢復重要數(shù)據(jù)的方法,其特征是如果構造Delete語句的順序與庫表名列表文件中的庫表名順序相同,那么對于庫表間有外鍵約束的情況,在庫表名列表文件中,主鍵所在的庫表應該排在外鍵所在庫表的后面;反之亦然。
全文摘要
本發(fā)明提供了一種備份和恢復重要數(shù)據(jù)的方法,包括以下步驟1.根據(jù)具體情況,自由地選取需要進行備份恢復的庫表,庫表序列以配置文件的形式存儲于工作站或者PC計算機硬盤中,以備調用;2.按照庫表序列檢索關系型數(shù)據(jù)庫中相應的庫表中的數(shù)據(jù),生成備份數(shù)據(jù),以文本文件形式存儲于工作站或者PC計算機硬盤中;3.在需要恢復數(shù)據(jù)時,依據(jù)用戶選定的一個在備份過程所生成的數(shù)據(jù)備份文件,將文件中的數(shù)據(jù)項以關系型數(shù)據(jù)庫中記錄的形式寫入數(shù)據(jù)庫,完成數(shù)據(jù)恢復操作。本方法可以任意定制所需備份的庫表,不必每次備份都對整個數(shù)據(jù)庫來進行;使用原需要十幾甚至幾十分鐘完成的對全部配置數(shù)據(jù)的備份和恢復的過程,現(xiàn)在幾分鐘內(nèi)即可完成。
文檔編號G06F17/40GK1517918SQ0311500
公開日2004年8月4日 申請日期2003年1月17日 優(yōu)先權日2003年1月17日
發(fā)明者王振宇, 蔣松平 申請人:深圳市中興通訊股分有限公司