排序规则
接下来你需要选择排序规则设置SQL Server 中的排序规则(Collation)设置用来管理和语言相关的行为对象名称和列的值的唯一性以及排序规则(sorting rules)在排序规则设置对话框里你说明排序规则并在SQL Server排序规则和Windows排序规则两者之间选择其一如果你需要和以前SQL Server版本的向后兼容性选择SQL Server排序规则——比如如果你打算在一个早期版本的SQL Server和SQL Server 之间使用复制否则选择Windows排序规则SQL Server 的排序规则设置不管是Windows或是SQL Server合并了在先前版本中的个独立的设置字符集排序次序和Unicode排序规则除了整合旧的个设置到一起外SQL Server 在排序规则中还提供了比以前版本更为强大的灵活性
在你安装SQL Server 时选择的排序规则决定了系统数据库的排序规则设置要在安装后更该系统数据库的排序规则设置你需要脚本化所有你的系统对象(比如登录消息工作)并且运行rebuildmexe它用新的排序规则重建了所有的系统数据库然而你不必先导出用户数据库中的所有数据再在运行完rebuildmexe后把他们再导入——就像你再SQL Server 中所作的那样你只须重新连接用户数据库到SQL Server你可以用不同于默认服务器的排序规则(这是模板系统数据库的)的排序规则配置你的用户数据库或者甚至用不同于服务器设置的排序规则连接或恢复一个数据库你可以以后修改用户数据库的默认排序规则对于特定的一列你可以指定不同于默认的数据库排序规则的一种排序规则你甚至可以稍后修改列的排序规则——如果该列上没有创建索引的话
虽然在排序规则方面SQL Server 是灵活的不要低估了你在安装时作的选择正如我前面所言服务器的排序规则应用到所有的系统数据库并且决定了记录在系统数据库中所有对象(如登录名数据库名)的排序规则进一步而言tempdb的排序规则也是你在安装过程中选择的服务器排序规则当你创建一个临时表表的列使用tempdb的排序规则——除非你在每列的定义里指明COLLATE 数据库默认
网络库
在说明了排序规则设置后你来到了网络库对话框网络库是客户机应用程序用来和SQL Server通讯的协议客户机和SQL Server都必须有至少一个匹配的网络库通过它两者可以通讯在网络库对话框中你设置SQL Server将会用来和客户机通讯的网络库
在SQL Server 中只有命名管道和多协议允许Windows身份验证所有其他网络库只允许SQL Server身份验证这样一来对于SQL Server 来说你想要支持的登录类型时你选择网络库的一个因素进一步来说只有多协议允许数据加密所以如果你SQL Server 支持数据加密你就不得不选择这个网络库在SQL Server 中所有网络库支持Windows身份验证在这个意义上你就更加灵活但是多协议仍然是唯一允许数据加密的网络库
在SQL Server 里你可以通过使用SQL Server 网络工具和SQL Server客户机网络工具的安全套接字层(Secure Socket LayerSSL)来对所有网络库强制加密这样一来加密因素不再决定网络库的选择同样在SQL Server 里多协议不支持命名实例方案(服务器名\实例名)这样的话当你使用命名实例时多协议也不是个好的选择SQL Server 中最通用的网络库大概是TCP/IP套接字吧它提供了良好的性能允许Windows身份验证而且你可以在需要时对它进行强制SSL加密
大多数使用SQL Server早期版本的用户知道SQL Server的默认TCP端口是端口当使用默认端口时客户机连接除了服务器名或者IP地址不需要提供端口号然而SQL Server 支持多个实例这无法统统使用同样的端口号所以当你安装一个命名实例时安装程序建议把作为端口号端口号为意味着当SQL Server第一次启动时它动态地选择一个空闲的端口号并且把它永久保留或者直到你稍后手工修改它为止那么客户机连接如何继续通过仅仅提供服务器名称/IP地址+实例名而不用指定端口号找到SQL Server呢?SQL Server 中的一个监听器服务监听端口上的客户机请求然后通过检测请求中的实例名并把它和实例的端口号匹配再把该请求重定向到适当的实例
无人值守和远程安装
现在我们的标准安装已经完成让我们讨论一下无人值守安装Setupsqlexe程序让你记录下一个应答文件它包括了你在安装程序对话框中常选的对于各种安装选项的所有回答稍后你能够通过调用以该应答文件作为参数的setupsqlexe命令来运行一个安装这种无需任何用户干预的安装类型被称为无人值守安装
要准备应答文件先启动安装程序在安装选择对话框中选择高级选项在对话框中选择选取记录无人值守ISS文件安装程序会指导你完成常规的安装对话框其中你可以填入所有你想要记录的选项当你完成后安装程序在\WINNT文件夹下创建一个名为setupiss的文件
要启动一个无人值守安装运行setupsqlexe程序用s作为执行安静安装的参数fl参数指定一个应答文件例如要启动一个安静的无人值守的安装——安装完成后不通知你你可以使用以下命令
<path> etupsqlexe –s –fl <path> etupiss
如果你想在安装完成时得到通知从命令行执行如下setupsqlexe程序或者把它写入一个批处理文件中
start /wait <path> etupsqlexe s –fl <path> etupiss
直到安装结束控制才会传递到下一条命令当你从批处理文件启动安装而这个文件又包括其他依赖于安装的行为时使用start /wait选项是特别重要的例如假设你要为一个名为INST的命名实例执行无人值守安装来创建批处理文件然后启动SQL Server服务再运行一个用来创建数据库及其对象(如表存储过程)的sql脚本这个批处理文件看起来可能像这样
start /wait D:\X etup etupsqlexe –s –fl C:\WINNT etupiss
net start MSSQL$INST
OSQL /E /I c:\data cripts\createappdbsql
如果你不使用start /wait选项控制从安装一开始就移到了批处理文件的第二条命令而这条NET START命令试图启动一个还不存在的服务
对一个无人值守安装进行故障排除要比对待标准安装的故障排除更需要慎重对待标准安装往往在安装程序遇到问题时通过显示一个包含出错信息的对话框(并伴有响亮的警告声)来通知你而无人值守安装只是简单地终止且没有交互的通知
要了解如何对无人值守安装进行故障排除让我们来看一组我遇到过的问题假设你已经在服务器上完成了另一个产品的安装然后你试图执行一个SQL Server的无人值守安装安装程序检测到在前一个安装结束后服务器尚未重启于是放弃安装同时没有任何信息提示如果你保持任务管理器窗口打开你会注意到setupsqlexe 程序不活动所以SQL Server没有被安装你也应该检查日志文件一旦安装成功\WINNT etuplog文件应该显示作为出错代码然而在我描述的情景中他很可能显示这表示一个基本错误你也应该看一下出错信息
当执行无人值守安装时我遇到过多次的另一个错误是对话框次序紊乱在我调用安装程序后不久我就意识到这一问题的存在——那是在我打开任务管理器并看到setupsqlexe虽然在运行但是没有像正常的无人值守安装那样调用和释放进程同时安装程序通常在\Program Files\Microsoft SQL Server下创建的文件夹也没有被创建Setupsqlexe程序看来并没有占用CPU或者I/O资源只是在大约分钟后消失了Setuplog文件显示一个的错误代码而sqlstplog文件显示没有错误——实际上它看来还未完成Sqlstp包含了不完整的注意事项只是一条消息——Begin ActionDialogShow<dialogname>BOL显示了以下有关错误代码的信息对话框次序紊乱这是一个常见错误由在安装初始化文件(Setupiss)文件中的一个对话框次序紊乱所引起这是由于Setupiss文件创建过程中的系统问题所产生足以确认在我重新对Setupiss文件排序后无人值守安装成功完成
除了完全安装你还可以执行SQL Server 服务包的无人值守安装要把服务包应用到默认实例上从服务包的安装目录调用setupsqlexe程序指明应答文件为位于服务包安装目录根目录下的sqlkdefiss例如如果服务包安装文件位于c: qlksq下执行入下命令
start /wait c: qlksp\x etup etupsqlexe –s –fl c: qlksp qlkdefiss
要把服务包应用到命名实例上使用sqlknmiss应答文件但是首先修改文件中的下列两行来对应正确的命名实例
InstanceName = INSTANCE_NAME
NMPPipeName=\\\pipe\MSSQL$INSTANCE_NAME ql\query
另一个高级选项——远程安装——让你在一台远程的电脑上安装SQL Server 你可以从一台本地的电脑上手工记录下一个setupiss文件把它复制到远程电脑上在激活setupsqlexe程序和在远程电脑上的setupiss文件然而你可以替自己省些麻烦——通过在本地电脑上运行setupsqlexe程序在电脑名对话框中选择远程电脑指明你想要安装到的电脑名当你点击下一步时远程安装信息对话框会显示出来
首先你要提供帐号细节(用户密码域)到目标文件夹的UNC路径和源安装文件的UNC路径接下来安装程序将指引你完成常规安装对话框并根据你的选择记录下setupiss文件接着程序复制setupiss文件到目标电脑的\WINNT文件夹下再用复制的setupiss文件来激活setupsqlexe
如果你在目标电脑上打开任务管理器你会看到setupsqlexe进程在安装过程中调用和释放其他进程在本地电脑上安装程序显示远程安装正在进行中并且会在完成时通知你
最后的话
虽然基本安装看来简单你仍需队与你所选择的安装选项给予密切注意并且完全理解它们良好的安装选择为运行和管理SQL Server提供了一个坚实的基础而如果你认为执行无人值守安装和远程安装听起来复杂的话我希望这篇文章有助于你对它们加深了解
[] []