利用腳本自動(dòng)安裝SQLServer的實(shí)現(xiàn)步驟分析
發(fā)布日期:2022-01-28 10:56 | 文章來(lái)源:gibhub
前段時(shí)間會(huì)學(xué)校畢業(yè)答辯我終于暫時(shí)離開(kāi)了繁重的工作,能找個(gè)時(shí)間研究一下腳本了。剛開(kāi)始實(shí)驗(yàn)這個(gè)腳本的時(shí)候,由于同學(xué)喊我打游戲,我就偷懶沒(méi)準(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)的覺(jué)得需要說(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ǔ)丁??梢园蜒a(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ì)大家有所幫助。
/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)的覺(jué)得需要說(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ǔ)丁??梢园蜒a(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ì)大家有所幫助。
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
相關(guān)文章