您还在用下一步下一步的方式安装SQLSERVER和SQLSERVER补丁吗?

浏览: 2638

介绍

假如你有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网址:

从命令提示符安装 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

 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文件的内容

 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文件内容如下:

 

 View Code


总结

有了静默安装我们就可以非常方便的安装SQLSERVER,不用再守着显示器前面了

 

 

 

更详细请参考:

《SQLSERVER2012实施与管理实战指南》

http://www.2cto.com/database/201212/178299.html

http://space.itpub.net/26184811/viewspace-705657

推荐 0
本文由 桦仔 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册