SQL Server 2008 R2数据管理全新亮相:多服务器管理


     多服务器管理是SQL Server 2008 R2新增的功能,该功能能够跨多个SQL Server实例进行自动化管理,能够同时管理多台服务器以及在企业服务器之间安排数据仓库的信息流。

     多服务器管理需要设置一个主服务器以及一个或多个目标服务器,首先在主服务器上定义将在所有目标服务器上处理的作业,然后主服务器会将这些作业分发下载到目标服务器上,并接受其反馈的事件。主服务器上会存储在目标服务器上运行作业的副本,目标服务器会定期连接到主服务器更新它们的作业计划。如果主服务器上存在新作业,目标服务器将下载该作业;目标服务器在完成作业后,会重新连接到主服务器并报告作业状态。下图1显示了主服务器与目标服务器其之间的关系。

主服务器与目标服务器的关系

图1 主服务器与目标服务器的关系

在管理大公司内的部门服务器时,可以定义以下内容:包含作业步骤的作业任务,作业任务失败时同志的操作员,作业任务的执行计划。将该作业任务一次性写入主服务器,然后将部门服务器登记为目标服务器。从它们登记时起,所有部门服务器将运行相同的作业任务,而管理员只需要定义一次作业任务。

设置主服务器

要创建多服务器环境,可使用主服务器向导设置主服务器,步骤如下:

1. 在对象资源管理器中,连接到Microsoft SQL Server数据库引擎实例,再展开该实例。

2. 右键单击“SQL Server代理”,指向“多服务器管理”,再单击“将其设置为主服务器”,如下图2所示。主服务器向导将会引导用户完成设置主服务器和添加目标服务器的过程。

设置本机为主服务器

图2 设置本机为主服务器

该向导将会引导用户逐个执行以下检查:

1. 检查准备用作目标服务器的所有服务器上的SQL Server代理服务和SQL Server服务器的安全设置,建议两类服务都使用域账户运行,这样能有效的管理用户权限。

2. 在主服务器上传见一个主服务器操作员(MSXOperator),这是唯一能够接受多服务器作业通知的操作员。

3. 在主服务器上启动SQL Server代理服务,并将一台或多台服务器登记为目标服务器。

默认情况下,将为主服务器和目标服务器之间的连接启用安全套接字层(SSL)和证书验证。如果用户无法在主服务器和某些或所有目标服务器值iande安全套接字层(SSL)加密通信中使用证书,但希望他们之间的通道进行加密的话,需要为目标服务器设置为所需的安全级别。如果要为特定的主服务器/目标服务器通信通道设置安全级别,需要更改目标服务器上的SQL Server代理的注册表项[HKEY_LOCAL_MACHINE]\SOFTWARE\Microsoft\Microsoft SQL Server\<instance_name>\

SQLServerAgent\MsxEncryptChannelOptions(REG_DWORD)设置为下列值之一:0,1,2。<instance_name>的值为MSSQL.n,例如MSSQL.1或MSSQL.3。其中0代表在该目标服务器和主服务器之间禁用加密;1代表仅在目标服务器和主服务器之间启用加密,但不实用证书验证;2代表在目标服务器和主服务器之间启用完全的SSL加密和证书验证。

设置目标服务器

在设置目标服务器时,需要针对目标服务器作相应设置,使其归属于某台主服务器管理:

1. 在对象资源管理器中,连接到Microsoft SQL Server数据库引擎实例,再展开该实例。

2. 右键单击“SQL Server代理”,指向“多服务器管理”,再单击“使其成为主服务器”,目标服务器向导将会引导用户完成生成目标服务器的过程。

同样,对于多服务器环境也是有一定注意事项的:

1. 每台目标服务器只向一台主服务器报告,不存在同一台目标服务器向多台主服务器报告的情况,必须将目标服务器从一台主服务器上脱离,才能将其登记在其他服务器上。

2. 如果要更改目标服务器名称时,需要在更改名称之前脱离主服务器并在更改后重新登记。

3. 若要取消多服务器配置,必须首先让所有目标服务器脱离主服务器。

管理整个企业内的作业

如果在Microsoft SQL Server Management Studio以外对多服务器作业定义进行了更改,必须将更改发布到下载列表中,以便目标服务器在下次轮询时更新作业。为了确保目标服务器具有当前的作业定义,需要在使用了以下任一过程之后调用命令发布更改:

sp_add_jobstep

在作业中添加一个步骤

sp_update_jobstep

更改执行自动活动的作业中某一步骤的设置

sp_delete_jobstep

从作业中删除作业步骤

sp_attach_schedule

设置一个作业计划

sp_detach_schedule

删除计划和作业之间的关联

在更新多服务器作业后需要发布一条INSERT指令发布更改,如下所示:

EXECUTE sp_post_msx_operation ‘INSERT’,’JOB’,’<job id>’

需要注意的是调用了sp_update_job或sp_delete_job后不需要调用sp_post_msx_operation因为存储过程会自动向下载列表发布所需的更改。

轮询服务器

实现多服务器管理后,目标服务器将定期联系主服务器以上传有关已执行的作业信息,并下载新的作业。联系主服务器的过程就是服务器轮询,该过程每隔“轮询间隔”发生一次。

轮询间隔(默认情况下为一分钟)控制目标服务器连接到主服务器以下载指令并上传作业执行结果的频率。当目标服务器轮询主服务器时,将从msdb数据库的sysdownloadlist表中读取分配给目标服务器的操作。这些操作控制多服务器作业和目标服务器行为的不同方面,包括上面提到的sp_post_msx_operation存储过程也是通过修改sysdownloadlist表来实现对轮询特性的修改的,当然用户也可以使用其他作业存储过程隐式发布操作到sysdownloadlist表。

使多台目标服务器脱离主服务器

在需要解散多服务器管理配置时,为了能让目标服务器脱离主服务器,需要进行如下操作:

1. 在对象资源管理器中,展开配置为主服务器的服务器。

2. 右键单击“SQL Server代理”,指向“多服务器管理”,再单击“管理目标服务器”。

3. 单击“发布指令”,然后在“指令类型”列表装选择“脱离”。

4. 在“收件人”下,执行以下操作之一:

Ø 单击“所有目标服务器”,脱离主服务器的所有目标服务器,如果要完全卸载当前多服务器管理配置,选用此选项。

Ø 单击“以下目标服务器”,再单击相应的“选择”框,脱离主服务器的部分目标服务器。

总结

多服务器管理功能是SQL Server 2008 R2中推出的管理SQL服务器数据库引擎的多个实例的SQL服务器工具,使用这些工具可以通过主服务器对多个SQL Server服务器进行快速、高效的管理。在SQL Server 2008 R2中,可通过指定中央管理服务器并创建服务器组来管理多个服务器,指定为主管理服务器的SQL Server实例维护服务器组,这些组维护一个或多个 SQL Server 实例的连接信息。可以对服务器组同时执行 Transact-SQL 语句和基于策略的管理策略。

 

作者: 付海军
版权:本文版权归作者所有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
个人网站: http://txj.shell.tor.hu


发表回复