MCITP: Database Administrator - 資料庫服務運轉順暢的幕後黑手-資料庫管理師

發佈日期: 2007 年 12 月 3 日

**作者:**朱明中

**出處:**RUN!PC 雜誌 2007/6 月號

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

本頁內容

資料庫基礎架構規劃 (Database Infrastructure Planning)
資料庫的營運 (Database Operation)
資料庫的保全 (Database Security)
資料庫最佳化與災難復原 (Database Optimization and Disaster Recovery)
MCITP: Database Administrator
MCDBA 升級之路 (Upgrade Path for MCDBA)
準備方法
參考資料

資料庫基礎架構規劃 (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 Management 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 Administrator 與 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 的基本資格。

MCITP: DBA 需要通過二門考試:

  1. Exam 70-443: Designing Database Server Infrastructure using SQL Server 2005

  2. Exam 70-444: Optimizing and Maintaining Database Administration Solution using 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-447 其實是綜合 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: https://www.microsoft.com/learning/mcp/mcitp/dbadmin/default.mspx

MCDBA Upgrade Information: https://www.microsoft.com/learning/mcp/mcdba/upgrade/default.mspx

筆者的考試經驗