數據庫備份裝置與方法
【技術領域】
[0001]本公開涉及數據庫,特別地,涉及一種數據庫備份裝置與方法。
【背景技術】
[0002]現行的數據庫備份方法有3種:全量備份、增量備份和差異備份。這些備份方法都是根據數據的更新狀態而不是重要程度進行備份,重要程度并不相同的數據一律按照相同的策略進行備份。而很多應用系統的重要數據十分敏感,最好能進行實時備份。但是,由于備份系統只能對所有的數據都進行相同的備份,例如,實時備份,這導致系統負荷和存儲急劇增加,在實踐中不具有很好的可行性。
【發明內容】
[0003]本公開鑒于以上問題中的至少一個提出了新的技術方案。
[0004]本公開在其一個方面提供了一種數據庫備份裝置,其能夠對數據庫中指定的重要數據表進行實時備份,并且幾乎不增加系統負擔。
[0005]本公開在其另一方面提供了一種數據庫備份方法,其能夠對數據庫中指定的重要數據表進行實時備份,并且幾乎不增加系統負擔。
[0006]根據本公開,提供一種數據庫備份裝置,包括數據備份單元、數據物理讀寫單元和設置在數據庫中指定數據表中的觸發器,其中,
[0007]觸發器,用于響應于對數據庫中指定數據表中的數據發生插入、刪除或更改操作時,觸發數據備份單元對指定數據表進行備份;
[0008]數據備份單元,用于接收觸發器發出的觸發信息,根據觸發信息調用數據物理讀寫單元對指定數據表進行實際的讀寫備份操作;
[0009]數據物理讀寫單元,用于根據觸發信息將指定數據表備份到備份區內。
[0010]在本公開的一些實施例中,該裝置還包括:
[0011]數據恢復單元,用于響應于對數據恢復的請求,調用數據物理讀寫單元自指定備份區將數據寫入到相應的數據表中;
[0012]數據物理讀寫單元還用于根據數據恢復單元的指令將指定備份區的數據寫入到相應的數據表中。
[0013]在本公開的一些實施例中,備份區為文件系統、另一數據庫實例或指定數據表所在數據庫中的另一數據表。
[0014]在本公開的一些實施例中,數據物理讀寫單元通過全量備份方式備份指定數據表。
[0015]在本公開的一些實施例中,觸發信息包括操作指令和被操作的數據表。
[0016]在本公開的一些實施例中,觸發信息還包括指定數據表將被備份到的位置。
[0017]根據本公開,還提供了一種數據庫備份方法,包括:
[0018]響應于對數據庫中指定數據表中的數據發生插入、刪除或更改操作時,設置在指定數據表中的觸發器觸發數據備份單元對指定數據表進行備份;
[0019]數據備份單元根據觸發器發出的觸發信息調用數據物理讀寫單元對指定數據表進行實際的讀寫備份操作;
[0020]數據物理讀寫單元根據觸發信息將指定數據表備份到備份區內。
[0021]在本公開的一些實施例中,該方法還包括:
[0022]響應于對數據恢復的請求,數據恢復單元調用數據物理讀寫單元自指定備份區將數據寫入到相應的數據表中。
[0023]在本公開的一些實施例中,備份區為文件系統、另一數據庫實例或指定數據表所在數據庫中的另一數據表。
[0024]在本公開的一些實施例中,數據物理讀寫單元通過全量備份方式備份指定數據表。
[0025]在本公開的一些實施例中,觸發信息包括操作指令和被操作的數據表。
[0026]在本公開的一些實施例中,觸發信息還包括指定數據表將被備份到的位置。
[0027]與現有技術中數據庫的所有數據均采用相同的備份方式相比,本公開的技術方案在數據庫中用戶指定的數據表發生變化時,實時由設置在指定數據表中的觸發器觸發對該指定數據表進行實時備份,不僅保證了這些指定數據表中數據的安全性,而且由于用戶指定的數據表為非常重要的數據表,其在數據庫中的占比較小,因此在保證數據安全性的前提下也幾乎不增加系統負擔和存儲空間。
【附圖說明】
[0028]此處所說明的附圖用來提供對本公開的進一步理解,構成本申請的一部分。在附圖中:
[0029]圖1是本公開一個實施例的數據庫備份裝置的結構示意圖。
[0030]圖2是本公開另一實施例的數據庫備份裝置的結構示意圖。
[0031]圖3是本公開一個實施例的數據庫備份方法的流程示意圖。
[0032]圖4是本公開執行數據庫備份方法前進行預處理的一個實例的流程示意圖。
[0033]圖5是本公開對重要數據實時備份的數據庫備份方法的一個實例的示意圖。
【具體實施方式】
[0034]下面將參照附圖描述本公開。要注意的是,以下的描述在本質上僅是解釋性和示例性的,決不作為對本公開及其應用或使用的任何限制。除非另外特別說明,否則,在實施例中闡述的部件和步驟的相對布置以及數字表達式和數值并不限制本公開的范圍。另外,本領域技術人員已知的技術、方法和裝置可能不被詳細討論,但在適當的情況下意在成為說明書的一部分。
[0035]發明人發現,數據庫中并非所有的數據都具有同等重要的地位,對于那些不重要的數據進行實時備份將嚴重浪費系統資源。因此,用戶可以根據需求將數據庫中的數據表劃分為重要的數據表與非重要的數據表,僅對數據庫中重要的數據表,即,指定數據表進行實時備份。
[0036]這種僅對重要的數據進行實時備份,而對那些不重要的數據依然按照常規的策略和方法進行備份,既保證了重要數據有足夠的安全,又幾乎不增加系統負擔和存儲空間。
[0037]圖1是本公開一個實施例的數據庫備份裝置的結構示意圖。
[0038]如圖1所示,該實施例中的裝置10可以包括數據備份單元102、數據物理讀寫單元104和設置在數據庫中指定數據表中的觸發器106。
[0039]需要指出的是,為了在每個指定數據表中的數據一發生變化就進行數據的實時備份,本公開在每個需要進行實時備份的指定數據表中均預先設置觸發器106。
[0040]觸發器106,用于響應于對數據庫中指定數據表中的數據發生插入、刪除或更改操作時,觸發數據備份單元對指定數據表進行備份;
[0041]數據備份單元102,用于接收觸發器發出的觸發信息,根據觸發信息調用數據物理讀寫單元對指定數據表進行實際的讀寫備份操作;
[0042]數據物理讀寫單元104,用于根據觸發信息將指定數據表備份到備份區內。
[0043]與現有技術中數據庫的所有數據均采用相同的備份方式相比,該實施例在數據庫中用戶指定的數據表發生變化時,實時由設置在指定數據表中的觸發器觸發對該指定數據表進行實時備份,不僅保證了這些指定數據表中數據的安全性,而且由于用戶指定的數據表為非常重要的數據表,其在數據庫中的占比較小,因此在保證數據安全性的前提下也幾乎不增加系統負擔和存儲空間。
[0044]進一步地,數據庫備份裝置還可以包括:
[0045]數據恢復單元,用于響應于對數據恢復的請求,調用數據物理讀寫單元自指定備份區將數據寫入到相應的數據表中;
[0046]數據物理讀寫單元還用于根據數據恢復單元的指令將指定備份區的數據寫入到相應的數據表中。
[0047]進一步地,備份區可以為文件系統、另一數據庫實例或指定數據表所在數據庫中的另一數據表。
[0048]需要指出的是,數據物理讀寫單元可以通過全量備份、增量備份或差異備份等方式對數據庫中的指定數據庫進行備份。
[0049]其中,增量備份與差異備份存在的意義在于,它們比全量備份更節省存儲空間,特別是對那些不經常改變數據的表。就恢復速度來說,全量備份方式進行恢復時最快、增量備份恢復時最慢(但增量備份也是最節省存儲空間的)。對于頻繁更改的數據表,因為幾乎所有數據都有差異,所以對這些數據采用差異備份與增量備份并不能顯著節省存儲空間,反而會大大降低恢復速度。
[0050]進一步地,對于頻繁改變的重要數據,數據物理讀寫單元可以通過全量備份方式備份指定數據表。
[0051]此外,觸發器發給數據備份單元的觸發信息可以包括但不限于操作指令和被操作的數據表。
[0052]其中,操作指令可以包括增加、修改或刪除數據。
[0053]進一步地,觸發信息還可以包括指定數據表將被備份到的位置。例如,如果備份區中可以包含多個備份的數據表,則可以在操作指令中包含將該指定數據表備份到位置,即,指定數據表在備份區內的起始偏移位置。
[0054]需要指出的是,上述指定數據表為用戶自數據庫中選出的含有重要數據的數據表。
[0055]圖2是本公開另一實施例的數據庫備份裝置的結構示意圖。
[0056]如圖2所示,該實施例中的裝置20可以包括數據備份單元102、數據物理讀寫單元104、數據恢復單元202以及觸發器106。其中,
[0057]觸發器106,在數據備份單元102的上層,分布于需要備份的重要數據表中,用于當重要數據發生插入、刪除、修改操作時,調用其下層的數據備份單元102以實施備份;
[0058]數據備份單元102,位于觸發器106的下層、數據物理讀寫單元104的上層,用于接收觸發器106發出的觸發信息,當接收到觸發信息后,讀取需要備份的數據,再調用其下層的數據物理讀寫單元104將數據寫入到備份區;
[0059]進一步地,在進行指定數據表的備份時,還包括在備份區中寫入備份時間,用于在數據恢復時控制將恢復的版本;
[0060]數據恢復單元202,位于數據物理讀寫單元104的上層,用于當需要恢復數據時,調用其下層的數據物理讀寫單元104從備份區讀取數據,并寫入到相應的數據表中;
[0061]進一步地,在進行數據恢復時,可以根據當前系統時間和數據備份時間,由人工選擇恢復的版本,或者根據系統時間自動恢復到合適版本,但大部分情況下是恢復到最近版本;
[0062]數據物理讀寫單元104,位于數據備份單元102、數據恢復單元202的