视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
利用脚本自动安装SQLServer的实现步骤分析
2020-11-09 07:12:01 责编:小采
文档


每当这种情况发生的时候,我总会心里默念道:杯具啊,这辈子也装不完了。因为SQL Server的安装还是比较复杂的,要先安装.Net、Windows Installer,在正式安装的过程中还要交互的填写各种参数,当然这个还不包括拷贝3GB多的安装文件的时间。在经历了几次这样的悲剧之后,我果断的意识到必须研究一下写个脚本改变这个残酷的现实。

前段时间会学校毕业答辩我终于暂时离开了繁重的工作,能找个时间研究一下脚本了。刚开始实验这个脚本的时候,由于同学喊我打游戏,我就偷懒没准备实验环境,直接用我的本子跑了安装程序,然后就切到游戏去了。结果后来还造成了我本子的系统出现了很难解释的错误,详细的情况我写在上篇BLOG里了,悲剧的《BITS服务异常引发CPU满载》。惨痛的教训告诉我们,作实验还是要虚拟机里做比较安全。

实验环境:

在VMware里面装了个Windows server 2003 企业版 X86 SP2,用的是SQL Server 2008 R2。安装文件解压后保存虚拟机快照,保存下这个纯净的系统环境,这样可以随时还原回来,重新实验。

自动化脚本:

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


整个脚本最主要的部分就是上面的两段,其实安装并把参数传递进去原本只需要一行。但是由于SQL Server的安装过程比较特殊,所以需要分为两行来写。真正的安装需要先安装.NET补丁和Windows Installer的补丁,在安装完毕Windows Installer之后整个程序会中断。所以第一行的那个不带很长参数的就是为了触发安装.NET补丁和Windows Installer的补丁。这两个补丁被安装之后程序会中断,所以这里也不需要附带很长的参数。第二行那个带很长参数的才是真正的SQL Server的安装过程。

在这个很长的一大串参数里面,其实归纳一下也还是有规律的。

首先就是/QS /ACTION=Install /IACCEPTSQLSERVERLICENSETERMS,这些参数用于设定安装模式、同意授权协议。

然后,/FEATURES=SQLEngine,IS,SSMS /INSTANCENAME=MSSQLSERVER /INSTALLSQLDATADIR="D:\sqlserverdata"这些参数设定安装的组件和实例信息。

这里有一点的觉得需要说明一下的,脚本安装时支持设定Windows和SQL认证的,如果什么参数都不填就是默认Windows认证。我这里强烈建议用Windows认证方式,如果需要SQL认证可以等安装完毕之后再设定验证模式,如果在脚本里面设定SQL验证的话,里面会记录有sa账户密码。如果脚本丢失,大量的机器都是用这个脚本安装的,那个就不用解释了,悲剧……

再下面的一段就是纯粹的服务设定了,SQL Server的很多功能都是以服务的方式运行的,所以就要给他们赋予相应的启动方式(自动、禁止等)。还有就是对服务给予适当的启动账户(系统账户、本地服务、域权限等)。权限给低了许多权限不够,权限给高了会影响安全性,这个也要综合考虑。

最后就是/SQLSYSADMINACCOUNTS="hanxu",给SQL的sysadmin添加一个账户用于登陆。

关于其他优化:

1.SQL Server的安装盘里面包含了X86、X、AI这3个版本,如果只用到其中的一个构架的版本,可以把存放其他版本安装文件的个文件夹给直接删了,然后再打包,这样能精简安装包。

2.我这个实力脚本式对应SQL Server 2008的,如果是之前的版本可能需要打补丁。可以把补丁文件也整合进脚本,然后走脚本自动安装。我实验过一个脚本安装了SQL Server 2008和它的SP1补丁,这个很方便。

3.SQL Server不同版本之间的脚本在参数上有小的差异,这里推荐用虚拟机快照保存最初状态,然后慢慢反复尝试。如果有错误,脚本会在命令行里给出错误参数。详细的参数查询可以使用/help命令或者去MSDN查询。

用了自动化脚本还是很爽的,原来手动安装半小时的活,现在点一下鼠标就行了。甚至可以给脚本加的自动重启的命令,点下鼠标,半小时之后来直接就能用了。话说为了写这个脚本,我用虚拟机实验了也就几十、二十次的样子,通宵了一个晚上,不过对于我这种经常大量安装任务的人来说,可以说是一次投资终身受用。这里分享给大家,希望对大家有所帮助。

下载本文
显示全文
专题