靜默安裝MSSQL

原文地址:http://www.cnblogs.com/lyhabc/p/3511788.htmlhtml

介紹web

假如你有50臺服務器須要安裝SQLSERVER,若是你用下一步下一步的方式,用遠程桌面不停切換,那個效率。。。sql

你們都知道SQLSERVER可使用靜默方式來安裝,就是不使用GUI的方式來安裝,下面作一些簡單介紹數據庫

靜默安裝適合於:SQL200八、SQL2008R二、SQL2012服務器

靜默安裝的原理:看過《SQL2012實施與管理實戰指南》的童鞋都知道,SQLSERVER的安裝程序實際上就是一個「工做流」網絡

當你在界面上配置後參數以後,就會在最後生成一個ConfigurationFile.ini文件,SQLSERVER安裝程序就按照這個ide

ConfigurationFile.ini文件的配置去進行安裝工具

 

靜默安裝的核心:首先根據項目配置安裝好一臺服務器,那些服務須要安裝,那些服務不須要安裝,而後把生成的ConfigurationFile.ini文件sqlserver

拷貝出來,放到其餘服務器上,這個ConfigurationFile.ini文件實際上至關於一個模板,其餘服務器按照這個模板來進行安裝post

 


環境

本人一開始覺得靜默安裝很是難用,後來安裝了幾回,也有幾回報錯,想放棄了,可是最後均可以安裝成功

之後部署SQLSERVER就不用下一步,下一步了,很是方便o(∩_∩)o

前提:

SQLSERVER版本要同樣

操做系統版本最好也同樣

兩臺機器的路徑,設置數據存放的文件夾也要同樣,保持路徑一致

測試環境:SQLSERVER2008R2 、WindowsXP SP3 、vmware workstation 8虛擬機

我發現網上有不少的教程,教你進行SQLSERVER靜默安裝,最後我仍是以爲msdn最好,msdn已經有例子了

msdn網址:

從命令提示符安裝 SQL Server 2012

使用配置文件安裝 SQL Server 2012

從上面的msdn文檔能夠知道,靜默安裝不但只能夠用在安裝SQLSERVER,還能夠升級SQLSERVER實例卸載SQLSERVER實例、組件安裝故障轉移集羣

均可以使用靜默的方式進行

 

注意

若是ConfigurationFile.ini配置文件中有跟命令行輸入的參數一致的,會優先使用命令行的參數

好比:若是你在命令行裏指定了參數,又在配置文件裏指定了參數

那麼SQLSERVER會選擇使用命令行指定的參數而不會使用配置文件指定的參數
 
舉個例子:
若是在命令行裏指定了參數 /SAPWD="test",而在配置文件裏又指定了參數SAPWD="test11",那麼SQLSERVER只會將sa的密碼設置爲test
 
此次實驗用到的ConfigurationFile.ini配置文件,這個配置文件是在我在A服務器上設置好參數生成的ConfigurationFile.ini文件,我把他
拷貝出來供你們參考
View Code

 


正式開始

計算機配置

記住:在作下面的步驟以前必定要先建立一個虛擬機快照!!

下面的步驟會忽略部分截圖

下一步

下一步

下一步

只選擇必要功能,這裏有一個很奇怪的地方,我選擇了共享功能目錄在D盤,可是在下面的磁盤空間要求那一步仍是顯示在C盤

不知道是否是SQLSERVER的bug???

下一步

下一步

選擇默認實例,實例根目錄選擇在D盤,這樣意味着默認的備份文件,數據文件,日誌都會放在D盤的相應目錄

下一步

下一步

服務都設置爲自動啓動,其實服務的啓動賬號和啓動類型設置錯了,在安裝完畢以後均可以修改的,不用擔憂

下一步

使用混合身份驗證,sa的密碼爲test,添加當前計算機賬戶administrator爲sysadmin角色
下一步
錯誤報告不勾選
下一步
下一步
最關鍵的一步來了
 
咱們把C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\20140109_214523\ConfigurationFile.ini配置文件
拷貝出來
真實的環境咱們固然是立刻點擊「安裝」按鈕進行安裝,咱們這裏不進行安裝了
安裝程序一直在運行
 
ConfigurationFile.ini文件的內容:sa的密碼爲test,混合身份驗證,下面三個服務的啓動方式都爲自動
sqlserver
sql agent
sql browser
  1 ;SQLSERVER2008 Configuration File
  2 [SQLSERVER2008]
  3 
  4 ; 爲您已指定的 SQL Server 功能指定實例 ID。SQL Server 目錄結構、註冊表結構和服務名稱將反映 SQL Server 實例的實例 ID。 
  5 
  6 INSTANCEID="MSSQLSERVER"
  7 
  8 ; 指定安裝程序的工做流,如 INSTALL、UNINSTALL 或 UPGRADE。這是必需的參數。 
  9 
 10 ACTION="Install"
 11 
 12 ; 指定要安裝、卸載或升級的功能。頂級功能列表包括 SQL、AS、RS、IS 和工具。SQL 功能將安裝數據庫引擎、複製和全文。工具功能將安裝管理工具、聯機叢書、Business Intelligence Development Studio 和其餘共享組件。 
 13 
 14 FEATURES=SQLENGINE,CONN,IS,BC,SDK,SSMS,ADV_SSMS,SNAC_SDK
 15 
 16 ; 顯示命令行參數用法 
 17 
 18 HELP="False"
 19 
 20 ; 指定應將詳細的安裝程序日誌傳送到控制檯。 
 21 
 22 INDICATEPROGRESS="False"
 23 
 24 ; 安裝程序將不會顯示任何用戶界面。 
 25 
 26 QUIET="False"
 27 
 28 ; 安裝程序將只顯示進度,不須要任何用戶交互。 
 29 
 30 QUIETSIMPLE="False"
 31 
 32 ; 指定安裝程序應該安裝到 WOW64 中。IA64 或 32 位系統不支持此命令行參數。 
 33 
 34 X86="False"
 35 
 36 ; 還沒有定義命令行參數 ENU 的詳細幫助。 
 37 
 38 ENU="False"
 39 
 40 ; 用於控制用戶界面行爲的參數。有效值對於完整 UI 爲 Normal,對於簡化的 UI 爲 AutoAdvance。 
 41 
 42 UIMODE="Normal"
 43 
 44 ; 指定是否可將錯誤報告給 Microsoft 以便改進之後的 SQL Server 版本。指定 1 或 True 將啓用此功能,指定 0 或 False 將禁用此功能。 
 45 
 46 ERRORREPORTING="False"
 47 
 48 ; 指定本機共享組件的安裝根目錄。 
 49 
 50 INSTALLSHAREDDIR="d:\Program Files\Microsoft SQL Server"
 51 
 52 ; 指定安裝目錄。 
 53 
 54 INSTANCEDIR="d:\Program Files\Microsoft SQL Server"
 55 
 56 ; 指定能夠收集 SQL Server 功能使用狀況數據,並將數據發送到 Microsoft。指定 1 或 True 將啓用此功能,指定 0 或 False 將禁用此功能。 
 57 
 58 SQMREPORTING="False"
 59 
 60 ; 指定默認實例或命名實例。MSSQLSERVER 是非 Express 版本的默認實例,SQLExpress 則是 Express 版本的默認實例。在安裝 SQL Server 數據庫引擎(SQL)、Analysis Services (AS)或 Reporting Services (RS)時,此參數是必需的。 
 61 
 62 INSTANCENAME="MSSQLSERVER"
 63 
 64 ; 代理賬戶名 
 65 
 66 AGTSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE"
 67 
 68 ; 安裝後自動啓動服務。  
 69 
 70 AGTSVCSTARTUPTYPE="Manual"
 71 
 72 ; Integration Services 的啓動類型。 
 73 
 74 ISSVCSTARTUPTYPE="Automatic"
 75 
 76 ; Integration Services 的賬戶: 域\用戶或系統賬戶。 
 77 
 78 ISSVCACCOUNT="NT AUTHORITY\NetworkService"
 79 
 80 ; 在建立服務後控制服務啓動類型設置。 
 81 
 82 ASSVCSTARTUPTYPE="Automatic"
 83 
 84 ; Analysis Services 要使用的排序規則。 
 85 
 86 ASCOLLATION="Latin1_General_CI_AS"
 87 
 88 ; Analysis Services 數據文件的位置。 
 89 
 90 ASDATADIR="Data"
 91 
 92 ; Analysis Services 日誌文件的位置。 
 93 
 94 ASLOGDIR="Log"
 95 
 96 ; Analysis Services 備份文件的位置。 
 97 
 98 ASBACKUPDIR="Backup"
 99 
100 ; Analysis Services 臨時文件的位置。 
101 
102 ASTEMPDIR="Temp"
103 
104 ; Analysis Services 配置文件的位置。 
105 
106 ASCONFIGDIR="Config"
107 
108 ; 指定是否容許 MSOLAP 訪問接口在進程中運行。 
109 
110 ASPROVIDERMSOLAP="1"
111 
112 ; 用於鏈接 SharePoint 管理中心 Web 應用程序的端口號。 
113 
114 FARMADMINPORT="0"
115 
116 ; SQL Server 服務的啓動類型。 
117 
118 SQLSVCSTARTUPTYPE="Automatic"
119 
120 ; 啓用 FILESTREAM 功能的級別(0123)。 
121 
122 FILESTREAMLEVEL="0"
123 
124 ; 設置爲 "1" 可爲 SQL Server Express 啓用 RANU。 
125 
126 ENABLERANU="False"
127 
128 ; 指定要用於數據庫引擎的 Windows 排序規則或 SQL 排序規則。 
129 
130 SQLCOLLATION="Chinese_PRC_CI_AS"
131 
132 ; SQL Server 服務的賬戶: 域\用戶或系統賬戶。 
133 
134 SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE"
135 
136 ; 要設置爲 SQL Server 系統管理員的 Windows 賬戶。 
137 
138 SQLSYSADMINACCOUNTS=".\Administrator"
139 
140 ; 默認值爲 Windows 身份驗證。使用 "SQL" 表示採用混合模式身份驗證。 
141 
142 SECURITYMODE="SQL"
143 
144 ;指定 SQL Server sa 賬戶的密碼
145 
146 SAPWD="test"
147 
148 ; 將當前用戶設置爲 SQL Server 2008 R2 Express 的數據庫引擎系統管理員。 
149 
150 
151 ADDCURRENTUSERASSQLADMIN="False"
152 
153 ; 指定 0 禁用 TCP/IP 協議,指定 1 則啓用該協議。 
154 
155 TCPENABLED="1"
156 
157 ; 指定 0 禁用 Named Pipes 協議,指定 1 則啓用該協議。 
158 
159 NPENABLED="0"
160 
161 ; Browser 服務的啓動類型。 
162 
163 BROWSERSVCSTARTUPTYPE="Automatic"
164 
165 ;指定 SQL Server 代理服務的啓動模式。
166 
167 AGTSVCSTARTUPTYPE="Automatic"
168 
169 ;指定 SQL Server 服務的啓動模式。
170 
171 SQLSVCSTARTUPTYPE="Automatic"
172 
173 ; 指定報表服務器 NT 服務的啓動模式。
174 ; 手動 - 在手動模式(默認值)下啓動服務。
175 ; 自動 - 在自動模式下啓動服務。
176 ; 已禁用 - 服務處於禁用狀態 
177 
178 RSSVCSTARTUPTYPE="Automatic"
179 
180 ; 指定報表服務器的安裝模式。
181 ; 默認值: 「FilesOnly」  
182 
183 RSINSTALLMODE="FilesOnlyMode"
View Code

ConfigurationFile.ini文件裏的關鍵參數

複製代碼
; 指定要用於數據庫引擎的 Windows 排序規則或 SQL 排序規則。 

SQLCOLLATION="Chinese_PRC_CI_AS"

; SQL Server 服務的賬戶: 域\用戶或系統賬戶。 

SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE"

; 要設置爲 SQL Server 系統管理員的 Windows 賬戶。 

SQLSYSADMINACCOUNTS=".\Administrator"

; 默認值爲 Windows 身份驗證。使用 "SQL" 表示採用混合模式身份驗證。 

SECURITYMODE="SQL"

;指定 SQL Server sa 賬戶的密碼

SAPWD="test"
複製代碼

SQLSYSADMINACCOUNTS=".\Administrator"指明瞭使用當前機器的計算機名,這樣就不會由於第一臺機器的計算機名複製到其餘機器裏


 
在第二臺機器上安裝SQLSERVER
咱們回到快照的時間
假設咱們如今在第二臺機器上了,計算機名仍是
 
 
咱們把ConfigurationFile.ini文件放在桌面
 
咱們在SQLSERVER安裝文件夾下,新建一個txt文件
內容輸入cmd.exe
保存並關閉,而後修改後綴名爲bat
雙擊執行這個bat文件
把下面的的語句放入cmd裏執行
Setup.exe /q /ACTION=Install  /PID="GYF3T-H2V88-GRPPH-HWRJP-QRTYB"  /IACCEPTSQLSERVERLICENSETERMS   /ConfigurationFile="C:\Documents and Settings\Administrator\桌面\ConfigurationFile.ini"

 

注意下面的參數必需要指定的:

/q:徹底沒有界面

/qs:有界面,界面只是做爲顯示進度的用途

/IACCEPTSQLSERVERLICENSETERMS:接受許可條款

/PID:產品密鑰  指定 SQL Server 版本的產品密鑰。若是未指定此參數,則將使用 Evaluation。

立刻進行安裝

 安裝須要等待一段時間,這時候你就能夠繼續安裝其餘的服務器了

 通過漫長的等待,SQLSERVER2008R2安裝好了

 

安裝好後,有幾個地方須要關注的:

(1)已經開啓混合驗證:使用sa登陸SSMS

(2)Windows登陸用戶的用戶名是否是 當前計算機名\administrator

(3)sqlserver、 sql agent、 sql browser 這些服務的啓動賬號,是否設置正確,這些服務是否已經啓動

關於權限:

sqlserver服務若是不是localsystem,是沒有讀取磁盤文件的權限的

sqlserver服務若是不是networkservice,是沒有讀取網絡文件的權限的

客戶要求通常都是隻須要設置sqlserver服務啓動賬號和 sql agent啓動賬號爲localsystem就能夠了

 

(1)和(2)咱們打開SSMS

登陸進去以後禁用sa

(3)咱們打開服務管理器

更改sqlserver和sql agent的啓動賬號爲localsystem,而且重啓sqlserver

SQLSERVER2008R2安裝完畢


靜默安裝SQLSERVER補丁

打開cmd,打開SQLSERVER補丁所在文件夾,個人SQLSERVER補丁就放在安裝文件夾同一個文件夾下面

把補丁拖進去cmd裏面,而後把下面這些參數複製進去

/allinstances  /quiet /IACCEPTSQLSERVERLICENSETERMS 

或者使用下面的參數

/instancename="MSSQLSERVER" /quiet  /IACCEPTSQLSERVERLICENSETERMS 

一個指定實例名,一個不指定,我使用的是不指定實例名,就是使用/allinstances 

具體參數的含義和有哪些參數能夠參考這篇文章:Installing SQL Server Service Pack Silently

 

我在測試的時候發現 ,指定/reportonly參數會報錯,不知道怎麼回事

 

若是不指定許可條款也會報錯

summary.txt文件的路徑:

 C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log 
summary.txt文件的內容
Overall summary:
  Final result:                  已經過,但須要從新引導,請查看日誌瞭解詳細信息
  Exit code (Decimal):           3010
  Exit message:                  已經過,但須要從新引導,請查看日誌瞭解詳細信息
  Start time:                    2014-01-10 09:46:26
  End time:                      2014-01-10 10:07:47
  Requested action:              Patch

Instance MSSQLSERVER overall summary:
  Final result:                  已經過,但須要從新引導,請查看日誌瞭解詳細信息
  Exit code (Decimal):           3010
  Exit message:                  已經過,但須要從新引導,請查看日誌瞭解詳細信息
  Start time:                    2014-01-10 09:48:18
  End time:                      2014-01-10 10:06:06
  Requested action:              Patch

Machine Properties:
  Machine name:                  PC0107VLX
  Machine processor count:       2
  OS version:                    Windows XP
  OS service pack:               Service Pack 3
  OS region:                     中華人民共和國
  OS language:                   中文(中華人民共和國)
  OS architecture:               x86
  Process architecture:          32 位
  OS clustered:                  否

Product features discovered:
  Product              Instance             Instance ID                    Feature                                  Language             Edition              Version         Clustered 
  Sql Server 2008 R2   MSSQLSERVER          MSSQL10_50.MSSQLSERVER         數據庫引擎服務                                  1033                 Enterprise Edition   10.50.1600.1    否         
  Sql Server 2008 R2   MSSQLSERVER          MSSQL10_50.MSSQLSERVER         數據庫引擎服務                                  2052                 Enterprise Edition   10.50.1600.1    否         
  Sql Server 2008 R2                                                       管理工具 - 基本                                2052                 Enterprise Edition   10.50.1600.1    否         
  Sql Server 2008 R2                                                       管理工具 - 完整                                2052                 Enterprise Edition   10.50.1600.1    否         
  Sql Server 2008 R2                                                       客戶端工具鏈接                                  2052                 Enterprise Edition   10.50.1600.1    否         
  Sql Server 2008 R2                                                       客戶端工具向後兼容性                               2052                 Enterprise Edition   10.50.1600.1    否         
  Sql Server 2008 R2                                                       客戶端工具 SDK                                2052                 Enterprise Edition   10.50.1600.1    否         
  Sql Server 2008 R2                                                       Integration Services                     2052                 Enterprise Edition   10.50.1600.1    否         

Package properties:
  Description:                   SQL Server Database Services 2008 R2
  ProductName:                   SQL2008
  Type:                          RTM
  Version:                       10
  SPLevel:                       2
  KBArticle:                     KB2630458
  KBArticleHyperlink:            http://support.microsoft.com/?kbid=2630458
  PatchType:                     SP
  AssociatedHotfixBuild:         0
  Platform:                      x86
  PatchLevel:                    10.52.4000.0
  ProductVersion:                10.50.1600.1
  GDRReservedRange:              10.0.1000.0:10.0.1099.0;10.0.3000.0:10.0.3099.0
  PackageName:                   SQLServer2008R2-KB2630458-x86.exe
  Installation location:         d:\7efd0a85864c6db1c3180186cd5959\x86\setup\

Updated product edition:
  Instance             Edition             
  MSSQLSERVER          ENTERPRISE          

用戶輸入設置:
  ACTION:                        Patch
  ALLINSTANCES:                  True
  CLUSTERPASSIVE:                False
  CONFIGURATIONFILE:             
  ENU:                           False
  FARMACCOUNT:                   <>
  FARMADMINPORT:                 0
  FARMPASSWORD:                  *****
  HELP:                          False
  INDICATEPROGRESS:              False
  INSTANCEID:                    <>
  INSTANCENAME:                  <>
  PASSPHRASE:                    *****
  QUIET:                         True
  QUIETSIMPLE:                   False
  UIMODE:                        Normal
  X86:                           False

Rules with failures:

Global rules:

There are no scenario-specific rules.

Rules report file:               C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\20140110_094621\SystemConfigurationCheck_Report.htm
View Code

 

《SQLSERVER2012實施與管理實戰指南》中介紹到,summary.txt文件記錄了SQL補丁,sqlserver安裝狀況,其餘組件安裝狀況的大概內容

按照年月日,組件來劃分日誌文件夾,詳細能夠查看《SQLSERVER2012實施與管理實戰指南》

 

開始安裝補丁

剛開始安裝的時候,你會覺得SQLSERVER補丁沒有在安裝,實際上安裝程序已經在運行了

你須要打開任務管理器,查看補丁的安裝狀況

過了一下子會彈出一個窗口,這纔開始正式開始,一開始的時候實際上就是GUI界面安裝過程當中的下一步下一步

出現下面窗口才表示補丁正式開始安裝

上面的這個路徑是補丁文件的解壓縮路徑

在安裝完補丁以後,你能夠打開D盤看一下有沒有這個文件夾7efd0a85864c6db1c31380186cd5959

若是有你能夠把他刪除掉,實際上補丁的安裝跟通常的應用程序的安裝是同樣的,從exe壓縮包裏解壓縮文件而後複製到安裝路徑

 

安裝完畢以後,窗口會自動關閉,這時候你能夠打開SQLSERVER配置管理器或者SSMS查看當前的版本

版本是4000,補丁安裝成功

 
ConfigurationFile.ini的修改
今天測試了一下,以前沒有將SQLSERVER服務和SQL AGENT服務的啓動賬號設置爲local system
如今只須要修改一下ConfigurationFile.ini文件裏面的兩個參數爲SYSTEM就能夠了

; 代理賬戶名

AGTSVCACCOUNT="SYSTEM"

; SQL Server 服務的賬戶: 域\用戶或系統賬戶。

SQLSVCACCOUNT="SYSTEM"

ConfigurationFile.ini文件內容以下:
 
SQLSERVER服務啓動的賬號
SQLSVCACCOUNT="SYSTEM"


SQL AGENT服務啓動的賬號
AGTSVCACCOUNT="SYSTEM"
View Code


總結

有了靜默安裝咱們就能夠很是方便的安裝SQLSERVER,不用再守着顯示器前面了

 
 
 
更詳細請參考:
《SQLSERVER2012實施與管理實戰指南》
相關文章
相關標籤/搜索