• 静默安装MSSQL


    原文地址: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网址:

    从命令提示符安装 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 FilesMicrosoft SQL Server100Setup BootstrapLog20140109_214523ConfigurationFile.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 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 功能的级别(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 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"
    View Code

    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"指明了使用当前机器的计算机名,这样就不会因为第一台机器的计算机名复制到其他机器里


     
    在第二台机器上安装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 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文件的路径:

     C:Program FilesMicrosoft SQL Server100Setup BootstrapLog 
    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
    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实施与管理实战指南》
     
  • 相关阅读:
    GIT版本控制工具使用
    Django一些常用settings设置
    排序算法
    pipenv简单使用
    scrapy以及redis简单应用
    GIT上传本地项目到Github
    Requests爬虫和scrapy框架多线程爬虫
    Django分页组件
    关于 KendoUI Grid的默认选中的一些事
    关于在笔记本使用eclipseIDE工具进行开发时怎么切换eclipse输入状态
  • 原文地址:https://www.cnblogs.com/jiyang2008/p/6085527.html
Copyright © 2020-2023  润新知