在Microsoft SQL Server 2008系統(tǒng)中,數(shù)據(jù)庫管理員(Database Administration,簡稱為DBA)是最重要的角色。DBA的工作目標就是確保Microsoft SQL Server 2008系統(tǒng)正常高效地運行。DBA的工作也是最繁忙的工作,無論是性能調(diào)整,還是災(zāi)難恢復,都離不開DBA的支持。
一般地,作為一個DBA,至少應(yīng)該做好以下12項任務(wù):
•任務(wù)一:安裝和配置;
•任務(wù)二:容量規(guī)劃;
•任務(wù)三:應(yīng)用架構(gòu)設(shè)計;
•任務(wù)四:管理數(shù)據(jù)庫對象;
•任務(wù)五:存儲空間管理;
•任務(wù)六:安全管理;
•任務(wù)七:備份和恢復;
•任務(wù)八:性能監(jiān)視和調(diào)優(yōu);
•任務(wù)九:調(diào)度作業(yè);
•任務(wù)十:網(wǎng)絡(luò)管理;
•任務(wù)十一:高可用性和高可伸縮性管理;
•任務(wù)十二:故障解決;
下面簡單描述這些DBA的任務(wù)
任務(wù)一:安裝和配置。
DBA的第一項任務(wù)是安裝和配置Microsoft SQL Server 2008軟件系統(tǒng),為順利使用Microsoft SQL Server 2008軟件創(chuàng)建良好的環(huán)境。無論是安裝還是配置,都應(yīng)該根據(jù)實際需要來進行,使得系統(tǒng)滿足用戶的實際需求。需要注意的是,系統(tǒng)配置不是一勞永逸的,應(yīng)該隨時根據(jù)需求的變化和環(huán)境的需要,進行監(jiān)視和適當?shù)卣{(diào)整。
任務(wù)二:容量規(guī)劃。
容量規(guī)劃是對整個Microsoft SQL Server 2008系統(tǒng)進行一個總體的規(guī)劃。規(guī)劃的重點應(yīng)該放在解決瓶頸問題上。可以從內(nèi)容和期限兩個方面考慮系統(tǒng)的容量規(guī)劃。
從內(nèi)容上來看,應(yīng)該考慮的主要內(nèi)容包括:硬件容量規(guī)劃、軟件規(guī)劃、網(wǎng)絡(luò)規(guī)劃。硬件容量規(guī)劃包括磁盤空間、CPU、I/O等規(guī)劃。軟件規(guī)劃包括操作系統(tǒng)的安裝和配置規(guī)劃、數(shù)據(jù)庫規(guī)劃、數(shù)據(jù)庫對象內(nèi)容和數(shù)量規(guī)劃等。網(wǎng)絡(luò)規(guī)劃包括網(wǎng)絡(luò)硬件、網(wǎng)絡(luò)軟件和協(xié)議、網(wǎng)絡(luò)客戶數(shù)量流量和分布、網(wǎng)絡(luò)拓撲結(jié)構(gòu)等規(guī)劃。
從期限上來看,應(yīng)該考慮短期、中期和長期規(guī)劃。短期規(guī)劃的目的是滿足當前日常業(yè)務(wù)的需要。中期規(guī)劃主要是滿足業(yè)務(wù)發(fā)展和擴大的需要。長期規(guī)劃主要是滿足業(yè)務(wù)極限需要等。例如,如果預(yù)測某個系統(tǒng)的當前并發(fā)用戶數(shù)量是1000,3年后的用戶可能達到1000萬,那么這時既不能按照1000用戶的需求來設(shè)計,也不能一下子按照1000萬用戶的需求來設(shè)計,一定要采取一個折中的形式。
任務(wù)三:應(yīng)用架構(gòu)設(shè)計。
應(yīng)用架構(gòu)設(shè)計包括數(shù)據(jù)庫設(shè)計、應(yīng)用程序設(shè)計和相應(yīng)的技術(shù)架構(gòu)設(shè)計。
數(shù)據(jù)庫設(shè)計應(yīng)該考慮數(shù)據(jù)庫的邏輯需求、數(shù)據(jù)庫的創(chuàng)建方式和數(shù)量、數(shù)據(jù)庫數(shù)據(jù)文件和日志文件的物理位置等。一般情況下,可以在Microsoft SQL Server 2008系統(tǒng)成功安裝之后,根據(jù)規(guī)劃的目標,手工創(chuàng)建數(shù)據(jù)庫。
應(yīng)用設(shè)計應(yīng)該考慮開發(fā)工具的選擇、API技術(shù)、內(nèi)部資源和外部資源的結(jié)合、應(yīng)用架構(gòu)的分布等。需要強調(diào)是在應(yīng)用設(shè)計時,DBA應(yīng)該與開發(fā)人員共同工作,確保他們編寫出優(yōu)化的代碼,盡可能地使用服務(wù)器的資源。
技術(shù)架構(gòu)設(shè)計主要包括表示層、邏輯層和數(shù)據(jù)層的分布。這些分布不應(yīng)該考慮到硬件資源和用戶需求。既不能片面地追求過高的硬件資源,也不能僅僅局限于當前的環(huán)境,一定要按照可擴展的觀點來綜合考慮。
任務(wù)四:管理數(shù)據(jù)庫對象。
管理數(shù)據(jù)庫對象是使用數(shù)據(jù)庫的最基本、最重要的工作。這些對象包括表、索引、視圖、存儲過程、函數(shù)、觸發(fā)器、同義詞等。為了完成管理數(shù)據(jù)庫對象的工作,DBA應(yīng)該能夠很好地回答諸如下面的這些問題。
•系統(tǒng)應(yīng)該包括哪些數(shù)據(jù)?
•應(yīng)該怎樣存儲這些數(shù)據(jù)?
•應(yīng)該在系統(tǒng)中創(chuàng)建哪些表?
•應(yīng)該在這些表中創(chuàng)建哪些索引,以便加速檢索?
•是否應(yīng)該創(chuàng)建視圖?為什么要創(chuàng)建這些視圖?
•應(yīng)該創(chuàng)建哪些存儲過程、函數(shù)、CLR對象?
•應(yīng)該在哪些表上創(chuàng)建觸發(fā)器?應(yīng)該針對哪些操作創(chuàng)建觸發(fā)器?
•是否應(yīng)該創(chuàng)建同義詞?
任務(wù)五:存儲空間管理。
存儲空間管理任務(wù)就是怎樣為數(shù)據(jù)分配空間、怎樣保持空間可以滿足數(shù)據(jù)的不斷增長。隨著業(yè)務(wù)量的繼續(xù)和擴大,數(shù)據(jù)庫中的數(shù)據(jù)也會逐漸地增加,事務(wù)日志也不斷地增加。存儲空間管理任務(wù)主要圍繞下面幾個問題。
•當前的數(shù)據(jù)庫由那些數(shù)據(jù)文件組成?
•事務(wù)日志的大小應(yīng)該如何設(shè)置?
•數(shù)據(jù)的增長速度是多大?
•如何配置數(shù)據(jù)文件和日志文件的增長方式?
•數(shù)據(jù)庫中的數(shù)據(jù)何時可以清除或轉(zhuǎn)移到其他地方?
任務(wù)六:安全管理。
安全性是DBA重要的日常工作之一。安全管理的主要內(nèi)容包括賬戶管理和權(quán)限管理。賬戶管理就是在數(shù)據(jù)庫中應(yīng)該增加哪些賬戶、這些賬戶應(yīng)該組合成哪些角色等等。權(quán)限管理是對象權(quán)限和語句權(quán)限的管理,應(yīng)該回答下面這些問題:
•這些賬戶或角色應(yīng)該使用哪些對象?
•這些賬戶或角色應(yīng)該對這些對象執(zhí)行哪些操作?
•這些賬戶或角色應(yīng)該在數(shù)據(jù)庫中執(zhí)行哪些操作?
•如何設(shè)置架構(gòu)?如何建立架構(gòu)和對象、架構(gòu)和用戶的關(guān)系?
任務(wù)七:備份和恢復。
無論系統(tǒng)運行如何,系統(tǒng)的災(zāi)難性管理是不可缺少的。天災(zāi)、人禍、系統(tǒng)缺陷都有可能造成系統(tǒng)的癱瘓、失敗。怎樣解決這些災(zāi)難性問題呢?辦法就是制訂和實行備份和恢復策略。備份就是制作數(shù)據(jù)的副本,恢復就是將數(shù)據(jù)的副本復原到系統(tǒng)中。備份和恢復工作是DBA的一項持續(xù)性的重要工作,其執(zhí)行頻率根據(jù)數(shù)據(jù)的重要程度和系統(tǒng)的穩(wěn)定程度來確定。
任務(wù)八:性能監(jiān)視和調(diào)優(yōu)。
根據(jù)企業(yè)的經(jīng)營效益評價企業(yè)的管理水平,根據(jù)學生的考試成績評價學生的學習好壞。作為一個大型軟件系統(tǒng),Microsoft SQL Server 2008系統(tǒng)的運行好壞必須得到正確地監(jiān)視、評價和相應(yīng)的調(diào)整。這是DBA的一項高級工作。借助一些工具和運行性能指標,DBA應(yīng)該能夠監(jiān)視系統(tǒng)的運行。如果某些運行指標出現(xiàn)了問題,DBA應(yīng)該及時地采取補救措施,使得系統(tǒng)始終保持高效運行狀態(tài)。
任務(wù)九:調(diào)度作業(yè)。
DBA不可能一天24小時不停地盯住系統(tǒng)的運行,及時地執(zhí)行某些指定的操作。Microsoft SQL Server 2008系統(tǒng)提供了許多工具,DBA應(yīng)該充分利用這些工具和機制,解決下面一些問題。
•調(diào)度哪些作業(yè)應(yīng)該由系統(tǒng)執(zhí)行?
•這些作業(yè)應(yīng)該在何時執(zhí)行?
•如何確保這些作業(yè)可以正確地執(zhí)行?
•如果自動執(zhí)行的作業(yè)執(zhí)行失敗時,應(yīng)該如何處理?
•如何使得系統(tǒng)可以均衡地執(zhí)行相應(yīng)的操作?
任務(wù)十:網(wǎng)絡(luò)管理。
作為一種分布式的網(wǎng)絡(luò)數(shù)據(jù)庫,網(wǎng)絡(luò)管理的任務(wù)更加的重要。Microsoft SQL Server 2008系統(tǒng)提供了網(wǎng)絡(luò)管理工具和服務(wù),DBA應(yīng)該借助這些工具進行服務(wù)規(guī)劃和管理網(wǎng)絡(luò)操作。
任務(wù)十一:高可用性和高可伸縮性管理。
作為一個DBA,必須保持系統(tǒng)具有高可用性和高可伸縮性。可用性是一項度量計算機系統(tǒng)正常運行時間的指標。可伸縮性描述應(yīng)用程序可以接受的并發(fā)用戶訪問的數(shù)量問題。影響系統(tǒng)可用性的主要因素包括:網(wǎng)絡(luò)可靠性、硬件故障、應(yīng)用程序失敗、操作系統(tǒng)崩潰、自然災(zāi)害等。無論是數(shù)據(jù)庫系統(tǒng)管理員,還是應(yīng)用程序設(shè)計人員,都應(yīng)該最小化系統(tǒng)破壞的幾率,最大化系統(tǒng)的可用性。在設(shè)計系統(tǒng)的可用性時,應(yīng)該確定采取什么樣的可用性策略來滿足可用性的需求。
可用性的需求可以通過3個方面描述,即運行的時間、連接性需求和數(shù)據(jù)的緊密和松散要求。在確定可用性的需求時,首先考慮系統(tǒng)的運行時間。一般地,數(shù)據(jù)庫應(yīng)用程序有兩種運行時間,即在工作時間是可用的和在任何時間都是可用的。如果只是要求在工作時間是可用的,那么可以把系統(tǒng)的維護等工作安排在周末進行。但是,有許多應(yīng)用程序要求每天運行24小時、每周運行7天,例如,在線超市等,這時必須采取措施保證系統(tǒng)總是運行的。不同的應(yīng)用程序有不同的連接性要求。大多數(shù)的應(yīng)用程序和電子商務(wù)解決方案要求采用可靠的網(wǎng)絡(luò)連接。這時,要求永久性的在線連接,必須最小化各種異常現(xiàn)象的發(fā)生。有些應(yīng)用程序允許用戶離線使用。這時,系統(tǒng)的可用性要求降低了。大多數(shù)應(yīng)用程序要求數(shù)據(jù)是同步使用的。用戶對數(shù)據(jù)的請求,系統(tǒng)必須立即做出回應(yīng)。這是緊密型的數(shù)據(jù)要求,這種情況必須保證系統(tǒng)的高可用性。有些應(yīng)用程序不需要數(shù)據(jù)是同步的,對用戶的請求可以延遲回應(yīng)。這種要求是數(shù)據(jù)松散型的要求,這時系統(tǒng)的可用性需求比較低。
任務(wù)十二:故障解決。
雖然不希望Microsoft SQL Server 2008系統(tǒng)出現(xiàn)故障,但是故障可能是無法避免的。這些故障可能每天都會發(fā)生。有些故障是人為不小心造成的,有些故障可能是系統(tǒng)中的缺陷形成的,有些故障可能是莫名其妙的。作為一個DBA,在系統(tǒng)中的其他用戶心目中是Microsoft SQL Server系統(tǒng)的權(quán)威。無論是大事還是小事,DBA都應(yīng)該做到迅速診斷、準確判斷、快速修復。從這個意義上來說,DBA是一個數(shù)據(jù)庫系統(tǒng)的專業(yè)醫(yī)生。
您可能感興趣的文章:- sqlserver數(shù)據(jù)庫大型應(yīng)用解決方案經(jīng)驗總結(jié)
- sqlserver中的事務(wù)和鎖詳細解析
- sqlserver性能調(diào)優(yōu)經(jīng)驗總結(jié)
- Sql Server中清空所有數(shù)據(jù)表中的記錄
- sql server獲得新記錄標識列值的二種方法