時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(1)
? 這是我希望你永遠(yuǎn)不要面對的一個任務(wù):永遠(yuǎn)都不需要重新創(chuàng)建不同時間點(diǎn)上的數(shù)據(jù),以此來澄清一個可疑的動作或則和揭示損失或者被偷的數(shù)據(jù)。大多數(shù)的數(shù)據(jù)庫都在核心數(shù)據(jù)層上存儲數(shù)據(jù),上面只為終端用戶和數(shù)據(jù)庫管理員顯示數(shù)據(jù)的最近狀態(tài)。這就意味著你只能看到最新版本的數(shù)據(jù),你無法識別在數(shù)據(jù)生命周期中不同時間點(diǎn)上特定數(shù)據(jù)的下落。
? 作為一個數(shù)據(jù)庫管理員和顧問,我見到許多的數(shù)據(jù)庫只存儲當(dāng)前的數(shù)據(jù)快照,而不是數(shù)據(jù)在其生命周期中發(fā)生變化的每個歷史時期的數(shù)據(jù)行。在大多數(shù)情況下,這對于數(shù)據(jù)庫來說都是不錯的,因?yàn)槊總€事務(wù)的一次迭代都會讓你的數(shù)據(jù)庫的規(guī)模比現(xiàn)在的尺寸大上100到1000倍。這是因?yàn)樗枰WC數(shù)據(jù)庫處在可管理的層面上,歷史性的數(shù)據(jù)行通常不會存儲,因此不容易重新創(chuàng)建。
? 金融行業(yè)則采用了相反的方式。不僅僅是存儲數(shù)據(jù)的最近狀態(tài),它還存儲了發(fā)生的每個事務(wù),并且將條目還原到變化之前。這個方式意味著數(shù)據(jù)被寫入,但是它永遠(yuǎn)不會發(fā)生變化。任何的歷史時間點(diǎn)都可以輕松地顯示出來,需要重新創(chuàng)建數(shù)據(jù)等其他操作。從純粹的感覺出發(fā),檢索金融數(shù)據(jù)的變更并不像你存儲在數(shù)據(jù)庫中的其他數(shù)據(jù)那么頻繁。就是說,你應(yīng)該調(diào)查一下你需要檢索哪些歷史數(shù)據(jù),以及那些類型的數(shù)據(jù)只需要你存儲最新版本即可。
? 市場上也有此類工具,例如Lumigent Technologies公司的AuditDB和 Idera公司的 SQL compliance manager,它們都可以讓你捕捉數(shù)據(jù)庫中發(fā)生的每個變化的每個階段。它用了非常大的空間來存儲數(shù)據(jù),只有用上面提到的工具,你才可以檢索數(shù)據(jù)隨著時間變化的不同狀態(tài)——除非是你修改了你的應(yīng)用程序來存儲每個歷史數(shù)據(jù)行。當(dāng)然,還有其他的選擇,例如使用觸發(fā)器來捕捉每個數(shù)據(jù)變更,但是,還是這個問題,你的存儲空間需要很大,因?yàn)槭褂糜|發(fā)器的時候?qū)δ愕姆?wù)器的要求很大。
? 不使用工具或者修改你的應(yīng)用程序來捕捉每個歷史性數(shù)據(jù)行的話,你就剩下無盡的痛苦和無限的麻煩來嘗試重新創(chuàng)建你的數(shù)據(jù)了。幾年之前,我曾經(jīng)接受了這樣的任務(wù),重新創(chuàng)建幾年前的保健記錄,以此來發(fā)現(xiàn)一些可疑的行為。那時候,上面提到的工具還不存在,我就嘗試使用觸發(fā)器,還有額外的存儲需求,都無法選擇。
? 重新創(chuàng)建每個歷史性特定數(shù)據(jù)集合的視圖的過程,是從歸檔備份磁帶的檢索開始的。讓我們感到驚恐的是,我們被通知,每個月只有一盤磁帶用于長期的存儲,因此我們只能創(chuàng)建每個月一次的快照。當(dāng)我們開始重新存儲磁帶的時候,我們再次郁悶地發(fā)現(xiàn),有些磁帶已經(jīng)沒法讀了。那時候的數(shù)據(jù)庫的規(guī)模只有10GB,但是需要一遍又一遍地重新儲存,還有要捕捉到的數(shù)據(jù)的話,需要我們在適當(dāng)?shù)奈恢弥匦麓鎯?,因?yàn)檫@些是9GB磁盤驅(qū)動的時代,沒有足夠的存儲空間。今天,10GB是個極小的數(shù)字?,F(xiàn)在的數(shù)據(jù)庫規(guī)模在100GB到500GB的范圍。所以,即使是存在較大的驅(qū)動,整體的問題仍然存在。
? 我知道重新創(chuàng)建歷史性數(shù)據(jù)的任務(wù)不是經(jīng)常發(fā)生的情況,但是我也知道,我曾經(jīng)面對過這樣的挑戰(zhàn)好幾次。作為一名數(shù)據(jù)庫管理員,保護(hù)數(shù)據(jù)并幫助你的公司盡可能地再次制造是你的責(zé)任。為了理解真正的需求和數(shù)據(jù)的重要性,你必須詢問一些問題來幫助你判斷需求?;谀銓W(xué)到的內(nèi)容,在合適的地方采取措施將會保證你可以重新創(chuàng)建你需要的東西。
? 再一次提到,這里有3個選項(xiàng)考慮讓你了解什么是可能的,什么是不可能的:
? 第三方工具,例如Lumigent的AuditDB 或者Idera的 SQL compliance manager
? 使用觸發(fā)器或者修改其它應(yīng)用程序
? 備份和重新存儲的方法
? 根據(jù)你的選擇,你需要理解什么是可能的,什么是不可能的。通過使用第三方工具,你可以重新創(chuàng)建每個發(fā)生的變化。這些工具構(gòu)建在業(yè)務(wù)處理中,可以最小化對服務(wù)器和數(shù)據(jù)庫的性能影響,它們可以讓你有選擇的捕捉重要的數(shù)據(jù)。使用觸發(fā)器或者其它經(jīng)過修改的應(yīng)用程序是另一個很好的選擇,但是如果你的系統(tǒng)非常繁忙,如果你用這樣的方式的話,你的性能會受到很大的影響。
? 最后一種方式,使用備份和重新存儲,需要進(jìn)行調(diào)查以便你能夠理解長期的備份存儲。查明存儲多長時間的備份,存儲哪些類型的備份,以及你重新存儲所有步驟的可能性。即使是一天只進(jìn)行一次完全備份,你仍然有潛在的風(fēng)險會丟失某一天的變更,于是你需要在那一天進(jìn)行變更的恢復(fù)。在我所涉及的案例中,每個月都可能會發(fā)生很多很多的動作無法重新創(chuàng)建。
? 根據(jù)紙質(zhì)的記錄來重新創(chuàng)建計(jì)算機(jī)記錄的日子一去不復(fù)返了。越來越多的信息只在線抓取。如果沒有采取適當(dāng)?shù)拇胧┑脑?,?shù)據(jù)就會永遠(yuǎn)丟失,人們永遠(yuǎn)也不知道發(fā)生了什么。作為一個數(shù)據(jù)庫管理員,你需要理解你的角色,保持系統(tǒng)在線,是你的數(shù)據(jù)的,實(shí)際上也是全公司的保護(hù)神。
關(guān)鍵詞標(biāo)簽:SQL Server,災(zāi)難恢復(fù)
相關(guān)閱讀
熱門文章 淺談JSP JDBC來連接SQL Server 2005的方法 SqlServer2005對現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 sql server系統(tǒng)表損壞的解決方法 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫用戶、角色、架構(gòu)的關(guān)系
人氣排行 配置和注冊O(shè)DBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠(yuǎn)程備份(還原)SQL2000數(shù)據(jù)庫 SQL2000數(shù)據(jù)庫遠(yuǎn)程導(dǎo)入(導(dǎo)出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫服務(wù)端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級到2000的正確操作步驟 sql server系統(tǒng)表損壞的解決方法 淺談JSP JDBC來連接SQL Server 2005的方法