SQL Server 數(shù)據(jù)庫管理維護(hù)規(guī)范_第1頁
SQL Server 數(shù)據(jù)庫管理維護(hù)規(guī)范_第2頁
SQL Server 數(shù)據(jù)庫管理維護(hù)規(guī)范_第3頁
SQL Server 數(shù)據(jù)庫管理維護(hù)規(guī)范_第4頁
SQL Server 數(shù)據(jù)庫管理維護(hù)規(guī)范_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 /20在執(zhí)行SQL查詢時對其進(jìn)行監(jiān)視,可以確定這些查詢是否編寫正確并生成預(yù)期的結(jié)果。解決任何問題或調(diào)試應(yīng)用程序組件(如存儲過程)。監(jiān)視操作非常重要,因?yàn)镾QLServer在動態(tài)環(huán)境中提供服務(wù)。應(yīng)用程序中的數(shù)據(jù)在變化。用戶需要的訪問類型在變化。用戶連接的方式在變化。甚至,訪問SQLServer的應(yīng)用程序的類型也可能在變化,而SQLServer自動管理系統(tǒng)級資源(如內(nèi)存和磁盤空間),因此對廣泛系統(tǒng)級手動優(yōu)化的需要已降至最低。但是,管理員可以通過監(jiān)視來標(biāo)識性能趨勢來確定是否有必要進(jìn)行更改。若要有效監(jiān)視SQLServer的任何組件,請按下列步驟進(jìn)行操作:確定監(jiān)視目標(biāo)。選擇相應(yīng)工具。標(biāo)識要監(jiān)視的組件。

2、選擇那些組件的度量。監(jiān)視服務(wù)器。6.分析數(shù)據(jù)該文檔建議使用如下方式監(jiān)控?cái)?shù)據(jù)庫引擎的活動:A數(shù)據(jù)庫作業(yè)使用Job定期執(zhí)行存儲過程,存儲過程調(diào)用DMV利用這種方式,可以查詢數(shù)據(jù)庫引擎的很多活動,比如索引使用,會話活動,事務(wù)活動等跟蹤利用Trace可以跟蹤大部分的數(shù)據(jù)庫引擎活動,包括登錄活動,語句執(zhí)行,錯誤DDL觸發(fā)器利用DDL觸發(fā)器可以監(jiān)控?cái)?shù)據(jù)庫對象或者服務(wù)器對象的變化。事件通知事件通知(EVENTNOTIFICATION)可對各種Transact-SQL數(shù)據(jù)定義語言(DDL)語句和SQL跟蹤事件做出響應(yīng),并將這些事件的相關(guān)信息發(fā)送到ServiceBroker服務(wù).事件通知可以用來執(zhí)行以下操作:記

3、錄和檢索發(fā)生在數(shù)據(jù)庫上的更改或活動。執(zhí)行操作以異步方式而不是同步方式響應(yīng)事件。可以將事件通知用作替代DDL觸發(fā)器和SQL跟蹤的編程方法。事件通知在事務(wù)范圍以外異步運(yùn)行。因此,與DDL觸發(fā)器不同,事件通知可以用于數(shù)據(jù)庫應(yīng)用程序中以響應(yīng)事件而無需使用中間事務(wù)定義的任何資源。建議對于數(shù)據(jù)庫內(nèi)的DDL事件可以采用此種方式監(jiān)控。A報(bào)警根據(jù)監(jiān)控的結(jié)果發(fā)報(bào)警信息,可以使用第三方通訊工具(發(fā)郵件或短信)。監(jiān)控結(jié)果的展現(xiàn)默認(rèn)情況下監(jiān)控結(jié)果要保持在數(shù)據(jù)庫表中或者生產(chǎn)文件,根據(jù)實(shí)際情況可以借用一些開源框架展現(xiàn)監(jiān)控結(jié)果,比如WebChart等7數(shù)據(jù)庫維護(hù)數(shù)據(jù)庫維護(hù)是根據(jù)數(shù)據(jù)庫系統(tǒng)承載的業(yè)務(wù)量的不斷增加,以及數(shù)據(jù)庫容量

4、的不斷增加,而不斷進(jìn)行性能分析,性能調(diào)整,架構(gòu)分析,架構(gòu)調(diào)整的過程。數(shù)據(jù)庫維護(hù)一定是長期的過程,需要維護(hù)人員不斷的分析調(diào)整,不斷的學(xué)習(xí)研究新技術(shù),不斷的優(yōu)化。7.1性能優(yōu)化性能優(yōu)化是一個范圍很廣的題目,在此不敘述相關(guān)的技術(shù),只介紹一些優(yōu)化原則。根據(jù)監(jiān)控結(jié)果,至少一周進(jìn)行一次性能優(yōu)化(調(diào)整索引,SQL語句優(yōu)化)7.2恢復(fù)或者切換演練生產(chǎn)環(huán)境部署測試完畢后,要根據(jù)系統(tǒng)實(shí)際運(yùn)行情況制定恢復(fù)和切換的演練策略,比如2周進(jìn)行一次附錄1數(shù)據(jù)庫備份,驗(yàn)證備份腳本CREATEPROCdbo.BackupDB(databasenamevarchar(100)=null,bcktypevarchar(100)=nu

5、ll,bckPosvarchar(8000)=null)WITHENCRYPTIONASSETNOCOUNTONIFdatabasenameisnullBEGINRAISERROR(N缺少databasename參數(shù),該參數(shù)不能為空,16,1)RETURN-1ENDIFbcktypeisnullBEGINRAISERROR(N缺少bcktype參數(shù),該參數(shù)不能為空(full,diff,log),16,1)RETURN-2ENDIFbckPosisnullBEGINRAISERROR(N缺少bckPos參數(shù),不能為空備份目錄,16,1)RETURN-3ENDIF(SELECTmirroring_

6、role_descFROMsys.database_mirroringWHEREdatabase_id=db_id(databasename)=MIRRORBEGINRAISERROR(N鏡像數(shù)據(jù)庫不允許備份,16,1)RETURN-4ENDIFdatabasename=tempdbBEGINRAISERROR(NTempdb不允許備份,16,1)RETURN-5ENDDECLAREdatevarchar(100),sqlvarchar(1000),sql1varchar(2000)SELECTdate=CONVERT(varchar(20),GETDATE(),112)+REPLACE(CO

7、NVERT(varchar(5),GETDATE(),108),:,),sql=,sql1=IF(bcktype=full)SELECTsql=BACKUPDATABASE+databasename+TODISK=N+bckPos+databasename+_Full_+date+.bak,sql1=RESTOREVERIFYONLYFROMDISK=N+bckPos+databasename+_Full_+date+.bakIF(bcktype=diff)SELECTsql=BACKUPDATABASE+databasename+TODISK=N+bckPos+databasename+_D

8、iff_+date+.bakWITHDIFFERENTIAL,sql1=RESTOREVERIFYONLYFROMDISK=N+bckPos+databasename+_Diff_+date+.bakIF(bcktype=log)SELECTsql=BACKUPLOG+databasename+TODISK=N+bckPos+databasename+_Log_+date+.trn,sql1=RESTOREVERIFYONLYFROMDISK=N+bckPos+databasename+_Log_+date+.trnIFsqlANDsql1BEGINEXEC(sql)EXEC(sql1)END

9、ELSERAISERROR(N請檢查輸入?yún)?shù),備份目錄.,16,1)SETNOCOUNTOFF附錄2數(shù)據(jù)庫恢復(fù)腳本CREATEPROCdbo.RestoreDB(databasenamevarchar(100)=null,bcktypebckpathislastlog)varchar(100)=null,varchar(8000)=null,bcktypebckpathislastlog)WITHENCRYPTIONASSETNOCOUNTONIFdatabasenameisnullBEGINRAISERROR(N缺少databasename參數(shù),該參數(shù)不能為空,16,1)RETURN-1EN

10、DIFbcktypeisnull1)1)RAISERROR(N缺少bcktype參數(shù),該參數(shù)不能為空(full,diff,log),16,RETURN-2ENDIFbckpathisnullBEGINRAISERROR(N缺少bckpath參數(shù),請?zhí)峁﹤浞菸募窂?16,1)RETURN-3ENDDECLAREsqlvarchar(1000)IFislastlog=0BEGINIFbcktypeIN(full,diff)SELECTsql=RESTOREDATABASE+databasename+FROMDISKN+bckpath+WITHNORECOVERY,STATS=10IFbckty

11、peIN(log)SELECTsql=RESTORELOG+databasename+FROMDISK=N+bckpath+WITHNORECOVERY,STATS=10ENDELSESELECTsql=RESTORELOG+databasename+FROMDISK=N+bckpath+WITHRECOVERY,STATS=10IFsqlBEGINEXEC(sql)ENDELSERAISERROR(N請檢查輸入?yún)?shù).,16,1)SETNOCOUNTOFF附錄3清除備份文件腳本CREATEPROCdbo.DelBackup(bckPosvarchar(8000)=null,bcktypeHou

12、rsvarchar(100)=null,int=1)WITHENCRYPTIONASSETNOCOUNTONIFbcktypeisnullBEGINRAISERROR(N缺少bcktype參數(shù),該參數(shù)不能為空(bak,trn),16,1)RETURN-1ENDIFbckPosisnullBEGINRAISERROR(N缺少bckPos參數(shù),不能為空備份目錄,16,1)RETURN-2ENDdeclareDeleteDatenvarchar(50),DateTimedatetime,sqlvarchar(1000setDateTime=DateAdd(Hour,-Hours,GetDate()s

13、etDeleteDate=(SelectCONVERT(varchar(10),DateTime,120)+T+Convert(nvarchar,DateTime,108)SETsql=EXECUTEmaster.dbo.xp_delete_file0,N+bckPos+,N+bcktype+,+DeleteDate+,1IFsqlBEGINEXEC(sql)ENDELSERAISERROR(N請檢查輸入?yún)?shù).,16,1)SETNOCOUNTOFF附錄4事件通知例子CREATEQUEUE/www.AAA.com/DBName/TabDDLQueueGOCREATESERVICE/www.AAA

14、.com/DBName/TabDDLServiceONQUEUE/www.AAA.com/DBName/TabDDLQueue( HYPERLINK /SQL/Notifications/PostEventNotification /SQL/Notifications/PostEventNotification)GOCREATEEVENTNOTIFICATIONEventNotificationTabDDLQueueONDATABASEFORDDL_DATABASE_LEVEL_EVENTS-ALTER_TABLETOSERVICE/www.AAA.com/DBName/TabDDLServi

15、ce,currentdatabaseGO附錄5數(shù)據(jù)庫賬戶申請表格數(shù)據(jù)庫帳戶申請表申請時間:申請人:賬戶有效期:(填寫失效日期)公司:一級部門:二級部門申請?jiān)颍洪_發(fā)測試其他1客戶端服務(wù)器IP(本機(jī)使用可不填):2項(xiàng)目名稱:申請內(nèi)容:數(shù)據(jù)庫名稱:3帳戶名稱(可由DBA填寫):權(quán)限:所有者讀寫只讀注:最終用戶名為,項(xiàng)目名稱_數(shù)據(jù)庫名稱賬戶名稱審批項(xiàng)目主管簽字:時間:審批意見:同意不同意技術(shù)總監(jiān)簽字:時間:審批意見:同意不同意實(shí)施確認(rèn)時間:實(shí)施人:時間:實(shí)施情況:已完成待定關(guān)系數(shù)據(jù)庫設(shè)計(jì)范式簡介關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求,即滿足不同的范式。目前關(guān)系數(shù)據(jù)庫有六種范式:第一范式(1NF)、第二

16、范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。滿足最低要求的范式是第一范式(1NF)。在第一范式的基礎(chǔ)上進(jìn)一步滿足更多要求的稱為第二范式(2NF),其余范式以次類推。一般說來,數(shù)據(jù)庫只需滿足第三范式(3NF)就行了。第一范式(1NF)無重復(fù)的列所謂第一范式(1NF)是指數(shù)據(jù)庫表的每一列都是不可分割的基本數(shù)據(jù)項(xiàng),同一列中不能有多個值,即實(shí)體中的某個屬性不能有多個值或者不能有重復(fù)的屬性。如果出現(xiàn)重復(fù)的屬性,就可能需要定義一個新的實(shí)體,新的實(shí)體由重復(fù)的屬性構(gòu)成,新實(shí)體與原實(shí)體之間為一對多關(guān)系。在第一范式(1NF)中表的每一行只包含一個實(shí)例的信息。簡而

17、言之,第一范式就是無重復(fù)的列。說明:在任何一個關(guān)系數(shù)據(jù)庫中,第一范式(1NF)是對關(guān)系模式的基本要求,不滿足第一范式(1NF)的數(shù)據(jù)庫就不是關(guān)系數(shù)據(jù)庫。第二范式(2NF)屬性完全依賴于主鍵消除非主屬性對主碼的部分函數(shù)依賴第二范式(2NF)是在第一范式(1NF)的基礎(chǔ)上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求數(shù)據(jù)庫表中的每個實(shí)例或行必須可以被唯一地區(qū)分。為實(shí)現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實(shí)例的唯一標(biāo)識。例如員工信息表中加上了員工編號(emp_id)列,因?yàn)槊總€員工的員工編號是唯一的,因此每個員工可以被唯一區(qū)分。這個唯一屬性列被稱為主關(guān)鍵字

18、或主鍵、主碼。第二范式(2NF)要求實(shí)體的屬性完全依賴于主關(guān)鍵字。所謂完全依賴是指不能存在僅依賴主關(guān)鍵字一部分的屬性,如果存在,那么這個屬性和主關(guān)鍵字的這一部分應(yīng)該分離出來形成一個新的實(shí)體,新實(shí)體與原實(shí)體之間是一對多的關(guān)系。為實(shí)現(xiàn)區(qū)分通常需要為表加上一個列,以存儲各個實(shí)例的唯一標(biāo)識。簡而言之,第二范式就是屬性完全依賴于主鍵。第三范式(3NF)屬性不依賴于其它非主屬性消除傳遞依賴滿足第三范式(3NF)必須先滿足第二范式(2NF)。簡而言之,第三范式(3NF)要求一個數(shù)據(jù)庫表中不包含已在其它表中已包含的非主關(guān)鍵字信息。例如,存在一個部門信息表,其中每個部門有部門編號(dept_id)、部門名稱、部

19、門簡介等信息。那么在的員工信息表中列出部門編號后就不能再將部門名稱、部門簡介等與部門有關(guān)的信息再加入員工信息表中。如果不存在部門信息表,則根據(jù)第三范式(3NF)也應(yīng)該構(gòu)建它,否則就會有大量的數(shù)據(jù)冗余。簡而言之,第三范式就是屬性不依賴于其它非主屬性。編輯本段范式應(yīng)用實(shí)例剖析下面以一個學(xué)校的學(xué)生系統(tǒng)為例分析說明,這幾個范式的應(yīng)用。首先第一范式(1NF):數(shù)據(jù)庫表中的字段都是單一屬性的,不可再分。這個單一屬性由基本類型構(gòu)成,包括整型、實(shí)數(shù)、字符型、邏輯型、日期型等。在當(dāng)前的任何關(guān)系數(shù)據(jù)庫管理系統(tǒng)DBMS)中,傻瓜也不可能做出不符合第一范式的數(shù)據(jù)庫,因?yàn)檫@些DBMS不允許你把數(shù)據(jù)庫表的一列再分成二列或

20、多列。因此,你想在現(xiàn)有的DBMS中設(shè)計(jì)出不符合第一范式的數(shù)據(jù)庫都是不可能的。首先我們確定一下要設(shè)計(jì)的內(nèi)容包括那些。學(xué)號、學(xué)生姓名、年齡、性別、課程、課程學(xué)分、系別、學(xué)科成績,系辦地址、系辦電話等信息。為了簡單我們暫時只考慮這些字段信息。我們對于這些信息,說關(guān)心的問題有如下幾個方面。學(xué)生有那些基本信息學(xué)生選了那些課,成績是什么每個課的學(xué)分是多少學(xué)生屬于那個系,系的基本信息是什么。第二范式(2NF)實(shí)例分析首先我們考慮,把所有這些信息放到一個表中(學(xué)號,學(xué)生姓名、年齡、性別、課程、課程學(xué)分、系別、學(xué)科成績,系辦地址、系辦電話)下面存在如下的依賴關(guān)系。(學(xué)號)-(姓名,年齡,性別,系別,系辦地址、系辦電話)(課程名稱)-(學(xué)分)(學(xué)號,課程)-(學(xué)科成績)問題分析因此不滿足第二范式的要求,會產(chǎn)生如下問題數(shù)據(jù)冗余:同一門課程由n個學(xué)生選修,學(xué)分就重復(fù)n-1次;同一個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論