




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、服務(wù)器和應(yīng)用系統(tǒng)遷移方案服務(wù)器和應(yīng)用系統(tǒng)遷移方案(此文檔為word格式,下載后您可任意修改編輯?。┮?、遷移方案總體思路新舊系統(tǒng)的遷移是一個(gè)整體系統(tǒng)工程。遷移必須保證用戶系統(tǒng)建設(shè)的相關(guān)要求, 在遷移過程中,我們需要重點(diǎn)考慮幾個(gè)問題:1、數(shù)據(jù)遷移如何保障 業(yè)務(wù)中斷停機(jī)時(shí)間”。業(yè)務(wù)中斷對丁用戶無論是運(yùn)行環(huán)境 還是測試環(huán)境均存在較大的恢復(fù)風(fēng)險(xiǎn),這樣的風(fēng)險(xiǎn)特別是對丁時(shí)間敏感型數(shù)據(jù)還 是對丁數(shù)據(jù)完整性業(yè)務(wù)都是不可以接受的。我們基丁這樣的要求,考慮到如何將 停機(jī)時(shí)間最小,能否實(shí)現(xiàn)0停機(jī)的建設(shè)目標(biāo)?對丁服務(wù)器操作系統(tǒng)而言,我們可以采用 P2V的方式,利用操作系統(tǒng)的 Volume Shadow Copy卷影副本
2、復(fù)制服務(wù)作為基礎(chǔ),來實(shí)現(xiàn)在舊系統(tǒng)環(huán)境下的 系統(tǒng)無修改,無停機(jī)的情況下,將數(shù)據(jù)和應(yīng)用軟件、操作系統(tǒng)環(huán)境、系統(tǒng)環(huán)境變 量等全部以 快照”形式遷移到新服務(wù)器中。由此實(shí)現(xiàn)服務(wù)器環(huán)境的整體遷移。對丁應(yīng)用IIS和其他應(yīng)用服務(wù)器來說,我們可以基丁應(yīng)用服務(wù)器的動(dòng)態(tài)業(yè)務(wù)擴(kuò) 展集群方式,來實(shí)現(xiàn)服務(wù)器不停機(jī)環(huán)境下的增加業(yè)務(wù)節(jié)點(diǎn)操作,這樣可以實(shí)現(xiàn)應(yīng) 用服務(wù)器熱添加在U新環(huán)境中的故障轉(zhuǎn)移/負(fù)載均衡集群系統(tǒng)中,在部分應(yīng)用服務(wù) 中我們可以使用session會(huì)話復(fù)制來實(shí)現(xiàn)舊系統(tǒng)的全局環(huán)境變量和會(huì)話請求狀 態(tài)也遷移到新環(huán)境中來??紤]到會(huì)話復(fù)制和狀態(tài)的快速實(shí)時(shí), 我們可以采用會(huì)話 內(nèi)存復(fù)制,考慮到會(huì)話復(fù)制和狀態(tài)的安全性,我們可以
3、采用會(huì)話數(shù)據(jù)庫復(fù)制管理。對丁數(shù)據(jù)庫而言,我們可以基丁數(shù)據(jù)庫本身自帶的數(shù)據(jù)庫鏡像技術(shù)、數(shù)據(jù)庫 日志傳遞技術(shù)來實(shí)現(xiàn)各自的分庫、 遷移庫的構(gòu)建,數(shù)據(jù)庫鏡像技術(shù)可以讓我們不 但保證數(shù)據(jù)庫遷移的不停機(jī),而且還可以保證萬一遷移中出現(xiàn)停機(jī)故障也不影響 源數(shù)據(jù)庫,而日志傳遞技術(shù)構(gòu)建的遷移可以保證系統(tǒng)數(shù)據(jù)庫遷移以異步方式進(jìn)行,這樣可以讓我們的系統(tǒng)環(huán)境在網(wǎng)絡(luò)出現(xiàn)故障的情況依然可以進(jìn)行遷移任務(wù)窗 口的正常工作。2、遷移涉及到的除了應(yīng)用、實(shí)例、數(shù)據(jù)庫的操作以外,還涉及到遷移前規(guī)劃、 遷移后測試的完整性測試。這些測試包括但不限丁數(shù)據(jù)一致性測試、數(shù)據(jù)完整性 測試、應(yīng)用會(huì)話狀態(tài)完整性測試、連接中斷測試、數(shù)據(jù)恢復(fù)測試。只有這
4、樣才能 保證遷移的安全性和有效性。二、服務(wù)器硬件環(huán)境遷移方案遷移評估遷移前,對遷移方案進(jìn)行評估以確保遷移成功。首先需要勘察現(xiàn)有系統(tǒng)的架構(gòu)和 資源使用狀況,評估過程必須包含以下信息和內(nèi)容:現(xiàn)有系統(tǒng)支撐的服務(wù)數(shù)量以及在服務(wù)器中的分布情況現(xiàn)有物理服務(wù)器資源占用狀況,包括 CPU內(nèi)存、磁盤和網(wǎng)絡(luò)連接狀況,為保 證遷移成功,目標(biāo)虛擬機(jī)規(guī)格應(yīng)不低丁原物理機(jī)標(biāo)準(zhǔn)當(dāng)前的物理環(huán)境是否支持虛擬化,是否支持資源擴(kuò)展,因?yàn)樵谶w移之前須在物 理服務(wù)器上完成虛擬化對當(dāng)前的存儲(chǔ)容量和資源利用率進(jìn)行評估,需在目標(biāo)系統(tǒng)中規(guī)劃好遷移需要的 存儲(chǔ)空間。需明確現(xiàn)有存儲(chǔ)如何利用,比如有些服務(wù)器是在本地磁盤上創(chuàng)建系統(tǒng) 盤和用戶盤,有些服
5、務(wù)器則在本地磁盤上創(chuàng)建系統(tǒng)盤而在SAN/NAS上創(chuàng)建用戶盤。遷移計(jì)劃通過對現(xiàn)有網(wǎng)絡(luò)環(huán)境的評估,我們對現(xiàn)有資源利用率,服務(wù)以及系統(tǒng)需求非?;?晰。評估后才能開始對遷移進(jìn)行計(jì)劃,步驟如下:一、確定遷移步驟,包括所有服務(wù)器的遷移先后順序,其順序按風(fēng)險(xiǎn)的高低降序 排列。二、確定備份方案,由丁現(xiàn)有系統(tǒng)會(huì)被加固,某些服務(wù)器通過虛擬化重復(fù)利用, 而在虛擬化前需要活除所有的數(shù)據(jù),因此需要對這些服務(wù)器進(jìn)行備份保證服務(wù)的 連續(xù)性。三、確定并準(zhǔn)備好遷移所需的工具,包括工具在遷移中必備的一系列功能和使用 工具所需具備的網(wǎng)絡(luò)環(huán)境。四、在實(shí)際遷移開始之前確定額外的測試環(huán)境, 該測試環(huán)境能夠引導(dǎo)測試從而確 保遷移成功。因此
6、,測試環(huán)境需明確設(shè)計(jì)的服務(wù)器和存儲(chǔ)數(shù)量。五、規(guī)劃網(wǎng)絡(luò)環(huán)境,由丁網(wǎng)絡(luò)中的服務(wù)器各處不同位置, 因此在遷移中需考慮到 網(wǎng)絡(luò)連接情況、數(shù)據(jù)備份方式,以及網(wǎng)絡(luò)流量來源,確定網(wǎng)絡(luò)流量是否會(huì)引發(fā)網(wǎng) 絡(luò)擁塞六、確定遷移周期以及參與人員,包括遷移起止時(shí)間,團(tuán)隊(duì)能力建設(shè)以及團(tuán)隊(duì)成 員的角色。測試計(jì)劃遷移計(jì)劃后,執(zhí)行小批量的測試遷移方案,這里會(huì)涉及到首批遷移的測試和審核, 步驟如下:準(zhǔn)備用丁測試遷移的測試系統(tǒng)環(huán)境,在測試時(shí),第一批服務(wù)器將會(huì)遷移到該系 統(tǒng)環(huán)境中。安裝并核實(shí)遷移工具,此時(shí)要執(zhí)行第一批服務(wù)器的P2V遷移。對第一批服務(wù)器,需分析存儲(chǔ)系統(tǒng),不管該服務(wù)器在存儲(chǔ)遷移中采用本地磁盤 存儲(chǔ)還是遠(yuǎn)端SAN/NAS存
7、儲(chǔ)系統(tǒng)。遷移測試在第一批服務(wù)器和服務(wù)的小批量測試遷移后,需對遷移后的服務(wù)器進(jìn)行測試,包括單元測試和性能測試。遷移實(shí)施在遷移實(shí)施過程中,所有的服務(wù)器都會(huì)被遷移到虛擬化系統(tǒng)下。執(zhí)行步驟如下:確保批量遷移的整個(gè)網(wǎng)絡(luò)環(huán)境已準(zhǔn)備完畢,并通過遷移工具完成源系統(tǒng)和目標(biāo) 系統(tǒng)之間的連通。此處的目標(biāo)系統(tǒng)屆丁中轉(zhuǎn)系統(tǒng)。對遷移系統(tǒng)進(jìn)行性能審核和健康檢查,如果系統(tǒng)狀態(tài)監(jiān)視則停用舊系統(tǒng)并將其 服務(wù)暫時(shí)轉(zhuǎn)移到新的虛擬化系統(tǒng)中。進(jìn)行利舊,對丁一部分可用的舊硬件可在服務(wù)器虛擬化中重新再利用,一些軟 件資源需擴(kuò)展,如內(nèi)存和硬盤。這些服務(wù)器構(gòu)成最終的虛擬化基礎(chǔ)設(shè)施, 即最終 系統(tǒng)。最后,在目標(biāo)系統(tǒng)和最終系統(tǒng)之間進(jìn)行 V2V遷移。
8、這樣,最終系統(tǒng)完成了現(xiàn)存 硬件的重復(fù)利用。a.服務(wù)器虛擬化前進(jìn)行備份為了對舊系統(tǒng)中的物理服務(wù)器進(jìn)行虛擬化, 需考慮服務(wù)器虛擬化帶來的影響。例 如,現(xiàn)有服務(wù)器的重復(fù)利用,服務(wù)器虛擬化時(shí)會(huì)對這些服務(wù)器的CPU,內(nèi)存以及硬盤資源進(jìn)行再利用,然而這些服務(wù)器上存在某些服務(wù)仍在運(yùn)行,若無備份則 會(huì)影響現(xiàn)有業(yè)務(wù)。因此,在執(zhí)行遷移和虛擬化之前,必須先對需利舊的服務(wù)器進(jìn) 行備份。遷移步驟如下圖所示。提供物理備份服務(wù)器,并已進(jìn)行虛擬化,數(shù)據(jù)和服務(wù)器已備份到虛擬化系統(tǒng)。首先,對丁要被遷移的服務(wù)器上,一般會(huì)存在多種服務(wù)正在運(yùn)行,而且這些服務(wù)器在遷移評估后認(rèn)為在虛擬化場景下可再利用的。但是,遷移過程中不允許存在較長的停
9、機(jī)時(shí)間,因此需要準(zhǔn)備一臺(tái)采用虛擬化平臺(tái)的備份虛擬機(jī),通過 P2V 將該服務(wù)器備份到虛擬機(jī)上。備份完所有需要進(jìn)行虛擬化的服務(wù)器之后,這些服務(wù)器上安裝虛擬化軟件進(jìn)行 虛擬化,根據(jù)評估階段確定的容量規(guī)劃,在虛擬化平臺(tái)上創(chuàng)建相應(yīng)規(guī)格的虛擬機(jī), 其計(jì)算資源用丁承接舊系統(tǒng)中的服務(wù)。準(zhǔn)備好所有的虛擬機(jī)后,規(guī)劃和安裝相關(guān)遷移工具,將備份系統(tǒng)中的服務(wù)遷移 到虛擬化系統(tǒng)的虛擬機(jī)中。虛擬機(jī)遷移是指將備份的虛擬化系統(tǒng)中的應(yīng)用服務(wù)遷 移到最終的虛擬化系統(tǒng)中。虛擬機(jī)遷移完畢后,要對這些服務(wù)進(jìn)行測試,最后停用舊系統(tǒng),所有服務(wù)切換 到虛擬化系統(tǒng)中。b.遷移的詳細(xì)操作步驟遷移的具體步驟及描述如下圖所示:在評估階段,虛擬化和遷移
10、之前需收集的信息如下:性能統(tǒng)計(jì):包括CPU使用率,內(nèi)存使用率,硬盤IOP拚日硬盤使用情況;物理服務(wù)器配置:包括CPU規(guī)格,內(nèi)存容量,硬盤容量統(tǒng)計(jì)物理服務(wù)器部署位置,分析是否支持虛擬化,累計(jì)支持虛擬化的服務(wù)器數(shù) 量,并規(guī)劃出虛擬化中需新增的硬件情況;通過上述無代理收集和代理收集兩種場景收集當(dāng)前系統(tǒng)的使用和配置情況??刹捎萌A為信息收集工具或者第三方工具。分析現(xiàn)有服務(wù)的依賴條件,對當(dāng)前系統(tǒng)進(jìn)行備份。上圖描述了一種應(yīng)用系統(tǒng)下的依賴關(guān)系, 可作為遷移參考,確定所有服務(wù)器的遷 移優(yōu)先級順序。在確定各服務(wù)的依賴條件后,對需進(jìn)行虛擬化的服務(wù)器進(jìn)行備份。 具體備份過程 參見本小節(jié)遷移實(shí)施方案中服務(wù)器虛擬化前進(jìn)行
11、備份”部分的內(nèi)容。容量規(guī)劃和虛擬化執(zhí)行根據(jù)當(dāng)前的資源使用和需求情況,計(jì)算虛擬化所需的容量。規(guī)劃應(yīng)用服務(wù)在華為虛擬化解決方案中,同類虛擬機(jī)部署在同一個(gè)計(jì)算資源池中, 在同一個(gè)池 中可相互共享存儲(chǔ)/計(jì)算資源,一個(gè)集群的故障不會(huì)影響其他資源池。虛擬化規(guī)劃和虛擬機(jī)分配建立虛擬化平臺(tái)后,要準(zhǔn)備最終的遷移資源。遷移前,如果服務(wù)器a具備雙核CPU和2G內(nèi)存,那么在虛擬化平臺(tái)中就創(chuàng)建一個(gè) 2核/2G內(nèi)存的虛擬機(jī),并 分配相應(yīng)的硬盤。規(guī)劃遷移工具采用遷移工具從物理或虛擬的服務(wù)器向最終的虛擬化系統(tǒng)中進(jìn)行磁盤復(fù)制。通過工具執(zhí)行在線遷移準(zhǔn)備好源系統(tǒng),目標(biāo)虛擬機(jī)以及目標(biāo)系統(tǒng)后,決定遷移時(shí)需使用的遷移工具和遷 移策略。遷
12、移測試遷移后,需進(jìn)行測試來驗(yàn)證遷移是否成功,測試場景如下:應(yīng)用服務(wù)遷移后對虛擬化基本功能的監(jiān)測;遷移前后應(yīng)用服務(wù)的特性功能是否幾乎相同;虛擬化系統(tǒng)的性能監(jiān)控;停用舊系統(tǒng)截至目前現(xiàn)有的服務(wù)器已經(jīng)被虛擬化和重復(fù)使用, 其他一些不支持虛擬化的服務(wù) 器上對應(yīng)的服務(wù)也已經(jīng)遷移到虛擬化平臺(tái),那么現(xiàn)在可將應(yīng)用服務(wù)切換到虛擬系 統(tǒng)并停用舊系統(tǒng),其步驟如下:三、應(yīng)用系統(tǒng)數(shù)據(jù)庫遷移方案應(yīng)用服務(wù)器遷移到群集環(huán)境為滿足企業(yè)不斷的成長需求,實(shí)現(xiàn)企業(yè)服務(wù)器的高可伸縮性、 高可用、高可靠性 和高性能,提升服務(wù)器的SLA , Microsoft到目前為止,提出了五種解決方案:我們對丁 IIS等應(yīng)用環(huán)境以及.net應(yīng)用程序框架
13、我們提出構(gòu)建IIS環(huán)境的NLB群 集,將當(dāng)前系統(tǒng)不停機(jī)加入到 NLB群集中,使之成為群集中的一個(gè)節(jié)點(diǎn),而新 環(huán)境則為另外一個(gè)節(jié)點(diǎn)。實(shí)施完成后再退出此遷移群集,將新環(huán)境加入到新的構(gòu) 建的NLB群集。微軟的網(wǎng)絡(luò)負(fù)載平衡可以提供最多 32臺(tái)主機(jī)的負(fù)載平衡,當(dāng)我們的 Web站點(diǎn) 需要分擔(dān)更多用戶訪問請求的時(shí)候,負(fù)載均衡無疑是值得考慮的一個(gè)解決方案。當(dāng)然NLB也有相應(yīng)的限制,像廣域網(wǎng)環(huán)境中,我們就不能使用NLB進(jìn)行設(shè)置,因?yàn)槠渚W(wǎng)絡(luò)不允許使用同一個(gè) MAC地址,也就違反了 NLB的基本要求。在安全方面,除了我們進(jìn)行的端口規(guī)則設(shè)定,Windows 2003 Server本身基丁TCP/IP堆棧的集成是動(dòng)態(tài)的
14、,不用進(jìn)行任何人工干預(yù),這種設(shè)置有效的防止了 DOS攻擊等惡意攻擊。除此之外,企業(yè)結(jié)合自身的網(wǎng)絡(luò)安全,確保 NLB站點(diǎn)的 高效運(yùn)作。NLB不但能實(shí)現(xiàn)均衡負(fù)載,而且還能實(shí)現(xiàn)多種形式的冗余。NLB主要用丁那些文件改動(dòng)不大,并且不常駐內(nèi)存的環(huán)境,比如 WEB服務(wù)、FTP服務(wù)、和VPN 服務(wù)等。NLB不適合用丁數(shù)據(jù)庫、郵件等服務(wù),因?yàn)椴荒鼙WC每個(gè)節(jié)點(diǎn)的數(shù)據(jù) 是一樣的。當(dāng)用戶訪問集群的時(shí)候,集群能將訪問請求分?jǐn)偟郊褐械拿總€(gè)服務(wù)器上,以達(dá)到均衡負(fù)載的效果。這些服務(wù)器被稱為集群節(jié)點(diǎn)。在負(fù)載平衡中,每個(gè)節(jié)點(diǎn)的文 件一般都要求是一樣的。這樣每個(gè)節(jié)點(diǎn)返回給客戶的結(jié)果都是一致的。一般來說 組建一個(gè)NLB要求至少兩
15、個(gè)節(jié)點(diǎn),其中一個(gè)節(jié)點(diǎn)不能使用,這全部負(fù)載將落入 到剩下的那個(gè)節(jié)點(diǎn)上,即全載。 Windows server 2003 最多支持32個(gè)節(jié)點(diǎn)。節(jié) 點(diǎn)越多,可用性,可靠性就越高。NLB能提供三種冗余功能,軟件冗余、硬件冗余、站點(diǎn)冗余?;?NLB集群的Web網(wǎng)站數(shù)據(jù)庫設(shè)計(jì)MSCS ,提供后端服務(wù)與應(yīng)用程序的容錯(cuò)移轉(zhuǎn),可提升系統(tǒng)的可用性。常見 的應(yīng)用有 SQL Server 與 Exchange Server 等。MSCS是由客戶端來決定由誰來處理服務(wù)請求,所有服務(wù)器共享一個(gè)共享存 儲(chǔ)器來儲(chǔ)存會(huì)話狀態(tài)。當(dāng)主動(dòng)服務(wù)器掛了,則繼續(xù)由被動(dòng)服務(wù)器接手。被動(dòng)服務(wù) 器會(huì)從共享存儲(chǔ)器取出會(huì)話狀態(tài),繼續(xù)未完成的工作,
16、以達(dá)到容錯(cuò)移轉(zhuǎn)的目的。數(shù)據(jù)庫是數(shù)據(jù)管理最有效的手段,要使用它來高效地管理和存取各種數(shù)據(jù)資 源,必須設(shè)計(jì)出結(jié)構(gòu)合理、功能完善的數(shù)據(jù)庫。數(shù)據(jù)庫設(shè)計(jì)時(shí)一項(xiàng)復(fù)雜的工作, 它是一項(xiàng)涉及多學(xué)科的綜合技術(shù),要求數(shù)據(jù)庫管理員既要懂得數(shù)據(jù)庫知識(shí), 乂要 充分了解應(yīng)用領(lǐng)域的專業(yè)知識(shí)。在進(jìn)行數(shù)據(jù)庫設(shè)計(jì)時(shí),要根據(jù)企業(yè)組織中各類用戶的信息要求和處理需求來 對數(shù)據(jù)庫進(jìn)行設(shè)計(jì)。數(shù)據(jù)庫設(shè)計(jì)的主要內(nèi)容包過機(jī)構(gòu)性設(shè)計(jì)和行為特性設(shè)計(jì),設(shè)計(jì)的過程主要包括需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)四個(gè)階段。需求分析需求分析就是對現(xiàn)實(shí)世界要處理的對象進(jìn)行詳細(xì)調(diào)查,在了解原系統(tǒng)的概況、 確定新系統(tǒng)功能的過程中,獲得用戶對數(shù)據(jù)庫的數(shù)據(jù)要求、功能
17、要求、安全要求 和完整性要求。概念設(shè)計(jì)概念設(shè)計(jì)時(shí)將需求說明中關(guān)丁數(shù)據(jù)的要求,綜合為一個(gè)統(tǒng)一的概念模型。概 念模型是表達(dá)概念模型設(shè)計(jì)結(jié)果的工具,是設(shè)計(jì)人員對系統(tǒng)的抽象的概括,它能表達(dá)用戶的需求,且獨(dú)立丁支持?jǐn)?shù)據(jù)庫的數(shù)據(jù)庫的管理系統(tǒng)和硬件系統(tǒng)。邏輯設(shè)計(jì)概念設(shè)計(jì)的結(jié)果是得到一個(gè)與數(shù)據(jù)庫的管理系統(tǒng)無關(guān)的概念模型,而邏輯設(shè)計(jì)的目的是吧概念設(shè)計(jì)的概念模型,轉(zhuǎn)換成與選用的具體機(jī)器上的DBMS所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。物理設(shè)計(jì)物理設(shè)計(jì)的任務(wù)是確實(shí)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu),主要包括確定數(shù)據(jù)庫文件和索引 文件的記錄格式和物理結(jié)構(gòu),懸著存取方法,決定訪問路徑和外存儲(chǔ)器的分配策 略,實(shí)現(xiàn)完整性和安全性以及程序設(shè)計(jì)等。
18、對丁一個(gè)比較大的網(wǎng)站來說,數(shù)據(jù)庫集群也應(yīng)該是以集群的方式建立, 這樣可以 增強(qiáng)網(wǎng)站的性能,提高網(wǎng)站的可靠性。數(shù)據(jù)庫可分為三類:故障切換集群、分布 式數(shù)據(jù)庫系統(tǒng)、共享磁盤系統(tǒng)。NLB集群系統(tǒng)的總體設(shè)計(jì)環(huán)境下實(shí)現(xiàn) Windows 2003服務(wù)器集群;在域內(nèi)環(huán)境內(nèi)的 windows2003 web server 群集;利用IIS搭建了一個(gè)WEB站點(diǎn),域名為。由丁業(yè)務(wù)的逐漸增加, 網(wǎng)站速度也越來越慢,而且經(jīng)常出現(xiàn)故障,為公司的利益帶來了很多的不便; 公 司決定使用兩臺(tái) WEB站點(diǎn)為客戶機(jī)提供訪問。因此采用了網(wǎng)絡(luò)負(fù)載均衡技術(shù)。NLB集群工作原理及算法NLB的工作原理當(dāng)客戶向NLB群集(NLB的虛擬IP地
19、址)發(fā)起請求時(shí),其實(shí)客戶的請求數(shù) 據(jù)包是發(fā)送到所有的NLB節(jié)點(diǎn),然后運(yùn)行在NLB節(jié)點(diǎn)上的NLB服務(wù)根據(jù)同樣 的NLB算法來確定是否應(yīng)該由自己進(jìn)行處理,如果不是則丟棄客戶的請求數(shù)據(jù) 包,如果是則進(jìn)行處理。 如何將請求數(shù)據(jù)包發(fā)送到所有的 NLB節(jié)點(diǎn)是NLB運(yùn) 行的關(guān)鍵之處,單播和多播這兩種操作模式就是用丁實(shí)現(xiàn)這一需求。NLB不支持單個(gè)NLB群集中的單播/多播的混合環(huán)境;在每一個(gè)NLB群集中,該群集中 的所有節(jié)點(diǎn)都必須配置為多播或單播,否則,此 NLB群集將無法正常工作。負(fù)載平衡算法一個(gè)負(fù)載平衡算法都包含以下三個(gè)組成部分:策略:制定任務(wù)放置策略的制定者使用的負(fù)載和任務(wù)量,以及分配的方式。傳送策略:基
20、丁任務(wù)和計(jì)算機(jī)負(fù)載,判定是否要把一個(gè)任務(wù)傳送到其它計(jì)算機(jī)上處 理。放置策略:對丁適合傳送到其它計(jì)算機(jī)處理的任務(wù),選擇任務(wù)將被傳送的 目的計(jì)算機(jī)。負(fù)載平衡的上述三個(gè)部分之間是以不同的方式相互作用的。放置策略利用策 略提供的負(fù)載,僅當(dāng)任務(wù)被傳送策略判定為適丁傳送之后才行動(dòng)??傊?,負(fù)載平衡的目標(biāo)是:提供最短的平均任務(wù)響應(yīng)時(shí)間;能適丁變化的負(fù) 載;是可靠的負(fù)載平衡機(jī)制。策略人們用來描述負(fù)載采用的參數(shù)有:運(yùn)行隊(duì)列中的任務(wù)數(shù)、系統(tǒng)調(diào)用的速率、CPU上下文切換率、空閑CPU時(shí)間 白分比、空閑存儲(chǔ)器的大?。↘字節(jié))、1分鐘內(nèi)的平均負(fù)載。對丁這些單個(gè)的負(fù)載描述參數(shù),第(1)個(gè),即采用運(yùn)行隊(duì)列中的任務(wù)數(shù)作為 描述
21、負(fù)載的參數(shù)被證實(shí)是最有效的, 即它的平均任務(wù)響應(yīng)時(shí)間最短,并且已經(jīng)得 到廣泛應(yīng)用。但是,假如為了使系統(tǒng)更全面而采集了更多的參數(shù),則往往由丁增加了額外開銷,卻得不到所希望的性能改善。例如,采用將六個(gè)參數(shù)中的某兩個(gè) 進(jìn)行AND或OR組合,得到的平均響應(yīng)時(shí)間反而比單個(gè)參數(shù)的平均響應(yīng)時(shí)間還 要差一些。(2)傳送策略為了簡單起見,在選用傳送策略時(shí),多選用閥值策略。例如,Eager等人的方法是:在判定是否要在本地處理一個(gè)任務(wù)時(shí), 無需交換計(jì)算機(jī)之間的狀態(tài),一旦 服務(wù)隊(duì)列或等待服務(wù)隊(duì)列的長度大丁閥值時(shí),就傳送這個(gè)任務(wù),而且傳送的是剛剛接收的任務(wù)。而進(jìn)程遷移能夠遷移正在執(zhí)行的任務(wù),是對這種只能傳送剛剛接 收的
22、任務(wù)的一種改進(jìn)。在模擬研究七個(gè)負(fù)載平衡算法時(shí),其傳送策略都采用閥值策略。它的閥值策 略基丁兩個(gè)閥值:計(jì)算機(jī)的負(fù)載閥值 Load和任務(wù)執(zhí)行時(shí)間閥值TCPU。假如計(jì) 算機(jī)的負(fù)載超過Load并且任務(wù)的執(zhí)行時(shí)間超過TCPU時(shí),就把此任務(wù)傳送到其 它計(jì)算機(jī)執(zhí)行。(3)放置策略經(jīng)過總結(jié),共有以下四種放置策略集中策略。每隔P秒,其中一個(gè)計(jì)算機(jī)被指定為負(fù)載中心(LIC),接受 所有其它負(fù)載的變更值,并把它們匯集到一個(gè)”負(fù)載向量”中,然后把負(fù)載向量廣 播給所有其它的計(jì)算機(jī)。當(dāng)一臺(tái)計(jì)算機(jī)認(rèn)為一個(gè)任務(wù)適丁傳送到其它計(jì)算機(jī)上執(zhí) 行時(shí),它就給LIC發(fā)送一個(gè)請求,并告知當(dāng)前負(fù)載的值。LIC選一臺(tái)具有最短運(yùn)行隊(duì)列長度的計(jì)算
23、機(jī),并且通知任務(wù)所在的計(jì)算機(jī)把任務(wù)發(fā)送給它,同時(shí),它把目的主機(jī)負(fù)載值增加1。閥值策略。隨機(jī)選擇一臺(tái)計(jì)算機(jī),判定若把任務(wù)傳送到那臺(tái)計(jì)算機(jī)后,那臺(tái)計(jì)算機(jī)的任務(wù)隊(duì)列長度是否會(huì)超過閥值。 假如不超過閥值,就傳送此任務(wù);否 則,隨機(jī)選擇另一臺(tái)計(jì)算機(jī),并以同樣方式判定,繼續(xù)這樣做直到找到一臺(tái)合適 的目的計(jì)算機(jī),或探測次數(shù)超過一個(gè)靜態(tài)值限制 LP,當(dāng)任務(wù)真正到達(dá)計(jì)算機(jī)以 后,不管狀態(tài)如何,必須處理該任務(wù)。最短任務(wù)隊(duì)歹0策略。隨機(jī)選擇LP臺(tái)不同的計(jì)算機(jī),察看每臺(tái)計(jì)算機(jī)的任務(wù) 隊(duì)列長度,任務(wù)被傳送到具有最短任務(wù)隊(duì)列長度的計(jì)算機(jī)。當(dāng)任務(wù)真正到達(dá)計(jì)算 機(jī),無論狀態(tài)如何,目的計(jì)算機(jī)必須處理該任務(wù)。對此策略的一個(gè)簡單改
24、進(jìn)時(shí), 無論何時(shí),碰到一臺(tái)隊(duì)列長度為0的計(jì)算機(jī)時(shí),不再繼續(xù)探測,因?yàn)榭梢源_定此 計(jì)算機(jī)是一臺(tái)可以接受的目的計(jì)算機(jī)。保留策略。當(dāng)一個(gè)任務(wù)從一臺(tái)計(jì)算機(jī)離開時(shí),該計(jì)算機(jī)檢查本地負(fù)載,假如負(fù)載小丁閥值T1,就探測其它計(jì)算機(jī),并在 R個(gè)負(fù)載大丁 T1的計(jì)算機(jī)中登 記該計(jì)算機(jī)的名字,并把登記的內(nèi)容保留到一個(gè)棧中。當(dāng)一個(gè)任務(wù)到達(dá)一臺(tái)超載 的計(jì)算機(jī)時(shí),就把這個(gè)任務(wù)傳送到此臺(tái)計(jì)算機(jī)棧頂?shù)挠?jì)算機(jī)上。假如一個(gè)計(jì)算機(jī) 的負(fù)載低丁 T1,就活空棧里保留的所有計(jì)算機(jī)名。從論文中,比較了和兩種策略,結(jié)論是:以簡單(計(jì)算不昂貴)的方式, 利用少量狀態(tài),第中方法往往獲得比第種方法更好的效果。第中方法比較復(fù)雜,它必須用性能的改善
25、來補(bǔ)償額外花費(fèi),所以取得的效果會(huì)稍差一些。4.3地址分配在NLB群集中,每臺(tái)服務(wù)器都會(huì)有一個(gè)屆丁自己的靜態(tài) IP地址,同時(shí)NLB群 集中的所有服務(wù)器還有一個(gè)共同的IP地址一NLB群集地址;當(dāng)客戶向NLB群集(NLB的虛擬IP地址)發(fā)起請求時(shí),其實(shí)客戶的請求數(shù)據(jù)包 是發(fā)送到所有的NLB節(jié)點(diǎn),即:NLB算法需要NLB群集中的所有主機(jī)都能看到 發(fā)往群集的每一個(gè)數(shù)據(jù)包。然后運(yùn)行在NLB節(jié)點(diǎn)上的NLB服務(wù)根據(jù)同樣的NLB 算法來確定是否應(yīng)該由自己進(jìn)行處理, 如果不是則丟棄客戶的請求數(shù)據(jù)包, 如果 是則進(jìn)行處理。網(wǎng)絡(luò)負(fù)載平衡使得單個(gè)子網(wǎng)上的所有群集主機(jī)可以同時(shí)檢測群集IP地址的傳入網(wǎng)絡(luò)通信。在每個(gè)群集主機(jī)
26、上,網(wǎng)絡(luò)負(fù)載平衡驅(qū)動(dòng)程序充當(dāng)群集適配器驅(qū)動(dòng)程序 和TCP/IP堆棧間的過濾器,以便在主機(jī)問分配通信。在配置負(fù)載均衡的時(shí)候步驟主要有三個(gè)啟用網(wǎng)絡(luò)負(fù)載平衡;連接到現(xiàn)存的群集;添加主機(jī)到群集。啟用網(wǎng)絡(luò)負(fù)載平衡:在開始運(yùn)行中輸入nlbmgr,單擊 確定”按鈕,打開網(wǎng) 絡(luò)負(fù)載平衡管理器”窗口。如圖所示網(wǎng)絡(luò)負(fù)載均衡管理器右擊網(wǎng)絡(luò)負(fù)載均衡群集”,然后單擊 新建群集”命令,然后在彈出如圖5-2的 對話框中的IP地址和其他群集信息,選擇群集操作模式為多播”,然后單擊 下一步”按鈕。在這里添加的IP地址是和DC所在在同一個(gè)網(wǎng)段的,在這里使用一 個(gè)多播的原因是在客戶端是同時(shí)能收到信息。在 群集IP地址”的對話框中可
27、以添加IP地址,如果有多個(gè)群集的IP地址也可 以來添加多個(gè)IP地址,如圖5-3是添加的端口的IP地址,在本次實(shí)驗(yàn)中只有一 個(gè)網(wǎng)絡(luò)群集的IP地址所以在下面選擇自動(dòng)添加而不是選擇所有的端口,而在解 析的時(shí)候是通過DNS服務(wù)器解析而沒有使用其他的協(xié)議因此所采用 TCP協(xié)議 的端口 HTTP80 ;所以在這里選擇80即可。在完成上面群集IP地址的規(guī)劃之后,會(huì)出現(xiàn)如圖 5-4所示的端口規(guī)則:端口 規(guī)則是可以按照群集中每一個(gè)成員的負(fù)載量來分派客戶端的通信。當(dāng)然在下面如圖所示的界面中也可以來刪除端口規(guī)則。刪除端口規(guī)則也可以更加明顯的看出群 集的效果,刪除端口規(guī)則可以按照端口的優(yōu)先級來響應(yīng)客戶機(jī)請求,假設(shè)當(dāng)優(yōu)
28、先級高的出現(xiàn)故障那么優(yōu)先級低的主機(jī)會(huì)提供服務(wù)。當(dāng)然對丁客戶機(jī)來說是感覺不到那個(gè)到底出現(xiàn)故障。完成上面的步驟在 連接”的對話框中來輸入和服務(wù)器相連的IP地址;及 ,點(diǎn)擊連接”就會(huì)彈出如圖5-5所示的對話框。然后在下面的接口 中選擇服務(wù)器的網(wǎng)絡(luò)適配器(IP地址)。完成上面的步驟基本在 DC上的配置就完成了,在這里所采用系統(tǒng)默認(rèn)的自動(dòng)狀態(tài),單擊完成即可。但是要明白在配置優(yōu)先級的時(shí)候最多可以配置32位,因?yàn)镹LB網(wǎng)絡(luò)負(fù)載均衡做多支持32臺(tái)主機(jī)。默認(rèn)情況下他的初始狀態(tài)是 巴啟動(dòng)”, 設(shè)置更高的優(yōu)先級的原因是當(dāng)把端口規(guī)則”刪除的并且當(dāng)其中的一臺(tái)的出現(xiàn)故障的時(shí)候,優(yōu)先級就會(huì)在這時(shí)候起到作用。如圖5-6所示,
29、把第一臺(tái)主機(jī)的優(yōu)先級設(shè)為1。啟動(dòng)網(wǎng)絡(luò)負(fù)載平衡后,在下圖中5-7所示:在群集 中已經(jīng) 有了一臺(tái)主機(jī)。根據(jù)實(shí)驗(yàn)的需求還需要添加一臺(tái)主機(jī)到群集: 如果在第二臺(tái)上添 加的時(shí)候首先會(huì)連接到 現(xiàn)存的群集”。把第二臺(tái)主機(jī)連接到現(xiàn)存的群集,在這里連接時(shí)候是在第二個(gè)服務(wù)器上面添加。在第二臺(tái)服務(wù)器上(IP地址為 )的開始一一運(yùn)行中輸入“nlbmgr”單擊確定單開 網(wǎng)絡(luò)負(fù)載均衡管理器”窗口,右擊 網(wǎng)絡(luò)負(fù)載均衡平衡群集”,然后 選擇連接到現(xiàn)存的”命令。在彈出的的對話框中輸入第一臺(tái)計(jì)算機(jī)的IP地址“單缶 連接”然后完成就可了!添加主機(jī)到群集;在使用 網(wǎng)絡(luò)負(fù)載平衡管理器,“右擊“。 在彈出的對話框中選擇 添加主機(jī)到群集”
30、,添加主機(jī)的真正原因就是達(dá)到網(wǎng)絡(luò)負(fù) 載平衡的原因,如圖5-9所示:在完成上面的配置后,在下面圖的界面中添加將要成為群集成員的IP地址(或 者主機(jī)的名稱)單擊連接按鈕,將在底部的對話框中會(huì)彈出可以用的網(wǎng)絡(luò)適配器。 選擇要用網(wǎng)絡(luò)負(fù)載平衡的網(wǎng)絡(luò)適配器,即可完成。在保持主機(jī)參數(shù)為默認(rèn)狀態(tài),注意優(yōu)先級是“2S是默認(rèn)的:一切按照默認(rèn)的即可。添加主機(jī)到群集后,在群集 中會(huì)有兩臺(tái)服務(wù)器,最多可 以有32臺(tái)主機(jī)。在圖5-12中可以知道兩臺(tái)主機(jī)的IP地址是和 ;這樣就完成了網(wǎng)絡(luò)負(fù)載均衡的配置了。網(wǎng)絡(luò)負(fù)載均衡的最佳操作正確保護(hù)網(wǎng)絡(luò)負(fù)載平衡主機(jī)和經(jīng)過負(fù)載平衡的應(yīng)用程序;在每一個(gè)群集主機(jī)上至少配置兩個(gè)網(wǎng)絡(luò)適配器,但是并
31、非必要;在群集適配器上只使用TCP/IP協(xié)議;保證群集中的所有主機(jī)屆丁同一個(gè)子網(wǎng)并且客戶機(jī)能夠訪問該子網(wǎng);使用網(wǎng)絡(luò)負(fù)載均衡管理器配置NLB群集;不要啟用網(wǎng)絡(luò)負(fù)載平衡遠(yuǎn)程訪問控制;啟用日志記錄;獨(dú)立使用NLB群集和服務(wù)器群集。數(shù)據(jù)庫遷移實(shí)施一、實(shí)施概述在做SQL Server數(shù)據(jù)庫維護(hù)的時(shí)候,當(dāng)上司要求我們把幾十G的數(shù)據(jù)文件搬動(dòng) 到其它服務(wù)器,并且要求最小宕機(jī)時(shí)間的時(shí)候,我們有沒什么方案可以做到這些 要求呢?在這里我們假設(shè)這兩臺(tái)機(jī)器并不是在一個(gè)機(jī)房上,這樣看起來我們的解決方案才 更有意義,如果你那么好運(yùn)這兩臺(tái)機(jī)器在同一個(gè)局域網(wǎng),那么恭喜你,你可以多很多的方案可以做到。二、分析與設(shè)計(jì)思路其實(shí)我們假
32、設(shè)的環(huán)境有兩個(gè)特點(diǎn):第一個(gè)是數(shù)據(jù)庫文件比較大;第二個(gè)就是我們 的傳送文件的速度可能會(huì)比較慢。 也許這傳送速度我們是沒有辦法了,但是我們 可以就從文件的大小這個(gè)問題出發(fā),結(jié)合 SQL Server的特性,這樣就有了下面 的解決方案了。為了使宕機(jī)時(shí)間最短,我們這里使用了完整備份和差異備份來遷移數(shù)據(jù)庫,在白天的時(shí)候?qū)π枰w移的數(shù)據(jù)庫進(jìn)行一次完整備份(XXX_full.bak ),并把備份文 件拷貝(這里可以使用FTP軟件進(jìn)行斷點(diǎn)續(xù)傳)到目標(biāo)服務(wù)器進(jìn)行還原,等到 下班時(shí)間之后再進(jìn)行一次差異備份(XXX_diff.bak ),再把這個(gè)差異備份拷貝到 目標(biāo)服務(wù)器,在完整還原的基礎(chǔ)上再進(jìn)行差異還原。這里的宕
33、機(jī)時(shí)間=差異備份時(shí)間+傳送差異備份文件時(shí)間+還原差異備份文件 時(shí)間,這宕機(jī)時(shí)間是不是讓你感覺這時(shí)間很短呢?三、參考腳本注意修改下面腳本中數(shù)據(jù)庫的名稱,還有絕對路徑。-1:完整備份declare dbname varchar(100)declare sql nvarchar(max)set dbname = DataBaseNameset sql =-+dbname+_fullBACKUP DATABASE +dbname+TO DISK = ”D:DBBackup+dbname+_full.bak”WITH NOFORMAT, NOINIT, NAME = +dbname+-完整數(shù)據(jù)庫備份,S
34、KIP, NOREWIND, NOUNLOAD, STATS = 10GOprint sql-生成的SQL -DataBaseName_full服務(wù)器和應(yīng)用系統(tǒng)遷移方案服務(wù)器和應(yīng)用系統(tǒng)遷移方案print sqlBACKUP DATABASE DataBaseNameTO DISK = D:DBBackupDataBaseName_full.bakWITH NOFORMAT, NOINIT, NAME = DataBaseName-完整數(shù)據(jù)庫備份SKIP, NOREWIND, NOUNLOAD, STATS = 10GO-2:完整備份還原declare dbname varchar(100)de
35、clare sql nvarchar(max)set dbname = DataBaseNameset sql =-RESTORE +dbname+_fullRESTORE DATABASE +dbname+FROM DISK = D:DBBackup+dbname+_full.bak WITH FILE = 1,MOVE NDataBase_Name TO ND:DataBase+dbname+.mdf,MOVE NDataBase_Name_log TO ND:DataBase+dbname+_log.ldf,NORECOVERY, NOUNLOAD, REPLACE, STATS = 1
36、0GO-生成的SQL-RESTORE DataBaseName_fullRESTORE DATABASE DataBaseNameFROM DISK = D:DBBackupDataBaseName_full.bak WITH FILE = 1,MOVE NDataBase_Name TO ND:DataBaseDataBaseName.mdf,MOVE NDataBase_Name_log TO ND:DataBaseDataBaseName_log.ldf,NORECOVERY, NOUNLOAD, REPLACE, STATS = 10GO-3:差異備份declare dbname va
37、rchar(100)declare sql nvarchar(max)set dbname = DataBaseNameset sql =-+dbname+_diffBACKUP DATABASE +dbname+TO DISK = N”D:DBBackup+dbname+_diff.bak”WITH DIFFERENTIAL , NOFORMAT, NOINIT, NAME = N+dbname+-異數(shù)據(jù)庫備份,SKIP, NOREWIND, NOUNLOAD, STATS = 10GO print sql-生成的SQL -DataBaseNamediffBACKUP DATABASE Da
38、taBaseNameTO DISK = ND:DBBackupDataBaseName_diff.bakWITH DIFFERENTIAL , NOFORMAT, NOINIT, NAME = NDataBaseName-異數(shù)據(jù)庫備份,SKIP, NOREWIND, NOUNLOAD, STATS = 10GO-4:差異備份還原 declare dbname varchar(100) declare sql nvarchar(max) set dbname = DataBaseNameset sql =-RESTORE +dbname+_fullRESTORE DATABASE +dbname
39、+FROM DISK = D:DBBackup+dbname+_diff.bak WITH FILE = 1,NOUNLOAD, STATS = 10GOprint sql-生成的SQL-RESTORE DataBaseName_fullRESTORE DATABASE DataBaseNameFROM DISK = D:DBBackupDataBaseName_diff.bak WITH FILE = 1,NOUNLOAD, STATS = 10GO四、后記 以測試的700G的數(shù)據(jù)文件,我是通過數(shù)據(jù)庫的作業(yè)進(jìn)行愚公移山的, 搬數(shù)據(jù)到 新的服務(wù)器上的,這樣的好處就是對之前的數(shù)據(jù)庫進(jìn)行優(yōu)化, 比
40、如進(jìn)行數(shù)據(jù)庫參 數(shù)的設(shè)置,比如表分區(qū),在對之前數(shù)據(jù)庫影響盡量小的情況進(jìn)行數(shù)據(jù)搬遷。四、遷移重難點(diǎn)分析及措施如何保證數(shù)據(jù)遷移過程中的安全性和操作可審計(jì)性?回答:數(shù)據(jù)遷移中的安全性不可忽略,我們基丁多重?cái)?shù)據(jù)審計(jì)功能實(shí)現(xiàn)遷移安全 性和操作審計(jì)性。若要將登錄和密碼從服務(wù)器 A上的SQL Server實(shí)例傳輸?shù)椒?wù)器B上的SQL Server實(shí)例,請執(zhí)行以下步驟:1在服務(wù)器A上,啟動(dòng) SQL Server Management Studio ,然后連接到要從中移動(dòng)數(shù)據(jù)庫的 SQL Server實(shí)例。2打開新的查詢編輯器窗口,然后運(yùn)行以下腳本。USE masterGOIF OBJECT_ID (sp_he
41、xadecimal) IS NOT NULLDROP PROCEDURE sp_hexadecimalGOCREATE PROCEDURE sp_hexadecimalbinvalue varbinary(256),hexvalue varchar (514) OUTPUTASDECLARE charvalue varchar (514)DECLARE i intDECLARE length intDECLARE hexstring char(16)SELECT charvalue = 0 xSELECT i = 1SELECT length = DATALENGTH (binvalue)SE
42、LECT hexstring = 0123456789ABCDEFWHILE (i = length)BEGINDECLARE tempint intDECLARE firstint intDECLARE secondint intSELECT tempint = CONVERT(int, SUBSTRING(binvalue,i,1)SELECT firstint = FLOOR(tempint/16)SELECT secondint = tempint - (firstint*16)SELECT charvalue = charvalue +SUBSTRING(hexstring, fir
43、stint+1, 1) +SUBSTRING(hexstring, secondint+1, 1)SELECT i = i + 1ENDSELECT hexvalue = charvalueGOIF OBJECT_ID (sp_help_revlogin) IS NOT NULLDROP PROCEDURE sp_help_revloginGOCREATE PROCEDURE sp_help_revlogin login_name sysname = NULL ASDECLARE name sysnameDECLARE type varchar (1)DECLARE hasaccess int
44、DECLARE denylogin intDECLARE is_disabled intDECLARE PWD_varbinary varbinary (256)DECLARE PWD_string varchar (514)DECLARE SID_varbinary varbinary (85)服務(wù)器和應(yīng)用系統(tǒng)遷移方案服務(wù)器和應(yīng)用系統(tǒng)遷移方案login_nameDECLARE SID_string varchar (514)DECLARE tmpstr varchar (1024)DECLARE is_policy_checked varchar (3)DECLARE is_expirati
45、on_checked varchar (3)DECLARE defaultdb sysnameIF (login_name IS NULL)DECLARE login_curs CURSOR FORSELECT p.sid, , p.type, p.is_disabled, p.default_database_name, l .hasaccess, l.denylogin FROMsys.server_principals p LEFT JOIN sys.syslogins lON ( = ) WHERE p.type IN ( S, G, U ) AND saELSEDECLARE log
46、in_curs CURSOR FORSELECT p.sid, , p.type, p.is_disabled, p.default_database_name, l .hasaccess, l.denylogin FROMsys.server_principals p LEFT JOIN sys.syslogins lON ( = ) WHERE p.type IN ( S, G, U) AND = OPEN login_cursFETCH NEXT FROM login_curs INTO SID_varbinary, name, type, is _disabled, defaultdb
47、, hasaccess, denyloginIF (fetch_status = -1)BEGINPRINT No login(s) found.CLOSE login_cursDEALLOCATE login_cursRETURN -1ENDSET tmpstr = /* sp_help_revlogin script PRINT tmpstrSET tmpstr = * Generated + CONVERT (varchar, GETDATE() + on + SERVERNAME + */PRINT tmpstrPRINT WHILE (fetch_status -1)BEGINIF
48、(fetch_status -2)BEGINPRINT SET tmpstr = - Login: + namePRINT tmpstrIF (type IN (G, U)BEGIN - NT authenticated account/groupSET tmpstr = CREATE LOGIN + QUOTENAME( name ) + FROM WINDOWS WITH DEFAULT_DATABASE = + defaultdb + ENDELSE BEGIN - SQL Server authentication-obtain password and sidSET PWD_varb
49、inary = CAST( LOGINPROPERTY( name, Passw ordHash ) AS varbinary (256)EXEC sp_hexadecimal PWD_varbinary, PWD_string OUTEXEC sp_hexadecimal SID_varbinary,SID_string OUT-obtain password policy stateSELECT is_policy_checked = CASE is_policy_checked WHEN 1 THE N ON WHEN 0 THEN OFF ELSE NULL END FROM sys.
50、sql_logins WHERE name = nameSELECT is_expiration_checked = CASE is_expiration_checked WHE N 1 THEN ON WHEN 0 THEN OFF ELSE NULL END FROM sys.sql_logins WHERE name = nameSET tmpstr = CREATE LOGIN + QUOTENAME( name ) + WIT H PASSWORD = + PWD_string + HASHED, SID = + SID_string + , D EFAULT_DATABASE =
51、+ defaultdb + IF ( is_policy_checked IS NOT NULL )BEGINSET tmpstr = tmpstr + , CHECK_POLICY = + is_policy_checke dENDIF ( is_expiration_checked IS NOT NULL )BEGINSET tmpstr = tmpstr + , CHECK_EXPIRATION = + is_expiratio n_checkedENDENDIF (denylogin = 1)BEGIN - login is denied accessSET tmpstr = tmps
52、tr + ; DENY CONNECT SQL TO + QUOTENAME (name )ENDELSE IF (hasaccess = 0)BEGIN - login exists but does not have accessSET tmpstr = tmpstr + ; REVOKE CONNECT SQL TO + QUOTENA ME( name )ENDIF (is_disabled = 1)BEGIN - login is disabledSET tmpstr = tmpstr + ; ALTER LOGIN + QUOTENAME( name ) + DISABLEENDP
53、RINT tmpstrENDFETCH NEXT FROM login_curs INTO SID_varbinary, name, type, i s_disabled, defaultdb, hasaccess, denyloginENDCLOSE login_cursDEALLOCATE login_cursRETURN 0GO3注意:此腳本會(huì)在Master”數(shù)據(jù)庫中創(chuàng)建兩個(gè)存儲(chǔ)過程。兩個(gè)存儲(chǔ)過程分別 命名為“ sp_hexadecimal ”存儲(chǔ)過程和“ sp_help_revlogin ”存儲(chǔ)過程。4運(yùn)行下面的語句。EXEC sp_help_revlogin5由sp_help_rev
54、login ”存儲(chǔ)過程生成的輸出腳本是登錄腳本。此登錄腳本創(chuàng)建 具有原始安全標(biāo)識(shí)符(SID)和原始密碼的登錄。6在服務(wù)器B上,啟動(dòng) SQL Server Management Studio ,然后連接到您將數(shù)據(jù) 庫移動(dòng)到的 SQL Server實(shí)例。重要信息:在執(zhí)行步驟5之前,請檢查“備注” 一節(jié)中的信息。7打開新的查詢編輯器窗口,然后運(yùn)行步驟3中生成的輸出腳本。備注在對服務(wù)器B的實(shí)例上運(yùn)行輸出腳本之前,請檢查以下信息:仔細(xì)檢查輸出腳本。如果服務(wù)器 A和服務(wù)器 B處在不同的域中,則必須修改 輸出腳本。然后,必須在 CREATE LOGIN語句中使用新的域名來替換原始域名。 新的域中授予訪問權(quán)限
55、的集成登錄不會(huì)具有與原始域中的登錄相同的SID。因此,用戶會(huì)從這些登錄中孤立出來。有關(guān)如何解決這些孤立用戶的更多信息,請單擊下面的文章編號,以查看 Microsoft知識(shí)庫中相應(yīng)的文章:240872( HYPERLINK /kb/240872/ /kb/240872/ )如何解決在運(yùn)行SQL Server的服務(wù)器之間移動(dòng)數(shù)據(jù)庫時(shí)的權(quán)限問題如果服務(wù)器A和服務(wù)器 B處丁同一域中,貝U使用相同的SID。因此,用戶不可能是孤立的。.在輸出腳本中,通過使用加密密碼來創(chuàng)建登錄。這是因?yàn)镃REATE LOGIN語句中使用了 HASHED參數(shù)。此參數(shù)指定在PASSWORD參數(shù)后輸入的密碼已經(jīng)過哈希處理。默認(rèn)情
56、況下,只有Sysadmin”固定服務(wù)器角色的成員可以從“sys.server_principals”視圖運(yùn)行 SELECT句。除非 “sysadmin” 固定服務(wù) 器角色的成員授予用戶必需的權(quán)限,否則用戶無法創(chuàng)建或運(yùn)行輸出腳本。本文中的步驟不會(huì)為特定登錄傳輸默認(rèn)數(shù)據(jù)庫信息。這是因?yàn)槟J(rèn)數(shù)據(jù)庫不可 能總是存在丁服務(wù)器B上。若要定義某個(gè)登錄的默認(rèn)數(shù)據(jù)庫,請使 用 ALTER LOGIN語句,并傳入登錄名和默認(rèn)數(shù)據(jù)庫作為參數(shù)。服務(wù)器A的排序順序可能不區(qū)分大小寫,而服務(wù)器 B的排序順序可能區(qū)分大 小寫。在此情況下,當(dāng)您將登錄和密碼傳輸?shù)椒?wù)器B上的實(shí)例之后,必須以大寫字母的形式來鍵入密碼中的所有字母。
57、或者,服務(wù)器A的排序順序可能區(qū)分大小寫,而服務(wù)器 B的排序順序可能不區(qū) 分大小寫。在此情況下,您將無法使用傳輸?shù)椒?wù)器B上的實(shí)例的登錄和密碼進(jìn)行登錄,除非滿足下面的條件之一:o原始密碼不包含字母。o原始密碼中的所有字母都是大寫字母。服務(wù)器A和服務(wù)器 B的排序順序可能都區(qū)分大小寫,或者可能都不區(qū)分大小 寫。在這些情況下,用戶不會(huì)遇到問題。已經(jīng)位丁服務(wù)器B上的實(shí)例中的登錄可能具有與輸出腳本中的某個(gè)名稱相同的名稱。在此情況下,當(dāng)對服務(wù)器B上的實(shí)例運(yùn)行輸出腳本時(shí),會(huì)接收到下面的錯(cuò)誤消息:消息15025,級別 16,狀態(tài) 1,行 1服務(wù)器主體MyLogin已存在。類似地,已經(jīng)位丁服務(wù)器B上的實(shí)例中的登錄
58、可能具有與輸出腳本中的某個(gè) SID相同的 SID。在此情況下,當(dāng)對服務(wù)器B上的實(shí)例運(yùn)行輸出腳本時(shí),會(huì)接收到下面的錯(cuò)誤消息:消息15433,級別 16,狀態(tài) 1,行 1所提供的參數(shù)sid正在使用。因此,必須執(zhí)行以下操作:7仔細(xì)檢查輸出腳本。7檢查服務(wù)器B上的實(shí)例中的“ sys.server_principals”視圖的內(nèi)容。7相應(yīng)地解決這些錯(cuò)誤消息。在SQL Server 2005中,登錄的 SID用作實(shí)現(xiàn)數(shù)據(jù)庫級別訪問的基礎(chǔ)。一個(gè)登錄可能在服務(wù)器的兩個(gè)不同數(shù)據(jù)庫中具有兩個(gè)不同的SID。在此情況下,該登錄只可以訪問具有與“ sys.server_principals”視圖中的 SID匹配的 SI
59、D的 數(shù)據(jù)庫。在從兩個(gè)不同的服務(wù)器合并這兩個(gè)數(shù)據(jù)庫時(shí), 可能會(huì)出現(xiàn)此問題。若要 解決此問題,可使用 DROP USERT語句,從具有不匹配的 SID的數(shù)據(jù)庫中手動(dòng)刪除相應(yīng)的登錄。然后,通過使用CREATE USE麗句再次添加該登錄。如何保證數(shù)據(jù)庫遷移0停機(jī),實(shí)時(shí)遷移?回答:我們基丁 CDC技術(shù)+數(shù)據(jù)庫鏡像技術(shù) 來實(shí)現(xiàn)遷移0停機(jī)。在常見的企業(yè)數(shù)據(jù)平臺(tái)管理中有一項(xiàng)任務(wù)是一直困擾 SQL Server DBA們的,這 就是對數(shù)據(jù)更新的監(jiān)控。很多數(shù)據(jù)應(yīng)用都需要捕獲對業(yè)務(wù)數(shù)據(jù)表的更新。筆者見 過幾種解決方案:1、在數(shù)據(jù)表中加入特殊的標(biāo)志列;2、通過在數(shù)據(jù)表上創(chuàng)建觸發(fā)器;3、通過第三方產(chǎn)品,例如 舊M的L
60、og Explorer。其實(shí)第1種和第2中方案都不好,因?yàn)榈?種方法需要在應(yīng)用程序編碼的時(shí)候 尤為小心,如果有一段數(shù)據(jù)訪問邏輯忘了更新標(biāo)志位就會(huì)導(dǎo)致遺漏某些數(shù)據(jù)更 新,而第2種方法對性能影響過丁明顯,因?yàn)橛|發(fā)器的性能開銷是眾所周知的。第3種方法其實(shí)屆丁一種叫做Log Audit的方案體系。因?yàn)镾QL Server同其他 關(guān)系型數(shù)據(jù)庫一樣,所有數(shù)據(jù)操作都會(huì)在日志中記錄,因此通過分析日志就可以 獲得完整的數(shù)據(jù)操作歷史。SQL Server其實(shí)早就有內(nèi)部的API可供ISV開發(fā)者 中Log Audit的方案,不過微軟對這套API控制比較嚴(yán)格,只有簽署了一堆協(xié)議 的核心級合作伙伴才能了解這套 API。因
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度新能源項(xiàng)目施工團(tuán)隊(duì)派遣服務(wù)協(xié)議
- 二零二五年度員工期權(quán)激勵(lì)計(jì)劃執(zhí)行與員工福利協(xié)議
- 二零二五年度特色商業(yè)街區(qū)商鋪轉(zhuǎn)讓合同
- 2025年度鋼構(gòu)建筑鋼結(jié)構(gòu)加工與施工合同
- 2025年度電子商務(wù)平臺(tái)合作協(xié)議簽約變更終止全流程手冊
- 二零二五年度醫(yī)療糾紛調(diào)解與醫(yī)療機(jī)構(gòu)糾紛調(diào)解機(jī)制建設(shè)協(xié)議
- 2025年度電商旺季客服團(tuán)隊(duì)增援服務(wù)協(xié)議
- 2025年度金融科技合作入股協(xié)議書
- 二零二五年度城市綜合體工程款房屋抵償協(xié)議
- 二零二五年度電影學(xué)院電影包場教學(xué)合同
- 2024-2030年中國游戲直播行業(yè)市場深度分析及投資策略研究報(bào)告
- 統(tǒng)編版小學(xué)語文六年級下冊第四單元《理想和信念》作業(yè)設(shè)計(jì)
- 2025年春季學(xué)期學(xué)校工作計(jì)劃及安排表
- 化驗(yàn)班組安全培訓(xùn)
- 英語-廣東省大灣區(qū)2025屆高三第一次模擬試卷和答案
- 丹佛斯變頻器培訓(xùn)經(jīng)典課件
- 2024年06月日照銀行社會(huì)招聘筆試歷年參考題庫附帶答案詳解
- 烤房租賃合同范例
- 建筑地暖系統(tǒng)工程安裝考核試卷
- 專題四 指數(shù)函數(shù)與對數(shù)函數(shù)【中職專用】2025春季對口高考數(shù)學(xué)專題復(fù)習(xí)(河南適用)(解析版)
- 江蘇卷2024年高考語文第一次模擬考試一(原卷版+解析版)
評論
0/150
提交評論