SQL數(shù)據(jù)庫(kù)維護(hù)全析_第1頁(yè)
SQL數(shù)據(jù)庫(kù)維護(hù)全析_第2頁(yè)
SQL數(shù)據(jù)庫(kù)維護(hù)全析_第3頁(yè)
SQL數(shù)據(jù)庫(kù)維護(hù)全析_第4頁(yè)
SQL數(shù)據(jù)庫(kù)維護(hù)全析_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、sql server 數(shù)據(jù)庫(kù)維護(hù)計(jì)劃的實(shí)施步驟數(shù)據(jù)庫(kù)維護(hù)計(jì)劃的實(shí)施步驟 作為網(wǎng)管員,無(wú)論其管理的網(wǎng)絡(luò)的規(guī)模是大還是小,在日常的管理中除了維護(hù) 網(wǎng)絡(luò)平穩(wěn)運(yùn)行、及時(shí)排除網(wǎng)絡(luò)故障、保護(hù)網(wǎng)絡(luò)安全等工作以外,備份網(wǎng)絡(luò)中關(guān) 鍵數(shù)據(jù)也是其中的一個(gè)非常非常重要的工作環(huán)節(jié)。 網(wǎng)絡(luò)中的各種故障無(wú)非就分兩種:軟件故障和硬件故障。對(duì)于“硬件故障”可以 通過(guò)維修或更換硬件設(shè)備得到及時(shí)解決;對(duì)于“軟件故障”則可以通過(guò)重新安裝 或升級(jí)軟件、重做網(wǎng)絡(luò)或應(yīng)用軟件系統(tǒng)等方法及時(shí)解決,而且用此方法來(lái)解決 網(wǎng)絡(luò)故障大多需要一些基礎(chǔ)的、關(guān)鍵的數(shù)據(jù)支持才能得以恢復(fù)正常。但是,網(wǎng) 絡(luò)中諸如此類的關(guān)鍵數(shù)據(jù)(特別是“應(yīng)用軟件系統(tǒng)”中的關(guān)鍵數(shù)據(jù)

2、)的損壞或丟 失,絕大部分是無(wú)法恢復(fù)和彌補(bǔ)的。即使可以恢復(fù)部分?jǐn)?shù)據(jù),彌補(bǔ)它們所花費(fèi) 的代價(jià)(諸如時(shí)間、人力、財(cái)力、物力等)都可能遠(yuǎn)遠(yuǎn)超出了公司的承受能力。 所以說(shuō),注重?cái)?shù)據(jù)的備份工作是網(wǎng)管員日常管理工作中的必須時(shí)刻關(guān)注的一項(xiàng) 任務(wù),也是必須周期性重復(fù)操作的一項(xiàng)工作。(源碼網(wǎng)整理:) 目錄 現(xiàn)行備份策略 具體實(shí)現(xiàn)步驟 結(jié)束語(yǔ) 現(xiàn)行備份策略 我公司在組建局域網(wǎng)時(shí),考慮到商業(yè)企業(yè)的特點(diǎn),仔細(xì)考量了購(gòu)、銷、存三大 環(huán)節(jié)中發(fā)生的各種數(shù)據(jù)及其存儲(chǔ)問(wèn)題后,選定了以 windows 2000 server 為操 作系統(tǒng),sql server 2000 為數(shù)據(jù)庫(kù)平臺(tái)來(lái)搭建局域網(wǎng)的應(yīng)用系統(tǒng)的軟件平臺(tái), 以網(wǎng)線為載

3、體將購(gòu)、銷、存等核心部門的計(jì)算機(jī)通過(guò)局域網(wǎng)平臺(tái)緊密地連接起 來(lái)。這樣,各個(gè)核心部門每天的任何一筆業(yè)務(wù)都及時(shí)地、動(dòng)態(tài)地存儲(chǔ)到公司局 域網(wǎng)的核心 dell 服務(wù)器上的 sql server 2000 數(shù)據(jù)庫(kù)中,并以此為基礎(chǔ)平臺(tái)向 各方提供所需的各種數(shù)據(jù)服務(wù)。 因此,自公司局域網(wǎng)開(kāi)始正式運(yùn)作之日起,作為網(wǎng)管員的我就非常注重對(duì)局域 網(wǎng)中的關(guān)鍵數(shù)據(jù)特別是這些業(yè)務(wù)數(shù)據(jù)的備份工作。同時(shí),我也希望備份數(shù) 據(jù)的軟件能夠?qū)崿F(xiàn)以下自動(dòng)功能。 功能 1:能夠在每天的某個(gè)固定的時(shí)刻(如夜晚 0:00:00,當(dāng)然這個(gè)時(shí)間是可以自 主設(shè)定的)對(duì)包含所有業(yè)務(wù)數(shù)據(jù)庫(kù)在內(nèi)的所有關(guān)鍵數(shù)據(jù)庫(kù)進(jìn)行一次“完全備份”。 功能 2:能夠在每

4、天的 0:00:00 至 23:59:59 這段時(shí)間內(nèi),每間隔 1 個(gè)小時(shí)對(duì)功 能 1 中所涉及到的各個(gè)數(shù)據(jù)庫(kù)的事務(wù)日志進(jìn)行“差異備份”。 功能 3:每天都能夠保留功能 1 和功能 2 中所生成的數(shù)據(jù)庫(kù)和事務(wù)日志的最近兩 天的備份(即:前一天的和前兩天的),而且能夠自動(dòng)地刪除久于兩天前的所有數(shù) 據(jù)庫(kù)和事務(wù)日志的備份。 功能 4:定期(如每個(gè)星期一次)將所有關(guān)鍵數(shù)據(jù)庫(kù)的完全備份的副本備份到磁帶 或其它存儲(chǔ)介質(zhì)上(這部分工作可能需要手工完成)。 于是,圍繞這些功能的實(shí)現(xiàn),在日常管理工作中,我盡可能地嘗試了各種備份 數(shù)據(jù)的軟件和方法,如 windows 2000 自帶的“備份”工具、sql serv

5、er 2000 自帶的“備份”功能等。這些備份軟件和方法的功能各有千秋,但是都存在以 下缺點(diǎn): 一種就是需要人工干預(yù),無(wú)法實(shí)現(xiàn)自動(dòng)備份(如 windows 2000 自帶的“備份” 工具)。如果采用這種方法,就必須時(shí)刻人工手動(dòng)備份,萬(wàn)一哪天因?yàn)槌霾罨蚱?它原因沒(méi)有進(jìn)行備份,而這時(shí)又出現(xiàn)服務(wù)器或數(shù)據(jù)故障的話,那麻煩就大了。 另一種就是能夠?qū)崿F(xiàn)自動(dòng)備份,但是舊的備份不能被自動(dòng)地刪除(如 sql server 2000 自帶的“備份”功能)。如果采取這種方法,就必須及時(shí)地手工刪 除舊的備份,否則再大的硬盤也會(huì)迅速地被用完。 在相互比較后,我還是決定采用第二種sql server 2000 自帶的“備

6、份” 功能對(duì)關(guān)鍵數(shù)據(jù)庫(kù)進(jìn)行備份,因?yàn)樗軌驅(qū)崿F(xiàn)“自動(dòng)備份”功能,比第一種略 強(qiáng)。所以,在一段時(shí)期內(nèi),我每天上班后的第一件事就是先檢查一下備份目錄 下各種數(shù)據(jù)的新的備份,然后手工刪除舊的備份數(shù)據(jù)。這種做法一度讓我很是 苦惱。 一天,我在利用 sql server 2000 的“幫助”查詢某個(gè) transact-sql 語(yǔ)句的語(yǔ) 義解釋時(shí)無(wú)意中閱讀到“自動(dòng)化管理任務(wù)”的內(nèi)容。從頭到尾地仔細(xì)閱讀后, 我不由得眼睛一亮,原來(lái) sql server 2000 本身自帶了一個(gè)能夠?qū)崿F(xiàn)我的備份 要求的、強(qiáng)大的功能“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”。于是我立刻按照這部分內(nèi)容的 提示,以一個(gè)數(shù)據(jù)庫(kù)為試驗(yàn)樣本一步一步地操作,成功

7、地創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù)維 護(hù)計(jì)劃。經(jīng)過(guò)一個(gè)星期的試運(yùn)行,這個(gè)計(jì)劃果然能夠?qū)崿F(xiàn)自動(dòng)備份調(diào)度,以及 自動(dòng)刪除舊的數(shù)據(jù)備份,完全能夠滿足我的備份要求。 從那時(shí)起,我就利用 sql server 2000 的“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”備份所有關(guān)鍵數(shù) 據(jù)庫(kù),而且嚴(yán)格地、定期地執(zhí)行功能 4,每個(gè)星期五將完全備份的數(shù)據(jù)庫(kù)備份 到磁帶和局域網(wǎng)中其它客戶機(jī)(主要是用于網(wǎng)絡(luò)管理的網(wǎng)管 pc)的硬盤上。這樣 做的目的是,能同時(shí)異地保存三份相同的備份,減少故障帶來(lái)的損失。 而且,通過(guò) sql server 2000 的“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”,我現(xiàn)在能夠較輕松地備 份所需各種數(shù)據(jù),方便地管理其備份,相應(yīng)地減少了日常工作量,也減輕了部

8、分工作壓力。 具體實(shí)現(xiàn)步驟 目錄 第一步:打開(kāi) sql server“企業(yè)管理器”窗體 第二步:找到“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”功能 第三步:創(chuàng)建“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃” 第四步:維護(hù)和管理“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃” 第五步:啟動(dòng) sql server 2000 代理以便執(zhí)行“作業(yè)” 第六步:檢查結(jié)果 “數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”功能在 sql server 2000 的“企業(yè)管理器”中可以找到。 說(shuō)明: 1.以下操作是在服務(wù)器的 windows 2000 server 上進(jìn)行操作的。在 window 9x 系統(tǒng)上操作相同。 2.由于 sql server 2000 執(zhí)行備份時(shí)將產(chǎn)生許多文件(特別是在進(jìn)行事務(wù)日志備 份時(shí)),所

9、以建議按數(shù)據(jù)庫(kù)名稱分別建立獨(dú)立的備份目錄進(jìn)行存儲(chǔ)。 3.以下所有操作過(guò)程當(dāng)中一般不會(huì)對(duì)數(shù)據(jù)庫(kù)的使用產(chǎn)生影響。 第一步:打開(kāi) sql server“企業(yè)管理器”窗體 用鼠標(biāo)單擊任務(wù)欄上的“開(kāi)始”按鈕中的“程序(p)”菜單下的“microsoft sql server”子菜單中的“企業(yè)管理器”菜單項(xiàng),即可打開(kāi) sql server 2000 的“企業(yè)管理器”窗體。 第二步:找到“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”功能 在“企業(yè)管理器”窗體中左側(cè)的樹(shù)型選項(xiàng)卡中,用鼠標(biāo)單擊“+”圖標(biāo)擴(kuò)展開(kāi) “控制臺(tái)根目錄”下的“microsoft sql servers”,可以看到其下有一個(gè) “sql server 組”;接著繼續(xù)擴(kuò)展

10、開(kāi)“sql server 組”,此時(shí)可以看到其下出 現(xiàn)了服務(wù)器的名稱(圖 1 中的“jxnc-server”就是我的服務(wù)器的名稱);再繼續(xù) 擴(kuò)展開(kāi)此服務(wù)器,可以看到其下列出了諸如“數(shù)據(jù)庫(kù)”、“數(shù)據(jù)轉(zhuǎn)換服務(wù)”等 項(xiàng)目;最后單擊“管理”項(xiàng)目,可以看到其下存在一個(gè)“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”(如 圖 1)。 單擊“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”項(xiàng)目,在“企業(yè)管理器”窗口右側(cè)將會(huì)顯示出已經(jīng)存 在的維護(hù)計(jì)劃項(xiàng)目。每個(gè)維護(hù)計(jì)劃均包括以下項(xiàng)目: 1.名稱:就是維護(hù)計(jì)劃的名稱。此名稱可以自定義,中英文皆可。 2.數(shù)據(jù)庫(kù):就是維護(hù)計(jì)劃所進(jìn)行維護(hù)的數(shù)據(jù)庫(kù)的名稱。 因?yàn)橐粋€(gè)維護(hù)計(jì)劃允許同時(shí)維護(hù)多個(gè)數(shù)據(jù)庫(kù),所以此處可以顯示出多個(gè)數(shù)據(jù)庫(kù) 的名

11、稱(在圖 1 中可以看到名為“系統(tǒng)數(shù)據(jù)庫(kù)備份”的數(shù)據(jù)庫(kù)維護(hù)計(jì)劃中的“數(shù) 據(jù)庫(kù)”就包括三個(gè)數(shù)據(jù)庫(kù):master、model 和 msdb)。 3.服務(wù)器:也就是維護(hù)計(jì)劃所維護(hù)的數(shù)據(jù)庫(kù)所處的服務(wù)器的名稱?!?local)” 表示是本地服務(wù)器。 4.對(duì)策:是指維護(hù)計(jì)劃所需要進(jìn)行的具體維護(hù)工作的內(nèi)容。 圖 1 中有 3 個(gè)“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”均為“數(shù)據(jù)庫(kù)備份,事務(wù)日志備份”,它的 含義就是這些維護(hù)計(jì)劃中同時(shí)對(duì)所指定的數(shù)據(jù)庫(kù)進(jìn)行“數(shù)據(jù)庫(kù)”和“事務(wù)日志” 的備份。 第三步:創(chuàng)建“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃” 鼠標(biāo)右擊“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”項(xiàng)目,選擇“新建維護(hù)計(jì)劃(p)”功能,將打開(kāi) “數(shù)據(jù)庫(kù)維護(hù)計(jì)劃向?qū)А贝绑w,依照此向?qū)?/p>

12、夠創(chuàng)建一個(gè)新的“數(shù)據(jù)庫(kù)維護(hù)計(jì) 劃”。 步驟 1:單擊 “下一步(n)”按鈕,打開(kāi)“選擇數(shù)據(jù)庫(kù)”窗體(如圖 2)。在此窗 體中可以選定一個(gè)或多個(gè)的數(shù)據(jù)庫(kù)作為操作對(duì)象。為了敘述方便,我在此只選 擇了一個(gè)數(shù)據(jù)庫(kù)“regie”。 步驟 2:單擊圖 2 中的“下一步(n)”按鈕,打開(kāi)“更新數(shù)據(jù)優(yōu)化信息”窗體(如 圖 3)。 在此窗體中可以對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)和索引重新進(jìn)行組織,以及能夠設(shè)定在滿足 一定條件的情況下,維護(hù)計(jì)劃自動(dòng)刪除數(shù)據(jù)庫(kù)中的未使用的空間,以便提高性 能。 但要注意的是,在此窗體中,只要選定了“重新組織數(shù)據(jù)和索引頁(yè)r”復(fù)選框, “更新查詢優(yōu)化器所使用的統(tǒng)計(jì)。示例d”復(fù)選框?qū)⑹?變成灰色,不能

13、選 擇)。而且“重新組織數(shù)據(jù)和索引頁(yè)r”復(fù)選框和“從數(shù)據(jù)庫(kù)文件中刪除未使 用的空間m”復(fù)選框二者只要有一個(gè)被選中,其下的“調(diào)度s”功能才有效。 單擊“更改c”按鈕可以對(duì)“調(diào)度”進(jìn)行自定義。 各位讀者可以根據(jù)自身情況決定是否選用其中的功能。當(dāng)然也可以通過(guò)單擊 “幫助”按鈕來(lái)查看各功能的具體含義。 在此窗體中能夠便捷地設(shè)定每項(xiàng)作業(yè)的持續(xù)運(yùn)行時(shí)間和運(yùn)行的頻率。完成自己 的設(shè)置后,一定要選定右上角的“啟用調(diào)度b”復(fù)選框,這樣一個(gè)作業(yè)調(diào)度才 算真正完成了。 步驟 3:單擊圖 3 中的“下一步(n)”按鈕,打開(kāi)“檢查數(shù)據(jù)庫(kù)完整性”窗體。 在此窗體中可以設(shè)定維護(hù)計(jì)劃在備份數(shù)據(jù)庫(kù)前自動(dòng)檢查數(shù)據(jù)庫(kù)的完整性,以

14、便檢測(cè)由于硬件或軟件錯(cuò)誤而導(dǎo)致數(shù)據(jù)的不一致。在此窗體中只有先選定了 “檢查數(shù)據(jù)庫(kù)完整性h”復(fù)選框,其下 sql server 2005 數(shù)據(jù)庫(kù)維護(hù)計(jì)劃數(shù)據(jù)庫(kù)維護(hù)計(jì)劃 這個(gè)星期開(kāi)始為了減輕工作壓力開(kāi)始使用數(shù)據(jù)庫(kù)維護(hù)計(jì)劃(sql server maintenance plan wizard)維護(hù)數(shù)據(jù)庫(kù),由于以前都沒(méi)用過(guò),在個(gè)人使用的免費(fèi) 版(express)里也沒(méi)有這個(gè)功能,所以現(xiàn)在好好學(xué)習(xí)了一番,這里總結(jié)一下。 維護(hù)計(jì)劃向?qū)Э梢杂糜趲椭O(shè)置核心維護(hù)任務(wù),從而確保數(shù)據(jù)庫(kù)執(zhí)行良 好,做到定期備份數(shù)據(jù)庫(kù)以防系統(tǒng)出現(xiàn)故障,對(duì)數(shù)據(jù)庫(kù)實(shí)施不一致性檢查。維 護(hù)計(jì)劃向?qū)Э蓜?chuàng)建一個(gè)或多個(gè) sql server

15、代理作業(yè),代理作業(yè)將按照計(jì)劃的 間隔自動(dòng)執(zhí)行這些維護(hù)任務(wù)。它使您可以執(zhí)行各種數(shù)據(jù)庫(kù)管理任務(wù),包括備份、 運(yùn)行數(shù)據(jù)庫(kù)完整性檢查、或以指定的間隔更新數(shù)據(jù)庫(kù)統(tǒng)計(jì)信息。創(chuàng)建數(shù)據(jù)庫(kù)維 護(hù)計(jì)劃可以讓 sql server 有效地自動(dòng)維護(hù)數(shù)據(jù)庫(kù),保持?jǐn)?shù)據(jù)庫(kù)運(yùn)行在最佳狀態(tài), 并為管理員節(jié)省了寶貴的時(shí)間。 以下是可以安排為自動(dòng)運(yùn)行的一些維護(hù)任務(wù): 用新填充因子重新生成索引來(lái)重新組織數(shù)據(jù)和索引頁(yè)上的數(shù)據(jù)。這確保了 數(shù)據(jù)庫(kù)頁(yè)中包含的數(shù)據(jù)量和可用空間的平均分布,還使得以后能夠更快地增長(zhǎng)。 通過(guò)刪除空數(shù)據(jù)庫(kù)頁(yè)壓縮數(shù)據(jù)文件。 更新索引統(tǒng)計(jì)信息,確保查詢優(yōu)化器含有關(guān)于表中數(shù)據(jù)值分布的最新信息。 這使得查詢優(yōu)化器能夠更好地確

16、定 訪問(wèn)數(shù)據(jù)的最佳方法,因?yàn)榭梢垣@得數(shù)據(jù)庫(kù) 中存儲(chǔ)數(shù)據(jù)的詳細(xì)信息。雖然 sql server 會(huì)定期自動(dòng)更新索引統(tǒng) 計(jì)信息,但 是此選項(xiàng)可以對(duì)統(tǒng)計(jì)信息立即進(jìn)行強(qiáng)制更新。 對(duì)數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)和數(shù)據(jù)頁(yè)執(zhí)行內(nèi)部一致性檢查,確保系統(tǒng)或軟件故障沒(méi) 有損壞數(shù)據(jù)。 備份數(shù)據(jù)庫(kù)和事務(wù)日志文件。數(shù)據(jù)庫(kù)和日志備份可以保留一段指定時(shí)間。 這使您可以為備份創(chuàng)建一份歷史記錄 ,以便在需要將數(shù)據(jù)庫(kù)還原到早于上一次 數(shù)據(jù)庫(kù)備份的時(shí)間的時(shí)候使用。還可以執(zhí)行差異備份。 運(yùn)行 sql server 代理作業(yè)。這可以用來(lái)創(chuàng)建可執(zhí)行各種操作的作業(yè)以及 運(yùn)行這些作業(yè)的維護(hù)計(jì)劃。 維護(hù)任務(wù)生成的結(jié)果可以作為報(bào)表寫(xiě)入文本文件,或?qū)懭?msd

17、b 中的 sysmaintplan_log 和 sysmaintplan_log_detail 維護(hù)計(jì)劃表。若要在日志文件 查看器中查看結(jié)果,請(qǐng)右鍵單擊“維護(hù)計(jì)劃”,再單 擊“查看歷史記錄”。 以下是詳細(xì)說(shuō)明: check database integrity(檢查數(shù)據(jù)庫(kù)完整性) 任務(wù)檢查指定數(shù)據(jù)庫(kù)中所有對(duì)象 的分配和結(jié)構(gòu)完整性。此任務(wù)可以檢查單 個(gè)數(shù)據(jù)庫(kù)或多個(gè)數(shù)據(jù)庫(kù),您還可以選擇是否也檢查數(shù)據(jù)庫(kù)索引,檢查所有索引頁(yè) 以及表數(shù)據(jù)頁(yè)的完整性。 此任務(wù)封裝 dbcc checkdb 語(yǔ)句。 生成的代碼: -檢查當(dāng)前數(shù)據(jù)庫(kù),取消信息性消息 dbcc checkdb with no_infomsgs

18、shrink database(收縮數(shù)據(jù)庫(kù)任務(wù)) 收縮數(shù)據(jù)庫(kù)任務(wù)”對(duì)話框可以創(chuàng)建一 個(gè)任務(wù),嘗試減小所選數(shù)據(jù)庫(kù)的大小。 此任務(wù)封裝了 dbcc shrinkdatabase 命令。 選項(xiàng): shrink database when it grows beyond 當(dāng)數(shù)據(jù)庫(kù)大小超過(guò)指定值時(shí)收縮數(shù)據(jù)庫(kù),指定引發(fā)此任務(wù)的數(shù)據(jù)庫(kù)大小 (mb)。 amount of free space to remain after shrink 收縮后保留的 可用空間,當(dāng)數(shù)據(jù)庫(kù)文件中的可用空間達(dá)到此值時(shí)停止收縮。 retain freed space in database files 選擇在數(shù)據(jù)庫(kù)文件中保留所釋放

19、的文件空間。如果指定 notruncate 選 項(xiàng),數(shù)據(jù)文件好像沒(méi)有收縮。 return freed space to operating system 選擇把數(shù)據(jù)文件中任何未使用空間被釋放給操作系統(tǒng)。無(wú)需移動(dòng)任何數(shù)據(jù) 即可減小文件大小。 生成的代碼: -選擇 retain freed space in database files dbcc shrinkdatabase (nadventureworks, 10, notruncate) -選擇 return freed space to operating system dbcc shrinkdatabase(nadventureworks

20、, 10, truncateonly) reorganize index(重新組織索引) 重新組織 sql server 數(shù)據(jù)庫(kù)表和視圖中的索引。 通過(guò)使用“重新組織索 引”任務(wù),包可以重新組織單個(gè)數(shù)據(jù)庫(kù)或多個(gè)數(shù)據(jù)庫(kù)中的索引。如果此任務(wù)僅重 新組織單個(gè)數(shù)據(jù)庫(kù)中的索引,則可以選擇任務(wù)要重新組織其索引的視圖或表。 “重新組織索引”任務(wù)還包含壓縮大型對(duì)象數(shù)據(jù)的選項(xiàng)。大型對(duì)象數(shù)據(jù)是具有 image 、text、ntext、varchar(max)、nvarchar(max)、varbinary(max) 或 xml 數(shù)據(jù)類型的數(shù)據(jù)。 此任務(wù)封裝了 transact-sql alter index 語(yǔ)句

21、。 如果選擇壓縮大型對(duì)象數(shù)據(jù),則該語(yǔ)句使用 reorganize with(lob_compaction = on) 子句,否則 lob_compaction 將設(shè)置為 off。 生成代碼:(只選擇了 employee 表) -選擇 compact large objects alter index pk_employee_employeeid on humanresources.employee reorganize with ( lob_compaction = on ) -不選擇 alter index pk_employee_employeeid on humanresources.e

22、mployee reorganize with ( lob_compaction = off ) rebuild index(重新生成索引) 重新生成 sql server 數(shù)據(jù)庫(kù)表和視圖中的索引。包可 以重新生成單個(gè)數(shù) 據(jù)庫(kù)或多個(gè)數(shù)據(jù)庫(kù)中的索引。如果任務(wù)僅重新生成單個(gè)數(shù)據(jù)庫(kù)中的索引,則可 以選擇任務(wù)要 重新生成其索引的視圖和表。使用默認(rèn)可用空間重新組織頁(yè)刪除 數(shù)據(jù)庫(kù)中表上的索引,并使用在創(chuàng)建索引時(shí)指 定的填充因子重新創(chuàng)建索引。 此任務(wù)封裝 alter index rebuild 語(yǔ)句并提供下列索引重新生成選項(xiàng): reorganize pages with the default amount

23、 of free space 指定 fillfactor 百 分比或使用原始的 fillfactor 量。 change free space per page percentage to: 填充索引使用 pad_index 選項(xiàng)可以在索引創(chuàng)建過(guò)程中設(shè)置中間級(jí)頁(yè)中的 可用空間百分比。將每頁(yè)的可用空間百分比更改,刪除數(shù)據(jù)庫(kù)中表上的索引,并 使用新的、自動(dòng)計(jì)算的填充因子重新創(chuàng)建索引,從而在索引頁(yè)上保留指定的可 用空間。 sort results in tempdb 使用 sort_in_tempdb 選項(xiàng),該選項(xiàng)確定在索引創(chuàng)建 過(guò)程中生成的中 間排序結(jié)果的臨時(shí)存儲(chǔ)位置。使用索引的 ignore_d

24、up_key 選項(xiàng),該選項(xiàng)指 定對(duì)唯一聚集或非聚集索引上多行 insert 事務(wù)中的重復(fù)鍵值的錯(cuò)誤響應(yīng) 。 keep index online while reindexing 使用 online 選項(xiàng),用戶可以在索引操作期間訪問(wèn)基礎(chǔ)表或聚集索引數(shù)據(jù) 以及任何關(guān)聯(lián)的非聚集索引。 生成代碼:(只選擇了 employee 表) alter index pk_employee_employeeid on humanresources. employee rebuild with ( fillfactor = 90, pad_index = off, statistics_norecompute =

25、off, allow_row_locks = on, allow_page_locks = on, sort_in_tempdb = off, online = off ) updata statics(更新統(tǒng)計(jì)信息) 為指定的表或索引視圖中的一個(gè)或多個(gè)統(tǒng)計(jì)信息組( 集合)更新鍵值分布 信息。 此任務(wù)封裝 update statistics 語(yǔ)句。 all existing statistics 如果更新應(yīng)用于所有統(tǒng)計(jì)信息,則暗示使用 with all 子句。 column statistics only 如果更新僅 應(yīng)用于列,則包含 with column 子句。 index statist

26、ics only 如果更新僅應(yīng)用于索引,則包含 with index 子句。 full scan 全部統(tǒng)計(jì) sample by 從每個(gè)索引所對(duì)應(yīng)的表中抽樣的數(shù)據(jù),此樣本的大小取決 于表中的行數(shù)和 數(shù)據(jù)修改的頻率。 生成代碼:(只選擇了 employee 表) update statistics humanresources.employee with fullscan clean up history(清除歷史記錄) 使用“清除歷史記錄”對(duì)話框,可以放 棄 msdb 數(shù)據(jù)庫(kù)表中舊的歷史信息。 此任務(wù)支持對(duì)備份和還原歷史記錄、microsoft sql server 代理作業(yè)歷史記錄 和維護(hù)計(jì)劃

27、歷史記錄進(jìn)行刪除。 此任務(wù)封裝 sp_delete_backuphistory 系統(tǒng)存儲(chǔ)過(guò)程并將指定日期作為參 數(shù)傳遞給該過(guò)程。 選項(xiàng): backup and restore history sql server agent job history maintenance plan history 生成代碼: 以下為引用的內(nèi)容: declare dt datetime select dt = cast(n2007-05-31t08:00:00 as datetime) exec msdb.dbo.sp_delete_backuphistory dt go exec msdb.dbo.sp_pu

28、rge_jobhistory oldest_date=dt go execute msdb.sp_maintplan_delete_log null,null,dt go execute sql server agent job(執(zhí)行 sql server 代理作業(yè)) 任務(wù)運(yùn)行 sql server 代理作業(yè)。sql server 代理作業(yè)能夠自動(dòng)執(zhí)行您需 要重復(fù)執(zhí)行的任務(wù)。 此任務(wù)封裝 sp_start_job 系統(tǒng) 過(guò)程并把 sql server 代理作業(yè)的名稱作 為參數(shù)傳遞給該過(guò)程。 back up database task 備份用的,太熟悉了,不介紹了。 maintenance cl

29、eanup task 此任務(wù)封裝 master.dbo.xp_delete_file 系統(tǒng)過(guò)程,用來(lái)刪除備份文件。 execute t-sql statement task 執(zhí)行 t-sql 任務(wù)運(yùn)行 transact-sql 語(yǔ)句。這個(gè)任務(wù)用向?qū)У臅r(shí)候是沒(méi)有 的,要到設(shè)計(jì)視圖里面去拖出來(lái)。 notify operator task 通知操作員任務(wù)將通知消息發(fā)送到 sql server 代理操作員。此任務(wù)是唯 一一個(gè)不封裝 transact-sql 語(yǔ)句或 dbcc 命令的數(shù)據(jù)庫(kù)維護(hù)任務(wù)。 執(zhí)行維護(hù)計(jì)劃最好按一定的順序,首先是執(zhí)行檢查數(shù)據(jù)庫(kù)完整性,然后是 收縮數(shù)據(jù)庫(kù),重新生成索引或者重新組織索

30、引任務(wù),最后是更新統(tǒng)計(jì)信息。 重新生成索引或者重新組織索引要根據(jù)情況選擇不同的操作,兩個(gè)一起選 擇沒(méi)有什么意義。決定使用哪種碎片整理方法的第一步是分析索引以確定碎片 程度。使用系統(tǒng)函數(shù) sys.dm_db_index_physical_stats 可以檢測(cè)特定索引、表 或索引視圖的所有索引、一個(gè)數(shù)據(jù)庫(kù)中的所有索引或所有數(shù)據(jù)庫(kù)中的所有索引 中的碎片。知道碎片程度后,可以確定修復(fù)碎片的最佳方法。索引碎片不太多 時(shí),可以重新組織索引。不過(guò),如果索引碎片非常多,重新生成索引則可以獲 得更好的結(jié)果。 我們公司這些任務(wù)都是一個(gè)星期運(yùn)行一次,幾個(gè)數(shù)據(jù)庫(kù)加起來(lái)有 200g,數(shù) 據(jù)庫(kù)也不算很大,每次運(yùn)行要兩個(gè)小

31、時(shí)以上,所以都是在凌晨進(jìn)行。如果進(jìn)行 的是重新生成索引那么在執(zhí)行的時(shí)候表是無(wú)法訪問(wèn)的,現(xiàn)在也沒(méi)什么更好的解 決方案。這個(gè)問(wèn)題還在繼續(xù)學(xué)習(xí)中!(源碼網(wǎng),) 解解 sql server“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃數(shù)據(jù)庫(kù)維護(hù)計(jì)劃” 因?yàn)橐粋€(gè)維護(hù)計(jì)劃允許同時(shí)維護(hù)多個(gè)數(shù)據(jù)庫(kù),所以此處可以顯示出多個(gè)數(shù)據(jù)庫(kù) 的名稱(在圖 1 中可以看到名為“系統(tǒng)數(shù)據(jù)庫(kù)備份”的數(shù)據(jù)庫(kù)維護(hù)計(jì)劃中的“數(shù)據(jù)庫(kù) ”就包括三個(gè)數(shù)據(jù)庫(kù):master、model 和 msdb)。 3.服務(wù)器:也就是維護(hù)計(jì)劃所維護(hù)的數(shù)據(jù)庫(kù)所處的服務(wù)器的名稱。“(local)”表示 是本地服務(wù)器。 4.對(duì)策:是指維護(hù)計(jì)劃所需要進(jìn)行的具體維護(hù)工作的內(nèi)容。 圖 1 中有 3

32、 個(gè)“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”均為“數(shù)據(jù)庫(kù)備份,事務(wù)日志備份”,它的含義就 是這些維護(hù)計(jì)劃中同時(shí)對(duì)所指定的數(shù)據(jù)庫(kù)進(jìn)行“數(shù)據(jù)庫(kù)”和“事務(wù)日志”的備份。 第三步:創(chuàng)建“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃” 鼠標(biāo)右擊“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”項(xiàng)目,選擇“新建維護(hù)計(jì)劃(p)”功能,將打開(kāi)“數(shù)據(jù)庫(kù) 維護(hù)計(jì)劃向?qū)А贝绑w,依照此向?qū)軌騽?chuàng)建一個(gè)新的“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”。 步驟 1:?jiǎn)螕?“下一步(n)”按鈕,打開(kāi)“選擇數(shù)據(jù)庫(kù)”窗體(如圖 2)。在此窗體中可 以選定一個(gè)或多個(gè)的數(shù)據(jù)庫(kù)作為操作對(duì)象。為了敘述方便,我在此只選擇了一 個(gè)數(shù)據(jù)庫(kù)“regie”。 圖 2 步驟 2:?jiǎn)螕魣D 2 中的“下一步(n)”按鈕,打開(kāi)“更新數(shù)據(jù)優(yōu)化信息”窗體(如圖 3

33、) 。 圖 3 在此窗體中可以對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)和索引重新進(jìn)行組織,以及能夠設(shè)定在滿足 一定條件的情況下,維護(hù)計(jì)劃自動(dòng)刪除數(shù)據(jù)庫(kù)中的未使用的空間,以便提高性 能。 但要注意的是,在此窗體中,只要選定了“重新組織數(shù)據(jù)和索引頁(yè)r”復(fù)選框,“ 更新查詢優(yōu)化器所使用的統(tǒng)計(jì)。示例d”復(fù)選框?qū)⑹?變成灰色,不能選擇)。 而且“重新組織數(shù)據(jù)和索引頁(yè)r”復(fù)選框和“從數(shù)據(jù)庫(kù)文件中刪除未使用的空間m” 復(fù)選框二者只要有一個(gè)被選中,其下的“調(diào)度s”功能才有效。單擊“更改c”按 鈕可以對(duì)“調(diào)度”進(jìn)行自定義。 各位讀者可以根據(jù)自身情況決定是否選用其中的功能。當(dāng)然也可以通過(guò)單擊“幫 助”按鈕來(lái)查看各功能的具體含義。 在此

34、窗體中能夠便捷地設(shè)定每項(xiàng)作業(yè)的持續(xù)運(yùn)行時(shí)間和運(yùn)行的頻率。完成自己 的設(shè)置后,一定要選定右上角的“啟用調(diào)度b”復(fù)選框,這樣一個(gè)作業(yè)調(diào)度才算 真正完成了。 步驟 3:?jiǎn)螕魣D 3 中的“下一步(n)”按鈕,打開(kāi)“檢查數(shù)據(jù)庫(kù)完整性”窗體。 在此窗體中可以設(shè)定維護(hù)計(jì)劃在備份數(shù)據(jù)庫(kù)前自動(dòng)檢查數(shù)據(jù)庫(kù)的完整性,以便 檢測(cè)由于硬件或軟件錯(cuò)誤而導(dǎo)致數(shù)據(jù)的不一致。在此窗體中只有先選定了“檢查 數(shù)據(jù)庫(kù)完整性h”復(fù)選框,其下的“備份之前執(zhí)行這些檢查r”和“調(diào)度s”功能才 有效。單擊“更改c”按鈕可以對(duì)“調(diào)度”進(jìn)行自定義。 各位讀者可以自主決定,較好的一種做法就是選中“檢查數(shù)據(jù)庫(kù)完整性h”復(fù)選 框(推薦,因?yàn)橛锌赡軙?huì)修正

35、一些錯(cuò)誤)。 步驟 4:在“檢查數(shù)據(jù)庫(kù)完整性”窗體中的“下一步(n)”按鈕,打開(kāi)“指定數(shù)據(jù)庫(kù)備 份計(jì)劃”窗體。 如需對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份,則必須選定“作為維護(hù)計(jì)劃的一部分來(lái)備份數(shù)據(jù)庫(kù)a” 復(fù)選框,而且必須指定存儲(chǔ)備份文件的位置:磁帶p或磁盤k。 如果選擇“磁盤k”作為數(shù)據(jù)庫(kù)備份的位置,設(shè)定“調(diào)度”后單擊“下一步(n)”按鈕則 顯示“指定備份磁盤目錄”窗體(如圖 4)。 圖 4 在圖 4 中,可以具體指定存儲(chǔ)備份文件的目錄(可以使用默認(rèn)的目錄,也可自定 義)、備份文件擴(kuò)展名,而且能夠指示備份計(jì)劃自動(dòng)地刪除早于某個(gè)時(shí)間(圖 4 中設(shè)定的是“2 天”,也就是說(shuō)兩天前的所有備份文件將被自動(dòng)地刪除,只留下最

36、 近兩天的備份)的備份文件。而圖 4 中的“為每個(gè)數(shù)據(jù)庫(kù)創(chuàng)建子目錄c”功能只是 在步驟 1 中選擇了多個(gè)數(shù)據(jù)庫(kù)時(shí)才有用,對(duì)于一個(gè)數(shù)據(jù)庫(kù)作用不大。設(shè)定后, 單擊“下一步(n)”按鈕則顯示“指定事務(wù)日志備份計(jì)劃”窗體。 如果選擇“磁帶p”作為數(shù)據(jù)庫(kù)備份的位置,設(shè)定“調(diào)度”后單擊“下一步(n)”按鈕則 直接顯示“指定事務(wù)日志備份計(jì)劃”窗體。 步驟 5:指定“事務(wù)日志備份計(jì)劃”的過(guò)程與步驟 4 的過(guò)程完全相同,只是在設(shè)定 “調(diào)度”上稍有差別(因?yàn)槲业囊笫菙?shù)據(jù)庫(kù)每天備份一次,事務(wù)日志每 1 小時(shí)備 份一次)。 步驟 6:對(duì)事務(wù)日志的備份計(jì)劃全部設(shè)定后,單擊“下一步(n)”按鈕則顯示“要生 成的報(bào)表”窗

37、體。 在此窗體中可以指定用于存放整個(gè)備份計(jì)劃執(zhí)行過(guò)程中的日志的目錄。設(shè)定過(guò) 程與圖 4 的操作及其相似。 圖 5 步驟 7:完成步驟 6 后,單擊“下一步(n)”按鈕則顯示“維護(hù)計(jì)劃歷史紀(jì)錄”窗體。 在此窗體中可以指定如何存儲(chǔ)此維護(hù)計(jì)劃的歷史紀(jì)錄(是存放在“本地服務(wù)器”上 ,還是在“遠(yuǎn)程服務(wù)器”上),而且通過(guò)指定表中的行數(shù)可以限定歷史紀(jì)錄的存儲(chǔ) 大小。 步驟 8:完成步驟 7 后,單擊“下一步(n)”按鈕則顯示“正在完成數(shù)據(jù)庫(kù)維護(hù)計(jì)劃 向?qū)А贝绑w(如圖 5)。 在此窗體中可以自定義一個(gè)“計(jì)劃名p”(推薦,這樣便于管理和識(shí)別),當(dāng)然也可 使用默認(rèn)的“計(jì)劃名p”。而且還可以通過(guò)對(duì)“計(jì)劃名p”下的文

38、本框中的內(nèi)容進(jìn) 行確認(rèn),如有誤,則可通過(guò)單擊窗體中的“上一步b”按鈕退回到相應(yīng)的窗體進(jìn) 行修改。 步驟 9:完成步驟 8 后,單擊“完成”按鈕,則顯示“維護(hù)計(jì)劃已創(chuàng)建成功?!钡奶?示框,再單擊 “確定”按鈕即成功地設(shè)定了一個(gè)新的數(shù)據(jù)庫(kù)維護(hù)計(jì)劃。 從圖 6 中可以看到,已經(jīng)成功的創(chuàng)建了一個(gè)新的數(shù)據(jù)庫(kù)維護(hù)計(jì)劃“regie 備 份”。 第四步:維護(hù)和管理“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃” 第三步完成后,對(duì)各個(gè)“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”的日常維護(hù)和管理都非常方便,只需 要雙擊“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”即可對(duì)第三步中所涉及的內(nèi)容進(jìn)行變更、修正。 圖 6 如圖 6 所示,鼠標(biāo)右擊“regie 備份”,單擊“屬性r”,或者直接雙擊“reg

39、ie 備份” ,打開(kāi)“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”窗體。在此窗體中集成了第三步中涉及到的所有功能 ,每項(xiàng)功能都能任意修改,修改過(guò)程與第三步中的相應(yīng)步驟一樣。 但需要說(shuō)明的是,在設(shè)定圖 7 中的“報(bào)表”選項(xiàng)卡下的“文本報(bào)表”中的“刪除早于 此時(shí)間的文本報(bào)表文件f”選項(xiàng)時(shí),也就是第三步中的步驟 6 中的內(nèi)容,無(wú)論您 將其設(shè)定成“分鐘”、“小時(shí)”、“天”,還是“月”,創(chuàng)建成功后都將被自動(dòng)地更正為“ 周”,而且以后無(wú)論如何修改,保存后再去查看時(shí)它仍將顯示為“周”,但不意味 著其它選項(xiàng)無(wú)效,其它選項(xiàng)仍然有效。 圖 7 第五步:?jiǎn)?dòng) sql server 2000 代理以便執(zhí)行“作業(yè)” 完成第三步后,還需啟動(dòng) sql

40、 server 2000 agent(代理),以便執(zhí)行“數(shù)據(jù)庫(kù)維 護(hù)計(jì)劃”作業(yè)。 與展開(kāi) sql server 2000“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”的步驟一樣,在“管理”項(xiàng)目中,可 以發(fā)現(xiàn)存在一個(gè)“sql server 代理”(如圖 8)。 圖 8 單擊“sql server 代理”下的“作業(yè)”子菜單,在“企業(yè)管理器”窗口右側(cè)將會(huì)顯示 出已經(jīng)存在的作業(yè)項(xiàng)目(在圖 8 中可以看到已經(jīng)存在 17 個(gè)作業(yè)項(xiàng)目)。每個(gè)作業(yè) 項(xiàng)目均包括以下數(shù)據(jù)列: 1.名稱:當(dāng)然是指作業(yè)的名稱,可以自定義,中英文皆可。為了理解方便,建 議用中英文結(jié)合。 每當(dāng)新建立一個(gè)“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”,將自動(dòng)生成以下默認(rèn)名稱的作業(yè): (1)當(dāng)新

41、建的“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”中設(shè)定了“備份數(shù)據(jù)庫(kù)”功能時(shí),將生成默認(rèn)名為“d b 維護(hù)計(jì)劃*的 db 備份作業(yè)”的作業(yè)。 (2)當(dāng)新建的“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”中設(shè)定了“備份事務(wù)日志”功能時(shí)將生成默認(rèn)名為“d b 維護(hù)計(jì)劃*的 事務(wù)日志備份作業(yè)(多服務(wù)器)”的作業(yè)。 以上(1)和(2)中的“*”處將顯示“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”中的“計(jì)劃名”(也就是第三步 步驟 8 中設(shè)定的“計(jì)劃名”)。 2.分類:指明該作業(yè)當(dāng)前所屬的類別。缺省值為“未分類(本地)”。 3.啟用:指明該作業(yè)是否處于“啟用”狀態(tài)。 4.可運(yùn)行:指明該作業(yè)是否處于“可運(yùn)行”狀態(tài)。 5.已調(diào)度:指明該作業(yè)是否處于“已調(diào)度”狀態(tài)。 6.狀態(tài):指明該作業(yè)

42、當(dāng)前的運(yùn)行狀態(tài)不在運(yùn)行、正在運(yùn)行。 7.上次運(yùn)行狀態(tài)(開(kāi)始日期):顯示最近一次運(yùn)行該作業(yè)后的狀態(tài)(“已成功”、“失 敗”,還是“未知”),和運(yùn)行時(shí)的日期和時(shí)間。 8.下次運(yùn)行日期:指明下一次運(yùn)行該作業(yè)的日期和時(shí)間。 如圖 8 所示,鼠標(biāo)右擊“regie 完全備份”作業(yè),單擊“屬性r”,或者直接雙擊“re gie 完全備份”作業(yè),打開(kāi)作業(yè)的“屬性”窗體。在此窗體中集成了該作業(yè)的詳細(xì)的 配置項(xiàng)。每個(gè)配置項(xiàng)都能任意修改?!皩傩浴贝绑w中有四個(gè)選項(xiàng)卡: 常規(guī):在此選項(xiàng)卡中可以重新設(shè)定作業(yè)名稱(“名稱n”文本框)、修改作業(yè)的 分類(“分類y”下拉框)、指定作業(yè)的所有者(“所有者w”下拉框)、簡(jiǎn)單地對(duì)作業(yè)

43、進(jìn)行描述(“描述r”文本框),以及決定是否啟用此作業(yè)(“啟用e”復(fù)選框)。 步驟:在此選項(xiàng)卡中可以新建、插入新的步驟,刪除、編輯已有的步驟。 單擊“編輯e”按鈕,在“編輯作業(yè)步驟”窗體中的“常規(guī)”選項(xiàng)卡中的“命令m”文本 框中可以查閱到該作業(yè)的執(zhí)行語(yǔ)句。 調(diào)度:在此選項(xiàng)卡中可以新建調(diào)度、新建警報(bào),刪除、編輯已有的調(diào)度。 通知:在此選項(xiàng)卡中可以設(shè)定作業(yè)完成時(shí)(即當(dāng)作業(yè)成功時(shí)、作業(yè)失敗時(shí))執(zhí) 行的操作,即發(fā)送電子郵件、傳呼操作員、發(fā)出網(wǎng)絡(luò)警報(bào)信息、寫(xiě)入 windows 應(yīng)用程序事件日志、自動(dòng)刪除等操作。 第六步:檢查結(jié)果 經(jīng)過(guò)上述五個(gè)步驟后,一個(gè)完整的備份數(shù)據(jù)庫(kù)的計(jì)劃就建立起來(lái)了??梢酝ㄟ^(guò)“ 資源

44、管理器”來(lái)檢查備份目錄下是否存在相應(yīng)地備份文件。 經(jīng)過(guò)長(zhǎng)時(shí)間的使用,如果以“保留 2 天的數(shù)據(jù)庫(kù)完全備份和 2 天的每個(gè)一小時(shí)的 事務(wù)日志備份”的備份策略來(lái)正確地建立了一個(gè)完整的數(shù)據(jù)庫(kù)維護(hù)計(jì)劃的話,無(wú) 論何時(shí)查看相應(yīng)備份目錄下的文件,都應(yīng)該存在 102 個(gè)文件: 2 個(gè)數(shù)據(jù)庫(kù)的完整備份,即 2 個(gè)以“數(shù)據(jù)庫(kù)名_db_yyyy mmddhhss.bak”格式 為文件名的文件; 3 個(gè)與數(shù)據(jù)庫(kù)完整備份相對(duì)應(yīng)的操作過(guò)程的記錄報(bào)告文件,即以“數(shù)據(jù)庫(kù)名”+ “備份 4_yyyymmddhhss.txt” 格式為文件名的文件; 48 個(gè)事務(wù)日志的差異備份,即 2 天各 24 個(gè)以“數(shù)據(jù)庫(kù)名_tlog_yy

45、yymmddhh ss.trn”格式為文件名的文件; 49 個(gè)與事務(wù)日志的差異備份對(duì)應(yīng)的操作過(guò)程的記錄報(bào)告文件,即以“數(shù)據(jù)庫(kù) 名”+“備份 6_yyyymmddhhss.txt” 格式為文件名的文件。 以上文件名中,“數(shù)據(jù)庫(kù)名”為第三步的步驟一中選定的數(shù)據(jù)庫(kù)的名稱;“yyyym mddhhss”是時(shí)間戳,其格式為:“yyyy”指“年”(4 位數(shù)值),“mm”指“月”(2 位數(shù)值 ,不足 2 位的補(bǔ)“0”),“dd”指“日”(2 位數(shù)值,不足 2 位的補(bǔ)“0”),“hh”指“時(shí)”(2 位 數(shù)值,不足 2 位的補(bǔ)“0”),“ss”指“分”(2 位數(shù)值,不足 2 位的補(bǔ)“0”)。 結(jié)束語(yǔ) 對(duì)于一個(gè)企

46、業(yè)而言,日常運(yùn)作中發(fā)生的各種業(yè)務(wù)所產(chǎn)生的所有數(shù)據(jù),經(jīng)過(guò)計(jì)算 機(jī)不斷地日積月累,逐漸成為公司的一種財(cái)富和資本。利用計(jì)算機(jī),可以便捷 地統(tǒng)計(jì)分析部分或全部的數(shù)據(jù),通過(guò)各種形式的反饋(如圖表、表格等),給公 司的決策層用于參考,便于為公司的今后決策提供指導(dǎo)和幫助。正基于此,這 些數(shù)據(jù)的價(jià)值隨著時(shí)間的延續(xù)正呈現(xiàn)出幾何速度的增長(zhǎng)。因此我認(rèn)為,對(duì)于數(shù) 據(jù)的備份工作是網(wǎng)管員日常工作中最重要的工作之一。 通過(guò)這次“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”的創(chuàng)建,我略有感受: 1.經(jīng)過(guò)這么長(zhǎng)時(shí)間的運(yùn)用,我認(rèn)為“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”仍然存在不足之處,雖說(shuō)“ 數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”功能很強(qiáng)大,但是它最終的結(jié)果是生成一項(xiàng)作業(yè),由“sql se rve

47、r 2000 agent”服務(wù)定期執(zhí)行它來(lái)完成對(duì)數(shù)據(jù)庫(kù)的備份工作。這就要求“sql server 2000 agent”服務(wù)能夠正常地“運(yùn)行”。從多次安裝來(lái)看,在 windows 2 000 系統(tǒng)中“sql server 2000 agent”服務(wù)能夠正常運(yùn)行,而且能隨 windows 2000 的啟動(dòng)自動(dòng)運(yùn)行。但是在 window 98 系統(tǒng)(包括第二版)中,卻不能正常 運(yùn)行。所以說(shuō),在 windows 98 系統(tǒng)中即使依照上述步驟成功地創(chuàng)建了“數(shù)據(jù)庫(kù) 維護(hù)計(jì)劃”,也會(huì)因?yàn)椤皊ql server 2000 agent”服務(wù)無(wú)法啟動(dòng)而變得沒(méi)有任何 作用。 2.之所以選擇“完全備份”,主要在于,

48、在進(jìn)行完全備份時(shí),sql server 將.mdf 與其對(duì)應(yīng)的.ldf 文件進(jìn)行對(duì)比,刪除一些舊的、不必要的日志,然后將.mdf 和.l df 文件進(jìn)行合并、壓縮后一起存儲(chǔ)。 優(yōu)點(diǎn)是:能最大可能地、完整地保存數(shù)據(jù)庫(kù)。 缺點(diǎn)是:存儲(chǔ)量隨著數(shù)據(jù)庫(kù)的增大而增大,存儲(chǔ)時(shí)間也將隨著數(shù)據(jù)庫(kù)的增大 而延長(zhǎng)。 3.在建立“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”過(guò)程,各位讀者應(yīng)該盡可能地去使用各種選項(xiàng)、功能 ,以便加深對(duì)“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”的理解和掌握。 4.雖然 internet 上有許多第三方備份軟件和工具,但是大多數(shù)是共享版。由于 擔(dān)心知識(shí)產(chǎn)權(quán)問(wèn)題、病毒問(wèn)題和其它問(wèn)題,所以我沒(méi)有試用這些第三方軟件。 這樣的話,它們的性能我就不清

49、楚了。也許這些軟件的功能非常強(qiáng)大,能夠滿 足更多的、更高的要求。在這里我只是就 windows 2000 和 sql server 200 0 自帶的“備份”工具和軟件進(jìn)行一個(gè)比較。 高效維護(hù)數(shù)據(jù)庫(kù)的關(guān)鍵技巧 paul s. randal 概覽:概覽: 管理數(shù)據(jù)和事務(wù)日志文件 清除索引碎片 確保統(tǒng)計(jì)數(shù)據(jù)準(zhǔn)確、最新 檢測(cè)遭到破壞的數(shù)據(jù)庫(kù)頁(yè) 建立有效的備份策略 目錄 數(shù)據(jù)和日志文件管理 索引碎片 統(tǒng)計(jì)數(shù)據(jù) 損壞檢測(cè) 備份 總結(jié) 在一周之內(nèi)多次有人向我征求高效維護(hù)生產(chǎn)數(shù)據(jù)庫(kù)的建議。有時(shí)問(wèn)題來(lái)自 dba,他們正在實(shí)施新的解決方案,希望得到幫助 對(duì)維護(hù)進(jìn)行精細(xì)調(diào)整適合其新數(shù)據(jù)庫(kù)的特點(diǎn)。但更為常見(jiàn)的情況是

50、:提問(wèn)的人 不是專業(yè) dba,而是由于某種原因擁有數(shù)據(jù)庫(kù)并承擔(dān)相關(guān)責(zé)任的人員。我喜 歡將這種角色稱為“非自愿 dba”。本文重點(diǎn)是為所有非自愿 dba 提供數(shù)據(jù) 庫(kù)維護(hù)最佳實(shí)踐的入門知識(shí)。 在 it 世界里,大多數(shù)任務(wù)和程序都沒(méi)有一個(gè)簡(jiǎn)單、通用的解決方案可以高效 維護(hù)數(shù)據(jù)庫(kù),但卻有一些必須受到重視的關(guān)鍵領(lǐng)域。我所關(guān)心的五大重要領(lǐng)域 是(沒(méi)有任何特殊的重要性順序): 數(shù)據(jù)和日志文件管理 索引碎片 統(tǒng)計(jì)數(shù)據(jù) 損壞檢測(cè) 備份 一個(gè)未經(jīng)維護(hù)(或維護(hù)不良)的數(shù)據(jù)庫(kù)可能會(huì)在其中的一個(gè)或多個(gè)領(lǐng)域內(nèi)引發(fā) 問(wèn)題,最終可能導(dǎo)致應(yīng)用程序性能欠佳,甚至是停機(jī)以及丟失數(shù)據(jù)。 在本文中,我將說(shuō)明這些問(wèn)題很重要的原因并向您

51、展示一些緩解這些問(wèn)題的簡(jiǎn) 單方法。我將以 sql server 2005 為基礎(chǔ)進(jìn)行說(shuō)明,但我還會(huì)著重指出您 將會(huì)在 sql server 2000 和即將發(fā)布的 sql server 2008 中發(fā)現(xiàn)的主要 差別。 數(shù)據(jù)和日志文件管理數(shù)據(jù)和日志文件管理 我始終建議在接管數(shù)據(jù)庫(kù)時(shí)檢查的第一個(gè)領(lǐng)域涉及到與數(shù)據(jù)和(事務(wù))日志文 件管理相關(guān)的設(shè)置。具體地說(shuō),您應(yīng)確保: 數(shù)據(jù)和日志文件彼此分開(kāi),而且還與其他所有內(nèi)容相互隔離 自動(dòng)增長(zhǎng)已正確配置 即時(shí)文件初始化已配置 自動(dòng)縮減未啟用而且縮減不是任何維護(hù)計(jì)劃的內(nèi)容 當(dāng)數(shù)據(jù)和日志文件(理想情況下應(yīng)分別位于不同的卷中)與其他任何創(chuàng)建或擴(kuò) 展文件的應(yīng)用程序共享一

52、個(gè)卷時(shí),可能存在文件碎片。在數(shù)據(jù)文件中,過(guò)多的 文件碎片可能是導(dǎo)致查詢(特別是掃描非常多數(shù)據(jù)的查詢)效果不佳的一個(gè)因 素。在日志文件中,它可能會(huì)對(duì)性能產(chǎn)生相當(dāng)大的影響,尤其是在自動(dòng)增長(zhǎng)設(shè) 置為需要增加每個(gè)文件的大小時(shí),增量很小的情形。 日志文件在內(nèi)部被劃分為多個(gè)稱為“虛擬日志文件”(vlf) 的片段,而且日志文 件(我在這里使用單數(shù)是因?yàn)閾碛卸鄠€(gè)日志文件并沒(méi)有任何好處,每個(gè)數(shù)據(jù)庫(kù) 只應(yīng)有一個(gè)日志文件)內(nèi)的碎片越多,vlf 就越多。一個(gè)日志文件具有多個(gè) (比方說(shuō),200 個(gè))vlf 后,與日志有關(guān)的操作(如為事務(wù)性復(fù)制/回滾而讀 取日志)、日志備份乃至 sql server 2000 中的觸發(fā)器

53、(觸發(fā)器的實(shí)現(xiàn)已在 sql server 2005 中更改為行版本框架,而不是事務(wù)日志)可能會(huì)對(duì)性能產(chǎn) 生負(fù)面影響。 調(diào)整數(shù)據(jù)和日志文件大小的最佳做法是創(chuàng)建它們時(shí)使用適當(dāng)?shù)某跏即笮?。?duì)于 數(shù)據(jù)文件,初始大小應(yīng)考慮短期內(nèi)向數(shù)據(jù)庫(kù)中添加其他數(shù)據(jù)的可能性。例如, 如果數(shù)據(jù)的初始大小為 50gb,但您知道在接下來(lái)的六個(gè)月內(nèi)將再添加 50gb 的數(shù)據(jù),那么應(yīng)創(chuàng)建 100gb 的數(shù)據(jù)文件,而不是多次將其增大以達(dá)到該大小。 對(duì)于日志文件而言要更復(fù)雜一些,您需要多考慮一些因素,例如事務(wù)大?。ㄩL(zhǎng) 時(shí)間運(yùn)行事務(wù)在完成之前無(wú)法從日志中清除)以及日志備份頻率(因?yàn)檫@將刪 除日志的非活動(dòng)部分)。有關(guān)詳細(xì)信息,請(qǐng)參閱我的

54、妻子 kimberly tripp 編 寫(xiě)的一篇很受歡迎的博客文章提高事務(wù)日志吞吐量的 8 個(gè)步驟,它發(fā)表在 sql 上。 設(shè)置一旦完成,應(yīng)不時(shí)監(jiān)視文件大小,并在每一天的適當(dāng)時(shí)間先行手動(dòng)增加其 大小。為以防萬(wàn)一,應(yīng)保留自動(dòng)增長(zhǎng),這樣文件即使在發(fā)生一些異常事件的情 況下仍可以完成所需的增長(zhǎng)。反對(duì)將文件管理完全保留為自動(dòng)增長(zhǎng)的邏輯是步 長(zhǎng)極小的自動(dòng)增長(zhǎng)會(huì)導(dǎo)致文件碎片,而且自動(dòng)增長(zhǎng)會(huì)是一個(gè)耗時(shí)的過(guò)程,它可 能會(huì)多次突然停止應(yīng)用程序的工作。 應(yīng)將自動(dòng)增長(zhǎng)大小設(shè)置為一個(gè)具體值,而不是一個(gè)百分比,以約束執(zhí)行自動(dòng)增 長(zhǎng)(如果發(fā)生)所需的時(shí)間和空間。例如,您可能希望將一個(gè) 100gb 的數(shù)據(jù) 文件的自動(dòng)增長(zhǎng)大

55、小設(shè)置為固定值 5gb,而不是(比方說(shuō))10%。這意味著 無(wú)論文件每次變得多大,它均將按 5gb 進(jìn)行增長(zhǎng),而不是一個(gè)持續(xù)增長(zhǎng)的數(shù) 量(10gb、11gb、12gb 等)。 當(dāng)事務(wù)日志增長(zhǎng)時(shí)(手動(dòng)或自動(dòng)增長(zhǎng)),它將始終被初始化為零。數(shù)據(jù)文件在 sql server 2000 中具有同一默認(rèn)行為,但從 sql server 2005 開(kāi)始, 您可以啟用即時(shí)文件初始化,它會(huì)跳過(guò)零初始化文件,因此增長(zhǎng)和自動(dòng)增長(zhǎng)會(huì) 保持同步。所有版本的 sql server 中都提供了這一功能,這一點(diǎn)與正常的 觀點(diǎn)恰恰相佐。如欲了解詳細(xì)信息,請(qǐng)?jiān)?sql server 2005 或 sql server 2008 的

56、聯(lián)機(jī)叢書(shū)索引中輸入“即時(shí)文件初始化”。 最后,應(yīng)注意不要以任何方式啟用縮減。縮減可用于減小數(shù)據(jù)或日志文件的大 小,但它是一個(gè)干擾很大、極耗資源的過(guò)程,會(huì)導(dǎo)致數(shù)據(jù)文件中產(chǎn)生大量的邏 輯掃描碎片(詳細(xì)信息請(qǐng)參見(jiàn)下文),并導(dǎo)致性能欠佳。我更改了 sql server 2005 聯(lián)機(jī)叢書(shū)中的縮減條目,加入了一個(gè)警告,提醒注意此影響。 但在特殊情況下,允許手動(dòng)縮減單個(gè)數(shù)據(jù)和日志文件。 視頻 觀看 paul randal 演示縮減和自動(dòng)縮減如何導(dǎo)致數(shù)據(jù)庫(kù)發(fā)生嚴(yán)重的碎片問(wèn)題。 自動(dòng)縮減的后果極為嚴(yán)重,因?yàn)樗?30 分鐘就會(huì)在背景中啟動(dòng)一次,并會(huì)嘗 試縮減自動(dòng)縮減數(shù)據(jù)庫(kù)選項(xiàng)被設(shè)置為 true 的數(shù)據(jù)庫(kù)。從某

57、種程度講,它是一 個(gè)無(wú)法預(yù)見(jiàn)的過(guò)程,因?yàn)樗鼉H縮減擁有 25% 以上可用空間的數(shù)據(jù)庫(kù)。自動(dòng)縮 減占用大量資源,會(huì)產(chǎn)生碎片并導(dǎo)致性能下降,因此在任何情況下都不是一個(gè) 好計(jì)劃。您應(yīng)始終通過(guò)以下方式關(guān)閉自動(dòng)縮減: 復(fù)制代碼 alter database mydatabase set auto_shrink off; 包含手動(dòng)數(shù)據(jù)庫(kù)縮減命令的定期維護(hù)計(jì)劃幾乎會(huì)產(chǎn)生同樣糟糕的結(jié)果。如果您 發(fā)現(xiàn)您的數(shù)據(jù)庫(kù)在維護(hù)計(jì)劃將其縮減后持續(xù)增長(zhǎng),原因在于數(shù)據(jù)庫(kù)運(yùn)行需要該 空間。 最好的做法是允許數(shù)據(jù)庫(kù)增長(zhǎng)到穩(wěn)定的大小,盡量避免運(yùn)行縮減。您可以在我 原來(lái)的 msdn 博客(位于 t.aspx)中找到有關(guān)使用縮減的缺點(diǎn)的詳

58、細(xì)信息,其中還有對(duì) sql server 2005 中新算法的一些評(píng)論。 索引碎片索引碎片 除了文件系統(tǒng)級(jí)和日志文件內(nèi)的碎片以外,數(shù)據(jù)文件內(nèi)存儲(chǔ)表格和索引數(shù)據(jù)的 結(jié)構(gòu)中也可能存在碎片。數(shù)據(jù)文件內(nèi)可能出現(xiàn)兩種基本類型的碎片: 單個(gè)數(shù)據(jù)和索引頁(yè)內(nèi)的碎片(有時(shí)稱為內(nèi)部碎片) 由頁(yè)面組成的索引或表格結(jié)構(gòu)內(nèi)的碎片(稱為邏輯掃描碎片和擴(kuò)展盤區(qū) 掃描碎片) 內(nèi)部碎片是頁(yè)面中存在大量空白區(qū)域的位置。如圖圖 1 所示,數(shù)據(jù)庫(kù)中的每個(gè) 頁(yè)面大小為 8kb,頁(yè)眉為 96 字節(jié);因此,一個(gè)頁(yè)面可以存儲(chǔ)大約 8096 字 節(jié)的表格或索引數(shù)據(jù)(我的博客 有“深入了解存儲(chǔ) 引擎”一節(jié),其中介紹了數(shù)據(jù)和行結(jié)構(gòu)的特定表格和索引

59、內(nèi)部機(jī)制)。如果每個(gè) 表格或索引記錄超過(guò)頁(yè)面大小的一半,可能會(huì)出現(xiàn)空白空間,因?yàn)槊總€(gè)頁(yè)面只 能存儲(chǔ)一個(gè)記錄。這可能很難或無(wú)法更正,因?yàn)樗蟾谋砀窕蛩饕軜?gòu), 例如,將索引鍵更改為像 guid 一樣不會(huì)引發(fā)隨機(jī)插入點(diǎn)。 圖 1 數(shù)據(jù)庫(kù)頁(yè)的結(jié)構(gòu)數(shù)據(jù)庫(kù)頁(yè)的結(jié)構(gòu)(單擊圖像可查看大圖) 更常見(jiàn)的是,內(nèi)部碎片源于數(shù)據(jù)修改(如插入、更新和刪除),這可能會(huì)在頁(yè) 面中留下空白空間。管理不善的填充因子也可能會(huì)產(chǎn)生碎片;有關(guān)詳細(xì)信息, 請(qǐng)參閱“聯(lián)機(jī)叢書(shū)”。根據(jù)表格/索引架構(gòu)和應(yīng)用程序的特征,此空白空間在其創(chuàng) 建后可能就不再使用,導(dǎo)致數(shù)據(jù)庫(kù)中的不可用空間量持續(xù)增長(zhǎng)。 例如,我們來(lái)看一下一個(gè) 1 億行表格,其中平均記錄大小為 400 字節(jié)。后來(lái), 應(yīng)用程序的數(shù)據(jù)修改模式為每個(gè)頁(yè)面留下了平均 2800 字節(jié)的空白空間。該表 格所需的總空間為 59gb,計(jì)算方法為 8096-2800 / 400 = 13 個(gè)記錄 /8kb 頁(yè)面,然后將 1 億除以 13 便可獲得頁(yè)面數(shù)。如果沒(méi)有空間浪費(fèi),那 么每個(gè)頁(yè)面剛好容納 20 條記錄,所需的總空間下降至 38gb。這是多么大的 節(jié)?。?如數(shù)據(jù)/索引頁(yè)中出現(xiàn)空間浪費(fèi),可能導(dǎo)致存儲(chǔ)同樣數(shù)量的數(shù)據(jù)需要更多的頁(yè)面。 這不僅會(huì)占用更多的磁盤空間,還意味著查詢需要執(zhí)行更多的 i/o 才能讀取 同樣數(shù)量的數(shù)據(jù)。所有這些多出的頁(yè)面在數(shù)據(jù)緩存中占用了更多空間,因而占 用了更多的服

溫馨提示

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

評(píng)論

0/150

提交評(píng)論