一種通用型資料庫備份及恢復方法
2023-05-12 04:45:46 1
專利名稱:一種通用型資料庫備份及恢復方法
技術領域:
本發明涉及計算機應用領域,具體涉及一種通用型資料庫備份及恢復方法。
背景技術:
對於資料庫備份恢復方式,各資料庫廠商均提供了應用層面的備份恢復工具,這些工具在一定程度上能夠滿足數據的備份恢復需求,大部分只能按用戶方式、表方式和全庫方式進行備份,不能分門別類進行細粒度的備份恢復,而且在備份恢復過程中出現異常的時候很難定位錯誤位置;此外,這些工具很難無縫集成到應用系統中。
發明內容
有鑑於此,本發明提供了一種通用型資料庫備份及恢復方法,能夠對多種資料庫進行備份和恢復。本發明的一種通用型資料庫備份及恢復方法,包括如下步驟步驟1、建立資料庫引擎,在該數據引擎中封裝多種主流資料庫的客戶端協議;將資料庫引擎與客戶需要的資料庫建立起連接,並通過數據引擎讀取該資料庫的所有數據對象;在數據引擎中生成的選擇頁面中顯示該資料庫中所有的數據對象供用戶選擇,用戶選擇後,保存用戶選擇的要備份的數據對象;步驟2、建立文件讀寫引擎,設置用於存儲待抓取數據的文件的容量大小;根據步驟I中所保存的用戶要備份的數據對象,文件讀寫引擎從該資料庫中對數據進行抓取,在文件的文件體中順序寫入抓取的數據對象的內容;同時通過文件讀寫引擎在文件的文件頭中以二進位的形式寫入該備份文件的基本信息;文件讀寫引擎實時判斷每個文件已經寫入數據的大小,當數據的大小等於文件的容量大小時,停止向當前文件寫入數據,生成新文件,將數據繼續寫入到新文件中;所述文件讀寫引擎採用寫緩存方式將數據對象寫入文件,具體為文件讀寫引擎從資料庫抓取數據後,先將數據對象暫存入寫緩存區域,寫緩存區域內的數據量達到該寫緩存的容量上限後,將其中的數據一次性寫入所述文件中;在上述抓取數據過程中,首先讀取各個數據對象之間的依賴關係,按照先抓取被其它數據對象依賴的數據對象,後抓取不被依賴數據對象的順序,對待抓取數據對象進行寫緩存處理;步驟3、根據數據對象間的依賴關係,將數據對象從文件中順序讀取,然後再恢復到資料庫中;其中,在恢復的過程中,如果恢復的數據對象為單純的數據形式,則先刪除文件中數據的索引,待數據恢復到資料庫後再重建數據的索引。資料庫引擎根據用戶對數據對象的備份需求,周期性執行所述步驟2的備份任務。將所述數據對象從文件向資料庫恢復時採用緩存方式,即先將數據對象暫存入寫緩存區域,寫緩存區域數據量達到該寫緩存的容量上限後,將其中的數據一次性恢復到資料庫中。記錄數據備份過程中的各種錯誤信息,出現異常時,根據錯誤信息查找定位錯誤位置。本發明具有如下有益效果I)根據客戶要求設置要備份的對象類型,包括表、試圖、存儲過程、函數或者自定義對象等,可以只備份一類、多類或者全部,實現數據對象的細粒度的備份及恢復;2)在資料庫引擎中封裝多個主流資料庫的,根據用戶要求建立所要備份的資料庫,實現了應用系統與多個資料庫的無縫集成;3)記錄數據備份過程中的各種錯誤信息,出現異常時,根據錯誤信息查找定位錯誤位置。
具體實施例方式下面舉實施例,對本發明進行詳細描述。本發明提供了一種通用型資料庫備份及恢復方法,包括如下步驟步驟1、建立資料庫引擎,在該數據引擎中封裝0RACLE、DB2、MySQL和MS SQL等多種主流資料庫的客戶端協議;將資料庫引擎與客戶需要的資料庫建立起連接,並通過數據引擎讀取該資料庫的所有數據對象,包括表、視圖、存儲過程、函數、自定義對象等;在數據引擎中生成的選擇頁面中顯示該資料庫中所有的數據對象供用戶選擇,用戶選擇後,保存用戶選擇的要備份的數據對象;步驟2、建立文件讀寫引擎,設置用於存儲待抓取數據的文件的容量大小;根據步驟I中所保存的用戶要備份的數據對象,文件讀寫引擎從該資料庫中對數據進行抓取,在文件的文件體中順序寫入抓取的數據對象的內容,如建表語句、具體數據、存儲過程原始碼、函數原始碼何自定義對象描述語句等;同時通過文件讀寫引擎在文件的文件頭中以二進位的形式寫入該備份文件的基本信息,如備份時間、備份範圍、本次備份文件總數以及該文件時本次備份中的第幾個文件等;文件讀寫引擎實時判斷每個文件已經寫入數據的大小,當數據的大小等於文件的容量大小時,停止向當前文件寫入數據,生成新文件,將數據繼續寫入到新文件中。如此,會根據需要生成一定大小的備份文件,避免某些文件容量過大。為了降低對磁碟的讀寫頻率,文件讀寫引擎採用寫緩存方式將數據對象寫入文件,具體為文件讀寫引擎從資料庫抓取數據後,先將數據對象暫存入寫緩存區域,寫緩存區域內的數據量達到該寫緩存的容量上限後,將其中的數據一次性寫入所述文件中,提高資料庫的寫入性能;在某些情形下,在文件恢復過程中,某個資料庫中的數據對象依賴其他資料庫或者其中的對象,因此,為了避免「還未創建,就被依賴的情況」,則此時需要先恢復被依賴的數據對象,再恢復不被依賴的數據對象,所以在上述抓取數據過程中,首先讀取各個數據對象之間的依賴關係,按照先抓取被其它數據對象依賴的數據對象,後抓取不被依賴數據對象的順序,對待抓取數據對象進行寫緩存處理;步驟3、根據數據對象間的依賴關係,將數據對象從文件中順序讀取,然後再恢復到資料庫中;其中,在恢復的過程中,如果恢復的數據對象為單純的數據形式,則先刪除文件中數據的索引,待數據恢復到資料庫後再重建數據的索引,如此可提高數據入庫性能。資料庫引擎根據用戶對數據對象的備份需求,周期性執行所述步驟2的備份任務。將所述數據對象從文件向資料庫恢復時採用緩存方式,即先將數據對象暫存入寫緩存區域,寫緩存區域數據量達到該寫緩存的容量上限後,將其中的數據一次性恢復到資料庫中。記錄數據備份過程中的各種錯誤信息,出現異常時,根據錯誤信息查找定位錯誤位置,便於用戶分析出錯原因,進而迅速解決問題。綜上所述,以上僅為本發明的較佳實施例而已,並非用於限定本發明的保護範圍。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
1.ー種通用型資料庫備份及恢復方法,其特徵在於,包括如下步驟 步驟1、建立資料庫引擎,在該數據引擎中封裝多種主流資料庫的客戶端協議;將資料庫引擎與客戶需要的資料庫建立起連接,並通過數據引擎讀取該資料庫的所有數據對象;在數據引擎中生成的選擇頁面中顯示該資料庫中所有的數據對象供用戶選擇,用戶選擇後,保存用戶選擇的要備份的數據對象; 步驟2、建立文件讀寫引擎,設置用於存儲待抓取數據的文件的容量大小;根據步驟I中所保存的用戶要備份的數據對象,文件讀寫引擎從該資料庫中對數據進行抓取,在文件的文件體中順序寫入抓取的數據對象的內容;同時通過文件讀寫引擎在文件的文件頭中以ニ進位的形式寫入該備份文件的基本信息; 文件讀寫引擎實時判斷每個文件已經寫入數據的大小,當數據的大小等於文件的容量大小時,停止向當前文件寫入數據,生成新文件,將數據繼續寫入到新文件中; 所述文件讀寫引擎採用寫緩存方式將數據對象寫入文件,具體為文件讀寫引擎從資料庫抓取數據後,先將數據對象暫存入寫緩存區域,寫緩存區域內的數據量達到該寫緩存的容量上限後,將其中的數據一次性寫入所述文件中; 在上述抓取數據過程中,首先讀取各個數據對象之間的依賴關係,按照先抓取被其它數據對象依賴的數據對象,後抓取不被依賴數據對象的順序,對待抓取數據對象進行寫緩存處理; 步驟3、根據數據對象間的依賴關係,將數據對象從文件中順序讀取,然後再恢復到資料庫中;其中,在恢復的過程中,如果恢復的數據對象為單純的數據形式,則先刪除文件中數據的索引,待數據恢復到資料庫後再重建數據的索引。
2.根據權利要求1所述的ー種通用型資料庫備份及恢復方法,其特徵在於,資料庫引擎根據用戶對數據對象的備份需求,周期性執行所述步驟2的備份任務。
3.根據權利要求1所述的ー種通用型資料庫備份及恢復方法,其特徵在幹,將所述數據對象從文件向資料庫恢復時採用緩存方式,即先將數據對象暫存入寫緩存區域,寫緩存區域數據量達到該寫緩存的容量上限後,將其中的數據一次性恢復到資料庫中。
4.根據權利要求1所述的ー種通用型資料庫備份及恢復方法,其特徵在於,記錄數據備份過程中的各種錯誤信息,出現異常時,根據錯誤信息查找定位錯誤位置。
全文摘要
本發明公開了一種通用型資料庫備份及恢復方法根據客戶要求設置要備份的對象類型,包括表、試圖、存儲過程、函數或者自定義對象等,可以只備份一類、多類或者全部,實現數據對象的細粒度的備份及恢復;在資料庫引擎中封裝多個主流資料庫的,根據用戶要求建立所要備份的資料庫,實現了應用系統與多個資料庫的無縫集成;記錄數據備份過程中的各種錯誤信息,出現異常時,根據錯誤信息查找定位錯誤位置。
文檔編號G06F11/14GK103049566SQ20121059300
公開日2013年4月17日 申請日期2012年12月31日 優先權日2012年12月31日
發明者吳歌 申請人:中國電子科技集團公司第十五研究所