加入RUN!PC粉絲團
最近新增的精選文章
 
最多人點閱的精選文章
 
 
精選文章 - 學習與認證
分享到Plurk
分享到FaceBook
 
MCITP:Database Administrator
資料庫服務運轉順暢 的幕後黑手
文/朱明中.責任編輯/洪羿漣

不論是小如一般性的動作或是龐大到影響企業的決策,在資料庫服務企業的背後,總是 有一雙手在保護或是維持資料庫的運作,這個角色就是資料庫管理師(Database Administrator)。

只要是導入有資訊科技應用的商業體系, 都一定會有各式各樣的資料庫,小從 Access/FoxPro,大到SQL Server/Oracle等 等,都在無形中支援著各式各樣的商業活動, 不論是微小如一般性的動作例如便利商店賣東 西,或是龐大到影響企業的決策例如行銷決策 等,而在資料庫服務企業的背後,總是有一雙 手在保護或是維持資料庫的運作讓它能發揮最 大的功能,這雙手就是資料庫管理師。

資料庫基礎架構規劃(Database Infrastructure Planning)
在企業開始規劃要使用資料庫時,先期的規 劃與需求分析是很重要的,包括可能的資料 量,以及需要的回應時間 (Response time) , 這些會決定資料庫伺服器的硬體需求,使用 DBMS的決策,以及伺服器的數量等等。 如果是小型的解決方案 (例如像是5-10人的 小系統) ,則使用的硬體可以不必太強,而資 料庫也可以用小型的DBMS,例如SQL Server Express,就足以支援解決方案的需求了;如果 是像證券業或是大型製造業等,資料量可能有數百萬筆以上,或者是對執行時間相當計較, 又有大量用戶端時,就要考慮使用較強功能的 伺服器 (通常有4個CPU以上,16GB的記憶體 以上,配置RAID 0+1高速磁碟陣列) ,並選 用如SQL Server 2005 Enterprise Edition的 企業級DBMS,以支援如此需求的企業應用。
若企業應用發展快速,解決方案由小變 大,而原有的伺服器已經滿載,此時將要導入 多台資料庫伺服器,或者要實作容錯移轉叢集 (Failover Cluster) ,以支援高可用度 (High Availability,通常以99%加上小數點後的9的 個數代表愈高的可用性) ,以保持資料庫服務 不會中斷。
備份策略 (Backup Strategy) 則是企業資 料庫保存的重要方案,而封存策略(Archive Strategy) 則是將不常使用的資料封存,以釋 放出磁碟空間讓資料庫可以持續的成長,但需 要取回封存資料時仍然可以隨時取回,這二個 策略都是用來保護珍貴的企業資料,試想若無 備份策略,辛辛苦苦收集了數年的資料在伺服 器磁碟損毀時毀於一旦,等於收集數年的資料 全部化為烏有,對於企業的傷害有多大。
自動化管理策略(Automated Manage- ment Strategy)則可以讓資料庫依據特定的 時間,執行一些大量資料庫的活動,讓平時營 運時間(Operation Time)內的應用程式活 動不會受到影響,這些活動包含每日一次的完 整備份(Fully Backup)、大量資料庫移轉 (Mass Data Migration)、大量資料複製 (Mass Data Copy)與索引維護等等工作, 而這些工作都需要在離峰時段處理,否則會嚴 重干擾到應用程式的處理,但總不可能要人員 24小時都stand-by吧,所以這類的自動化管理 的設計可以幫助企業處理許多的工作。
這些與資料庫服務、資料庫伺服器組成與 營運的策略、計畫與藍圖,合稱為資料庫伺服 器基礎架構(Database Server Infrastructure),而資料庫管理師要有能力 設計與規劃出如此的基礎架構,並且將這份基 礎架構化為實體的基礎架構,包括營運與維護 等等皆然。

資料庫的營運 (Database Operation)
資料庫營運策略(Database Operation Strategy) 是一種管理指南,對於資料庫的日 常維運、效能標準、災難處理與故障排除等, 規劃與設計一套完整的標準,用以在資料庫發 生可能的問題時給予適當的處理,讓資料庫恢 復正常運轉。
大量資料匯出與匯入 (Mass Data Import/ Export)在大型資料庫或者有合作關係的企 業體中,是很常見的例行公事,它的特性諸如 資料量大、格式百變 (可能是Access、Excel 或是文字檔,也可能是XML檔),以及需要 時間較長等等,而這類型的工作通常會由 DBMS中的自動化工具,以及專門負責這種資 料轉移的工具服務(Utility Service)來處 理,以SQL Server 2005來說,就是SQL Server Integration Service(SSIS,SQL Server 2000時稱的DTS) ,SSIS提供了一些 方法以及GUI設計工具,讓大量資料的讀取/ 格式處理/複製與輸出等等變得較為容易。
但正確的匯出與匯入策略才是真正要考驗 資料庫管理師,在外部資料要匯入之時,格式 一定要符合本地的資料庫(Local database) ,讓應用程式可以接手資料處理, 若格式不正確時,應用程式將會無法處理,這 個程序稱為資料淨化(data cleaning);而 外部資料匯入若與本地資料庫內的資料發生衝 突(Conflict)時,要如何解決衝突,也考 驗著資料庫管理師的能力。
複寫策略(Replication Strategy)是在 多個位置的資料庫伺服器之間共享與交換資料 的動作,這個動作會讓發行者資料庫 (Publisher Database)的資料複製到訂閱者 資料庫(Subscriber Database),而這個動 作要視資料交換的方式與頻率而異,例如交易 式複寫(Transactional Replication)是在 發行者資料庫的交易發生(即資料變更)時 就複寫到訂閱者資料庫,這種複寫法雖然可保 持資料的一致性,但對網路流量則有相當的影 響-尤其是訂閱者多時,所以選擇正確的複寫 類型,規劃適當的複寫方法,也是資料庫管理 師的必要工作之一。

資料庫的保全 (Database Security)
企業的資料庫通常都保存了大量的企業資 料,而這些資料通常都極為珍貴,例如顧客資 料、商品基本資料或是交易性資料等等,為應 用程式分析與統計的基礎資料,對企業來說是 相當重要,若這些資料被竊取或是被刪除或竄 改,輕者影響報表,重則影響企業決策,對企 業的重大影響,不可不察。
資料庫保全可分為存取控制(Access Control)、驗證(Authentication)與授權 (Authorization)三個部份,SQL Server 2005支援Windows與SQL Server驗證方法, 資料庫管理師可依需要設定驗證模式;SQL Server支援Schema-Based Authorization,資 料庫管理員得以在資料庫綱要(Schema)的 層級,設定其存取的權限(例如可插入/可 更新或是僅支援檢視)等,尤其是對使用者 或者是對應用程式的角色不同,應有不同的存 取模式,通常資料庫管理師要和應用程式開發 人員要做過溝通。
SQL Server 2005還可以做到資料層次的 保全,可以透過使用加密金鑰的方式來保存儲 存在資料表中的資料,以防止資料被竊取的風 險。
資料庫最佳化與災難復原 (Database Optimization and Disaster Recovery)
當資料庫運行了一個階段時,由於資料的I/ O頻繁,使得查詢的效能可能會開始低落,原 因可能是索引結構或是統計資訊不正確,需要 進行重建(Rebuild index),或者是預存程 序/檢視表效率低落,也需要重建以更新計 數,這個工作也是資料庫管理師需要規劃處理 的工作。
在資料庫設計以外會影響效能的原因,就 是系統元件負載過重,或者網路的負載過重, 例如磁碟I/O的速度變慢,或者是CPU的使用 率一直維持在高檔的時候,表示硬體需要升級 或是更新;網路負載過重則是要考量是否因為 中毒或者資料輸出太大(例如過多的交易式 複寫訂閱者),讓網路存取的時間變長等 等。
資料庫管理師可以透過Windows的效能監 視器(Performance Monitor),網路監控 程式(Network Monitor),工作管理員 (Task Manager) 或是SQL Server Profiler 來監控資料庫與硬體的活動,找出可能的效能 瓶頸(Performance Bottlenecks),並且執 行適當的行動來排除這些瓶頸,讓資料庫與應 用程式得以順暢的運作。
當資料庫發生問題,或者磁碟機損毀,讓 資料庫無法運作時,資料庫管理師必須要立刻 進行一些措施,將資料庫的停機時間降到最 低,這在一個高度交易的企業或者24小時運作 的工廠而言,1分鐘停機的損失就很慘重了, 這種企業都要求99.999%以上的高可用性,就 算是在一般企業,停機超過10分鐘也會對企業 營運有所影響,所以盡速的恢復資料庫運轉, 也是資料庫管理師的重要工作。
因為資料庫損毀的原因很多,而且復原的 步驟其實也不少,所以這些都要以計畫方式, 提供指南與步驟,供實際操作的人處理,這種 指南稱為災難復原計畫(Disaster Recovery Plan),包括硬體錯誤,人為疏失與軟體錯 誤等都可列入規劃範圍,供企業營運時突發狀 況的應變參考之用。

MCITP:Database Administrator
微軟發表的SQL Server 2005的認證體系 中,分為Database Developer、Database Ad- ministrator與Business Intelligence Developer 三個部份,資料庫管理師的認證為MCITP: Database Administrator(簡稱MCITP: DBA),以使用SQL Server 2005規劃,設 計與建置資料庫伺服器架構,並且給予適當的 維運以及故障排除等支援工作,讓資料庫可以 穩定順暢的運行。在參加MCITP:DBA考試 前,需要先通過MCTS:SQL Server 2005的 考試(Exam 70-431),取得MCTS:SQL Server 2005認證。
MCITP:DBA需要通過二門考試:
1.Exam 70-443:Designing Database Server Infrastructure using SQL Server 2005。 2.Exam 70-444:Optimizing and Maintain- ing Database Administration Solution us- ing SQL Server 2005。
70-443以個案方式(Case Study)考試, 測驗考生對於SQL Server 2005資料庫伺服器 的架構設計是否能符合微軟所訂定的標準,包 含硬體需求、資料庫建置、備份策略設計、安 全性設計與高可用性設計等等。70-444則是以 一般性考題方式,測試考生對於SQL Server 2005資料庫管理的基本技能,包含維護、效能 檢測與排除、故障排除與災難復原等議題,都 在此科考試的範圍之內。

MCDBA升級之路(Upgrade Path for MCDBA)
MCITP:DBA是MCDBA唯一可以升級的 管道,其他像MCITP:Database Developer與 MCITP:Business Intelligence Developer都 無法由MCDBA升級,必須要各自考相對應的 持有MCDBA 的考生仍然需要通過 MCTS:SQL Server 2005的考試,才可以取 得升級資格,而升級考考試「Exam 70- 447:UPGRADE:MCDBA skills to MCITP Database Administrator using SQL Server 2005」,其實是綜合70-443和70-444二科的 考試,前述的70-443和70-444的考試範圍,在 70-447都會出現,考試題目大約60-70題,時 間為240分鐘左右,並且是一般性試題與個案 式考題都有,考生需要多加注意。

準備方法
微軟有出官方的準備教材(Self-Paced Training Kit) ,並且目前已經有幾本由國內 某出版社翻譯成中文版,可以到書店找找看, 至筆者下筆為止,已經有70-431和70-443的教 材被翻譯成中文,相信不久的將來,70-444的 教材也會翻譯成中文。若需要由講師帶領 (Instructor-led)的課程,目前國內各大教 育訓練中心多有開設MCITP的認證課程,包含 MCITP:Database Developer與MCITP: DBA等等課程,則可洽教育訓練中心。
參考資料

‧ MCITP:Database Administrator:http://www.microsoft.com/learning/mcp/mcitp/dbadmin/default.mspx。 ‧ MCDBA Upgrade Information: http://www.
microsoft.com/learning/mcp/mcdba/upgrade/default.mspx。



【原文刊載於RUN!PC雜誌:2007年06月號】