SQL Server 2008宝典(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第3部分 基础操作篇

第4章 数据库服务器管理

本章包括

◆ SQL Server 2008的工作模式

◆ 配置SQL Server服务

◆ 配置SQL Server 2008服务器

◆ 如何连接与断开数据库服务器

◆ 配置远程SQL Server服务

◆ 查看SQL Server 2008日志

对于一个数据库管理员,最重要的工作就是对数据库服务器和数据库服务进行管理。本章主要介绍数据库服务器的工作模式是什么,如何连接、断开数据库服务器,如何配置本地和远程的SQL Server 2008服务,并介绍如何通过日志来查看数据库服务器的运行状态。

4.1 数据库服务器的工作模式

在对SQL Server 2008数据库进行管理之前,要先了解SQL Server数据库服务器如何工作,它的工作模式是什么。SQL Server有两种工作模式,一种是C/S模式,另一种是B/S模式。

4.1.1 C/S模式

C/S模式,就是客户机/服务器(Client/Server)模式的简称。在这种模式下,服务器通常是一台配置和性能比较高的、专用的服务器计算机,而对客户机的要求就比较低了。一般来说,普通的PC只要安装了客户端软件即可作为客户机使用。

在这种模式下,主要的计算、接收处理数据的工作,都在客户端上完成。客户端处理完数据之后,再提交给服务器,服务器的功能主要是完成数据的管理工作。这么一来,大量的工作都已经在客户机上完成了,可以有效地减少服务器的负担,而且客户端的响应速度很快。缺点是这种模式大多运行在局域网中,而且维护、升级都不方便。

图4.1是C/S模式的示意图。其中,服务器端计算机为安装了SQL Server 2008服务器组件和工具的计算机,客户端为安装了SQL Native Client的计算机。

图4.1 C/S模式示意图

4.1.2 B/S模式

B/S模式是浏览器/服务器(Browser/Server)模式的简称。在这种模式下,通常使用了两种服务器,如图4.2所示,一台用做数据库服务器,另一台用做Web服务器。客户端计算机通常是一台安装了浏览器(例如IE和Netscape等)的普通计算机。Web服务器通常是内存比较大、配置和性能比较高的计算机,它是客户端计算机和数据库服务器中间的“桥梁”,客户端提交过来的信息都由Web服务器处理,处理完之后,将结果传递给数据库服务器。数据库服务器的作用通常是完成数据管理工作。

图4.2 B/S模式

在B/S模式下,客户端计算机可能完成的功能比较少,主要用于浏览、查询信息,但是它的优点也恰恰体现在这里:对客户端的要求很小、几乎无须维护和升级,只要有网络,任何一台计算机都可以连接到Web服务器上操作数据。SQL Server 2008与XML紧密结合,也支持B/S的工作模式。

4.2 连接与断开数据库服务器

本章前面在介绍数据库服务器工作模式的时候,提到过SQL Server 2008支持C/S工作模式,服务器主要完成数据的存储和管理任务,客户端主要完成数据运算和结果显示任务。那么,在使用SQL Server 2008客户端的时候,就必需和SQL Server服务器相连接,才能对数据库的数据进行操作管理。由于SQL Server 2008允许将服务器端和客户端安装在同一台计算机上,所以利用SQL Server 2008客户端连接SQL Server 2008服务器有两种类型:一种是连接本地数据库服务器,另一种是连接网络数据库服务器。

4.2.1 用SQL Server Management Studio连接服务器

SQL Server Management Studio是一个强大的客户端管理工具,用它来管理数据库服务器时,必需先将它连接到数据库服务器上。连接方法如下:

step 1 在Windows操作系统中选择【开始】→【所有程序】→【Microsoft SQL Server 2008】→【SQL Server Management Studio】选项,启动SQL Server Management Studio程序,此时会打开如图4.3所示的【连接到服务器】对话框。

图4.3 连接服务器

step 2 在【服务器类型】下拉列表框中提供了5种可选服务器类型:数据库引擎、Analysis Services、Reporting Services、SQL Server Compact Edition和Integration Services。本例选择常用的【数据库引擎】选项。

step 3 在【服务器名称】下拉列表框中显示的是本机的SQL Server服务器名,在这里也可以输入其他服务器的名称。如果要连接的是命名实例,可填写“服务器名\实例名”形式的信息。

注意 在SQL Server 2008中,可以把不同类型的数据库服务器安装在不同的计算机上。所以在输入服务器名称时,要先确定它是不是这个服务器类型的数据库服务器。如果出现下拉列表框让用户选择,SQL Server 2008会自动判断。

step 4 如果在【服务器名称】下拉列表框中没有找到所要连接的服务器,可以选择【浏览更多】选项,打开【查找服务器】对话框,如图4.4所示,在【本地服务器】选项卡里可以选择要连接的服务器类型、服务器名称及实例名称。

图4.4 查找本地服务器

step 5 如果要连接的数据库服务器不是本地服务器,则在【查找服务器】对话框中打开【网络服务器】选项卡,如图4.5所示,在这里可以选择网络上的SQL Sever服务器和实例。

图4.5 查找网络服务器

step 6 选择完毕后,单击【确定】按钮,回到【连接到服务器】对话框。在【身份验证】下拉列表框中可选择Windows身份验证和SQL Server身份验证两种方式。如果选择的是SQL Server身份验证方式,还要输入用户名和密码。

step 7 单击【选项】按钮,弹出如图4.6所示的【连接属性】选项卡。

图4.6 设置连接属性

◆ 在【连接到数据库】下拉列表框中,可以选择登录服务器后的默认数据库。

◆ 在【网络协议】下拉列表框中,可选择Shared Memory,TCP/IP和Named Pipes三种协议。

◆ 在【网络数据包大小】数值框中,可以输入要发送的网络数据包的大小,默认为4096字节。

◆ 在【连接超时值】数值框中,可以输入SQL Server客户端和服务器建立连接超时之前等待的秒数,默认值是15秒。如果网络速度较慢,此值可以设得稍大一点。

◆ 在【执行超时值】数值框中,可以输入在服务器上完成任务执行之前等待的秒数,默认为0秒,也就是无超时限制。

◆ 如果选中【加密连接】复选框,则强制对连接进行加密。需要注意的是,SQL Server 2008客户端和服务器端都必须安装数字证书后才能使用此功能。

step 8 设置完毕后,单击【连接】按钮,连接到数据库服务器上。连接后的SQL Server Management Studio界面如图4.7所示。

图4.7 SQL Server Management Studio显示已注册的服务器

一般来说,没有特殊原因,采用默认的选项值就可以连接到数据库服务器了。这时,只需在图4.3所示的对话框中单击【连接】按钮,即可连接到数据库服务器。

4.2.2 在已注册的服务器中添加服务器组与服务器

在SQL Server Management Studio的【对象资源管理器】窗格中列出的是常用的服务器与实例,本例中显示的是本地默认的实例。

在SQL Server 2000的企业管理器中,可以将不同的SQL Server服务器划分在不同的组里。利用组的划分,可以更方便地管理企业中的SQL Server服务器。例如,可以将分属不同部门的SQL Server服务器放在不同的服务器组之下。在SQL Server 2008中,这个功能被放在了【对象资源管理器】窗格中,如图4.7所示。

注册服务器实际上只是保存服务器的连接信息,而并非真正连接到服务器上,将来需要时再真正连接到服务器上。在注册服务器时,必须指定的内容有:服务器类型、服务器名称、登录到服务器时使用的身份验证信息。

4.2.2.1 添加服务器组的方法

说明 无论是注册服务器还是连接服务器,必须指定的内容都是:服务器类型、服务器名称或IP和登录到服务器时使用的身份验证信息。

添加服务器组的步骤如下。

step 1 在【对象资源管理器】窗格中右击【数据库引擎】项,在弹出的快捷菜单中选择【新建】→【服务器组】选项,打开图4.8所示的【新建服务器组属性】对话框。在【组名】文本框中输入新建的服务器组名称,在【组说明】文本框中可以输入对该组的描述信息。

图4.8 新建服务器组

说明 添加SQL Server服务器组和添加文件夹类似,也可以建立子服务器组。本例中,先建立了一个名为“北京中医药大学”的服务器组,在该服务器组下又建立了“信息中心”和“远程教育学院”两个子服务器组。信息输入完毕之后,单击【保存】按钮,创建新的服务器组。

step 2 创建新的服务器组之后,可以在【对象资源管理器】窗格中看到刚才新建的几个服务器组,如图4.9所示。

图4.9 新建的服务器组

4.2.2.2 新建服务器注册

新建服务器注册的方法如下。

step 1 在【对象资源管理器】窗格中,右击【数据库引擎】项或其他已存在的服务器组名。本例中右击【远程教育学院】服务器组,在弹出的快捷菜单里选择【新建】→【服务器注册】选项,打开图4.10所示的【新建服务器注册】对话框。

图4.10 新建服务器注册

提示 在图4.10所示的【新建服务器注册】对话框里还有一个【连接属性】选项卡,该选项卡的内容与图4.6所示的【连接属性】选项卡一样,这里不再赘述。

step 2 在【服务器名称】下拉列表框中选择或输入要连接的服务器名,然后选择或输入正确的身份验证方式。本例中,将服务器名称设置为“Server”,将身份验证方式设置为SQL Server身份验证,设置登录名为sa。输入正确的密码之后,单击【测试】按钮,如果弹出如图4.11所示的对话框,则表示测试成功。

图4.11 连接测试成功

step 3 如果单击【测试】按钮后弹出如图4.12所示的对话框,则可能是身份验证未通过。检查一下身份验证方式是否有误,或者登录名和密码是否正确。

图4.12 登录失败

step 4 如果单击【测试】按钮后出现图4.13所示的对话框,则可能是服务器名称输入错误,或者服务器没能正常运行,还可能是服务器的防火墙阻止了连接。

图4.13 注册服务器失败

step 5 测试连接正确后,单击【新建服务器注册】对话框中的【保存】按钮,可将此服务器的注册信息保存到【对象资源管理器】窗格中,如图4.14所示。

图4.14 添加服务器的注册信息

4.2.2.3 删除已添加的服务器组或注册的服务器

删除已添加的服务器组与删除注册的服务器的方法是一样的:右击要删除的服务器组或注册的服务器名,在弹出的快捷菜单中选择【删除】选项,然后在弹出的【确认删除】对话框里单击【是】按钮即可。

4.2.2.4 移动注册的服务器

在SQL Server 2008中,可以把已经注册的服务器移动到其他服务器组中,或在不同服务器组间移动,也可以从服务器组中移动出来(不属于任何服务器组)。本例将名为“yundao”的服务器移动到【远程教育学院】服务器组里,方法如下:

step 1 右击名为“yundao”的服务器,在弹出的快捷菜单里选择【移动】选项。

step 2 在弹出的【移动服务器注册】对话框中,展开服务器组列表,找到【数据库引擎】→【北京中医药大学】选项。单击选中【远程教育学院】服务器组,然后单击【确定】按钮,完成移动操作。

4.2.2.5 导入与导出注册的服务器

在SQL Server 2008中,允许将已经建好的服务器组和服务器注册导出到文件中。如果有需要,可以再次导入到本机或其他计算机的【对象资源管理器】窗格中。

导出已注册的服务器信息的方法如下:

step 1 在【对象资源管理器】窗格中右击要导出的服务器组,在弹出的快捷菜单中选择【任务】→【导出】选项。

step 2 打开【导出已注册的服务器】对话框,如图4.15所示。在列表框里选择包含要导出信息的单个服务器或服务器组,然后选择导出文件的地址及文件名。如果选中了【不要在导出文件中包含用户名和密码】复选框,则导出的文件将不包括注册信息里的用户名和密码。也就是说,下次导入服务器注册信息时,里面不包含用户名和密码信息,在连接服务器时要重新输入。在本例中,导出的信息里包含用户名和密码。

图4.15 导出已注册的服务器

说明 可以导出单个服务器、所有已注册的服务器组或服务器组下的某个子集。

step 3 单击【确定】按钮,将信息导出到D盘的“导出.regsrvr”文件中。用记事本打开导出的文件,可以看到这是一个标准的XML文件。

    <? xml version="1.0" encoding="utf-8"? >
    <Export serverType="8c91a03d-f9b4-46c0-a305-b5dcc79ff907">
      <ServerType id="8c91a03d-f9b4-46c0-a305-b5dcc79ff907" name="数据库引擎">
        <Group name="北京中医药大学" description="">
          <Group name="信息中心" description="" />
          <Group name="远程教育学院" description="">
          <Server name="server" description="">
            <ConnectionInformation>
              <ServerType>8c91a03d-f9b4-46c0-a305-b5dcc79ff907</ServerType>
              <ServerName>server</ServerName>
              <AuthenticationType>1</AuthenticationType>
              <UserName>sa</UserName>
    <Password>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAgNkICppsSUagZxhc67vY6wAAAAAQAAAARABl
    AGYAYQB1AGwAdAAAAANmAACoAAAAEAAAAK1+ehWVwXCxYjGgWdwPGEAAAAAABIAAAKAAAAAQAAAAgR
    9KuLvAR9AE757Fwq5oDxAAAADCPFRx0N+SFdN0UY3zTR8JFAAAAI8dMBTAKhsa6f5ME52MoAw0Pw/u
    </Password>
              <AdvancedOptions>
                <PACKET_SIZE>4096</PACKET_SIZE>
                <CONNECTION_TIMEOUT>15</CONNECTION_TIMEOUT>
                <EXEC_TIMEOUT>0</EXEC_TIMEOUT>
                <ENCRYPT_CONNECTION>False</ENCRYPT_CONNECTION>
              </AdvancedOptions>
            </ConnectionInformation>
          </Server>
          <Server name="yundao" description="本地实例 -“yundao”">
            <ConnectionInformation>
              <ServerType>8c91a03d-f9b4-46c0-a305-b5dcc79ff907</ServerType>
              <ServerName>yundao</ServerName>
              <AuthenticationType>0</AuthenticationType>
              <UserName />
              <Password />
              <AdvancedOptions />
            </ConnectionInformation>
          </Server>
        </Group>
        </Group>
      </ServerType>
    </Export>

注意代码中加粗显示的内容:ServerType为服务器类型,Group为服务器组,Server为注册的服务器,里面还包含着ServerType(服务器类型)、ServerName(服务器名)和AuthenticationType(身份验证类型)。对于身份验证类型,0表示Windows身份验证方式,1表示SQL Server身份验证方式。如果用的是SQL Server身份验证方式,则包含UserName(用户名)和Password(密码)等信息,其中密码信息是加密的。

注意 如果要在导出的文件里包含用户名和密码信息,必须满足以下两个条件:

◆ 在添加服务器注册时,必须选择SQL Server身份证验证方式。

◆ 在添加服务器注册时,必须选择了【记住密码】复选框,如图4.10所示。

导入已注册的服务器信息的方法如下:

step 1 在【对象资源管理器】窗格中右击服务器组,在弹出的快捷菜单里选择【任务】→【导入】选项。

step 2 在图4.16所示的【导入已注册的服务器】对话框中选择要导入的文件,在【服务器组】列表框中选择要导入的服务器组的位置,然后单击【确定】按钮,导入信息。

图4.16 导入已注册的服务器

step 3 如果在导入服务器注册信息时,SQL Server 2008发现有名称相同的服务器名,会弹出如图4.17所示的【找到现有服务器组】对话框。如果单击【是】或【全是】按钮,该服务器注册信息将会被文件中的服务器信息所取代。

图4.17 找到现有服务器组的提示

4.2.3 使用对象资源管理器连接服务器

在打开SQL Server Management Studio时会弹出图4.3所示的【连接到服务器】对话框,在这个对话框中可以单击【取消】按钮取消连接,也可以在连接服务器后增加另一个服务器的连接。

在对象资源管理器里增加一个服务器连接的方法如下。

step 1 在【对象资源管理器】窗格中展开【连接】下拉列表,选择要连接的服务器类型,本列选择【数据库引擎】选项。

step 2 打开图4.3所示的【连接到服务器】对话框,输入正确的服务器名称和身份验证信息,单击【连接】按钮。本例中连接的是WIN-JNZL5E023CZ服务器。

step 3 如图4.18所示,对象资源管理器列表中已经添加了名为“WIN-JNZL5E023CZ”的服务器连接项。

图4.18 添加服务器连接

4.2.4 通过服务器注册连接到服务器

在前面的章节中,我们已经学习了如何添加服务器注册信息,利用这些已添加的服务器注册信息,可以方便地连接到服务器上。连接方式有两种:

◆ 在【对象资源管理器】窗格中双击要连接的服务器名。如果在添加服务器注册信息时选择的是Windows身份验证,或选择SQL Server身份验证时选中了【记住密码】复选框,那么在【对象资源管理器】窗格中将会直接出现该服务器的连接项,否则会弹出【连接到服务器】对话框,提示输入用户名和密码。

◆ 在【对象资源管理器】窗格中右击要连接的服务器名,在弹出的快捷菜单里选择【连接】→【对象资源管理器】选项,也可以连接到服务器,并在【对象资源管理器】窗格中显示新添加的连接项。

说明 利用【对象资源管理器】窗格中的服务器注册信息,可以在【对象资源管理器】窗格中添加服务器连接。反之,利用【对象资源管理器】窗格里的服务器连接项,也可以在【对象资源管理器】窗格中添加服务器注册信息。在【对象资源管理器】窗格中右击服务器连接项,在弹出的快捷菜单里选择【对象资源管理器】→【注册】选项,然后按提示进行操作即可。

4.2.5 断开与数据库服务器的连接

断开与数据库服务器的连接的方法很简单:在【对象资源管理器】窗格中右击要断开的数据库服务器连接项,在弹出的快捷菜单里选择【断开连接】选项即可。

4.3 使用配置管理器配置SQLServer服务

提到配置SQL Server服务,就不得不提及SQL Server配置管理器。它可以用来管理与SQL Server相关联的服务,可以用来配置SQL Server所使用的网络协议,也可以用来配置客户端计算机的网络连接。SQL Server配置管理器是SQL Server 2000中的服务器网络实用工具、客户端网络实用工具和服务器管理器的集合。

4.3.1 启动/停止/暂停/重新启动服务

启动、停止、暂停和重新启动SQL Server服务的方法有很多,下面介绍4种常用的方法。

4.3.1.1 使用SQL Server配置管理器

利用SQL Server配置管理器,可以启动、停止、暂停和重新启动SQL Server服务,方法如下:

step 1 在Windows操作系统中选择【开始】→【所有程序】→【Microsoft SQL Server 2008】→【配置工具】→【SQL Server Configuration Manager】选项,打开SQL Server配置管理器。

step 2 如图4.19所示为SQL Server配置管理器的界面。单击【SQL Server服务】选项,在右边的窗格中可以查看本地所有的SQL Server服务,包括不同实例的服务。

图4.19 SQL Server配置管理器

step 3 如果要启动、停止、暂停或重新启动SQL Server服务,右击服务名称,在弹出的快捷菜单中选择【启动】、【停止】、【暂停】或【重新启动】选项即可。

4.3.1.2 使用SQL Server Management Studio

注意 暂停与关闭的区别是:暂停服务往往是在关闭数据库之前进行。暂停服务后,连接客户已经提交的任务会继续执行,而新的用户连接请求将会被拒绝。

在SQL Server Management Studio里同样可以完成针对SQL Server服务的操作,具体步骤如下。

step 1 启动SQL Server Management Studio,连接到SQL Server服务器,如图4.20所示。

图4.20 使用SQL Server Management Studio管理服务

step 2 右击服务器名,在弹出的快捷菜单中选择【启动】、【停止】、【暂停】或【重新启动】选项即可。

4.3.1.3 使用操作系统的服务管理功能

由于SQL Server服务是以“服务”的方式在后台运行的,所以可在Windows操作系统的【服务】窗口中进行启动、停止、暂停和重新启动操作,方法如下:

step 1 在Windows操作系统中选择【开始】→【管理工具】→【服务】选项(有些计算机上的菜单可能和这里描述得不一样,没关系,只要找到【服务】选项就可以了)。

step 2 在打开的【服务】窗口中,右击【SQL Server(MSSQLSERVER)】选项,在弹出的快捷菜单中选择【启动】、【停止】、【暂停】或【重新启动】选项即可。

4.3.1.4 使用命令提示符

使用Windows操作系统的命令提示符操作SQL Server服务的方法如下:

step 1 在Windows操作系统中选择【开始】→【运行】选项,在弹出的【运行】对话框中输入“CMD”命令,然后单击【确定】按钮。

step 2 在弹出的命令提示符窗口中,可以用命令来启动或停止SQL Server服务。

◆ 启动SQL Server默认实例的命令:net start mssqlserver。

◆ 停止SQL Server默认实例的命令:net stop mssqlserver。

◆ 暂停SQL Server默认实例的命令:net pause mssqlserver。

◆ 恢复SQL Server默认实例的命令:net continue mssqlserver。

4.3.2 配置服务的启动模式

说明 如果要操作的是命名实例,只需使用“MSSQL$实例名”代替“mssqlserver”即可;如果要操作的服务器是默认实例的SQL代理,只需使用“SQLSERVERAGENT”代替“mssqlserver”即可;如果要操作的服务器是命名实例的SQL代理,只需使用“SQLAgent$实例名”代替“mssqlserver”即可。

SQL Server 2008包含很多服务,有些服务默认是自动启动的,例如SQL Server,而有些服务默认是停止的,例如SQL Server Agent(服务器代理)。SQL Server Agent服务可以帮助管理员完成很多事先预设好的作业,在规定的时间自动完成。但是,如果SQL Server Agent服务没有启动,那么所有作业都不会自动完成了。管理员不一定会在计算机每次重启时记得手动启动SQL Server Agent服务,最好的办法是让此类服务随着系统的启动而启动,这样就可以一劳永逸了。

将SQL Server Agent服务设置为自动启动的方法有两种:一是在SQL Server配置管理器里设置,二是在Windows操作系统的【服务】窗口中设置。

4.3.2.1 在SQL Server配置管理器里设置

在SQL Server配置管理器里设置服务启动模式的方法如下。

step 1 启动SQL Server配置管理器,单击【SQL Server服务】选项,在右侧的服务列表中右击【SQL Server】选项,在弹出的快捷菜单里选择【属性】选项。

step 2 在如图4.21所示的【SQL Server属性】对话框中打开【服务】选项卡,找到【启动模式】选项。单击下三角按钮,在展开的下拉列表框中选择【自动】选项。

图4.21 设置SQL Server服务的属性

step 3 单击【确定】按钮关闭对话框。以后,SQL Server服务就会随着操作系统的启动而自动启动了。

4.3.2.2 在操作系统的【服务】窗口里设置

除了可以在SQL Server配置管理器里设置服务自动启动之外,在Windows操作系统的【服务】窗口里也可设置,因为SQL Server服务也受操作系统的统一管理。下面还是以设置SQL Server服务为例,具体方法如下:

step 1 在Windows操作系统中选择【开始】→【所有程序】→【管理工具】→【服务】选项,打开【服务】窗口。

step 2 在服务列表中右击【SQL Server】选项,在弹出的快捷菜单里选择【属性】选项。

step 3 在弹出的【SQL Server的属性】对话框中(如图4.22所示),展开【启动类型】下拉列表框,选择【自动】选项。

图4.22 SQL Server服务的常规属性

step 4 单击【确定】按钮,完成操作。

注意 设置其他SQL Server服务启动模式的方法也是如此,取消自动启动的方法也类似。

4.3.3 更改登录身份

在安装SQL Server 2008时,安装步骤中有一步是设置登录SQL Server 2008时使用的账户,不清楚的读者可以查看第2章图2.28所示的界面。在安装完SQL Server 2008之后,还可以重新设置这个登录账号。下面以修改【SQL Server】服务为例,介绍设置方法。

step 1 启动SQL Server配置管理器,单击【SQL Server服务】选项,在服务列表中右击【SQL Server】选项,在弹出的快捷菜单中选择【属性】选项。

step 2 在图4.23所示的【SQL Server属性】对话框中,可以设置登录身份。在【内置账户】下拉列表框中,有三个可选项:【Local System】, 【Local Service】和【Network Service】。

图4.23 设置登录身份

【Local System】:此选项指定本地系统账户为登录的内置账户。指定为本地系统之后无需密码,就可以连接到同一台计算机上的SQL Server。

【Local Service】:此选项指定一个特殊账户为内置账户,它与通过身份验证的用户账户类似。本地服务账户与Windows中的Users组的成员具有相同级别的资源和对象访问权限。

【Network Service】:与本地服务相似,以网络服务身份运行的服务将使用计算机账户的凭据访问网络资源。

说明 可以选择【本账户】登录方式,需要指定一个使用Windows身份验证的本地用户账户或域用户账户来登录SQL Server。

step 3 设置完毕后单击【确定】按钮。

4.3.4 SQL Server 2008使用的网络协议

SQL Server 2008支持的网络协议有以下4种。

Shared Memory协议:共享内存协议,是一种最简单的协议,没有什么可以配置的属性。因为在网络上,不同的计算机是不能共享内存的,所以使用共享内存协议的客户端计算机仅可以连接到同一台计算机运行SQL Server实例。这就意味着共享内存协议对大多数网络数据库操作而言,是没有什么作用的,只有在其他协议配置有误时,才用它来进行测试及故障排除。

Named Pipes协议:命名管道是一个专门指定的单向或双向通道,用于管道服务器与一个或多个管道客户端之间的通信。在默认情况下,对于默认实例来说,SQL Server 2008侦听的是“\\.\pipe\sql\query”管道;对于命名实例来说,SQL Server 2008侦听的是 “\\.\pipe\MSSQL$实例名\sql\query”管道。在局域网里,使用命名管道的速度比较快。

TCP/IP协议:TCP/IP协议是包括TCP协议、IP协议、UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组,是Internet中使用得最广泛的通信协议,也是目前在商业中最常用的协议。它可以与互联网络中的各种操作系统、不同硬件结构的计算机进行通信,并且能提供高效、安全的功能。通常,SQL Server服务器端与客户端在广域网上都使用TCP/IP协议进行通信。

VIA协议:虚拟接口适配器协议,采用网卡的物理地址和端口号来配置SQL Server服务,一般和VIA网卡一同使用,多用于局域网连接。

说明 一般来说,如果服务器端和客户端在同一台计算机中,使用共享内存协议;在局域网中,使用管道协议和TCP/IP协议的区别不大;在广域网中使用TCP/IP协议。VIA协议是SQL Server 2008新支持的协议,但是用得很少。

4.3.5 为SQL Server 2008配置共享内存协议

无论SQL Server使用什么协议,只有服务器端和客户端都使用了相同的协议,才能进行正常的通信。所以,为SQL Server 2008配置协议必须分服务器端和客户端。

4.3.5.1 配置使用共享内存协议的服务器端

配置使用共享内存协议的服务器端的方法如下。

step 1 打开SQL Server配置管理器,如图4.24所示。在列表中选择【SQL Server配置管理器(本地)】→【SQL Server网络配置】→【MSSQLSERVER的协议】选项。本例中,【MSSQLSERVER的协议】是默认实例的协议。

图4.24 设置服务器端的共享内存协议

step 2 在【协议名称】栏中,右击【Shared Memory】选项,在弹出的快捷菜单里选择【启用】选项。

step 3 SQL Server配置管理器打开【警告】对话框,提示要停止并重新启动此服务之后,更改才会生效,单击【确定】按钮。

step 4 用本章4.3.1节介绍的方法重新启动SQL Server服务。

4.3.5.2 配置使用共享内存协议的客户端

配置使用共享内存协议的客户端方法如下:

step 1 打开SQL Server配置管理器,选择【SQL Server配置管理器(本地)】→【SQL Native Client 10.0配置】→【客户端协议】选项,如图4.25所示。

图4.25 设置客户端的共享内存协议

step 2 在协议列表的【名称】栏里,右击【Shared Memory】选项,在弹出的快捷菜单中选择【启用】选项。

4.3.5.3 测试所使用的协议是否成功

配置完共享内存协议后,需要测试所使用的协议是否成功,步骤如下。

step 1 打开SQL Server配置管理器,在列表中选择【SQL Server配置管理器(本地)】→【SQL Server网络配置】→【MSSQLSERVER的协议】选项,把除Shared Memory之外的协议全部设置为禁用。

step 2 打开SQL Server Management Studio,在弹出的【连接到服务器】对话框中,展开【服务器名】下拉列表框,选择本地计算机名,然后单击【选项】按钮。

step 3 在图4.6所示的对话框中,展开【网络协议】下拉列表框,选择【Shared Memory】选项。

step 4 单击【连接】按钮,即可连接上SQL Server服务器。

说明 因为内存只能在同一台计算机内共享,所以客户端所连接的SQL Server服务器也必须是同一台计算机,否则连接会失败。

4.3.6 为SQL Server 2008配置管道协议

为SQL Server 2008配置管道协议与配置共享内存协议一样,也分为服务器端配置和客户端配置。

4.3.6.1 配置使用管道协议的服务器端

以下操作是在一台名为“CISCO”的服务器上完成的。

step 1 打开SQL Server配置管理器,选择【SQL Server配置管理器(本地)】→【SQL Server网络配置】→【MSSQLSERVER的协议】选项。

step 2 在协议列表的【名称】栏中,右击【Named Pipes】选项,在弹出的快捷菜单里选择【属性】选项。

step 3 在图4.26所示的【Named Pipes属性】对话框中,【管道名称】属性的默认值是“\\.\pipe\sql\query”,这里不需要修改它。

图4.26 Named Pipes协议的属性

说明 “\\”用于网络连接,“\\.”表示的是本机。

step 4 将【已启用】选项设置为【是】,单击【确定】按钮。

step 5 重新启动SQL Server服务。

4.3.6.2 配置使用管道协议的客户端

以下操作可以在CISCO服务器上完成,也可以在另一台客户机上完成。本例是在CISCO服务器和名为“YUNDAO”的客户机上分别完成的,操作步骤完全一样。

step 1 打开SQL Server配置管理器,选择【SQL Server配置管理器(本地)】→【SQL Native 10.0 Client配置】选项。

step 2 在协议列表的【名称】栏里,右击【Named Pipes】选项,在弹出的快捷菜单中选择【属性】选项。

step 3 在弹出的【Named Pipes属性】对话框里,【默认管道】属性的值是“sql\query”,如果服务器端没有修改它,这里也不用修改。

step 4 将【已启用】选项设置为【是】,单击【确定】按钮。

4.3.6.3 测试所使用的管道协议是否成功

本例在CISCO服务器上进行测试,以下操作都在CISCO服务器上完成。

step 1 打开SQL Server配置管理器,在列表中选择【SQL Server配置管理器(本地)】→【SQL Server网络配置】→【MSSQLSERVER的协议】选项,把除Named Pipes之外的协议全部设置为禁用。

step 2 选择【SQL Server配置管理器(本地)】→【SQL Native Client 10.0配置】选项,在客户端协议中,将Named Pipes协议之外的所有协议设置为禁用。

step 3 打开SQL Server Management Studio,在弹出的【连接到服务器】对话框中展开【服务器名】下拉列表框,选择【CISCO】选项,然后单击【选项】按钮。

step 4 在图4.6所示的对话框中,展开【网络协议】下拉列表框,选择【Named Pipes】选项。

step 5 单击【连接】按钮,即可连接上SQL Server服务器。

当服务器端和客户端在同一台计算机上时,测试很成功。那么,如果客户端和服务器端不在同一台计算机上时,测试是否也会这么成功呢?下面例子中,名为“CISCO”的计算机为服务器端计算机,名为“YUNDAO”的计算机为客户端计算机。

step 1 在CISCO服务器端,打开SQL Server配置管理器,将Named Pipes协议之外的所有协议都设置为禁用。

step 2 在YUNDAO客户端,打开SQL Server配置管理器,将Named Pipes协议之外的所有协议都设置为禁用。

step 3 在YUNDAO客户端,打开SQL Server Management Studio。在弹出的【连接到服务器】对话框中展开【服务器名】下拉列表框,选择【CISCO】选项,然后单击【选项】按钮。

step 4 在图4.6所示的对话框中,展开【网络协议】下拉列表框,选择【Named Pipes】选项。

step 5 单击【连接】按钮,看看是否能成功连接SQL Server服务器。

此时,相信大多数用户看到的都是图4.27所示的“无法连接到服务器”信息。

图4.27 无法连接到服务器

为什么在本机测试没问题,而一到网络测试就不行了呢?这是因为,管道是一种简单的进程间通信(IPC)机制,可以在同一台计算机的不同进程之间,或在跨越一个网络的不同计算机的不同进程之间,支持可靠的、单向或双向的数据通信。在进程数据通信之前,必须要以共享方式先建立好管道的连接。在本地计算机中,Windows系统管理员可以很容易地在不同进程之间建立好连接,而在网络上,就需要先手动建立连接。下面以Windows Server 2003为例说明在不同计算机之间建立接连的方法。

step 1 在Windows操作系统中选择【开始】→【运行】选项,在弹出的【运行】对话框中输入“CMD”命令,单击【确定】按钮。

step 2 在如图4.28所示的命令提示符窗口中,输入“net use \\cisco\ipc$”,然后按下【Enter】键。

图4.28 命令提示符窗口

step 3 此时,系统提示输入用户名和密码。输入正确的用户名和密码后,成功建立连接。

“Net use”是个连接网络计算机共享资源或断开网络计算机共享资源的命令,“\\”后面跟着的是计算机名称,“ipc$”表示的是远程的IPC连接。如果要断开这个连接,可用“net use \\cisco\ipc$ /delete”命令。欲知更多的命令,请输入“net use /?”或“net /?”来查询。

建立好连接之后,SQL Server的服务器端和客户端程序就能自由连接并通信了。重复前面测试操作的第3步到第5步,可以很顺利地连接上SQL Server服务器了。

测试到此并没有结束,因为前面配置管道协议时,用的都是默认值。如果用的不是默认值,又要怎么操作呢?下面还是以CISCO服务器和YUNDAO客户机作为示例进行说明。

step 1 按本章4.3.6.1节介绍的方法在CISCO服务器上设置管道协议,在第3步时,将【管道名称】属性设置为“\\.\pipe\sql\myquery”。

step 2 按本章4.3.6.2节介绍的方法在YUNDAO客户机上设置管道协议,同样在第3步时,将【默认管道】属性设置为“sql\myquery”。

step 3 重复前面的测试步骤,可以发现,即使建立了IPC连接,也会出现图4.27所示的警告信息。要解决这个问题,就要用到“别名”了。

step 4 在YUNDAO客户机上,打开SQL Server配置管理器,展开左侧的【SQL Server配置管理器(本地)】→【SQL Native Client 10.0配置】选项。

step 5 右击【别名】选项,在弹出的快捷菜单中选择【新建别名】选项。

step 6 在图4.29所示的【别名-新建】对话框中,在【别名】文本框中输入“TESTQUERY”,选择【协议】下拉列表框里的【Named Pipes】选项。在【服务器】文本框里输入“cisco”,在【管道名称】文本框里输入“\\cisco\pipe\sql\myquery”。

图4.29 新建别名

注意 这里必须和服务器端设置得一样。

step 7 单击【确定】按钮,完成别名设置。

step 8 在YUNDAO客户机上,打开【连接到服务器】对话框。在【服务器名】文本框处输入服务器别名testquery,然后单击【选项】按钮。

step 9 在图4.6所示的对话框中,展开【网络协议】下拉列表框,选择【Named Pipes】选项。

step 10 单击【连接】按钮,就可以正常连接到CISCO服务器上了。

说明 为什么要修改管道名呢?用默认的不是很好吗?修改管道名只有一个理由:因为知道SQL Server是用“\\.\pipe\sql\query”作为管道名称的用户太多了,不安全。

4.3.7 为SQL Server 2008配置TCP/lP协议

TCP/IP协议是在Internet网里用得最多的协议,SQL Server支持客户端的远程访问,就不会不支持TCP/IP协议。虽然在局域网里使用命名管道的连接速度比较快,但是一到了广域网,连接速度就比不上TCP/IP协议了。

4.3.7.1 配置使用TCP/lP协议的服务器端

在服务器配置TCP/IP协议的过程与配置命令管道的过程差不多,在这里就不赘述了,本节仅介绍TCP/IP协议的属性选项。图4.30所示为【TCP/IP属性】的【协议】选项卡,有以下几个属性:

图4.30 服务器端的TCP/lP协议

【保持活动状态】:指定传输保持活动状态的数据包的时间间隔,以毫秒为单位,用于检查位于连接远端的计算机是否仍可用。

【全部侦听】:指定SQL Server是否侦听所有绑定到计算机网卡的IP地址。在服务器上,有可能给一个网卡指定多个IP,例如一个内网IP,一个外网IP。如果设置为【否】,则需使用每个IP地址各自的属性对话框对各个IP地址进行配置。

【已启用】:用于设置是否启用TCP/IP协议。

在图4.31所示的【IP地址】选项卡中,一共有三个IP地址的设置范围。如果在【协议】选项卡中,【全部侦听】选项设置为【是】,则【IP地址】选项卡里只设置【IPALL】选项就可以了。如果【全部侦听】选项设置为【否】,则需要在【IP地址】选项卡里对每一个IP地址进行设置。下面介绍这些IP地址的主要选择项。

图4.31 设置lP地址属性

IP地址:用于查看或更改此连接使用的IP地址。本例中列出的是计算机使用的IP地址和IP环回地址“127.0.0.1”,一般不用修改。

TCP动态端口:如果没启用动态端口,这里为空。如果要使用动态端口,这里设置为0。

如果没有启用动态端口,默认端口是1433端口。

说明 什么是端口?一台服务器可能向外提供很多种服务,例如既提供Web服务,也提供FTP服务。那么,通过同一个网卡、同一个IP地址提供的多个服务,在客户端怎么区别呢?所以引入了端口的概念,例如Web服务使用的是80端口,FTP服务使用的是21端口。这么一来,服务器和客户端的通信,就可以通过端口来区分了。设置SQL Server的TCP/IP端口,也是为了和其他服务器区分。

TCP端口:设置TCP协议使用哪个端口。只有客户端和服务器端使用相同的端口才能够连接成功。

活动:查看和设置该IP是否处于活动状态。

已启用:是否启用TCP/IP协议。

4.3.7.2 配置使用TCP/lP协议的客户端

如何配置客户端使用的协议,前面已经很详细地介绍过了。本节主要介绍客户端的【TCP/IP属性】对话框里的各项设置,如图4.32所示。

图4.32 客户端的TCP/lP属性

保持活动状态:与服务器端一样,控制TCP尝试发送包以检查空闲连接是否仍保持原样的频率,默认值为30000毫秒。

保持活动状态的间隔:确定重新传输包直到接收到响应的间隔,默认值为1000毫秒。

默认端口:指定连接到SQL Server服务器时使用的端口,默认为1433端口。此值必须和服务器端的设置一致。

注意 由于数据库引擎的命名实例不能和默认实例使用同一个端口,所以命名实例默认都是动态分配端口的。在连接命名实例时,客户端将尝试从服务器上运行的SQL Server Browser服务获取端口号。如果SQL Server Browser服务没有运行,则必须通过此设置提供端口号。

已启用:是否启用TCP/IP协议。

4.3.7.3 测试所使用的TCP/lP协议是否成功

配置好TCP/IP协议后,需要测试配置是否成功,步骤如下:

step 1 在CISCO服务器端,打开SQL Server配置管理器,把SQL Server 2008服务器端所支持的协议除TCP/IP协议之外,全部设置为禁用。

step 2 在YUNDAO客户端打开SQL Server Management Studio。在弹出的【连接到服务器】对话框中,展开【服务器名】下拉列表框,选择【CISCO】选项,然后单击【选项】按钮。

step 3 在图4.6所示的对话框中,展开【网络协议】下拉列表框,选择【TCP/IP】选项。

step 4 单击【连接】按钮,就可以连接上SQL Server服务器了。

注意 TCP/IP协议比较简单,在本机和网络中的测试方法和测试结果都是一样。在客户端也可以设置TCP/IP协议的别名,读者可以自行测试。

4.3.8 配置客户端网络协议的使用顺序

无论在服务器端还是在客户端,都可以使用多个网络协议。那么在客户端连接SQL Server服务器的时候,会先尝试用哪个协议进行连接呢?这就涉及网络协议使用顺序的问题。在客户端设置网络协议使用顺序的方法如下:

step 1 打开SQL Server配置管理器,选择左侧的【SQL Server配置管理器(本地)】→【SQL Native Client 10.0配置】→【客户端协议】选项。

step 2 在右侧的各栏中,右击任何一个协议,在弹出的快捷菜单中选择【顺序】选项。

step 3 在如图4.33所示的【客户端协议属性】对话框中,可以禁用和启用网络协议,也可以单击上下箭头按钮排列协议的使用顺序。通过【启用Shared Memory协议】复选框还可以设置是否启用共享内存协议。

图4.33 客户端协议的属性

step 4 单击【确定】按钮完成设置。设置完后,在SQL Server配置管理器窗口中可以看到所设置的协议顺序,如图4.34所示。

图4.34 在SQL Server配置管理器中查看协议顺序

注意 如果启用了共享内存协议,SQL Server会自动把它设置为首选项。建议使用顺序为:共享内存、TCP/IP、管道。

4.3.9 隐藏实例

本章4.2.1节介绍连接SQL Server服务器的过程中,在图4.3所示的【连接到服务器】对话框中,【服务器名称】下拉列表框中所列的是常用的SQL Server服务器名。如果没有显示需要的服务器名,可以选择【浏览更多】选项来查找网络中的SQL Server服务器。

当SQL Server服务器放在广域网中时,让对方可以轻易找到SQL Server服务器名和实例名,无疑会增加风险。在SQL Server 2008中,可以把实例隐藏起来,减少安全风险。隐藏方法如下。

step 1 启动SQL Server配置管理器,选择【SQL Server配置管理器(本地)】→【SQL Server网络配置】选项。

step 2 右击【MSSQLSERVER的协议】选项,在弹出的快捷菜单中选择【属性】选项。

step 3 在图4.35所示的【MSSQLSERVER的协议属性】对话框中,将【隐藏实例】选项设置为【是】。

图4.35 设置MSSQLSERVER的协议属性

step 4 单击【确定】按钮完成设置。

step 5 使用前面学习过的方法重启SQL Server服务。

这种办法不但可以隐藏默认实例,还可以隐藏命名实例。设置完之后,在SQL Server 2008的客户端上的管理工具,就无法自动探测到SQL Server 2008的服务器了。

注意 虽然在客户端上的管理工具不能自动探测到SQL Server 2008的服务器,但是只要知道SQL Server服务器名和实例名,一样可以连接到服务器上,并不影响客户端管理工具的使用。

4.4 配置远程SQL Server服务

这个话题很有意思,SQL Server 2008允许数据库管理人员坐在家里,远程连接到SQL Server服务器上,并进行启动、停止、暂停、重启服务等操作,甚至能对服务器进行配置,就像在本机上操作一样。

4.4.1 配置远程SQL Server服务的权限

要想配置远程SQL Server服务器,必须拥有足够的权限。如果没有权限,一切配置都是空谈。为了让客户端计算机拥有操作服务器端计算机的权限,最简单的办法就是用服务器端的Administrator用户登录。Administrator用户,也就是超级用户,它拥有对服务器操作的完全控制权限。

通常,在客户端也是用Administrator用户登录计算机的,如果想让客户端的Administrator用户也能登录服务器,只要将客户端的Administrator用户的密码改成与服务器端的Administrator用户密码一样就可以了。在客户端连接SQL Server服务器时,就可以用Windows身份验证方式来验证了。

4.4.2 用SQL Server Management Studio停止和启动远程SQL Server服务

举例:客户端计算机名为“YUNDAO”,服务器端计算机名为“CISCO”,在客户端用SQL Server Management Studio连接到服务器端SQL Server服务器,停止和启动SQL Server服务。

step 1 在YUNDAO客户机上,以Administrator身份登录。

step 2 将YUNDAO客户机的Administrator用户的密码设置为和CISCO服务器上的Administrator用户的密码一样。

step 3 在YUNDAO客户机上,启动SQL Server Management Studio,弹出如图4.36所示的【连接到服务器】对话框。在【服务器类型】下拉列表框中选择【数据库引擎】选项,将【服务器名称】下拉列表框设置为【CISCO】。在【身份验证】下拉列表框中选择【Windows身份验证】选项。虽然【用户名】下拉列表框是灰色不可选的,但还是可以看到要登录到CISCO服务器上的用户是Administrator。

图4.36 连接到服务器

step 4 单击【连接】按钮,连接到WIN-JNZL5E023CZ服务器上,打开图4.37所示的SQL Server Management Studio窗口。在【对象资源管理器】窗格中可以看到已经连接了三个SQL Server服务器,一个是名为“(local)”的本地SQL Server服务器,一个是名为“WIN-JNZL5E023CZ”的SQL Server服务器,还有一个是名为“WIN-JNZL5E023CZ\SQLSERVER2008”的SQL Server服务器。

图4.37 连接了三个服务器的SQL Server Management Studio

step 5 右击WIN-JNZL5E023CZ服务器,在弹出的快捷菜单中,可以看到有【停止】、【暂停】和【重新启动】三个选项。选择【停止】选项,将WIN-JNZL5E023CZ上的SQL Server服务停止。停止服务后的SQL Server Management Studio窗口如图4.38所示。请留意WIN-JNZL5E023CZ前的图标已经改变。

图4.38 两个服务停止后的SQL Server Management Studio

step 6 如果要重新启动SQL Server服务,右击WIN-JNZL5E023CZ服务器,在弹出的快捷菜单中选择【启动】选项即可。

4.4.3 通过已注册的服务器启动远程SQL Server服务

用本章4.4.2节介绍的办法,要先连接到SQL Server服务器,然后才可以对SQL Server服务器进行启动、停止、暂停、继续和重新启动操作。但是,如果在连接SQL Server服务器之前,SQL Server服务本来就是停止的,上述方法就不可行了。因为SQL Server服务没有启动,是不能建立连接的。如果在这些操作之前进行过SQL Server服务器的注册,还是可以启动SQL Server服务的。启动方法如下:

step 1 保证在客户端计算机上有足够的操作权限,才能操作SQL Server服务器。

step 2 启动SQL Server Management Studio,打开【对象资源管理器】窗格,如图4.38所示。

step 3 选中要启动的数据库服务器并右击,在弹出的快捷菜单里选择【启动】选项,启动SQL Server服务。

4.4.4 使用SQL Server配置管理器远程管理SQL Server服务

用本章4.4.2节介绍的办法,可以在连接上SQL Server服务器后对服务器进行重新启动等操作。用本章4.4.3节介绍的办法,可以通过已注册的SQL Server服务器进行启动等操作。但是,还有一种情况,就是SQL Server服务原本就是停止的,而且事先也没有注册过服务器,那么还有其他办法远程启动SQL Server服务吗?

答案是可以的。本章4.3节中介绍的SQL Server配置管理器,在启动之后,左侧树型目录最上面的根目录名是“SQL Server配置管理器(本地)”。即然有“本地”二字,那是不是还会有“网络”呢?

如果SQL Server配置管理器直接连到服务器上,那么配置SQL Server就是一件容易的事情,详细步骤如下所示。

step 1 保证在客户端计算机上拥有足够的权限来操作SQL Server服务器。

step 2 在Windows操作系统中选择【开始】→【管理工具】→【计算机管理】选项,打开【计算机管理】窗口。

step 3 选中【计算机管理(本地)】选项,然后在窗口的菜单栏上选择【操作】→【连接到另一台计算机】选项。

step 4 在图4.39所示的【选择计算机】对话框中,选择【另一台计算机】单选按钮,然后在文本框中输入要连接的SQL Server服务器名,本例为“CISCO”。

图4.39 选择计算机

step 5 连接SQL Server服务器后的【计算机管理】窗口如图4.40所示。选择【计算机管理(本地)】→【服务和应用程序】→【SQL Server配置管理器】→【SQL Server服务】选项。现在好了,在这里可以对远程SQL Server服务器进行任何配置。

图4.40 计算机管理

4.5 配置SQL Server 2008服务器

服务与服务器是两个不同的概念,服务器是提供服务的计算机,配置服务器主要是对内存、处理器和安全性等几个方面进行操作。由于SQL Server 2008服务器的设置参数比较多,这里选一些比较常用的进行介绍。

配置SQL Server 2008服务器的办法:启动SQL Server Management Studio,在【对象资源管理器】窗格中,右击要配置的服务器(实例)名,在弹出的快捷菜单里选择【属性】选项。下面介绍各选项页里的内容。

4.5.1 服务器属性的常规设置

图4.41所示的是服务器属性的【常规】选项页,此处功能是查看服务器的属性,例如服务器名、操作系统和CPU数等。此处各项只能查看,不能修改。选项页中有以下项目。

图4.41 服务器属性的常规设置

名称:显示服务器(实例)的名称。

产品:显示当前运行的SQL Server的版本。

操作系统:显示当前运行的操作系统及版本号。

平台:显示运行SQL Server的操作系统和硬件。

版本:显示当前运行的SQL Server版本号。

语言:显示当前的SQL Server实例所使用的语言。

内存:显示当前服务器上安装的内存大小。

处理器:显示当前服务器上安装的CPU数量。

根目录:显示当前SQL Server实例所在的目录。

服务器排序规则:显示当前服务服务器采用的排序规则。

已群集化:显示是否安装了SQL Server 2008服务器群集。

4.5.2 服务器属性的内存设置

如图4.42所示的是服务器属性的【内存】选项页,其中有以下项目。

图4.42 服务器属性的内存设置

使用AWE分配内存:32位的操作系统最多只能支持4GB的内存,然而大型的SQL Server 2008服务器的物理内存可以扩展到64GB。如果要使用大于4GB的内存,就要用到Windows 2000和Windows Server 2003地址窗口化扩展插件(AWE)API来进行识别和分配了。这个选项是指定SQL Server利用AWE来支持超过4GB以上的物理内存。

说明 如果数据库服务器的内存没有超过4GB,就不用选择此项。

最小服务器内存:该项指定分配给SQL Server的最小内存,低于这个值的内存是不会被释放的。

技巧 要根据当前实例的大小和活动设置此值,以确保操作系统不会从SQL Server请求过多的内存,以免影响SQL Server的性能。

最大服务器内存:该项指定分配给SQL Server的最大内存。

说明 除非知道有多少个应用程序与SQL Server同时运行,并且知道这些应用程序要使用多少内存,那样才可以将此项设置为特定值;否则,就不必设置此项,让应用程序按需请求内存。

创建索引占有的内存:该项指定在索引创建排序过程中要使用的内存量。其值为0时,表示由操作系统动态分配。

说明 一般情况下,此项都不需要设置。不过,也可以输入704~2147483647之间的数值。

每次查询占用的最小内存:该项指定为执行查询分配的内存量,默认为1024KB。

说明 如果经常执行的SQL查询语句涉及到排序,或要查询的数据量很大,可以将此值设置得大一些。此值的范围为512KB~2147483647KB。

配置值和运行值:配置值显示本对话框上选项的配置值,运行值用于查看本对话框上选项的当前运行值,是只读的。

技巧 在配置值修改过后,可以单击【运行值】单选按钮来查看更改是否已经生效,如果没有生效,就要重新启动SQL Server实例。

4.5.3 服务器属性的处理器设置

图4.43所示的是服务器属性的【处理器】选项页,在此页里可以查看或修改CPU选项。一般来说,只有安装了多个处理器时才需要配置此页的选项。选项页里有以下项目。

图4.43 服务器属性的处理器设置

处理器关联:为了执行多任务,Windows 2000和Windows Server 2003有时会在不同的CPU之间移动进程线程,对于操作系统而言,这种活动是高效的,但是对于高负荷的SQL Server而言,该活动会降低其性能,因为每个处理器缓存都会不断地重新加载数据。这种线程与处理器之间的关联就是“处理器关联”。如果将每个处理器分配给特定线程,就会消除处理器的重新加载需求,并减少处理器之间的线程迁移。

I/O关联:与处理器关联类似。此项用于设置是否将SQL Server磁盘I/O绑定到指定的CPU子集。

自动设置所有处理器的处理器关联掩码:此项用于设置是否允许SQL Server设置处理器关联。如果启用,操作系统将自动为SQL Server 2008分配CPU。

自动设置所有处理器的I/O关联掩码:此项用于设置是否允许SQL Server设置I/O关联。如果启用,操作系统将自动为SQL Server 2008分配磁盘控制器。

最大工作线程数:默认设置为0,也就是允许SQL Server动态设置工作线程数。一般来说,此值不用修改。

提升SQL Server的优先级:指定SQL Server是否具有比其他进程优先的处理级别。

说明 如果服务器上主要运行的服务是SQL Server,可以选用此项。

使用Windows线程:使用Windows线程代替SQL Server服务的线程。

注意 此选项仅适用于Windows 2003 Server Edition。

4.5.4 服务器属性的安全性设置

如图4.44所示为服务器属性的【安全性】选项页,可以用来查看或修改服务器的安全选项。下面主要介绍选项页里的以下项目。

图4.44 服务器属性的安全性设置

服务器身份验证:用于更改SQL Server 2008服务器的身份验证方式,与安装SQL Server 2008时的选项相同,提供Windows身份验证模式和混合模式(SQL Server和Windows身份验证模式)两种。

注意 更改安全性配置之后需要重新启动服务。如果是从Windows身份验证模式改到混合模式,不会自动启用sa账户。如果要使用sa账户,要执行带有enable选项的Alter Login命令。

登录审核:此项用于设置是否对用户登录SQL Server 2008服务器的情况进行审核。

说明 如果对用户登录SQL Server 2008服务器的情况进行审核,审核结果会显示在【管理工具】→【事件查看器】的【应用程序】列表中。更改审核级别后,需要重新启动服务。

服务器代理账户:指定是否启用供xp_cmdshell使用的账户。xp_cmdshell是一个T-SQL存储过程,可以生成Windows命令,并以字符串的形式传递和执行。在执行操作系统命令时,代理账户可以模拟登录、服务器角色和数据库角色。

启用C2审核跟踪:C2是一个政府安全等级,它保证系统能够保护资源并具有足够的审核能力。C2模式允许监视对所有数据库实体的所有访问企图。C2审核模式数据保存在默认实例Data目录中的某个文件内,或在命名实例Data目录中的某个文件内。如果审核日志文件达到了200MB的大小限制,SQL Server将创建一个新文件、关闭旧文件,并将所有新的审核记录写入新文件。此过程将继续下去,直到审核数据目录已满或审核被关闭。

说明 C2审核模式将大量事件信息保存在日志文件中,可能会导致日志文件迅速增大。如果保存日志的数据目录空间不足,SQL Server将自行关闭。

跨数据库所有权链接:选中此项将允许数据库成为跨数据库所有权链的源或目标。

4.5.5 服务器属性的连接设置

如图4.45所示为服务器属性的【连接】选项页,其中主要有以下项目。

图4.45 服务器属性的连接设置

最大并发连接数:默认值为0,表示无限制,也可以输入数字来限制SQL Server 2008允许的连接数。

注意 如果将此值设置过小,可能会阻止管理员进行连接,但是“专用管理员连接”始终可以连接。

使用查询调控器防止查询长时间运行:为了避免SQL查询语句执行过长时间,导致SQL Server服务器的资源被长时间占用,可以设置此项。选择此项后输入最长的查询运行时间,超过这个时间后,系统会自动终止查询,以释放更多的资源。

默认连接选项:默认连接的选项内容比较多,如表4.1所示。

表4.1 服务器属性的连接选项

允许远程连接到此服务器:选中此项则允许从运行的SQL Server实例的远程服务器控制存储过程的执行。远程查询超时值指定在SQL Server超时之前远程操作可执行的时间,默认为600秒。

需要将分布式事务用于服务器到服务器的通信:选中此项则允许通过Microsoft分布式事务处理协调器(MS DTC)事务保护服务器到服务器过程的操作。

4.5.6 服务器属性的数据库设置

如图4.46所示为服务器属性的【数据库设置】选项页,其中有以下项目。

图4.46 服务器属性的数据库设置

默认索引填充因子:该项的作用是指定在SQL Server使用当前数据创建新索引时对每一页的填充程度。在SQL Server 2008中,会为索引分配8KB大小的数据分页。索引的填充因子就是规定向索引页中插入的索引数据最多可以占用的页面空间。例如填充因子为60%,那么在向索引页面中插入索引数据时最多可以占用页面空间的60%,剩下的40%的空间保留给索引的数据更新时用。当表中产生索引的数据发生更新时,SQL Server 2008就会自动维护和更新索引页。由于在页填充时SQL Server必须花时间来拆分页,因此填充因子会影响性能。本项的默认值是0,有效值是0~100。

备份和还原:此项主要用于指定SQL Server 2008等待更换新磁带的时间。【无限期等待】指SQL Server在等待新备份磁带时永不超时;【尝试一次】是指如果需要备份磁带时,但它却不可用,则SQL Server将超时;【尝试】的分钟数是指如果备份磁带在指定的时间内不可用,SQL Server将超时。【默认备份媒体保持期(天)】用于提供一个系统范围默认值,指示进行数据库备份或事务日志备份后每一个备份媒体的保留时间。此选项可以防止在指定的日期前覆盖备份。

恢复:【恢复间隔】参数用于设置每个数据库恢复时所需的最大分钟数,如果为0,则表示让SQL Server自动配置。

数据库默认位置:用于指定数据文件和日志文件的默认保存位置。

4.5.7 服务器属性的高级选项设置

如图4.47所示为服务器属性的【高级】选项页,其中有以下项目。

图4.47 服务器属性的高级选项设置

并行的开销阈值:此项指定一个数值,如果一个SQL查询语句的开销超过这个数值,那么就会启用多个CPU来并行执行高于这个数值的查询,以优化性能。开销指的是在特定硬件配置中运行串行计划估计需要花费的时间,单位为秒。

查询等待值:该项指定在超时之前查询等待资源的秒数,有效值是0到2147483647。默认值是-1,按估计查询开销的25倍计算超时值。

锁:该项指定一个数值,用于设置可用锁的最大数目,以限制SQL Server为锁分配的内存量。默认值为0,也就是允许SQL Server根据系统要求来动态分配和释放锁。

技巧 推荐让SQL Server动态地使用锁,也就是设置为0。

最大并行度:该项用于设置执行并行计划时能使用的CPU的数量,最大值为64。如果设置为0,则表示使用所有可用的处理器;如果设置为1,则表示不生成并行计划。默认值为0。

网络数据包大小:设置整个网络使用的数据包的大小,单位为字节。默认值是4096字节。

技巧 如果应用程序常执行大容量复制操作,或者发送、接收大量的text和image数据,可以将此值设置得大一点。如果应用程序接收和发送的信息量都很小,可以将其设置为512字节。

远程登录超时值:该项用于指定远程登录尝试失败返回之前等待的秒数,默认值为20秒。如果设置为0,则允许无限期等待。此项设置影响为执行异类查询所创建的与OLE DB访问接口的连接。

两位数年份截止:该项指定从1753到9999之间的整数,该整数表示将两位数年份解释为四位数年份的截止年份。

默认全文语言:该项用于指定全文索引列的默认语言。全文索引数据的语言分析取决于数据的语言。默认值为服务器的语言。

默认语言:该项用于指定默认情况下所有新创建的登录名使用的语言。

启动时扫描存储过程:该项用于指定SQL Server在启动时是否扫描并自动执行存储过程。如果设置为True,则SQL Server在启动时将扫描并自动运行服务器上定义的所有存储过程。

游标阈值:该项用于指定游标集中的行数,如果超过此行数,将异步生成游标键集。当游标为结果集生成键集时,查询优化器会估算将为该结果集返回的行数。如果查询优化器估算出的返回行数大于此阈值,将异步生成游标,使用户能够在继续填充游标的同时从该游标中提取行。否则,同步生成游标,查询将一直等待到返回所有行。如果设置为-1,将同步生成所有键集,此设置适用于较小的游标集。如果设置为0,将异步生成所有游标键集。如果设置为其他值,则查询优化器将比较游标集中的预期行数,并在该行数超过所设置的数量时异步生成键集。

允许触发器激发其他触发器:该项用于指定触发器是否可以执行启动另一个触发器的操作,也就是指定触发器是否允许递归或嵌套。

最大文本复制大小:该项指定用一个INSERT, UPDATE, WRITETEXT或UPDATETEXT语句可以向复制列添加的text和image数据的最大值,单位为字节。

4.5.8 服务器属性的权限设置

如图4.48所示为服务器属性的【权限】选项页,该选项页用于授予或撤销账户对服务器的操作权限。

图4.48 服务器属性的权限设置

在【登录名或角色】列表框里显示的是多个可以设置权限的对象。单击【添加】按钮,可以添加更多的“登录名”和“服务器角色”到这个列表框中。单击【删除】按钮可以将列表框中已有的登录名或角色删除。

在【显式】列表框中,可以查看【登录名或角色】列表框里所选对象的权限。在【登录名或角色】列表框中选择不同的对象,在【显式】列表框中会有不同的权限显示。在这里也可以为【登录名或角色】列表框里的所选对象设置权限。

4.6 通过日志查看服务器的运行情况

SQL Server 2008可以将某些系统事件和用户自定义的事件记录到SQL Server的错误日志和Windows应用程序日志中,在这两种日志中都会自动标上时间。

4.6.1 在事件查看器中查看服务器的运行情况

SQL Server 2008服务器的启动、关闭和暂停动作,都会产生一个事件记录,这个记录将会出现在Windows的事件查看器中。如果在本章4.5.4节中为SQL Server 2008服务器的安全性设置了登录审核,那么只要符合登录审核条件的事件记录,也会记录在Windows的事件查看器中。下面介绍查看SQL Server 2008事件记录的办法。

step 1 在Windows操作系统中选择【开始】→【管理工具】→【事件查看器】选项。

step 2 在图4.49所示的【事件查看器】窗口中,选择【Windows日志】→【应用程序】选项,在右边的列表框里可以看到所有的事件记录列表。

图4.49 【事件查看器】窗口

step 3 双击其中一个事件,将弹出图4.50所示的【事件属性】对话框,在这里可以看到事件的详细内容。本例中是审核成功信息,通过这一项可以看出是否有黑客成功入侵。

图4.50 查看事件的详细内容

step 4 【事件查看器】窗口中记录了各种应用程序的事件记录。如果只想查看和SQL Server有关的事件记录,可以右击【应用程序】选项,在弹出的快捷菜单里选择【查看】→【筛选】选项,打开如图4.51所示的【应用程序属性】对话框。在这里可以筛选事件类型、事件来源、类别、事件时间等,具体筛选例子这里就不赘述了。

图4.51 筛选事件类型和来源等

注意 在事件查看器里的【安全】→【系统】里,也会记载着与SQL Server 2008相关的事件记录,不要忘记查看它们。在Windows应用程序日志里,不仅仅记录数据库启动、停止和身份审核等信息,还会完整地记录Windows操作系统中发生的事件,以及SQL Server和SQL Server代理中的事件。

4.6.2 通过日志查看器查看SQL Server日志

在SQL Server Management Studio中查看SQL Server日志的方法如下:

step 1 启动SQL Server Management Studio并连接到SQL Server服务器上。

step 2 在【对象资源管理器】窗格中,选择【实例名】→【管理】→【SQL Server日志】选项,如图4.52所示,可以看到SQL Server的日志存档。

图4.52 查看SQL Server日志

step 3 双击某一个日志存档,在如图4.53所示的【日志文件查看器】窗口中,可以查看日志的具体内容。

图4.53 查看日志具体内容

4.6.3 在LOG文件夹中查看SQL Server错误日志

SQL Server 2008还会将SQL Server的错误日志存在系统盘的D:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\LOG目录下,文件名为“ERRORLOG”和“ERRORLOG.X”,其中的X是数字。用Windows记事本程序可以打开这些日志文件进行查看。

4.7 小结

SQL Server有两种工作模式,一是C/S模式,另一种是B/S模式。在使用C/S模式连接SQL Server服务器时,要了解怎么连接SQL Server服务器,怎么注册服务器,怎么导入、导出服务器的注册,怎么样才能启动、停止、暂停、恢复和重新启动SQL Server服务,怎样断开SQL Server服务器连接。

要想让SQL Server 2008更安全、高效地运行,就必须对SQL Server服务、远程SQL Server服务和SQL Server服务器进行配置,要熟悉这些配置里的选项都起什么作用,知道如何去配置。在第5章里将会重点介绍如何管理数据库服务器。