原文地址:http://www.cnblogs.com/lyhabc/p/3511788.html
介绍
假如你有50台服务器需要安装SQLSERVER,如果你用下一步下一步的方式,用远程桌面不停切换,那个效率。。。
大家都知道SQLSERVER可以使用静默方式来安装,就是不使用GUI的方式来安装,下面做一些简单介绍
静默安装适合于:SQL2008、SQL2008R2、SQL2012
静默安装的原理:看过《SQL2012实施与管理实战指南》的童鞋都知道,SQLSERVER的安装程序实际上就是一个“工作流”
当你在界面上配置后参数之后,就会在最后生成一个ConfigurationFile.ini文件,SQLSERVER安装程序就按照这个
ConfigurationFile.ini文件的配置去进行安装
静默安装的核心:首先根据项目配置安装好一台服务器,那些服务需要安装,那些服务不需要安装,然后把生成的ConfigurationFile.ini文件
拷贝出来,放到其他服务器上,这个ConfigurationFile.ini文件实际上相当于一个模板,其他服务器按照这个模板来进行安装
环境
本人一开始以为静默安装非常难用,后来安装了几次,也有几次报错,想放弃了,但是最后都可以安装成功
以后部署SQLSERVER就不用下一步,下一步了,非常方便o(∩_∩)o
前提:
SQLSERVER版本要一样
操作系统版本最好也一样
两台机器的路径,设置数据存放的文件夹也要一样,保持路径一致
测试环境:SQLSERVER2008R2 、WindowsXP SP3 、vmware workstation 8虚拟机
我发现网上有很多的教程,教你进行SQLSERVER静默安装,最后我还是觉得msdn最好,msdn已经有例子了
msdn网址:
从上面的msdn文档可以知道,静默安装不但只可以用在安装SQLSERVER,还可以升级SQLSERVER实例,卸载SQLSERVER实例、组件,安装故障转移集群
都可以使用静默的方式进行
注意
如果ConfigurationFile.ini配置文件中有跟命令行输入的参数一致的,会优先使用命令行的参数
比如:如果你在命令行里指定了参数,又在配置文件里指定了参数
正式开始
计算机配置
记住:在做下面的步骤之前一定要先创建一个虚拟机快照!!
下面的步骤会忽略部分截图
下一步
下一步
下一步
只选择必要功能,这里有一个很奇怪的地方,我选择了共享功能目录在D盘,但是在下面的磁盘空间要求那一步还是显示在C盘
不知道是不是SQLSERVER的bug???
下一步
下一步
选择默认实例,实例根目录选择在D盘,这样意味着默认的备份文件,数据文件,日志都会放在D盘的相应目录
下一步
下一步
服务都设置为自动启动,其实服务的启动帐号和启动类型设置错了,在安装完毕之后都可以修改的,不用担心
下一步
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 FilesMicrosoft SQL Server" 51 52 ; 指定安装目录。 53 54 INSTANCEDIR="d:Program FilesMicrosoft 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 AUTHORITYNETWORK SERVICE" 67 68 ; 安装后自动启动服务。 69 70 AGTSVCSTARTUPTYPE="Manual" 71 72 ; Integration Services 的启动类型。 73 74 ISSVCSTARTUPTYPE="Automatic" 75 76 ; Integration Services 的帐户: 域用户或系统帐户。 77 78 ISSVCACCOUNT="NT AUTHORITYNetworkService" 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 功能的级别(0、1、2 或 3)。 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 AUTHORITYNETWORK 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"
ConfigurationFile.ini文件里的关键参数
; 指定要用于数据库引擎的 Windows 排序规则或 SQL 排序规则。 SQLCOLLATION="Chinese_PRC_CI_AS" ; SQL Server 服务的帐户: 域用户或系统帐户。 SQLSVCACCOUNT="NT AUTHORITYNETWORK SERVICE" ; 要设置为 SQL Server 系统管理员的 Windows 帐户。 SQLSYSADMINACCOUNTS=".Administrator" ; 默认值为 Windows 身份验证。使用 "SQL" 表示采用混合模式身份验证。 SECURITYMODE="SQL" ;指定 SQL Server sa 帐户的密码 SAPWD="test"
SQLSYSADMINACCOUNTS=".Administrator"指明了使用当前机器的计算机名,这样就不会因为第一台机器的计算机名复制到其他机器里
Setup.exe /q /ACTION=Install /PID="GYF3T-H2V88-GRPPH-HWRJP-QRTYB" /IACCEPTSQLSERVERLICENSETERMS /ConfigurationFile="C:Documents and SettingsAdministrator桌面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文件的路径:
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:7efd0a85864c6db1c3180186cd5959x86setup 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 FilesMicrosoft SQL Server100Setup BootstrapLog20140110_094621SystemConfigurationCheck_Report.htm
《SQLSERVER2012实施与管理实战指南》中介绍到,summary.txt文件记录了SQL补丁,sqlserver安装情况,其他组件安装情况的大概内容
按照年月日,组件来划分日志文件夹,详细可以查看《SQLSERVER2012实施与管理实战指南》
开始安装补丁
刚开始安装的时候,你会以为SQLSERVER补丁没有在安装,实际上安装程序已经在运行了
你需要打开任务管理器,查看补丁的安装情况
过了一会儿会弹出一个窗口,这才开始正式开始,一开始的时候实际上就是GUI界面安装过程中的下一步下一步
出现下面窗口才表示补丁正式开始安装
上面的这个路径是补丁文件的解压缩路径
在安装完补丁之后,你可以打开D盘看一下有没有这个文件夹7efd0a85864c6db1c31380186cd5959
如果有你可以把他删除掉,实际上补丁的安装跟一般的应用程序的安装是一样的,从exe压缩包里解压缩文件然后复制到安装路径
安装完毕之后,窗口会自动关闭,这时候你可以打开SQLSERVER配置管理器或者SSMS查看当前的版本
版本是4000,补丁安装成功
ConfigurationFile.ini的修改
; 代理帐户名
AGTSVCACCOUNT="SYSTEM"
; SQL Server 服务的帐户: 域用户或系统帐户。
SQLSVCACCOUNT="SYSTEM"
SQLSERVER服务启动的帐号 SQLSVCACCOUNT="SYSTEM" SQL AGENT服务启动的帐号 AGTSVCACCOUNT="SYSTEM"
总结
有了静默安装我们就可以非常方便的安装SQLSERVER,不用再守着显示器前面了