- 資料庫的效能考量: 純就 Oracle而言, Table 資料不做 purge, 放任成長, 對效能一定有影響.
- 成本考量: 一般資料多儲存於SAN, 儲存媒介所費不貲, 將過期的資料移儲至相較便宜的媒體, 對成本有一定的幫助
- 法律的相容: 所謂法律指得是像沙賓SOX, GLB and HIPAA 等規範對企業資料的保留期限的要求.
這方面的管理擴大到整個企業來說就是所謂的ILM(Information Lifecycle Management), 管理資料的整個生命週期:從抓取、創造、保留、備份、到銷燬資料的整個過程,以低成本的方式儲存大量的資料,還要能易於取得,且必須符合沙賓、HIPPA等法案所規定的資料保存與保護的需求.
ILM很自然的成為IT人員再開發系統之外另外一個要考量的重點. 但以現行企業多數的作法是根據應用系統的特性, 如果是套裝系統如SAP, 本身就有考量到資料備份(Archive), 則就使用SAP提供的Archive工具搭配合適的媒體管理工具(Media)就可以做到ILM. 而若是企業自行開發的軟體, 則多由資料庫端做 Archive. 由開發人員提供TABLE的設計邏輯, 將備份邏輯用PL/SQL(當然C或VB等語言也可以, 但是PL/SQL對資料處裡的效能最好)開發好後, 加入排程後, 將資料定期備份成檔案後由DBA將資料燒錄成光碟. 當然執行細節各家做法又會有差異. 而當使用者有查詢歷史資料需求時, 在請DBA從光碟中將資料回復提供使用者查詢.
從以上的流程可以看到得是, 整個過程有太多人為的作業, 出現問題的風險不低. 本人服務的公司就曾出現客戶端要求查閱三年前的生產資料, 但是DBA回應資料不知道再上述的哪一個環節出問題所以無法找到該資料. 真得是哪裏死的都搞不清楚?
Oracle對這個問題的解法就是ILM. 在Oracle 9i時代, Oracle的作法是在它的HTML-DB(現已改名為APEX)上開發一個做 Data Archive的應用程式包含以下功能
-
提供一個GUI介面去管理整個ILM環境
-
定義ILM各個階段的目的.
-
定義資料備份的規則後產生相關的Script.
到了 Oracle 11g, ILM做了大幅度的修正, 整個流程的涵蓋度比起9i來說, 完整了很多, 主要在和儲存端的結合. 在技術上它整合了 partitioning, 允許資料的備份使用 partition-level的相關語法, 這對DBA而言是一個好消息.
-
定義要做archive 的資料類別(Define the Data Classes): 簡單得說就是定義Table的重要性, 資料保存的期間, Table用哪一個欄位(Create_date,...)來判斷資料的新舊,..等等.
-
建立儲存層別(Storage Tiers): 將資料根據存取的頻繁程度, 以下四個Level, 由上而下分別代表存取頻率由高至低. 舉例,一個Table的資料在資料類別定義後, 根據儲存層別不同會被儲存在不同的層別. 最新的資料儲存在'Ihgh Performance'層別, 以此類推. 這時Partitioning就派上用場, 如何將第一步的資料類別指定給儲存層別就是透過Partitioning.
• High Performance
• Low Cost
• Online Archive
• Offline Archive (optional) -
建立資料存取政策(Data Access and Migration Policies): 這邊就是定義資料如何被搬移和後續存取的權限管理.
-
定義規範(Define and Enforce Compliance Policies): ILM的實施一部分是法律的規範, Oracle也將相關規範整合入系統, 以利後續管理目的.
參考文件:
http://www.dba-oracle.com/t_11g_ilm_information_lifecycle_management.htm
http://www.zdnet.com.tw/news/software/0,2000085678,20127191,00.htm
沒有留言:
張貼留言