SQL Server DBA工做內容詳解

在Microsoft SQL Server 2008系統中,數據庫管理員(Database Administration,簡稱爲DBA)是最重要的角色。DBA的工做目標就是確保Microsoft SQL Server 2008系統正常高效地運行。DBA的工做也是最繁忙的工做,不管是性能調整,仍是災難恢復,都離不開DBA的支持。web

  通常地,做爲一個DBA,至少應該作好如下12項任務:數據庫

  •   任務一:安裝和配置;
  •   任務二:容量規劃;
  •   任務三:應用架構設計;
  •   任務四:管理數據庫對象;
  •   任務五:存儲空間管理;
  •   任務六:安全管理;
  •   任務七:備份和恢復;
  •   任務八:性能監視和調優;
  •   任務九:調度做業;
  •   任務十:網絡管理;
  •   任務十一:高可用性和高可伸縮性管理;
  •   任務十二:故障解決;

  下面簡單描述這些DBA的任務安全

  任務一:安裝和配置。服務器

  DBA的第一項任務是安裝和配置Microsoft SQL Server 2008軟件系統,爲順利使用Microsoft SQL Server 2008軟件建立良好的環境。不管是安裝仍是配置,都應該根據實際須要來進行,使得系統知足用戶的實際需求。須要注意的是,系統配置不是一勞永逸的,應該隨時根據需求的變化和環境的須要,進行監視和適當地調整。網絡

  任務二:容量規劃。架構

  容量規劃是對整個Microsoft SQL Server 2008系統進行一個整體的規劃。規劃的重點應該放在解決瓶頸問題上。能夠從內容和期限兩個方面考慮系統的容量規劃。併發

  從內容上來看,應該考慮的主要內容包括:硬件容量規劃、軟件規劃、網絡規劃。硬件容量規劃包括磁盤空間、CPU、I/O等規劃。軟件規劃包括操做系統的安裝和配置規劃、數據庫規劃、數據庫對象內容和數量規劃等。網絡規劃包括網絡硬件、網絡軟件和協議、網絡客戶數量流量和分佈、網絡拓撲結構等規劃。數據庫設計

  從期限上來看,應該考慮短時間、中期和長期規劃。短時間規劃的目的是知足當前平常業務的須要。中期規劃主要是知足業務發展和擴大的須要。長期規劃主要是知足業務極限須要等。例如,若是預測某個系統的當前併發用戶數量是1000,3年後的用戶可能達到1000萬,那麼這時既不能按照1000用戶的需求來設計,也不能一會兒按照1000萬用戶的需求來設計,必定要採起一個折中的形式。分佈式

  任務三:應用架構設計。函數

  應用架構設計包括數據庫設計、應用程序設計和相應的技術架構設計。

  數據庫設計應該考慮數據庫的邏輯需求、數據庫的建立方式和數量、數據庫數據文件和日誌文件的物理位置等。通常狀況下,能夠在Microsoft SQL Server 2008系統成功安裝以後,根據規劃的目標,手工建立數據庫。

  應用設計應該考慮開發工具的選擇、API技術、內部資源和外部資源的結合、應用架構的分佈等。須要強調是在應用設計時,DBA應該與開發人員共同工做,確保他們編寫出優化的代碼,儘量地使用服務器的資源。

  技術架構設計主要包括表示層、邏輯層和數據層的分佈。這些分佈不該該考慮到硬件資源和用戶需求。既不能片面地追求太高的硬件資源,也不能僅僅侷限於當前的環境,必定要按照可擴展的觀點來綜合考慮。

  任務四:管理數據庫對象。

  管理數據庫對象是使用數據庫的最基本、最重要的工做。這些對象包括表、索引、視圖、存儲過程、函數、觸發器、同義詞等。爲了完成管理數據庫對象的工做,DBA應該可以很好地回答諸以下面的這些問題。

  •   系統應該包括哪些數據?
  •   應該怎樣存儲這些數據?
  •   應該在系統中建立哪些表?
  •   應該在這些表中建立哪些索引,以便加速檢索?
  •   是否應該建立視圖?爲何要建立這些視圖?
  •   應該建立哪些存儲過程、函數、CLR對象?
  •   應該在哪些表上建立觸發器?應該針對哪些操做建立觸發器?
  •   是否應該建立同義詞?

  任務五:存儲空間管理。

  存儲空間管理任務就是怎樣爲數據分配空間、怎樣保持空間能夠知足數據的不斷增加。隨着業務量的繼續和擴大,數據庫中的數據也會逐漸地增長,事務日誌也不斷地增長。存儲空間管理任務主要圍繞下面幾個問題。

  •   當前的數據庫由那些數據文件組成?
  •   事務日誌的大小應該如何設置?
  •   數據的增加速度是多大?
  •   如何配置數據文件和日誌文件的增加方式?
  •   數據庫中的數據什麼時候能夠清除或轉移到其餘地方?

  任務六:安全管理。

  安全性是DBA重要的平常工做之一。安全管理的主要內容包括帳戶管理和權限管理。帳戶管理就是在數據庫中應該增長哪些帳戶、這些帳戶應該組合成哪些角色等等。權限管理是對象權限和語句權限的管理,應該回答下面這些問題:

  •   這些帳戶或角色應該使用哪些對象?
  •   這些帳戶或角色應該對這些對象執行哪些操做?
  •   這些帳戶或角色應該在數據庫中執行哪些操做?
  •   如何設置架構?如何創建架構和對象、架構和用戶的關係?

  任務七:備份和恢復。

  不管系統運行如何,系統的災難性管理是不可缺乏的。天災、人禍、系統缺陷都有可能形成系統的癱瘓、失敗。怎樣解決這些災難性問題呢?辦法就是制訂和實行備份和恢復策略。備份就是製做數據的副本,恢復就是將數據的副本復原到系統中。備份和恢復工做是DBA的一項持續性的重要工做,其執行頻率根據數據的重要程度和系統的穩定程度來肯定。

  任務八:性能監視和調優。

  根據企業的經營效益評價企業的管理水平,根據學生的考試成績評價學生的學習好壞。做爲一個大型軟件系統,Microsoft SQL Server 2008系統的運行好壞必須獲得正確地監視、評價和相應的調整。這是DBA的一項高級工做。藉助一些工具和運行性能指標,DBA應該可以監視系統的運行。若是某些運行指標出現了問題,DBA應該及時地採起補救措施,使得系統始終保持高效運行狀態。

  任務九:調度做業。

  DBA不可能一天24小時不停地盯住系統的運行,及時地執行某些指定的操做。Microsoft SQL Server 2008系統提供了許多工具,DBA應該充分利用這些工具和機制,解決下面一些問題。

  •   調度哪些做業應該由系統執行?
  •   這些做業應該在什麼時候執行?
  •   如何確保這些做業能夠正確地執行?
  •   若是自動執行的做業執行失敗時,應該如何處理?
  •   如何使得系統能夠均衡地執行相應的操做?

  任務十:網絡管理。

  做爲一種分佈式的網絡數據庫,網絡管理的任務更加的重要。Microsoft SQL Server 2008系統提供了網絡管理工具和服務,DBA應該藉助這些工具進行服務規劃和管理網絡操做。

  任務十一:高可用性和高可伸縮性管理。

  做爲一個DBA,必須保持系統具備高可用性和高可伸縮性。可用性是一項度量計算機系統正常運行時間的指標。可伸縮性描述應用程序能夠接受的併發用戶訪問的數量問題。影響系統可用性的主要因素包括:網絡可靠性、硬件故障、應用程序失敗、操做系統崩潰、天然災害等。不管是數據庫系統管理員,仍是應用程序設計人員,都應該最小化系統破壞的概率,最大化系統的可用性。在設計系統的可用性時,應該肯定採起什麼樣的可用性策略來知足可用性的需求。

  可用性的需求能夠經過3個方面描述,即運行的時間、鏈接性需求和數據的緊密和鬆散要求。在肯定可用性的需求時,首先考慮系統的運行時間。通常地,數據庫應用程序有兩種運行時間,即在工做時間是可用的和在任什麼時候間都是可用的。若是隻是要求在工做時間是可用的,那麼能夠把系統的維護等工做安排在週末進行。可是,有許多應用程序要求天天運行24小時、每週運行7天,例如,在線超市等,這時必須採起措施保證系統老是運行的。不一樣的應用程序有不一樣的鏈接性要求。大多數的應用程序和電子商務解決方案要求採用可靠的網絡鏈接。這時,要求永久性的在線鏈接,必須最小化各類異常現象的發生。有些應用程序容許用戶離線使用。這時,系統的可用性要求下降了。大多數應用程序要求數據是同步使用的。用戶對數據的請求,系統必須當即作出迴應。這是緊密型的數據要求,這種狀況必須保證系統的高可用性。有些應用程序不須要數據是同步的,對用戶的請求能夠延遲迴應。這種要求是數據鬆散型的要求,這時系統的可用性需求比較低。

  任務十二:故障解決。

  雖然不但願Microsoft SQL Server 2008系統出現故障,可是故障多是沒法避免的。這些故障可能天天都會發生。有些故障是人爲不當心形成的,有些故障多是系統中的缺陷造成的,有些故障多是莫名其妙的。做爲一個DBA,在系統中的其餘用戶心目中是Microsoft SQL Server系統的權威。不管是大事仍是小事,DBA都應該作到迅速診斷、準確判斷、快速修復。從這個意義上來講,DBA是一個數據庫系統的專業醫生。

相關文章
相關標籤/搜索