用于對數(shù)據安全存檔的方法和系統(tǒng)的制作方法
【技術領域】
[0001] 本發(fā)明涉及計算系統(tǒng),并且更具體地涉及用于對數(shù)據安全存檔的方法。
【背景技術】
[0002] 由數(shù)據庫系統(tǒng)存儲和處理的數(shù)據量正在加速增長。存儲數(shù)以億計的數(shù)據庫記錄會 對存儲該數(shù)據所需要的磁盤空間產生影響。對于像ζ/OS存儲服務器那樣的高質量存儲來 說,該磁盤空間可能是昂貴的。此外,在數(shù)據庫系統(tǒng)中存儲數(shù)以億計的記錄可能會影響數(shù)據 庫系統(tǒng)的性能。
[0003] 因此,不頻繁改變的數(shù)據和/或不頻繁使用的數(shù)據可能經受被移動("存檔 (archive)")到較便宜的存儲裝置或系統(tǒng)。
[0004] 將數(shù)據從一個位置移動到另一位置(例如,到另一數(shù)據庫系統(tǒng))的過程在本發(fā)明 中將被稱為"存檔"。
[0005] 對幾乎所有已知的"存檔"解決方案共同的是,數(shù)據被移動到存檔系統(tǒng)中并且然后 將數(shù)據從源系統(tǒng)中清除。然而,這種數(shù)據分離導致對源系統(tǒng)的數(shù)據維護問題。
【發(fā)明內容】
[0006] 本發(fā)明的實施例的目的是提供用于對數(shù)據安全存檔的改進的方法、計算機系統(tǒng)和 計算機程序產品。所述目的由獨立權利要求的主題解決。有利的實施例在從屬權利要求中 描述。
[0007] 在一個方面,本發(fā)明涉及一種用于對駐留在數(shù)據庫系統(tǒng)中的表的預定義部分進行 存檔的計算機實現(xiàn)的方法。該方法包括:
[0008] a.創(chuàng)建表的該部分的第一備份副本;
[0009] b.向表的該部分指配訪問狀態(tài)標志;
[0010] C.設置訪問狀態(tài)標志;
[0011] d.使用訪問狀態(tài)標志來防止修改表的該部分的現(xiàn)有備份副本并且防止對表的該 部分的進一步備份操作;
[0012] e.將表的該部分存檔到分離的系統(tǒng);
[0013] f.從數(shù)據庫系統(tǒng)中刪除表的該部分的內容并且將訪問狀態(tài)標志保留在數(shù)據庫系 統(tǒng)中。
[0014] 通過使用在刪除源系統(tǒng)中的數(shù)據之前已經創(chuàng)建的受保護的備份副本來防止數(shù)據 丟失,這些特征可以提供用于存檔數(shù)據的安全方法。也就是說,假如存檔系統(tǒng)故障或需要對 存檔數(shù)據的數(shù)據修改,可以在數(shù)據庫系統(tǒng)中恢復該數(shù)據。此外,這可以節(jié)省在從存檔系統(tǒng)恢 復數(shù)據時將另外需要的資源(例如,處理功率)。
[0015] 對表的部分的修改包括將新數(shù)據插入在表的該部分中或者更新(覆寫)表的該部 分中的現(xiàn)有數(shù)據或者刪除表的該部分的內容。
[0016] 本方法可以允許使用相同的單個數(shù)據源(即,從第一備份副本)創(chuàng)建多個存檔。這 與基于相應多個數(shù)據源來提供多個存檔的常規(guī)方法相反。這是因為,跟隨數(shù)據存檔之后的 是數(shù)據源的刪除,并且因此利用常規(guī)方法的進一步的存檔操作可能首先要求恢復被刪除的 數(shù)據源。結果,本方法還可以節(jié)省資源并防止可能發(fā)生在處理相同數(shù)據的多個源時多個存 檔之間的數(shù)據不一致性。
[0017] 例如,現(xiàn)有備份副本至少包括表的部分的最后備份副本。
[0018] 根據一個實施例,該方法進一步包括針對表的部分使用第一備份副本重復存檔步 驟e)至少兩次。這可以使用第一備份副本提供表的相同部分的多個存檔副本。
[0019] 根據一個實施例,該方法進一步包括接收對表的部分的查詢,其應當返回源系統(tǒng) 的表的部分的數(shù)據(即,沒有存檔數(shù)據);響應于所接收的查詢,使用訪問狀態(tài)標志用于返 回空結果。該查詢可以包括例如結構化查詢語言(SQL)或多維表達(MDX)查詢,或者備選 地可以遵循任何其它合適的格式或語言。
[0020] 由于表的部分已經從數(shù)據庫系統(tǒng)中被刪除,因此僅存在訪問狀態(tài)標志可以足以作 為沒有數(shù)據存在并且沒有數(shù)據需要被掃描的指示符。因此,查詢處理可受益(例如,受益 于需要較少的資源),因為可以不必打開針對表的該部分空間的文件,并且沒有內部元數(shù)據 (空閑空間映射、索引、頁信息等)必須被加載和解譯。
[0021] 根據一個實施例,第一備份副本具有使用第一標識算法確定的第一標識符。該方 法進一步包括:在創(chuàng)建步驟a)之后并且在設置步驟c)之后,確定是否創(chuàng)建了具有使用第二 標識算法確定的第二標識符的表的部分的第二備份副本,其中假如創(chuàng)建了第二備份副本, 則創(chuàng)建具有使用第一標識算法確定的第三標識符的表的部分的第三備份副本。
[0022] 第三備份副本變?yōu)楸淼牟糠值淖詈髠浞莞北?,并且因此,下面描述的針對第一?份副本(即,作為最后的備份副本)的方法適用于第三備份副本。
[0023] 該實施例可以是有利的,因為通過防止使用不同的標識算法用于存檔數(shù)據的備份 副本,可以加強本方法的安全性方面。
[0024] 根據一個實施例,該方法進一步包括使用訪問狀態(tài)標志以用于防止修改表的部 分。這可以是有利的,因為沒有新記錄可以被插入到表的部分中,其將不會反映在存檔數(shù)據 中。
[0025] 根據一個實施例,該方法進一步包括如下步驟:在刪除步驟f)之前復位訪問狀態(tài) 標志;并且在刪除步驟f)之后重置訪問狀態(tài)標志。
[0026] 根據一個實施例,該方法進一步包括:在刪除步驟f)之后:
[0027] -確定表的部分在創(chuàng)建步驟a)之后沒有被除刪除步驟f)之外的操作修改;
[0028] -確定第一備份副本是表的部分的最后備份副本,并且成功地結束該方法。
[0029] 例如,可以存在除本公開的刪除步驟f)操作外的可以修改表的部分的其它操作。 確定是否表的部分沒有被修改的步驟可以通過檢驗是否表的部分被這樣的其它操作修改 來執(zhí)行。
[0030] 根據一個實施例,該方法進一步包括:在重置訪問狀態(tài)標志之后:
[0031] -確定表的部分在創(chuàng)建步驟a)之后沒有被除刪除步驟f)之外的操作修改;
[0032] -確定第一備份副本是表的部分的最后備份副本,并且成功地結束該方法。
[0033] 這可以提供一致性檢查方法,而不必比較備份數(shù)據與存檔數(shù)據。
[0034] 根據一個實施例,該方法進一步包括:在重置訪問狀態(tài)標志之后:
[0035] -確定表的部分在創(chuàng)建步驟a)之后沒有被除刪除步驟f)之外的操作修改;
[0036] -響應于確定存在表的部分的第二較后的備份副本而確定第一備份副本無效; [0037]-復位訪問狀態(tài)標志;
[0038] -使用第一備份副本來恢復表的部分;以及
[0039] -重新運行步驟a)至f),從而創(chuàng)建新的備份副本。
[0040] 由于訪問狀態(tài)標志可以用于保護存儲在數(shù)據庫系統(tǒng)中的最后創(chuàng)建的備份副本;該 實施例可以防止,除根據本發(fā)明創(chuàng)建(例如使用第一標識算法)的備份副本外的其它備份 副本(例如使用其它標識算法的第二備份副本)受到訪問狀態(tài)標志的保護。僅保護最后的 備份副本可以是有利的,因為這可以允許刪除舊的備份副本,并且因此節(jié)省存儲資源。
[0041] 根據一個實施例,該方法進一步包括:在重置訪問狀態(tài)標志之后:
[0042] -響應于確定表的部分在創(chuàng)建步驟a)之后被除刪除步驟f)之外的操作修改,而使 用關聯(lián)于表的部分的統(tǒng)計數(shù)據來確定對表的部分的修改;
[0043] -復位訪問狀態(tài)標志;
[0044] -使用第一備份副本恢復表的部分;
[0045] -將所確定的修改應用到表的部分,并且針對修改的表的部分重新運行步驟a)至 f)。
[0046] 例如,假如在設置了訪問狀態(tài)標志的情況下刪除步驟f是不可能的。那么可以執(zhí) 行,在步驟f)之前要求對其復位。同時可以發(fā)生數(shù)據修改。這將在上述實施例的范圍內被 檢測和處理。
[0047] 根據一個實施例,該方法進一步包括:在刪除步驟f)之后:
[0048] -確定表的部分在創(chuàng)建步驟a)之后沒有被除刪除步驟f)之外的操作修改;
[0049] -響應于確定存在表的部分的第二較后的備份副本,而確定第一備份副本無效;
[0050] -使用第一備份副本恢復表的部分;以及
[0051] -重新運行步驟a)至f),從而創(chuàng)建新的備份副本。
[0052] 根據一個實施例,該方法進一步包括:在刪除步驟f)之后:
[0053] -響應于確定表的部分在創(chuàng)建步驟a)之后被除刪除步驟f)之外的操作修改,而使 用關聯(lián)于表的部分的統(tǒng)計數(shù)據來確定對表的部分的修改;
[0054] -使用第一備份副本來恢復表的部分;
[0055] -將所確定的修改應用到表的部分,并且針對修改的表的部分重新運行步驟a)至 f)。
[0056] 根據一個實施例,由數(shù)據庫系統(tǒng)的刪除模塊執(zhí)行刪除。該方法進一步包括控制刪 除模塊以刪除表的部分,而不管是否設置了訪問狀態(tài)標志。
[0057] 該實施例可以被無縫地集成在現(xiàn)有系統(tǒng)中,因為對于忽略訪問狀態(tài)標志來說,其 可以具有很少或沒有技術限制。這是因為,不需要撤銷訪問狀態(tài)標志,并且因此不需要檢查 是否表的部分被修改或者第一備份副本被無效。
[0058] 根據一個實施例,由數(shù)據庫系統(tǒng)的備份模塊執(zhí)行第一備份副本的創(chuàng)建,該方法進 一步包括控制備份模塊以包括步驟a、b和c作為原子操作。這可以是有利的,因為其可以 防止修改表的部分以及防止采用新的備份副本,這可能以其它方式發(fā)生在設置訪問狀態(tài)標 志之前。
[0059] 根據一個實施例,該方法進一步包括接收恢復表的部分的請求;復位訪問狀態(tài)標 志;以及使用第一備份副本恢復表的部分。
[0060] 根據一個實施例,該方法進一步包括接收指示對表的部分的入侵企圖的數(shù)據;使 用訪問狀態(tài)標志以防止訪問第一備份副本和存檔數(shù)據。對表的部分的入侵可以例如是未授 權的根級訪問的獲得和所產生的信息竊取。禁止訪問表的部分可以僅關心嘗試入侵企圖的 入侵者(例如,在阻擋入侵者訪問的同時,其它授權用戶可以訪問表的部分)。該方法可以 進一步包括將訪問錯誤消息發(fā)送給入侵者。該實施例可以是有利的,因為其通過提供用戶 相關的訪問狀態(tài)標志,可以加強本方法的安全方面。
[0061] 在另一方面中,本發(fā)明涉及一種