利用腳本自動(dòng)安裝SQLServer的實(shí)現(xiàn)步驟分析
前段時(shí)間會(huì)學(xué)校畢業(yè)答辯我終于暫時(shí)離開了繁重的工作,能找個(gè)時(shí)間研究一下腳本了。剛開始實(shí)驗(yàn)這個(gè)腳本的時(shí)候,由于同學(xué)喊我打游戲,我就偷懶沒準(zhǔn)備實(shí)驗(yàn)環(huán)境,直接用我的本子跑了安裝程序,然后就切到游戲去了。結(jié)果后來(lái)還造成了我本子的系統(tǒng)出現(xiàn)了很難解釋的錯(cuò)誤,詳細(xì)的情況我寫在上篇BLOG里了,悲劇的《BITS服務(wù)異常引發(fā)CPU滿載》。慘痛的教訓(xùn)告訴我們,作實(shí)驗(yàn)還是要虛擬機(jī)里做比較安全。
實(shí)驗(yàn)環(huán)境:
在VMware里面裝了個(gè)Windows server 2003 企業(yè)版 X86 SP2,用的是SQL Server 2008 R2。安裝文件解壓后保存虛擬機(jī)快照,保存下這個(gè)純凈的系統(tǒng)環(huán)境,這樣可以隨時(shí)還原回來(lái),重新實(shí)驗(yàn)。
自動(dòng)化腳本:
Setup.exe /QS
Setup.exe /QS /ACTION=Install /IACCEPTSQLSERVERLICENSETERMS
/FEATURES=SQLEngine,IS,SSMS /INSTANCENAME=MSSQLSERVER
/INSTALLSQLDATADIR="D:\sqlserverdata" /AGTSVCACCOUNT="SYSTEM"
/AGTSVCSTARTUPTYPE="Disabled" /SQLSVCACCOUNT="SYSTEM"
/SQLSVCSTARTUPTYPE="Automatic" /ISSVCACCOUNT="SYSTEM"
/ISSVCStartupType="Automatic" /ISSVCACCOUNT="LOCAL SERVICE"
/ISSVCStartupType="Automatic" /SQLSYSADMINACCOUNTS="hanxu"
pause
整個(gè)腳本最主要的部分就是上面的兩段,其實(shí)安裝并把參數(shù)傳遞進(jìn)去原本只需要一行。但是由于SQL Server的安裝過(guò)程比較特殊,所以需要分為兩行來(lái)寫。真正的安裝需要先安裝.NET補(bǔ)丁和Windows Installer的補(bǔ)丁,在安裝完畢Windows Installer之后整個(gè)程序會(huì)中斷。所以第一行的那個(gè)不帶很長(zhǎng)參數(shù)的就是為了觸發(fā)安裝.NET補(bǔ)丁和Windows Installer的補(bǔ)丁。這兩個(gè)補(bǔ)丁被安裝之后程序會(huì)中斷,所以這里也不需要附帶很長(zhǎng)的參數(shù)。第二行那個(gè)帶很長(zhǎng)參數(shù)的才是真正的SQL Server的安裝過(guò)程。
在這個(gè)很長(zhǎng)的一大串參數(shù)里面,其實(shí)歸納一下也還是有規(guī)律的。
首先就是/QS /ACTION=Install /IACCEPTSQLSERVERLICENSETERMS,這些參數(shù)用于設(shè)定安裝模式、同意授權(quán)協(xié)議。
然后,/FEATURES=SQLEngine,IS,SSMS /INSTANCENAME=MSSQLSERVER /INSTALLSQLDATADIR="D:\sqlserverdata"這些參數(shù)設(shè)定安裝的組件和實(shí)例信息。
這里有一點(diǎn)的覺得需要說(shuō)明一下的,腳本安裝時(shí)支持設(shè)定Windows和SQL認(rèn)證的,如果什么參數(shù)都不填就是默認(rèn)Windows認(rèn)證。我這里強(qiáng)烈建議用Windows認(rèn)證方式,如果需要SQL認(rèn)證可以等安裝完畢之后再設(shè)定驗(yàn)證模式,如果在腳本里面設(shè)定SQL驗(yàn)證的話,里面會(huì)記錄有sa賬戶密碼。如果腳本丟失,大量的機(jī)器都是用這個(gè)腳本安裝的,那個(gè)就不用解釋了,悲劇……
再下面的一段就是純粹的服務(wù)設(shè)定了,SQL Server的很多功能都是以服務(wù)的方式運(yùn)行的,所以就要給他們賦予相應(yīng)的啟動(dòng)方式(自動(dòng)、禁止等)。還有就是對(duì)服務(wù)給予適當(dāng)?shù)膯?dòng)賬戶(系統(tǒng)賬戶、本地服務(wù)、域權(quán)限等)。權(quán)限給低了許多權(quán)限不夠,權(quán)限給高了會(huì)影響安全性,這個(gè)也要綜合考慮。
最后就是/SQLSYSADMINACCOUNTS="hanxu",給SQL的sysadmin添加一個(gè)賬戶用于登陸。
關(guān)于其他優(yōu)化:
1.SQL Server的安裝盤里面包含了X86、X64、AI64這3個(gè)版本,如果只用到其中的一個(gè)構(gòu)架的版本,可以把存放其他版本安裝文件的個(gè)文件夾給直接刪了,然后再打包,這樣能精簡(jiǎn)安裝包。
2.我這個(gè)實(shí)力腳本式對(duì)應(yīng)SQL Server 2008的,如果是之前的版本可能需要打補(bǔ)丁。可以把補(bǔ)丁文件也整合進(jìn)腳本,然后走腳本自動(dòng)安裝。我實(shí)驗(yàn)過(guò)一個(gè)腳本安裝了SQL Server 2008和它的SP1補(bǔ)丁,這個(gè)很方便。
3.SQL Server不同版本之間的腳本在參數(shù)上有小的差異,這里推薦用虛擬機(jī)快照保存最初狀態(tài),然后慢慢反復(fù)嘗試。如果有錯(cuò)誤,腳本會(huì)在命令行里給出錯(cuò)誤參數(shù)。詳細(xì)的參數(shù)查詢可以使用/help命令或者去MSDN查詢。
用了自動(dòng)化腳本還是很爽的,原來(lái)手動(dòng)安裝半小時(shí)的活,現(xiàn)在點(diǎn)一下鼠標(biāo)就行了。甚至可以給腳本加的自動(dòng)重啟的命令,點(diǎn)下鼠標(biāo),半小時(shí)之后來(lái)直接就能用了。話說(shuō)為了寫這個(gè)腳本,我用虛擬機(jī)實(shí)驗(yàn)了也就幾十、二十次的樣子,通宵了一個(gè)晚上,不過(guò)對(duì)于我這種經(jīng)常大量安裝任務(wù)的人來(lái)說(shuō),可以說(shuō)是一次投資終身受用。這里分享給大家,希望對(duì)大家有所幫助。
相關(guān)文章
SQL?Server安裝后本地服務(wù)器連接失敗的解決方法(僅供參考)
訪問(wèn)SQLServer數(shù)據(jù)庫(kù)失敗時(shí),最常見的錯(cuò)誤是"連接服務(wù)器失敗,SQLServer不存在或訪問(wèn)被拒絕",或者"未能建立與(local)的鏈接,SQLServer不存在或訪問(wèn)被拒絕",這篇文章主要給大家介紹了關(guān)于SQL?Server安裝后本地服務(wù)器連接失敗的解決方法,需要的朋友可以參考下2023-11-11win2003安裝sqlserver 2000提示無(wú)法驗(yàn)證產(chǎn)品密鑰的解決方法
由于腳本之家的安全設(shè)置,刪除了很多安全隱患的東西,也導(dǎo)致了一些軟件安裝出現(xiàn)錯(cuò)誤,所以建議大家在安裝好軟件再安全設(shè)置。今天就出現(xiàn)了安全sql2000時(shí)提示提示無(wú)法驗(yàn)證產(chǎn)品密鑰,下面的具體的解決方法。2011-07-07SQL 雙親節(jié)點(diǎn)查找所有子節(jié)點(diǎn)的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇SQL 雙親節(jié)點(diǎn)查找所有子節(jié)點(diǎn)的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05AspNetPager分頁(yè)控件 存儲(chǔ)過(guò)程
我用AspNetPager分頁(yè)控件,寫的存儲(chǔ)過(guò)程2009-08-08SQL?Server?實(shí)例之間傳輸?shù)卿浢兔艽a的詳細(xì)步驟
本文介紹如何在Windows上運(yùn)行的SQL?Server的不同實(shí)例之間傳輸?shù)卿浢兔艽a,適用于SQL mirroring,SQL AG中的本地logins的遷移或者同步,需要的朋友可以參考下2023-06-06SqlServer2012中LEAD函數(shù)簡(jiǎn)單分析
SQL SERVER 2012 T-SQL新增幾個(gè)聚合函數(shù): FIRST_VALUE LAST_VALUE LEAD LAG,今天我們首先來(lái)簡(jiǎn)單分析下LEAD,希望對(duì)大家有所幫助,能夠盡快熟悉這個(gè)聚合函數(shù)2014-08-08SQL?Server?字段設(shè)自增的實(shí)現(xiàn)流程
這篇文章主要介紹了SQL?Server?字段設(shè)自增的實(shí)現(xiàn)方法,在本文中,我將先向你展示整個(gè)實(shí)現(xiàn)的流程,然后逐步解釋每個(gè)步驟需要做什么,并提供相應(yīng)的代碼示例,需要的朋友可以參考下2023-12-12SQL Server中日期時(shí)間函數(shù)的用法詳解
本文詳細(xì)講解了SQL Server中日期時(shí)間函數(shù)的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05